diff --git a/.gitignore b/.gitignore index 72796d4a54028f06a6353940ef47c94715dda9fb..83d5f953f1ebd2d9f2b795519129f9cd7e2ef0a1 100644 --- a/.gitignore +++ b/.gitignore @@ -203,6 +203,7 @@ Documentation/VehiclesReleaseComparisonDeclarationMode/*.vsum HashingTool/TestData/ DISTR/ [0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]-VECTO-*.zip +[0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]-VECTO_MOCKUP-*.zip Documentation/VehiclesReleaseComparisonDeclarationMode/tmp/ EPTP/ 201*-VECTO-*.zip @@ -221,3 +222,5 @@ Documentation/VehiclesReleaseComparisonDeclarationMode/**/*.vsum /VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/output /Vecto3GUI2020Test/TestData/output /VectoCommon/VectoCommon/InputData/BusInputData.cd +/.idea/.idea.VECTO/.idea + diff --git a/Directory.Build.props b/Directory.Build.props index 1c6bee655b6959f864f99d9336793857ca01dbd2..dd173a60980aff71b9cc020fb13f729a2a03c3c4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -18,7 +18,8 @@ <Copyright>Copyright © 2012-$([System.DateTime]::UtcNow.Year)</Copyright> <PlatformTarget>AnyCPU</PlatformTarget> <Deterministic>true</Deterministic> - <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> + <!-- Set to true for VectoCore to fix Ninject version conflicts--> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <DefineTrace>false</DefineTrace> <RemoveIntegerChecks>true</RemoveIntegerChecks> <DebugType>none</DebugType> diff --git a/Directory.Build.targets b/Directory.Build.targets index c9c06bc38267f03fab4173b475beef36eb1e5c83..859784928572a8a8f9ba8d3c75575a950ff5e0f2 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -7,22 +7,46 @@ <Exec Command=""$(solutiondir)documentation\VectoHashingTool\convert.bat"" WorkingDirectory="$(solutiondir)documentation\VectoHashingTool"/> </Target> --> + <!--<Target Name="BeforeBuild"> + <Message Text="Compiling the program in $(Configuration) Configuration" Importance="high" /> + </Target>--> + <!-- msbuild VECTO.sln -target:CustomClean --> + <Target Name="CustomClean" > + <Message Text="Removing old files" Importance="high" /> + <RemoveDir Directories="$(SolutionDir)VECTO\bin\" /> + <RemoveDir Directories="$(SolutionDir)HashingTool\bin\" /> + <RemoveDir Directories="$(SolutionDir)HashingCmd\bin\" /> + <RemoveDir Directories="$(SolutionDir)VectoConsole\bin\" /> + <RemoveDir Directories="$(SolutionDir)VECTO\bin\" /> + <RemoveDir Directories="$(SolutionDir)VECTO3GUI2020\bin\" /> + <RemoveDir Directories="$(SolutionDir)VECTO3GUI2020\bin\" /> - <Target Name="AfterBuild" Condition="'$(Configuration)'=='Deploy'"> + <RemoveDir Directories="$(SolutionDir)Tools\VECTOConsoleStart\bin\" /> + <RemoveDir Directories="$(SolutionDir)Tools\VECTOMultistageStart\bin\" /> + <RemoveDir Directories="$(SolutionDir)Tools\VECTOStart\bin\" /> + <RemoveDir Directories="$(SolutionDir)VectoCore\VectoCore\bin\" /> + <RemoveDir Directories="$(SolutionDir)VectoCommon\VectoCommon\bin\"/> + <RemoveDir Directories="$(SolutionDir)VectoCommon\VectoHashing\bin\"/> + <RemoveDir Directories="$(SolutionDir)VectoMockup\VectoMockup\bin\"/> + </Target> + <Target Name="Packaging" AfterTargets="DispatchToInnerBuilds" Condition="('$(Configuration)'=='Deploy') Or ('$(Configuration)' == 'MockupDeploy')"> + <Message Text="Packaging in $(Configuration) Configuration" Importance="high" /> <Exec Command="cscript "$(SolutionDir)documentation\user manual source\convertpptxtopdf.vbs" "$(SolutionDir)documentation\user manual source\release notes vecto3.x.pptx" "$(SolutionDir)documentation\user manual source\release notes vecto3.x.pdf""/> <PropertyGroup> <CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate> <DeployPath>$(SolutionDir)Deploy\$(CurrentDate)-VECTO-$(Version)\</DeployPath> + <DeployPath Condition="'$(Configuration)'=='MockupDeploy'">$(SolutionDir)Deploy\$(CurrentDate)-VECTO_MOCKUP-$(Version)\</DeployPath> </PropertyGroup> <RemoveDir Directories="$(SolutionDir)Deploy" Condition="Exists('$(SolutionDir)Deploy')"/> <MakeDir Directories="$(DeployPath)"/> - <ItemGroup> + + <ItemGroup Condition="'$(Configuration)'=='Deploy'"> <!-- All files for net45 --> <Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.exe"/> <Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.dll*"/> - <Net45Vecto Include="$(SolutionDir)VECTO\bin\Release\net45\nlog.config"/> + <Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\nlog.config"/> <Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.exe"/> <Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.dll*"/> <Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.exe"/> @@ -30,28 +54,64 @@ <Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.exe"/> <Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.dll*"/> </ItemGroup> + <!--MockupDeploy--> + + <ItemGroup Condition="'$(Configuration)'=='MockupDeploy'"> + <!-- All files for net45 --> + <Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\*.exe*"/> + <Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\*.dll*"/> + <Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\nlog.config"/> + <Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.exe*"/> + <Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.dll*"/> + <Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.exe*"/> + <Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.dll*"/> + <Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net45\*.exe*"/> + <Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net45\*.dll*"/> + </ItemGroup> + + <Copy SourceFiles="@(Net45VectoCommandLine)" DestinationFolder="$(DeployPath)net45"/> <Copy SourceFiles="@(Net45HashingTool)" DestinationFolder="$(DeployPath)net45"/> <Copy SourceFiles="@(Net45VECTO)" DestinationFolder="$(DeployPath)net45"/> - <ItemGroup> + + <ItemGroup Condition="'$(Configuration)'=='Deploy'"> <!-- All files for net48 --> <Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.exe"/> <Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.dll*"/> <Net48Vecto Include="$(SolutionDir)VECTO\bin\Release\net48\nlog.config"/> <Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.exe"/> <Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.dll*"/> + <Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.exe"/> + <Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.dll*"/> <Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.exe"/> <Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.dll*"/> <Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.exe"/> <Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.dll*"/> </ItemGroup> + + <!--MockupDeploy--> + <ItemGroup Condition="'$(Configuration)'=='MockupDeploy'"> + <!-- All files for net48 --> + <Net48VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\*.exe*" /> + <Net48VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\*.dll*" /> + <Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\nlog.config"/> + <Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.exe*" /> + <Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.dll*" /> + <Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.exe"/> + <Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.dll*"/> + <Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net48\*.exe*" /> + <Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net48\*.dll*" /> + <Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net48\*.exe*" /> + <Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net48\*.dll*" /> + </ItemGroup> + <Copy SourceFiles="@(Net48VectoCommandLine)" DestinationFolder="$(DeployPath)net48"/> <Copy SourceFiles="@(Net48HashingTool)" DestinationFolder="$(DeployPath)net48"/> <Copy SourceFiles="@(Net48VectoMultistage)" DestinationFolder="$(DeployPath)net48"/> <Copy SourceFiles="@(Net48VECTO)" DestinationFolder="$(DeployPath)net48"/> - <ItemGroup> + <ItemGroup Condition="'$(Configuration)'=='Deploy'"> <!-- All files for net6.0 --> <Vecto Include="$(SolutionDir)VECTO\bin\Release\net6.0-windows\VECTO.*" Exclude="*.dev.json"/> <Vecto Include="$(SolutionDir)VECTO\bin\Release\net6.0-windows\*.dll"/> @@ -62,11 +122,36 @@ <VectoCommandLineRuntimes Include="$(SolutionDir)VectoConsole\bin\Release\net6.0\runtimes\**\*.*"/> <HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\hashingcmd.*" Exclude="*.dev.json"/> <HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\*.dll"/> - <HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\runtimes\**\*.*"/> + <HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0-windows\runtimes\**\*.*"/> + <HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\HashingTool.*" Exclude="*.dev.json"/> + <HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\*.dll*"/> + <HashingToolRuntimes Include="$(SolutionDir)HashingTool\bin\Release\net6.0\runtimes\**\*.*"/> <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\VECTOMultistage.*" Exclude="*.dev.json"/> <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\*.dll"/> <VectoMultistageRuntimes Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\runtimes\**\*.*"/> </ItemGroup> + <!--MockupDeploy--> + + <ItemGroup Condition="'$(Configuration)'=='MockupDeploy'"> + <!-- All files for net6.0 --> + <Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\VECTO.*" Exclude="*.dev.json"/> + <Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\*.dll"/> + <Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\nlog.config"/> + <VectoRuntimes Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\runtimes\**\*.*"/> + <VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\vectocmd.*" Exclude="*.dev.json"/> + <VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\*.dll"/> + <VectoCommandLineRuntimes Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\runtimes\**\*.*"/> + <HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\hashingcmd.*" Exclude="*.dev.json"/> + <HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\*.dll"/> + <HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\runtimes\**\*.*"/> + <HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\HashingTool.*" Exclude="*.dev.json"/> + <HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\*.dll*"/> + <HashingToolRuntimes Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\runtimes\**\*.*"/> + <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\VECTOMultistage.*" Exclude="*.dev.json"/> + <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\*.dll"/> + <VectoMultistageRuntimes Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\runtimes\**\*.*"/> + </ItemGroup> + <Copy SourceFiles="@(HashingTool)" DestinationFolder="$(DeployPath)net60"/> <Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(DeployPath)net60"/> <Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(DeployPath)net60"/> @@ -76,7 +161,7 @@ <Copy SourceFiles="@(VectoCommandLineRuntimes)" DestinationFiles="@(VectoCommandLineRuntimes->'$(DeployPath)net60\runtimes\%(RecursiveDir)%(Filename)%(Extension)')"/> <Copy SourceFiles="@(VectoRuntimes)" DestinationFiles="@(VectoRuntimes->'$(DeployPath)net60\runtimes\%(RecursiveDir)%(Filename)%(Extension)')"/> - <ItemGroup> + <ItemGroup Condition="'$(Configuration)'=='Deploy'"> <!-- All files for the VECTO starters --> <VectoStart Include="$(SolutionDir)Tools\VECTOStart\bin\Deploy\net45\VECTO.exe" /> <VectoStart Include="$(SolutionDir)Tools\VECTOMultistageStart\bin\Release\net45\VECTOMultistage.exe" /> @@ -84,6 +169,14 @@ <VectoStart Include="$(SolutionDir)Tools\HashingToolStart\bin\Release\net45\HashingTool.exe" /> <VectoStart Include="$(SolutionDir)Tools\VECTOConsoleStart\bin\Release\net45\vectocmd.exe" /> </ItemGroup> + <ItemGroup Condition="'$(Configuration)'=='MockupDeploy'"> + <!-- All files for the VECTO starters --> + <VectoStart Include="$(SolutionDir)Tools\VECTOStart\bin\MockupDeploy\net45\VECTO.exe" /> + <VectoStart Include="$(SolutionDir)Tools\VECTOMultistageStart\bin\Release\net45\VECTOMultistage.exe" /> + <VectoStart Include="$(SolutionDir)Tools\HashingCmdStart\bin\Release\net45\hashingcmd.exe" /> + <VectoStart Include="$(SolutionDir)Tools\HashingToolStart\bin\Release\net45\HashingTool.exe" /> + <VectoStart Include="$(SolutionDir)Tools\VECTOConsoleStart\bin\Release\net45\vectocmd.exe" /> + </ItemGroup> <Copy SourceFiles="@(VectoStart)" DestinationFolder="$(DeployPath)"/> <ItemGroup> @@ -119,6 +212,11 @@ <Copy SourceFiles="@(VectoConfigurationSample)" DestinationFolder="$(DeployPath)"/> <Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(DeployPath)Mission Profiles\!! README !!.TXT"/> <Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(DeployPath)Declaration\!! README !!.TXT"/> - <ZipDirectory SourceDirectory="$(SolutionDir)Deploy\" DestinationFile="$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip" Overwrite="true"/> + + <PropertyGroup> + <DestinationZip>$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip</DestinationZip> + <DestinationZip Condition="'$(Configuration)'=='MockupDeploy'">$(SolutionDir)$(CurrentDate)-VECTO_MOCKUP-$(Version).zip</DestinationZip> + </PropertyGroup> + <ZipDirectory SourceDirectory="$(SolutionDir)Deploy\" DestinationFile="$(DestinationZip)" Overwrite="true"/> </Target> </Project> \ No newline at end of file diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf index f4fd08c9171912a98a390276108b8255e24260bb..e9fb391957a2ad2d18649a2fb17daba26ce30418 100644 Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml index 2570c5ed1fd450fa8cfcba3771cb6a5fc9efe9d4..1f0b49b4a554529fa9842e73671fe66bbc5d9acb 100644 --- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml @@ -2,9 +2,9 @@ <VectoOutputMultistep xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> <Data id="VEH-88dcf76d37a64b5eaf70" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Bus Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -18,19 +18,19 @@ <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> - <ADAS xmlns:adas="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xsi:type="adas:AdvancedDriverAssistantSystemsType"> - <adas:EngineStopStart>false</adas:EngineStopStart> - <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> - <adas:EcoRollWithEngineStop>false</adas:EcoRollWithEngineStop> - <adas:PredictiveCruiseControl>none</adas:PredictiveCruiseControl> + <ADAS xsi:type="v2.4:ADAS_Conventional_Type"> + <v2.4:EngineStopStart>false</v2.4:EngineStopStart> + <v2.4:EcoRollWithoutEngineStop>false</v2.4:EcoRollWithoutEngineStop> + <v2.4:EcoRollWithEngineStop>false</v2.4:EcoRollWithEngineStop> + <v2.4:PredictiveCruiseControl>none</v2.4:PredictiveCruiseControl> </ADAS> <TorqueLimits xmlns:tcl="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="tcl:TorqueLimitsType"> <tcl:Entry gear="6" maxTorque="1800" /> <tcl:Entry gear="1" maxTorque="2500" /> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic primary bus 41 Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -41,9 +41,9 @@ <RatedPower>200000</RatedPower> <MaxEngineTorque>1100</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>false</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>false</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>700</IdlingSpeed> @@ -68,14 +68,14 @@ </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>AT 6 Gear</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>APT-S</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>3.364</Ratio> <MaxTorque>1900</MaxTorque> @@ -106,7 +106,7 @@ </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -115,7 +115,7 @@ </Data> </TorqueConverter> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic primary bus 41 AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -126,7 +126,7 @@ </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -186,7 +186,7 @@ </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <Data xsi:type="AuxiliaryDataVIFType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> diff --git a/HashingTool/HashingTool.csproj b/HashingTool/HashingTool.csproj index a5fc2a097d0c62da58451a1f4443035cfd4818b0..bd04018aa1a213f11801e90e51b358e59d1d5023 100644 --- a/HashingTool/HashingTool.csproj +++ b/HashingTool/HashingTool.csproj @@ -8,7 +8,7 @@ <RootNamespace>HashingTool</RootNamespace> <AssemblyName>HashingTool</AssemblyName> <UseWPF>true</UseWPF> - <TargetFrameworks>net45;net6.0-windows</TargetFrameworks> + <TargetFrameworks>net45;net48;net6.0-windows</TargetFrameworks> <DefineConstants /> <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets> <ApplicationIcon>HashingIcon.ico</ApplicationIcon> diff --git a/MockupNinjectModule.cs b/MockupNinjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..e80e3118178a366b3d8ec021cd462f3c2780256b --- /dev/null +++ b/MockupNinjectModule.cs @@ -0,0 +1,6 @@ +using System; + +public class MockupNinjectModule : NinjectModule +{ + +} diff --git a/Tools/HashingCmdStart/Program.cs b/Tools/HashingCmdStart/Program.cs index f3b287ab1d002769cb532880115205f80372126c..d6ddc78a1efbea4d4ed32888a80c03ed58a6991c 100644 --- a/Tools/HashingCmdStart/Program.cs +++ b/Tools/HashingCmdStart/Program.cs @@ -2,6 +2,9 @@ { class Program { - static void Main(string[] args) => StarterHelper.StartVECTO(args); + static void Main(string[] args) + { + StarterHelper.StartVECTO(args, true); + } } } \ No newline at end of file diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs index 6d55a719f74068db46301e4485e52d527b6ce2ba..212d779550bdfd8798482a1a49acfc37588ede55 100644 --- a/Tools/HashingToolStart/Program.cs +++ b/Tools/HashingToolStart/Program.cs @@ -9,7 +9,7 @@ namespace TUGraz.VECTO { try { // mk20220707: hashing tool currently only works under net45, therefore we hardcoded the version - StarterHelper.StartVECTO(new[]{"net45"}); + StarterHelper.StartVECTO(args); } catch (Exception e) { MessageBox.Show(e.Message); } diff --git a/Tools/VECTOConsoleStart/Program.cs b/Tools/VECTOConsoleStart/Program.cs index 178aabefbf8e59c15ecad4b119b343f94ccb3928..2c3e89e56651c08449cab191f42d63d4d9a5e9e3 100644 --- a/Tools/VECTOConsoleStart/Program.cs +++ b/Tools/VECTOConsoleStart/Program.cs @@ -1,7 +1,12 @@ -namespace TUGraz.VECTO +using System.Linq; +using System.Text; +namespace TUGraz.VECTO { class Program { - static void Main(string[] args) => StarterHelper.StartVECTO(args); + static void Main(string[] args) + { + StarterHelper.StartVECTO(args, true); + } } } diff --git a/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj index a87fbbd03e9cd78f53ccf2b74f476cd77ef64b4b..1956648c6f470b44fd78b2263704b158dd98b63a 100644 --- a/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj +++ b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj @@ -1,12 +1,14 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <OutputType>WinExe</OutputType> + <OutputType>exe</OutputType> + <AssemblyName>vectocmd</AssemblyName> <ApplicationIcon>Icon2.ico</ApplicationIcon> <RootNamespace>TUGraz.VECTO</RootNamespace> <TargetFrameworks>net45</TargetFrameworks> - <DefineConstants /> + <DefineConstants /> + <StartupObject></StartupObject> </PropertyGroup> <ItemGroup> diff --git a/Tools/VECTOMultistageStart/VECTOMultistage.csproj b/Tools/VECTOMultistageStart/VECTOMultistage.csproj index da3310873330bb510cc8a4fbb7f13b06a93bf3a5..eae5dedee8e400c496f878c7df4ada18d1606eee 100644 --- a/Tools/VECTOMultistageStart/VECTOMultistage.csproj +++ b/Tools/VECTOMultistageStart/VECTOMultistage.csproj @@ -7,6 +7,7 @@ <RootNamespace>TUGraz.VECTO</RootNamespace> <TargetFrameworks>net45</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupDebug</Configurations> </PropertyGroup> <ItemGroup> diff --git a/Tools/VECTOStart/StarterHelper.cs b/Tools/VECTOStart/StarterHelper.cs index 40e4bab5374630491362afb3783fe97be601ce86..0aec4549e9c6f905e38637b7144c6633e8b67c17 100644 --- a/Tools/VECTOStart/StarterHelper.cs +++ b/Tools/VECTOStart/StarterHelper.cs @@ -3,30 +3,53 @@ using System; using System.Collections; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; namespace TUGraz.VECTO { class StarterHelper { - public static void StartVECTO(string[] args, params string[] validVersions) + public static void StartVECTO(string[] cmdArguments, params string[] validVersions) + { + StartVECTO(cmdArguments, false, validVersions); + } + + public static void StartVECTO(string[] cmdArguments, bool consoleApp, params string[] validVersions) { var path = "No path found."; string version = "No version found."; if (validVersions is null || validVersions.Length == 0) { validVersions = new[] { "net45", "net48", "net60" }; } + + //var versionArgument = cmdArguments.FirstOrDefault(arg => arg.StartsWith("net")); try { - if (args.Length > 0) { - version = args[0].ToLower(); - } else { - version = GetHighestNETVersion(); - } + version = GetHighestNETVersion(); + path = $"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe"; - Process.Start(new ProcessStartInfo(path) { - WorkingDirectory = Directory.GetCurrentDirectory() - }); + + string argumentsString = ""; + if (cmdArguments.Length > 0) { + foreach (var cmdArgument in cmdArguments) { + argumentsString += "\"" + cmdArgument + "\" "; + } + } + + var processInfo = new ProcessStartInfo(path) { + WorkingDirectory = Directory.GetCurrentDirectory(), + Arguments = argumentsString, + }; + + + if (consoleApp) { + processInfo.UseShellExecute = consoleApp ? false : processInfo.UseShellExecute; + Process.Start(processInfo)?.WaitForExit(); + } else { + Process.Start(processInfo); + } + ValidateVersion(version, validVersions); } catch (Exception e) { var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}"; diff --git a/Tools/VECTOStart/VECTOStart.csproj b/Tools/VECTOStart/VECTOStart.csproj index 176ff3fc47fc375c2433a24d2546b29532da300d..332cda0617da374df2632598172affafcbe872de 100644 --- a/Tools/VECTOStart/VECTOStart.csproj +++ b/Tools/VECTOStart/VECTOStart.csproj @@ -5,7 +5,7 @@ <AssemblyName>VECTO</AssemblyName> <ApplicationIcon>Icon2.ico</ApplicationIcon> <RootNamespace>TUGraz.VECTO</RootNamespace> - <Configurations>Debug;Release;Deploy</Configurations> + <Configurations>Debug;Release;Deploy;MockupDeploy</Configurations> <TargetFrameworks>net45</TargetFrameworks> <DefineConstants /> </PropertyGroup> diff --git a/VECTO.sln b/VECTO.sln index 38119df7b8760691ca111fdeedee85ef88184aff..cdc2fed5e6dfbbc2cf61f6eaae1c7250f583b603 100644 --- a/VECTO.sln +++ b/VECTO.sln @@ -5,9 +5,9 @@ VisualStudioVersion = 17.1.32414.318 MinimumVisualStudioVersion = 10.0.40219.1 Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "VECTO", "VECTO\VECTO.vbproj", "{AAC0F132-0A9F-45B3-B682-77AC9B24B352}" ProjectSection(ProjectDependencies) = postProject - {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} {33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204} {60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391} + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoCore", "VectoCore\VectoCore\VectoCore.csproj", "{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}" @@ -56,30 +56,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParameterDocumentation", ". EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOStart", "Tools\VECTOStart\VECTOStart.csproj", "{D47DF5C7-CD92-4388-A18F-1620630DB437}" ProjectSection(ProjectDependencies) = postProject - {C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {C5A75A10-0726-4FCA-B350-2F1694E1EABE} - {EF99431D-4227-44C3-B2BD-DE8AE3E672CA} = {EF99431D-4227-44C3-B2BD-DE8AE3E672CA} - {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} = {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} - {4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {4977BE2A-CB80-4FC0-8D1A-30EC094011B4} - {B673E12F-D323-4C4C-8805-9915B2C72D3D} = {B673E12F-D323-4C4C-8805-9915B2C72D3D} - {AAC0F132-0A9F-45B3-B682-77AC9B24B352} = {AAC0F132-0A9F-45B3-B682-77AC9B24B352} - {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} - {9FD67139-5120-4E64-9210-DD0A070903EA} = {9FD67139-5120-4E64-9210-DD0A070903EA} {083F6B3C-9529-448F-AF1D-D0889852B918} = {083F6B3C-9529-448F-AF1D-D0889852B918} - {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} = {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} - {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} - {E8B0B447-1A54-4BEC-A160-AF0017000781} = {E8B0B447-1A54-4BEC-A160-AF0017000781} - {760C1C5B-A767-463E-BA85-F0BCFC23A550} = {760C1C5B-A767-463E-BA85-F0BCFC23A550} + {165739A9-C28D-4B82-96A9-8D063BEC22B9} = {165739A9-C28D-4B82-96A9-8D063BEC22B9} {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6} = {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6} - {7F4FF473-96B3-461E-9CE6-76D3B75F87CB} = {7F4FF473-96B3-461E-9CE6-76D3B75F87CB} - {CD36938A-ADD9-4C65-96DA-B397CDEEA90A} = {CD36938A-ADD9-4C65-96DA-B397CDEEA90A} {33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204} - {7C364099-9B85-473A-8A42-BBEBE4798FF5} = {7C364099-9B85-473A-8A42-BBEBE4798FF5} - {165739A9-C28D-4B82-96A9-8D063BEC22B9} = {165739A9-C28D-4B82-96A9-8D063BEC22B9} - {79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {79A066AD-69A9-4223-90F6-6ED5D2D084F4} + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {4977BE2A-CB80-4FC0-8D1A-30EC094011B4} + {60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391} + {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} = {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} = {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D} = {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D} + {760C1C5B-A767-463E-BA85-F0BCFC23A550} = {760C1C5B-A767-463E-BA85-F0BCFC23A550} + {79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {79A066AD-69A9-4223-90F6-6ED5D2D084F4} + {7C364099-9B85-473A-8A42-BBEBE4798FF5} = {7C364099-9B85-473A-8A42-BBEBE4798FF5} {7E9172D4-07E3-4077-814E-7117AB2B3E22} = {7E9172D4-07E3-4077-814E-7117AB2B3E22} - {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} = {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} - {60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391} + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB} = {7F4FF473-96B3-461E-9CE6-76D3B75F87CB} + {9FD67139-5120-4E64-9210-DD0A070903EA} = {9FD67139-5120-4E64-9210-DD0A070903EA} + {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} = {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} + {AAC0F132-0A9F-45B3-B682-77AC9B24B352} = {AAC0F132-0A9F-45B3-B682-77AC9B24B352} + {B673E12F-D323-4C4C-8805-9915B2C72D3D} = {B673E12F-D323-4C4C-8805-9915B2C72D3D} + {C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {C5A75A10-0726-4FCA-B350-2F1694E1EABE} + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A} = {CD36938A-ADD9-4C65-96DA-B397CDEEA90A} + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} + {E8B0B447-1A54-4BEC-A160-AF0017000781} = {E8B0B447-1A54-4BEC-A160-AF0017000781} + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA} = {EF99431D-4227-44C3-B2BD-DE8AE3E672CA} EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOConsoleStart", "Tools\VECTOConsoleStart\VECTOConsoleStart.csproj", "{9FD67139-5120-4E64-9210-DD0A070903EA}" @@ -99,10 +99,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HashingCmdStart", "Tools\Ha EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOMultistage", "Tools\VECTOMultistageStart\VECTOMultistage.csproj", "{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VectoMockup", "VectoMockup", "{927F1B17-8075-4185-A324-92971D2FB020}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoMockup", "VectoMockup\VectoMockup\VectoMockup.csproj", "{8E8F5C65-501E-4AAC-97DE-10DD283883D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoMockupTest", "VectoMockup\VectoMockupTest\VectoMockupTest.csproj", "{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}" + ProjectSection(ProjectDependencies) = postProject + {8E8F5C65-501E-4AAC-97DE-10DD283883D2} = {8E8F5C65-501E-4AAC-97DE-10DD283883D2} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Deploy|Any CPU = Deploy|Any CPU + MockupDebug|Any CPU = MockupDebug|Any CPU + MockupDeploy|Any CPU = MockupDeploy|Any CPU + MockupRelease|Any CPU = MockupRelease|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution @@ -110,143 +122,294 @@ Global {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.Build.0 = Debug|Any CPU {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.Build.0 = Release|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.ActiveCfg = Release|Any CPU {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.Build.0 = Release|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Debug|Any CPU.Build.0 = Debug|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Deploy|Any CPU.Build.0 = Release|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU + {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Release|Any CPU.Build.0 = Release|Any CPU {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.ActiveCfg = Release|Any CPU {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.Build.0 = Release|Any CPU {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.Build.0 = Release|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.Build.0 = Debug|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Deploy|Any CPU.Build.0 = Release|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupRelease|Any CPU.ActiveCfg = Debug|Any CPU + {60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupRelease|Any CPU.Build.0 = Debug|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.ActiveCfg = Release|Any CPU {60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.Build.0 = Release|Any CPU {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.Build.0 = Debug|Any CPU {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.Build.0 = Release|Any CPU {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.Build.0 = Release|Any CPU {E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8B0B447-1A54-4BEC-A160-AF0017000781}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.Build.0 = Release|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Debug|Any CPU.Build.0 = Debug|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Deploy|Any CPU.Build.0 = Release|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Release|Any CPU.Build.0 = Release|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.ActiveCfg = Release|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.Build.0 = Release|Any CPU {7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU {7C364099-9B85-473A-8A42-BBEBE4798FF5}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU {7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.Build.0 = Release|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.Build.0 = Debug|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Deploy|Any CPU.Build.0 = Release|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B673E12F-D323-4C4C-8805-9915B2C72D3D}.Release|Any CPU.Build.0 = Release|Any CPU {760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.Build.0 = Debug|Any CPU {760C1C5B-A767-463E-BA85-F0BCFC23A550}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.ActiveCfg = Release|Any CPU {760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.Build.0 = Release|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Debug|Any CPU.Build.0 = Debug|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Deploy|Any CPU.Build.0 = Release|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Release|Any CPU.ActiveCfg = Release|Any CPU {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Release|Any CPU.Build.0 = Release|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Debug|Any CPU.Build.0 = Debug|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Deploy|Any CPU.Build.0 = Release|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {33F9848E-9257-4BE2-915F-68E748AEB204}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Release|Any CPU.ActiveCfg = Release|Any CPU {33F9848E-9257-4BE2-915F-68E748AEB204}.Release|Any CPU.Build.0 = Release|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|Any CPU.Build.0 = Debug|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|Any CPU.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|Any CPU.Build.0 = Release|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.Build.0 = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Deploy|Any CPU.Build.0 = Release|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Release|Any CPU.Build.0 = Release|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.Build.0 = Debug|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.Build.0 = Release|Any CPU + {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.ActiveCfg = Release|Any CPU {C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.Build.0 = Release|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.Build.0 = Debug|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.Build.0 = Release|Any CPU + {165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.ActiveCfg = Release|Any CPU {165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.Build.0 = Release|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.Build.0 = Debug|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.ActiveCfg = Deploy|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.Build.0 = Deploy|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDeploy|Any CPU.ActiveCfg = MockupDeploy|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDeploy|Any CPU.Build.0 = MockupDeploy|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.ActiveCfg = Release|Any CPU {D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.Build.0 = Release|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.Build.0 = Debug|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.Build.0 = Release|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {9FD67139-5120-4E64-9210-DD0A070903EA}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.Build.0 = Release|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.Build.0 = Debug|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.Build.0 = Release|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {083F6B3C-9529-448F-AF1D-D0889852B918}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.ActiveCfg = Release|Any CPU {083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.Build.0 = Release|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.Build.0 = Release|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.Build.0 = Release|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.ActiveCfg = Release|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.Build.0 = Release|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupRelease|Any CPU.Build.0 = Release|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.Build.0 = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupRelease|Any CPU.Build.0 = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Release|Any CPU.Build.0 = Release|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -269,6 +432,8 @@ Global {083F6B3C-9529-448F-AF1D-D0889852B918} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} {4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} + {8E8F5C65-501E-4AAC-97DE-10DD283883D2} = {927F1B17-8075-4185-A324-92971D2FB020} + {EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88} = {927F1B17-8075-4185-A324-92971D2FB020} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B38F3172-132E-43F7-9C4B-5FDC3A28C051} diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb index 042e6cfa3300b10baf0116b0925d8ff450b3cd3c..af84f17fa96ca94f3c02e83fcbc5fba09272c236 100644 --- a/VECTO/GUI/MainForm.Designer.vb +++ b/VECTO/GUI/MainForm.Designer.vb @@ -969,7 +969,9 @@ Partial Class MainForm Me.MinimumSize = New System.Drawing.Size(1170, 725) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "VECTO" + Me.StatusBAR.ResumeLayout(false) Me.StatusBAR.PerformLayout Me.TabControl1.ResumeLayout(false) diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index 252bd4402bc425526ab7c668d781d133eec6330f..ae841523db8b44bc79ead50b7a19189659b0ac92 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -340,6 +340,10 @@ Public Class MainForm Text = "VECTO" & VectoSimulationCore.BranchSuffix & " " & COREvers End If +#If MOCKUP Then + Text += " [MOCKUP]" +#End If + If Cfg.DeclMode Then _lastModeName = "Declaration" Else @@ -1071,7 +1075,7 @@ lbFound: .Message = "Finished Reading Data for job: " + jobFile}) Catch ex As Exception - MsgBox($"ERROR running job {jobFile}: {ex.Message}", MsgBoxStyle.Critical) + MsgBox($"ERROR running job {jobFile}: {ex.Message} {vbCrLf} {ex.InnerException?.Message}", MsgBoxStyle.Critical) sender.ReportProgress(0, New VectoProgress With {.Target = "ListBoxError", .Message = ex.Message}) Return End Try @@ -1105,24 +1109,23 @@ lbFound: Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value.Progress) Dim duration As Double = (DateTime.Now() - start).TotalSeconds - sender.ReportProgress(Convert.ToInt32((sumProgress*100.0)/progress.Count), + + sender.ReportProgress(Convert.ToInt32((sumProgress*100.0)/progress.Count), New VectoProgress With {.Target = "Status", .Message = $"Duration: {duration:0}s, Current Progress: {(sumProgress/progress.Count):P} ({ _ String.Join(", ", progress.Select(Function(pair) $"{pair.Value.Progress,4:P}"))})"}) - Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) = - progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)). - ToDictionary( - Function(pair) pair.Key, Function(pair) pair.Value) + Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) = New Dictionary(Of Integer,JobContainer.ProgressEntry)( + progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value)) + PrintRuns(justFinished, fileWriters) finishedRuns.AddRange(justFinished.Select(Function(pair) pair.Key)) Thread.Sleep(100) End While - Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) = - jobContainer.GetProgress().Where( - Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)). - ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value) + Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) = New Dictionary(Of Integer,JobContainer.ProgressEntry)(jobContainer.GetProgress().Where( + Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value)) + PrintRuns(remainingRuns, fileWriters) finishedRuns.Clear() @@ -1202,9 +1205,10 @@ lbFound: Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry), fileWriters As Dictionary(Of Integer, FileOutputWriter)) For Each p As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In progress - Dim modFilename As String = fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName, + Dim modFilename As String = if(fileWriters.ContainsKey(p.Key) , fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix + - If(Cfg.Mod1Hz, "_1Hz", "")) + If(Cfg.Mod1Hz, "_1Hz", "")) , "") + Dim runName As String = $"{p.Value.RunName} {p.Value.CycleName} {p.Value.RunSuffix}" diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb index cf173ef1f4ad1b525c228ee987fadc3c262d099a..6d00b176028bf9b51d6ad63e735f555d84a3c949 100644 --- a/VECTO/Input Files/Engine.vb +++ b/VECTO/Input Files/Engine.vb @@ -686,6 +686,7 @@ Public Class DummyVehicle Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower + Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType Public Property AirdragInputData As IAirdragDeclarationInputData Implements IVehicleComponentsDeclaration.AirdragInputData Public Property IVehicleComponentsEngineering_GearboxInputData As IGearboxEngineeringInputData Implements IVehicleComponentsEngineering.GearboxInputData diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index 3fc73cbb8ef53a46a77ad77f060c8f980b63acfe..a28e7c3000fce595f2c6d489d3a4fdc565dfeeac 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -893,6 +893,7 @@ Public Class MockEngineeringVehicle Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower + Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType Public Property AirdragInputData As IAirdragEngineeringInputData _ Implements IVehicleComponentsEngineering.AirdragInputData diff --git a/VECTO/Input Files/MockVehicleInputData.vb b/VECTO/Input Files/MockVehicleInputData.vb index fb5c35d2056c61d62f000957641b252ea60c9228..2777c074744de197ff0c01a37977bc7958fa1dd3 100644 --- a/VECTO/Input Files/MockVehicleInputData.vb +++ b/VECTO/Input Files/MockVehicleInputData.vb @@ -69,4 +69,5 @@ Public Class MockVehicleInputData Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower + Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType End Class \ No newline at end of file diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 2b4958e2cea1d8973fc5181f72d56c251177dc54..64e65684f25f2bd39834d0a54af04c44d627b3ba 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -439,8 +439,9 @@ Public Class Vehicle Public ReadOnly Property TransferredAirDragArea As SquareMeter Implements IAirdragDeclarationInputData.TransferredAirDragArea Public ReadOnly Property AirDragArea_0 As SquareMeter Implements IAirdragDeclarationInputData.AirDragArea_0 + Public ReadOnly Property IAirdragDeclarationInputData_XMLSource As XmlNode Implements IAirdragDeclarationInputData.XMLSource - Public ReadOnly Property IVehicleEngineeringInputData_Axles As IList(Of IAxleEngineeringInputData) _ + Public ReadOnly Property IVehicleEngineeringInputData_Axles As IList(Of IAxleEngineeringInputData) _ Implements IAxlesEngineeringInputData.AxlesEngineering Get Return Axles.Cast(Of IAxleEngineeringInputData)().ToList() @@ -935,6 +936,7 @@ end Property Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower + Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType Public ReadOnly Property IAdvancedDriverAssistantSystemsEngineering_DataSource As DataSource Implements IAdvancedDriverAssistantSystemsEngineering.DataSource Get diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj index f1b4d12e4aafc9fef59bdcd372acac11145797b3..be55af27d43b130263c978a615c569a771b6187d 100644 --- a/VECTO/VECTO.vbproj +++ b/VECTO/VECTO.vbproj @@ -1,5 +1,5 @@ <Project Sdk="Microsoft.NET.Sdk"> - <PropertyGroup> + <PropertyGroup> <OutputType>WinExe</OutputType> <StartupObject>Sub Main</StartupObject> <RootNamespace>TUGraz.VECTO</RootNamespace> @@ -8,12 +8,28 @@ <OptionStrict>On</OptionStrict> <UseWindowsForms>true</UseWindowsForms> <MyType>WindowsForms</MyType> - <TargetFrameworks>net48</TargetFrameworks> + <TargetFrameworks>net45;net48;net6.0-windows</TargetFrameworks> <TargetFrameworks Condition="'$(Configuration)' == 'Release'">net45;net48;net6.0-windows</TargetFrameworks> <TargetFrameworks Condition="'$(Configuration)' == 'Deploy'">net45;net48;net6.0-windows</TargetFrameworks> + <TargetFrameworks Condition="'$(Configuration)' == 'MockupDeploy'">net45;net48;net6.0-windows</TargetFrameworks> <DefineTrace>false</DefineTrace> <DefineConstants /> - </PropertyGroup> + <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations> + </PropertyGroup> + <!--Final Define Constants https://developercommunity.visualstudio.com/t/vbprojuser-defineconstants-dont-affect/865956--> + <PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')"> + <FinalDefineConstants>$(FinalDefineConstants),MOCKUP</FinalDefineConstants> + <DefineConstants>$(DefineConstants),MOCKUP</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> <ItemGroup> <None Remove="nlog.config" /> </ItemGroup> @@ -22,40 +38,52 @@ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> - - <ItemGroup> + + <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="NLog" Version="4.7.13" /> - <PackageReference Include="Ninject" Version="3.3.3"> + <PackageReference Include="Ninject" Version="3.3.6"> <PrivateAssets>all</PrivateAssets> </PackageReference> - </ItemGroup> + </ItemGroup> - <ItemGroup Condition="'$(TargetFramework)' == 'net45'"> + <ItemGroup Condition="'$(TargetFramework)' == 'net45'"> <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Windows.Forms.DataVisualization" /> - </ItemGroup> + </ItemGroup> - <ItemGroup Condition="'$(TargetFramework)' == 'net48'"> + <ItemGroup Condition="'$(TargetFramework)' == 'net48'"> <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Windows.Forms.DataVisualization" /> - </ItemGroup> + </ItemGroup> - <ItemGroup Condition="'$(TargetFramework)' == 'net6.0-windows'"> - <PackageReference Include="System.Data.SqlClient"> - <Version>4.8.3</Version> - </PackageReference> - <PackageReference Include="System.Windows.Forms.DataVisualization"> - <Version>1.0.0-prerelease.20110.1</Version> - </PackageReference> - </ItemGroup> + <ItemGroup Condition="'$(TargetFramework)' == 'net6.0-windows'"> + <PackageReference Include="System.Data.SqlClient"> + <Version>4.8.3</Version> + </PackageReference> + <PackageReference Include="System.Windows.Forms.DataVisualization"> + <Version>1.0.0-prerelease.20110.1</Version> + </PackageReference> + </ItemGroup> - <ItemGroup> + <Choose> + <When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
 $(FinalDefineConstants), '^(.*,)*MOCKUP(,.*)*$'))"> + <ItemGroup> + <ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" /> + + </ItemGroup> + <!--<PropertyGroup> + <DefineConstants>MOCKUP</DefineConstants> + </PropertyGroup>--> + </When> + </Choose> + + <ItemGroup> <ProjectReference Include="..\VectoCommon\VectoCommon\VectoCommon.csproj" /> <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" /> - </ItemGroup> - - <ItemGroup> + </ItemGroup> + + <ItemGroup> <Import Include="Microsoft.VisualBasic" /> <Import Include="System" /> <Import Include="System.Collections" /> @@ -63,9 +91,9 @@ <Import Include="System.Drawing" /> <Import Include="System.Diagnostics" /> <Import Include="System.Windows.Forms" /> - </ItemGroup> + </ItemGroup> - <ItemGroup> + <ItemGroup> <Compile Update="My Project\Application.Designer.vb"> <DesignTime>True</DesignTime> <AutoGen>True</AutoGen> @@ -95,9 +123,9 @@ <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.vb</LastGenOutput> </None> - </ItemGroup> + </ItemGroup> - <ItemGroup> + <ItemGroup> <EmbeddedResource Update="Resources\4x2r.png" /> <EmbeddedResource Update="Resources\4x2rt.png" /> <EmbeddedResource Update="Resources\4x2tt.png" /> @@ -105,7 +133,7 @@ <EmbeddedResource Update="Resources\6x2rt.png" /> <EmbeddedResource Update="Resources\6x2tt.png" /> <EmbeddedResource Update="Resources\Undef.png" /> - </ItemGroup> + </ItemGroup> + - </Project> \ No newline at end of file diff --git a/VECTO3GUI/Util/XML/XMLCompletedBus.cs b/VECTO3GUI/Util/XML/XMLCompletedBus.cs index 212977ea420d8eac43f68de93eb3b6d609edf07d..eb1cc9c1b01d5c7a51a02a2c30171b08d5035c98 100644 --- a/VECTO3GUI/Util/XML/XMLCompletedBus.cs +++ b/VECTO3GUI/Util/XML/XMLCompletedBus.cs @@ -177,7 +177,7 @@ namespace VECTO3GUI.Util.XML new XElement(_v26 + XMLNames.Bus_Brakelights, auxBus?.BrakelightsLED), new XElement(_v26 + XMLNames.Bus_Interiorlights, auxBus?.InteriorLightsLED))), new XElement(_v26 + "HVAC", - new XElement(_v26 + XMLNames.Bus_SystemConfiguration, auxBus?.SystemConfiguration.GetXmlFormat()), + new XElement(_v26 + XMLNames.Bus_SystemConfiguration, auxBus?.SystemConfiguration.ToXmlFormat()), new XElement(_v26 + XMLNames.Bus_CompressorType, new XElement(_v26 + XMLNames.Bus_DriverAC, auxBus?.CompressorTypeDriver.GetLabel()), new XElement(_v26 + XMLNames.Bus_PassengerAC, auxBus?.CompressorTypePassenger.GetLabel())), diff --git a/VECTO3GUI2020/Model/Multistage/JSONJob.cs b/VECTO3GUI2020/Model/Multistage/JSONJob.cs index fd1068f01b00d4b6ce5be9218614d45650a611b1..1723874b6863d0788df3bf603abfbca0cd858263 100644 --- a/VECTO3GUI2020/Model/Multistage/JSONJob.cs +++ b/VECTO3GUI2020/Model/Multistage/JSONJob.cs @@ -73,6 +73,7 @@ namespace VECTO3GUI2020.Model.Multistage private string _interimStep; private string _primaryVehicle; private bool _completed; + private bool _runSimulation; public string PrimaryVehicle { @@ -91,5 +92,11 @@ namespace VECTO3GUI2020.Model.Multistage get => _completed; set => SetProperty(ref _completed, value); } + + public bool RunSimulation + { + get => _runSimulation; + set => SetProperty(ref _runSimulation, value); + } } } \ No newline at end of file diff --git a/VECTO3GUI2020/Ninject/DocumentModule.cs b/VECTO3GUI2020/Ninject/DocumentModule.cs index a89e2a912886530bb8fe2cf8967687356c1d3f08..31fd37e9536e38507981f3da9f41c74de455d9bd 100644 --- a/VECTO3GUI2020/Ninject/DocumentModule.cs +++ b/VECTO3GUI2020/Ninject/DocumentModule.cs @@ -19,6 +19,9 @@ namespace VECTO3GUI2020.Ninject Bind<IDocumentViewModel>().To<CreateVifViewModel>() .Named(typeof(JSONInputDataV10_PrimaryAndStageInputBus).ToString()); + Bind<IDocumentViewModel>().To<CompletedBusV7ViewModel>() + .Named(typeof(JSONInputDataCompletedBusFactorMethodV7).ToString()); + //Bind<IDocumentViewModel>().To<MultistageJobViewModel>().Named(XmlDocumentType.MultistageOutputData.ToString()); //Bind<IDocumentViewModel>().To<DeclarationTrailerJobDocumentViewModel>().Named(XmlDocumentType.DeclarationTrailerJobData.ToString()); diff --git a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs index e62c06a5ebf839b3b8b31c2cbd98f09f9e2c1887..5f2bc79206ae6517b0fede51ce06d44229bf42c1 100644 --- a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs +++ b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs @@ -37,7 +37,7 @@ namespace VECTO3GUI2020.Ninject return _multiStageVmFactoryDefaultInstanceProvider.GetNewMultistageJobViewModel(); } - public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData) + public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData) { return _multiStageVmFactoryDefaultInstanceProvider.GetMultiStageJobViewModel(inputData); } diff --git a/VECTO3GUI2020/Resources/ViewModelBindings.xaml b/VECTO3GUI2020/Resources/ViewModelBindings.xaml index 15d5dbac5ca9e0e108154eb4f00c7126de78525d..989565530245f6076ecc56cb6d37d494b058d07d 100644 --- a/VECTO3GUI2020/Resources/ViewModelBindings.xaml +++ b/VECTO3GUI2020/Resources/ViewModelBindings.xaml @@ -18,7 +18,7 @@ <DataTemplate x:Shared="False" DataType="{x:Type impl:JobListViewModel}"> <views:JobListView /> </DataTemplate> - <DataTemplate x:Shared="False" DataType="{x:Type viewModel:OutputViewModel}"> + <DataTemplate x:Shared="False" DataType="{x:Type impl:OutputViewModel}"> <views:OutputView /> </DataTemplate> diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs index 7c53ed93ce9b6fe067ef365b0eec308dbbf414b0..d26aba13d57821cf8ebdb23559612c6f983273ab 100644 --- a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs @@ -93,7 +93,7 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter if (_inputData.HVACAux != null) { var hvacElement = new XElement(_defaultNamespace + "HVAC"); - hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SystemConfiguration, _inputData.HVACAux.SystemConfiguration.GetXmlFormat())); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SystemConfiguration, _inputData.HVACAux.SystemConfiguration.ToXmlFormat())); hvacElement.Add(GetHeatPumpGroupElement( xmlNameWrapper:XMLNames.Bus_HeatPumpTypeDriver, diff --git a/VECTO3GUI2020/Util/XML/XMLNamespaces.cs b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs index dc88a706c7c62a3e6df7f1f3438a267aac8bf22e..181aae8ba618131948b40b488ae1eda0fc85db39 100644 --- a/VECTO3GUI2020/Util/XML/XMLNamespaces.cs +++ b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs @@ -35,6 +35,7 @@ namespace VECTO3GUI2020.Util.XML { V21, "v2.1"}, { V23, "v2.3"}, { V24, "v2.4"}, + //{ V26, "v2.6"}, { Di, "di"}, }; diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj index 49a079e8ee588fb2c2db90ce38466ea75590eb38..c76a66d831042dcae4217c022a706c1a0b22f757 100644 --- a/VECTO3GUI2020/VECTO3GUI2020.csproj +++ b/VECTO3GUI2020/VECTO3GUI2020.csproj @@ -12,12 +12,28 @@ <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets> <TargetFrameworks>net48;net6.0-windows</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations> +</PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'"> + <DebugType>full</DebugType> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')"> + <DefineConstants>$(DefineConstants);MOCKUP</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> <ItemGroup> + <PackageReference Include="CommunityToolkit.Mvvm" Version="8.0.0" /> <PackageReference Include="InteractiveDataDisplay.WPF" Version="1.0.0" NoWarn="NU1701" /> - <PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" /> <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" NoWarn="NU1701" /> + <PackageReference Include="Ninject" Version="3.3.6" /> + <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" /> + <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" /> <PackageReference Include="PresentationFramework.Aero2" Version="1.0.1" NoWarn="NU1701" /> </ItemGroup> @@ -26,12 +42,23 @@ <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" /> </ItemGroup> + <Choose> + <When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
 $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))"> + <ItemGroup> + <ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" /> + </ItemGroup> + </When> + </Choose> + + + <ItemGroup> <InternalsVisibleTo Include="Vecto3GUI2020Test" /> </ItemGroup> <ItemGroup> - <Compile Update="Properties\GUILabels.Designer.cs"> + + <Compile Update="Properties\GUILabels.Designer.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>GUILabels.resx</DependentUpon> @@ -78,4 +105,22 @@ <Resource Include="Resources\Images\JRC-About.png" /> <Resource Include="Resources\Images\VECTO-About.png" /> </ItemGroup> + + + <!--Workauround for build error--> + <!--https://github.com/dotnet/wpf/pull/6680--> + <!--https://github.com/dotnet/wpf/pull/6680#issuecomment-1183455941--> + <Target Name="RemoveDuplicateAnalyzers" BeforeTargets="CoreCompile"> + + <RemoveDuplicates Inputs="@(Analyzer)"> + <Output TaskParameter="Filtered" ItemName="FilteredAnalyzer" /> + </RemoveDuplicates> + + <ItemGroup> + <Analyzer Remove="@(Analyzer)" /> + <Analyzer Include="@(FilteredAnalyzer)" /> + </ItemGroup> + </Target> + + <!--END--> </Project> \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs index 45de76bb68f1528775f17a5666611bbe9382ee4b..34b651bed6260725322d0904c47bf7c8d54f4f26 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs @@ -12,12 +12,11 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common public class BackingStorage<T> : ObservableObject where T : INotifyPropertyChanged { - - delegate object GetterDelegate(); + private delegate object GetterDelegate(); private IReadOnlyCollection<string> _observedProperties; private T _observedObject; - private Dictionary<string, GetterDelegate> _getterDelegatesMap = new Dictionary<string, GetterDelegate>(); + private Dictionary<string, MethodInfo> _getterMethodInfos = new Dictionary<string, MethodInfo>(); private Dictionary<string, Type> _propertyTypesMap = new Dictionary<string, Type>(); private IDictionary<string, IEqualityComparer> _equalityComparers = new Dictionary<string, IEqualityComparer>(); @@ -31,6 +30,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common _observedProperties = new HashSet<string>(observedProperties); _observedObject = observedObject; observedObject.PropertyChanged += OnObservedPropertyChanged; + var list = new List<object>() { + true, + "Hi" + }; } public bool UnsavedChanges @@ -57,7 +60,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common return; } - if (!_getterDelegatesMap.ContainsKey(propertyName)) { + if (!_getterMethodInfos.ContainsKey(propertyName)) { StorePropertyInfo(propertyName); } @@ -66,9 +69,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common private void UpdateValue(string propertyName) { - - var newValue = _getterDelegatesMap[propertyName](); - _currentValues[propertyName] = newValue; + + //var newValue = ((GetterDelegate)_getterDelegatesMap[propertyName])(); + var newValue = _getterMethodInfos[propertyName].Invoke(_observedObject, new object[] { }); + _currentValues[propertyName] = newValue; if (ValueHasChanged(newValue, propertyName)) { _unsavedChanges[propertyName] = newValue; } else { @@ -111,8 +115,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common var getMethod = propInfo.GetGetMethod(); - var getterDelegate = (GetterDelegate)getMethod.CreateDelegate(typeof(GetterDelegate), _observedObject); - _getterDelegatesMap[propertyName] = getterDelegate; + + + //var getterDelegate = getMethod.CreateDelegate(typeof(Delegate), _observedObject); + _getterMethodInfos[propertyName] = getMethod; } diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs index 3f65bb37e9544f510e25011f601b895a4b292ca5..fead452ebb871a5474d8aebe5f401e82b393b740 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs @@ -1,6 +1,7 @@ using System.Windows; using System.Windows.Input; -using Microsoft.Toolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; + using Ninject; using VECTO3GUI2020.Helper; using VECTO3GUI2020.Properties; diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..7c29ea1658c4b969582fec50e6e25f40c44cc07a --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; + +namespace VECTO3GUI2020.ViewModel.Implementation.Document +{ + internal class CompletedBusV7ViewModel : ViewModelBase, IJobViewModel + { + private bool _selected; + private DataSource _dataSource; + + private IMultistageVIFInputData _inputData; + private string _documentName; + + #region Implementation of IDocumentViewModel + + public CompletedBusV7ViewModel(IInputDataProvider inputData) + { + _dataSource = inputData.DataSource; + _inputData = inputData as IMultistageVIFInputData; + if (_inputData == null) { + throw new VectoException("Invalid input file"); + } + + _documentName = Path.GetFileNameWithoutExtension(_inputData.DataSource.SourceFile); + } + + public string DocumentName => _documentName; + + public XmlDocumentType? DocumentType => null; + + public string DocumentTypeName => "CompletedBus"; + + public DataSource DataSource => _dataSource; + + public IEditViewModel EditViewModel => null; + + public bool Selected + { + get => _selected; + set => SetProperty(ref _selected, value); + } + + public bool CanBeSimulated + { + get => true; + set => throw new NotImplementedException(); + } + + public IAdditionalJobInfoViewModel AdditionalJobInfoVm + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs index df09dd609691d1079c1f041636d0d5387a3eebc6..77f8343fd9d3bb81be7417cc855eb9f8377f87d6 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs @@ -8,7 +8,7 @@ using VECTO3GUI2020.ViewModel.Interfaces.Document; namespace VECTO3GUI2020.ViewModel.Implementation.Document { - public class SimulationOnlyDeclarationJob : ViewModelBase, IDocumentViewModel, IJobViewModel + public class SimulationOnlyDeclarationJob : ViewModelBase, IJobViewModel { #region Implementation of IDocumentViewModel diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs index 2a9e3a1303811cda6c28ca726e20beab783c2051..bdd1d5d53f2074950b65b153cd4c849fd12aa4b8 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs @@ -361,6 +361,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle public ArchitectureID ArchitectureID { get; } public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } public virtual ConsumerTechnology DoorDriveTechnology { diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs index 64af8453d7fa9575b0a459a00968c71a33635648..93616a77dc4a99eacf53932202b35db1ddf2b460 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs @@ -12,7 +12,7 @@ using System.Windows.Data; using System.Windows.Input; using System.Xml; using System.Xml.Linq; -using Microsoft.Toolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using Newtonsoft.Json; using NLog; using NLog.Targets; @@ -284,7 +284,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName); if (documentType == XmlDocumentType.MultistepOutputData) { - var inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider; + var inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider; return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel); } else if (documentType == XmlDocumentType.DeclarationJobData) @@ -472,6 +472,9 @@ namespace VECTO3GUI2020.ViewModel.Implementation case IMultistagePrimaryAndStageInputDataProvider primaryAndStage: mode = ExecutionMode.Declaration; break; + case IMultistageVIFInputData vifInputData: + mode = ExecutionMode.Declaration; + break; default: input = null; @@ -495,7 +498,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation } else if (XMLNames.VectoOutputMultistep.Equals(rootNode, StringComparison.InvariantCultureIgnoreCase)) { using (var reader = XmlReader.Create(fullFileName)) { - input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistageBusInputDataProvider, null); + input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistepBusInputDataProvider, null); FileWriter = new FileOutputVIFWriter(fullFileName, (jobEntry as MultiStageJobViewModel_v0_1).ManufacturingStages?.Count ?? 0); } @@ -883,7 +886,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation { get { - return _newVifCommand ?? (_newVifCommand = new Microsoft.Toolkit.Mvvm.Input.RelayCommand<bool>((b) => { + return _newVifCommand ?? (_newVifCommand = new RelayCommand<bool>((b) => { var newVifViewModel = _multiStageViewModelFactory.GetCreateNewVifViewModel(b); lock (_jobsLock) { _jobs.Add(newVifViewModel); diff --git a/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs index c14355c9be665fad4de88691cb29487cb24bce4a..2d57fad4d1060fab475b11577282f0106a9578ae 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs @@ -22,15 +22,14 @@ namespace VECTO3GUI2020.ViewModel.Implementation private IMainViewModel _currentViewModelTop; #endregion - public MainWindowViewModel(IWindowHelper windowHelper, ISettingsViewModel settingsViewModel, IJobListViewModel jobListViewModel, IOutputViewModel outputViewModel, AboutViewModel aboutVm) + public MainWindowViewModel(IWindowHelper windowHelper, ISettingsViewModel settingsViewModel, IJobListViewModel jobListViewModel, AboutViewModel aboutVm) { _windowHelper = windowHelper; _settingsViewModel = settingsViewModel; _jobListVm = jobListViewModel; _aboutViewModel = aboutVm; _currentViewModelTop = _jobListVm; - _bottomView = outputViewModel; - + //_bottomView = new TestViewModel(); _viewModels.Add("Jobs", _jobListVm); _viewModels.Add("Settings", _settingsViewModel); @@ -63,21 +62,22 @@ namespace VECTO3GUI2020.ViewModel.Implementation } } } - - public IMainViewModel CurrentViewModelBottom - { - get { return _bottomView; } - set { _bottomView = value; } - } - public IJobListViewModel JobListVm { get => _jobListVm; set => SetProperty(ref _jobListVm, value); } + + +#if MOCKUP + + public string Version => "[MOCKUP] VECTO Multistep " + Assembly.GetExecutingAssembly().GetName().Version + " (For Testing and Feedback)"; +#else public string Version => "VECTO Multistep " + Assembly.GetExecutingAssembly().GetName().Version + " (For Testing and Feedback)"; +#endif + #endregion #region Commands @@ -110,7 +110,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation - #endregion +#endregion } } diff --git a/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs index f5602802670104739d6436c62ae955ee880fbaa3..0c1d7c6bdad0e9d7b605359a1fc5c8889ec140ab 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs @@ -1,5 +1,6 @@ using System; -using Microsoft.Toolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; + namespace VECTO3GUI2020.ViewModel.Implementation { diff --git a/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs index 91208e1e715c15b1fea9408c88ed2cbe49d2ced5..fc84fc8ef8dff4dcb3ac9a5171e00ca5af072f03 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs @@ -4,11 +4,10 @@ using System.Windows.Data; using System.Windows.Input; using VECTO3GUI2020.Helper; using VECTO3GUI2020.Util; -using VECTO3GUI2020.ViewModel.Implementation; using VECTO3GUI2020.ViewModel.Implementation.Common; using VECTO3GUI2020.ViewModel.Interfaces; -namespace VECTO3GUI2020.ViewModel +namespace VECTO3GUI2020.ViewModel.Implementation { public class OutputViewModel : ViewModelBase, IOutputViewModel diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs index 7dac41a3497ac9ef7c3a007910d0f67de784844d..f40e1b46dc07baaae678cad1c0d09b73cf084192 100644 --- a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs @@ -1,4 +1,4 @@ -using Microsoft.Toolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using System.Collections.ObjectModel; using System.Threading.Tasks; using System.Windows.Input; diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs index bb6775d561087fca633b18d5a41fafcc67edcf27..f1217cbed0bcf4a96faed06ca18997f2a595e97d 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs @@ -5,7 +5,7 @@ using System.IO; using System.Text; using System.Windows; using System.Windows.Input; -using Microsoft.Toolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using Newtonsoft.Json; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -66,6 +66,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation set => SetProperty(ref _completed, value); } + private bool _runSimulation; + + public bool RunSimulation + { + get => _runSimulation; + set => SetProperty(ref _runSimulation, value); + } + #region Labeling private string _vifType; @@ -96,7 +104,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation _additionalJobInfo = additionalJobInfo; SetupBackingStorage(); additionalJobInfo.SetParent(this); - + UpdateTitleAndDocumentName(); (this as INotifyPropertyChanged).PropertyChanged += CreateVifViewModel_PropertyChanged; @@ -106,7 +114,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { _backingStorage = new BackingStorage<CreateVifViewModel>(this, nameof(this.PrimaryInputPath), - nameof(this.StageInputPath)); + nameof(this.StageInputPath), nameof(RunSimulation)); _backingStorage.PropertyChanged += (object s, PropertyChangedEventArgs e) => { OnPropertyChanged(nameof(UnsavedChanges)); }; @@ -141,7 +149,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation IAdditionalJobInfoViewModel additionalJobInfo) : this(dialogHelper, inputDataReader, additionalJobInfo) { _completed = completed; - } + _runSimulation = completed; + UpdateTitleAndDocumentName(); + } private void SetInputData(IInputDataProvider inputData) @@ -163,7 +173,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } - Completed = inputDataProvider.Completed ?? false; + Completed = inputDataProvider?.Completed ?? false; + RunSimulation = inputDataProvider?.SimulateResultingVIF ?? false; DataSource = inputData.DataSource; UpdateTitleAndDocumentName(); @@ -292,7 +303,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation }, Body = new JSONJobBody() { PrimaryVehicle = PathHelper.GetRelativePath(path, PrimaryInputPath), - InterimStep = PathHelper.GetRelativePath(path, StageInputPath) + InterimStep = PathHelper.GetRelativePath(path, StageInputPath), + Completed = Completed, + RunSimulation = RunSimulation, } }; diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs index b71ee967568c69cf69c4d20c96350f2d22f76696..d692eb4ab9f0a6490c601944ffb06847f84a4f2a 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -812,6 +812,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public ArchitectureID ArchitectureID { get; } public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } #endregion diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs index 4811f904c9caae3c645ddd41de77239b8ac7e455..2f35a076f48168456ecb17a21432480b103abc58 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs @@ -262,5 +262,6 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public SquareMeter TransferredAirDragArea => _airdragViewModel.TransferredAirDragArea; public SquareMeter AirDragArea_0 => _airdragViewModel.AirDragArea_0; + public XmlNode XMLSource { get; } } } \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index 0e4fa28a6e30b84d0ac70e629f8d739340545ad8..927bc5a5224181604489e9d607d881fa03f20bc3 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -31,7 +31,7 @@ using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { - public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistageBusInputDataProvider, IJobViewModel, IEditViewModel + public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistepBusInputDataProvider, IJobViewModel, IEditViewModel { IManufacturingStageViewModel ManufacturingStageViewModel { get; } bool Exempted { get; } @@ -66,7 +66,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation set => SetProperty(ref _manufacturingStageViewModel, value); } - public MultiStageJobViewModel_v0_1(IMultistageBusInputDataProvider inputData, + public MultiStageJobViewModel_v0_1(IMultistepBusInputDataProvider inputData, IMultiStageViewModelFactory vmFactory, IMultistageDependencies multistageDependencies, IXMLInputDataReader inputDataReader, @@ -200,7 +200,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation writer = new FileOutputVIFWriter(outputFile, numberOfManufacturingStages); } - var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData); + var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData, false); var factory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, writer, null, null); @@ -311,7 +311,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation private readonly Lazy<IDialogHelper> _dialogHelper; private readonly IMultistageDependencies _multistageDependencies; private readonly DataSource _dataSource; - private readonly IMultistageBusInputDataProvider _inputData; + private readonly IMultistepBusInputDataProvider _inputData; private bool _selected; private readonly bool _exempted; private readonly IJobListViewModel _jobListViewModel; @@ -363,8 +363,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public IVehicleDeclarationInputData VehicleInputData => _manufacturingStageViewModel.Vehicle; - public IMultistageBusInputDataProvider MultistageJobInputData => this; + public IMultistepBusInputDataProvider MultistageJobInputData => this; + public bool SimulateResultingVIF => throw new NotImplementedException(); #endregion diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs index b3bfb612b3134a43abc35ce54a3040a5330b73e0..6f7ae23bba1e830f892026f95f273a9a4117621c 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs @@ -80,10 +80,10 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { return; } - IMultistageBusInputDataProvider inputDataProvider = null; + IMultistepBusInputDataProvider inputDataProvider = null; try { - inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider; + inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider; } catch (Exception e) { diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs index 250f3ae508d10562071621c0abd6366a4c023861..413202bc4a513a04e0faa81ec9a1b6db71d781ec 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs @@ -6,9 +6,10 @@ using System.IO; using System.Windows; using System.Windows.Input; using System.Xml.Linq; -using Microsoft.Toolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using Ninject; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Utils; using VECTO3GUI2020.Helper; @@ -116,7 +117,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public IRelayCommand SaveInputDataCommand => _saveInputDataCommand ?? - new Microsoft.Toolkit.Mvvm.Input.RelayCommand(() => { SaveInputDataExecute(filename: _vehicleInputDataFilePath); }, + new CommunityToolkit.Mvvm.Input.RelayCommand(() => { SaveInputDataExecute(filename: _vehicleInputDataFilePath); }, () => _vehicleInputDataFilePath != null); public ICommand SaveInputDataAsCommand => diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs index 33cad2ad89c2b53d96dc056a0e7dad2cd348717b..cc48e57667c98b9967de9e5c78e3e4843781fc5b 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs @@ -43,7 +43,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces IDocumentViewModel GetStageInputViewModel(bool exemptedVehicle); IViewModelBase GetNewMultistageJobViewModel(); - IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData); + IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData); IVehicleViewModel GetInterimStageVehicleViewModel(); diff --git a/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml b/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml index 5be0ce48930362fcca7628109545f2fe13338a98..fdfeab02870f99c7aaeabfe2ac4bbc8a723d81ba 100644 --- a/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml +++ b/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml @@ -23,6 +23,7 @@ <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> + <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Label Style="{DynamicResource LabelStyle1}">Select Primary Input</Label> @@ -45,6 +46,11 @@ <Button DockPanel.Dock="Right" Command="{Binding RemoveStageInputCommand}" ContentTemplate="{StaticResource TrashIcon}" Width="30" Padding="4" Margin="4"/> <customControls:FilePicker DockPanel.Dock="Left" Text="{Binding StageInputPath}" Command="{Binding SelectCompletedInputFileCommand}" /> </DockPanel> + <Label Grid.Row="4" DockPanel.Dock="Left" Style="{DynamicResource LabelStyle1}" Visibility="{Binding Completed, Converter={StaticResource BooleanToVisibilityConverter}}">Simulate Resulting VIF</Label> + <CheckBox Grid.Row="4" HorizontalAlignment="Right" IsChecked="{Binding RunSimulation, Mode=TwoWay}" IsEnabled="True" IsThreeState="False" Visibility="{Binding Completed, Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Center" Padding="4"></CheckBox> + + + </Grid> <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right"> <Button Width="100" Style="{StaticResource MultiStageButtonStyle1}" Command="{Binding SaveJobAsCommand}">Save Job as ...</Button> diff --git a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj index 709802e110259afb2ea612c12eeab84f033a3b2e..cee4dd27f40ea0557101d5546b9831a0cd038a84 100644 --- a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj +++ b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj @@ -15,7 +15,7 @@ <PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> - <PackageReference Include="Ninject" Version="3.3.3" /> + <PackageReference Include="Ninject" Version="3.3.6" /> <PackageReference Include="NLog" Version="4.7.13" /> <PackageReference Include="Moq" Version="4.16.1" /> </ItemGroup> diff --git a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj index 101e922cd35337d3af8f5798aebb2386c55f2884..2ace8812e86edf3aed01411c7922960afd86053b 100644 --- a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj +++ b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj @@ -10,7 +10,7 @@ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> <PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" /> <PackageReference Include="Moq" Version="4.16.1" /> - <PackageReference Include="Ninject" Version="3.3.3" /> + <PackageReference Include="Ninject" Version="3.3.6" /> <PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> </ItemGroup> diff --git a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs index 9cf11d8a5ce7b1c78f7bb2b29ce035c9733b078c..6eb5103bdf51a8728ac17f4c40f1ed8250a8cce6 100644 --- a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs @@ -146,7 +146,7 @@ namespace Vecto3GUI2020Test.ViewModelTests Assert.AreEqual(2, jobListVm.Jobs.Count); Assert.AreEqual(result, jobListVm.Jobs[1].DataSource.SourceFile); - var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistageBusInputDataProvider; + var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistepBusInputDataProvider; Assert.NotNull(inputDataProvider); //Check added Manufacturing Stage diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs index c60f44b8302f12358ded371c6b873e341dd6adc3..80ce7c57160e455e443745fc972595c6facc6f93 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs @@ -67,7 +67,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { return hvacConfig.ToString().Replace(Prefix, ""); } - public static string GetXmlFormat(this BusHVACSystemConfiguration? hvacConfiguration) + public static string ToXmlFormat(this BusHVACSystemConfiguration? hvacConfiguration) { if (hvacConfiguration == BusHVACSystemConfiguration.Unknown) { return "0"; diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs index eac41660fbf229453d3080054117ff7f9b09e229..a18e51d9b6cea78cc18d44202186bed901045a7c 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs @@ -54,7 +54,12 @@ namespace TUGraz.VectoCommon.BusAuxiliaries public static string GetLabel(this ConsumerTechnology? technology) { - switch (technology) { + return technology?.GetLabel(); + } + public static string GetLabel(this ConsumerTechnology technology) + { + switch (technology) + { case ConsumerTechnology.Electrically: return "Electric"; case ConsumerTechnology.Mechanically: @@ -68,6 +73,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries } } + public static string ToXMLFormat(this ConsumerTechnology technology) + { + return technology.GetLabel().ToLowerInvariant(); + } + public static string ToXMLFormat(this ConsumerTechnology? technology) { return technology.GetLabel().ToLowerInvariant(); diff --git a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs index b97727778b32ecf03505bd77a671827ecd9b4e65..abc1aff1bff0d2c00922031823c6e5201b15d235 100644 --- a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs +++ b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs @@ -45,9 +45,10 @@ namespace TUGraz.VectoCommon.Hashing Airdrag, Tyre, Vehicle, - VectoOutput, + VectoManufacturerReport, VectoCustomerInformation, VectoPrimaryVehicleInformation, + VectoInterimVehicleInformation, VectoManufacturingStep, BatterySystem, CapacitorSystem, @@ -81,7 +82,7 @@ namespace TUGraz.VectoCommon.Hashing return XMLNames.AxleWheels_Axles_Axle_Tyre; case VectoComponents.Vehicle: return XMLNames.Component_Vehicle; - case VectoComponents.VectoOutput: + case VectoComponents.VectoManufacturerReport: return "VectoOutput"; case VectoComponents.VectoCustomerInformation: return "VectoCustomerInformation"; @@ -127,12 +128,14 @@ namespace TUGraz.VectoCommon.Hashing return "AD-"; case VectoComponents.Tyre: return "TYRE-"; - case VectoComponents.VectoOutput: - return "RESULT-"; + case VectoComponents.VectoManufacturerReport: + return "MRF-"; case VectoComponents.VectoCustomerInformation: - return "COC-"; + return "CIF-"; case VectoComponents.VectoPrimaryVehicleInformation: - return "PIF-"; + return "VIF_P-"; + case VectoComponents.VectoInterimVehicleInformation: + return "VIF_I-"; case VectoComponents.Vehicle: return "VEH-"; case VectoComponents.VectoManufacturingStep: @@ -160,7 +163,7 @@ namespace TUGraz.VectoCommon.Hashing { switch (component) { case VectoComponents.VectoCustomerInformation: - case VectoComponents.VectoOutput: + case VectoComponents.VectoManufacturerReport: case VectoComponents.VectoPrimaryVehicleInformation: case VectoComponents.VectoManufacturingStep: return true; diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index 87eb17253b17f3685351d45e6d2d6a33a0608ea7..f883e870b81f22495f78f9f03b67609d7d2e3f71 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -32,6 +32,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Xml; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; @@ -154,14 +155,15 @@ namespace TUGraz.VectoCommon.InputData bool HybridElectricHDV { get; } - bool DualFuelVehicle { get; } + bool DualFuelVehicle { get; } - Watt MaxNetPower1 { get; } + Watt MaxNetPower1 { get; } Watt MaxNetPower2 { get; } string ExemptedTechnology { get; } + // --- end RegistrationClass? RegisteredClass { get; } @@ -211,6 +213,8 @@ namespace TUGraz.VectoCommon.InputData Watt MaxChargingPower { get; } + VectoSimulationJobType VehicleType { get; } + } public interface IVehicleComponentsDeclaration @@ -399,6 +403,9 @@ namespace TUGraz.VectoCommon.InputData SquareMeter TransferredAirDragArea { get; } // P246 SquareMeter AirDragArea_0 { get; } // P245 + + XmlNode XMLSource { get; } + } public interface IRetarderInputData : IComponentInputData @@ -963,6 +970,15 @@ namespace TUGraz.VectoCommon.InputData IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage { get; } } + public static class ElectricSupplyDeclarationDataHelper + { + public static Watt GetMaxAlternatorPower(this IElectricSupplyDeclarationData electricSupply) + { + return electricSupply.Alternators?.Select(alt => alt.RatedCurrent * alt.RatedVoltage)? + .Max(); + } + } + public interface IElectricConsumersDeclarationData { bool? InteriorLightsLED { get; } @@ -1071,7 +1087,7 @@ namespace TUGraz.VectoCommon.InputData Kilogram TotalVehicleMass { get; } Kilogram Payload { get; } double PassengerCount { get; } - string FuelMode { get; } + //string FuelMode { get; } } @@ -1156,7 +1172,7 @@ namespace TUGraz.VectoCommon.InputData switch (type) { case CompressorDrive.electrically: return nameof(CompressorDrive.electrically); - case CompressorDrive.mechanically: return nameof(CompressorDrive.electrically); + case CompressorDrive.mechanically: return nameof(CompressorDrive.mechanically); default: return null; } } @@ -1179,6 +1195,7 @@ namespace TUGraz.VectoCommon.InputData public enum ArchitectureID { + UNKNOWN, E2, E3, E4, diff --git a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs index e22dcc4707a8abb1b4b75140946d9b213d832b25..8fe0e1977dd98ed312ec05cdf69fa375386d12fc 100644 --- a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs +++ b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs @@ -89,7 +89,7 @@ namespace TUGraz.VectoCommon.InputData - public interface IMultistageBusInputDataProvider : IDeclarationInputDataProvider + public interface IMultistepBusInputDataProvider : IDeclarationInputDataProvider { new IDeclarationMultistageJobInputData JobInputData { get; } } @@ -98,6 +98,8 @@ namespace TUGraz.VectoCommon.InputData { IDeclarationInputDataProvider PrimaryVehicle { get; } IVehicleDeclarationInputData StageInputData { get; } + + bool SimulateResultingVIF { get; } } @@ -124,7 +126,8 @@ namespace TUGraz.VectoCommon.InputData public interface IMultistageVIFInputData : IInputDataProvider { IVehicleDeclarationInputData VehicleInputData { get; } - IMultistageBusInputDataProvider MultistageJobInputData { get; } + IMultistepBusInputDataProvider MultistageJobInputData { get; } + bool SimulateResultingVIF { get; } } } diff --git a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs index 4de78fb9e5c0fc74022b08068081c649fd80653b..fb5868430d7314ed29c02530a03ee33a53bf51e8 100644 --- a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs +++ b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs @@ -31,6 +31,7 @@ using System; using System.Diagnostics.CodeAnalysis; +using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCommon.Models @@ -73,6 +74,20 @@ namespace TUGraz.VectoCommon.Models throw new ArgumentOutOfRangeException("self", self, null); } } + + public static string ToXMLFormat(this AxleType self) + { + switch (self) { + case AxleType.VehicleDriven: + return "VehicleDriven"; + case AxleType.VehicleNonDriven: + return "VehicleNonDriven"; + case AxleType.Trailer: + return "Trailer"; + default: + throw new ArgumentOutOfRangeException(nameof(self), self, null); + } + } } public static class AxleConfigurationHelper diff --git a/VectoCommon/VectoCommon/Models/GearboxType.cs b/VectoCommon/VectoCommon/Models/GearboxType.cs index b10f2acc2edaeb7ced1c902c3b08f6ae5e5fbcd8..dd7b6a8524f5e4e6df4531c04e49292e26dbd829 100644 --- a/VectoCommon/VectoCommon/Models/GearboxType.cs +++ b/VectoCommon/VectoCommon/Models/GearboxType.cs @@ -94,7 +94,7 @@ namespace TUGraz.VectoCommon.Models case GearboxType.ATSerial: return "APT-S"; case GearboxType.ATPowerSplit: return "APT-P"; case GearboxType.APTN: return "APT-N"; - case GearboxType.IHPC: return "IHPC"; + case GearboxType.IHPC: return "IHPC Type 1"; default: throw new ArgumentOutOfRangeException("GearboxType", type, null); } } diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs index 260883a5acb273a05bf042eaf24a73f36cab8ad0..14e902d6fdd8d86bec173eb323edb11bad15d25f 100644 --- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs +++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs @@ -2,11 +2,10 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Utils; -namespace TUGraz.VectoCommon.InputData -{ +namespace TUGraz.VectoCommon.InputData { public enum PowertrainPosition { - HybridPositionNotSet, // this has to be the first entry so that it is used as default for not initialized fields! + HybridPositionNotSet, // this has to be the first entrie so that it is used as default for not initialized fields! HybridP0, HybridP1, HybridP2, @@ -19,7 +18,6 @@ namespace TUGraz.VectoCommon.InputData BatteryElectricE4, BatteryElectricE3, BatteryElectricE2, - IEPC, IHPC } @@ -76,8 +74,6 @@ namespace TUGraz.VectoCommon.InputData return pos.ToString().Replace(HybridPrefix, "").Replace("_", "."); case PowertrainPosition.GEN: return nameof(PowertrainPosition.GEN); - case PowertrainPosition.HybridPositionNotSet: - return "Position not set"; } return pos.ToString().Replace(BatteryElectricPrefix, "").Replace("B", "E"); } @@ -110,6 +106,33 @@ namespace TUGraz.VectoCommon.InputData } } + public static string ToXmlFormat(this PowertrainPosition pos) + { + switch (pos) { + case PowertrainPosition.HybridPositionNotSet: + throw new ArgumentException("Hybrid position not set"); + case PowertrainPosition.HybridP0: + case PowertrainPosition.HybridP1: + case PowertrainPosition.HybridP2: + case PowertrainPosition.HybridP2_5: + case PowertrainPosition.HybridP3: + case PowertrainPosition.HybridP4: + case PowertrainPosition.BatteryElectricE4: + case PowertrainPosition.BatteryElectricE3: + case PowertrainPosition.BatteryElectricE2: + return GetPositionWithoutPrefix(pos.ToString()); + case PowertrainPosition.GEN: + return "GEN"; + default: + throw new ArgumentOutOfRangeException(nameof(pos), pos, null); + } + } + + private static string GetPositionWithoutPrefix(string position) + { + return position.Replace(BatteryElectricPrefix, "").Replace("E", "").Replace(HybridPrefix, "").Replace("P", "") + .Replace("_", "."); + } public static bool IsSerialHybrid(this PowertrainPosition pos) { return IsBatteryElectric(pos); diff --git a/VectoCommon/VectoCommon/Models/VehicleCategory.cs b/VectoCommon/VectoCommon/Models/VehicleCategory.cs index 083aca805f5b7e96b1bfff493511262707d6da76..3e66b51cfd69e38668e93b8c8cb68a5d9f60a310 100644 --- a/VectoCommon/VectoCommon/Models/VehicleCategory.cs +++ b/VectoCommon/VectoCommon/Models/VehicleCategory.cs @@ -30,6 +30,7 @@ */ using System; +using Microsoft.Win32.SafeHandles; namespace TUGraz.VectoCommon.Models { @@ -50,6 +51,31 @@ namespace TUGraz.VectoCommon.Models public static class VehicleCategoryHelper { + public static string PrimaryBus = "PrimaryBus"; + public static string Lorry = "Lorry"; + public static string CompletedBus = "CompletedBus"; + public static string Van = "Van"; + public static string GetVehicleType(this VehicleCategory category) + { + switch (category) { + case VehicleCategory.RigidTruck: + case VehicleCategory.Tractor: + return Lorry; + break; + case VehicleCategory.HeavyBusPrimaryVehicle: + return PrimaryBus; + break; + case VehicleCategory.HeavyBusCompletedVehicle: + return CompletedBus; + break; + case VehicleCategory.Van: + return Van; + default: + return category.GetLabel(); + } + } + + public static string GetLabel(this VehicleCategory category) { switch (category) { @@ -114,6 +140,8 @@ namespace TUGraz.VectoCommon.Models return "Bus"; case VehicleCategory.HeavyBusCompletedVehicle: return "Bus"; + case VehicleCategory.Van: + return Van; default: throw new ArgumentOutOfRangeException("vehicleCategory", vehicleCategory, null); } diff --git a/VectoCommon/VectoCommon/Models/VehicleClass.cs b/VectoCommon/VectoCommon/Models/VehicleClass.cs index 696866fca683b99b10f2f7939e88ceb7f586d0ff..5ae14c8a307325fe92c70e6279599070543b5e54 100644 --- a/VectoCommon/VectoCommon/Models/VehicleClass.cs +++ b/VectoCommon/VectoCommon/Models/VehicleClass.cs @@ -170,7 +170,7 @@ namespace TUGraz.VectoCommon.Models public static string GetClassNumber(this VehicleClass hdvClass) { - return hdvClass == VehicleClass.Unknown ? "-" : hdvClass.ToString().Substring(Prefix.Length); + return hdvClass == VehicleClass.Unknown ? "-" : hdvClass.ToString().Substring(Prefix.Length).Replace('_', '/'); } public static bool IsMediumLorry(this VehicleClass vehicleClass) @@ -300,5 +300,33 @@ namespace TUGraz.VectoCommon.Models default: return false; } } + + public static bool IsHeavyLorry(this VehicleClass vehicleClass) + { + switch (vehicleClass) { + case VehicleClass.Class1s: + case VehicleClass.Class0: + case VehicleClass.Class1: + case VehicleClass.Class2: + case VehicleClass.Class3: + case VehicleClass.Class4: + case VehicleClass.Class5: + case VehicleClass.Class6: + case VehicleClass.Class7: + case VehicleClass.Class8: + case VehicleClass.Class9: + case VehicleClass.Class10: + case VehicleClass.Class11: + case VehicleClass.Class12: + case VehicleClass.Class13: + case VehicleClass.Class14: + case VehicleClass.Class15: + case VehicleClass.Class16: + case VehicleClass.Class17: + return true; + default: + return false; + } + } } } \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index df5e7ba1f40c0ee9676e350dadcc76d464021ba0..5bd99a03692d08fe4b511aec8593a07feeb8bce3 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -19,7 +19,7 @@ namespace TUGraz.VectoCommon.Resources { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class XMLNames { @@ -1068,6 +1068,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to Clutch. + /// </summary> + public static string BusAux_Clutch { + get { + return ResourceManager.GetString("BusAux_Clutch", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to ElectricSystem. /// </summary> @@ -1473,6 +1482,114 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to ConventionalLorryOutputType. + /// </summary> + public static string CIF_OutputDataType_ConventionalLorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_ConventionalLorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Exempted_CompletedBusOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_CompletedBusOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_CompletedBusOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Exempted_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV_IEPC_S_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_HEV_IEPC_S_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_HEV_IEPC_S_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV_Px_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_HEV_Px_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_HEV_Px_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV_S2_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_HEV_S2_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_HEV_S2_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV_S3_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_HEV_S3_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_HEV_S3_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV_S4_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_HEV_S4_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_HEV_S4_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV_E2_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_PEV_E2_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_PEV_E2_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV_E3_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_PEV_E3_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_PEV_E3_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV_E4_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_PEV_E4_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_PEV_E4_LorryOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV_IEPC_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_PEV_IEPC_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_PEV_IEPC_LorryOutputType", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to ADC. /// </summary> @@ -2355,6 +2472,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to gear. + /// </summary> + public static string ElectricMachine_P2_5GearRatios_Gear_Attr { + get { + return ResourceManager.GetString("ElectricMachine_P2_5GearRatios_Gear_Attr", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to Position. /// </summary> @@ -3229,20 +3355,20 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Looks up a localized string similar to ManufacturerAddressCompletedVehicle. + /// Looks up a localized string similar to ManufacturerAddress. /// </summary> - public static string ManufacturerAddressCompletedVehicle { + public static string ManufacturerAddress { get { - return ResourceManager.GetString("ManufacturerAddressCompletedVehicle", resourceCulture); + return ResourceManager.GetString("ManufacturerAddress", resourceCulture); } } /// <summary> - /// Looks up a localized string similar to ManufacturerAddressPrimaryVehicle. + /// Looks up a localized string similar to ManufacturerAddressCompletedVehicle. /// </summary> - public static string ManufacturerAddressPrimaryVehicle { + public static string ManufacturerAddressCompletedVehicle { get { - return ResourceManager.GetString("ManufacturerAddressPrimaryVehicle", resourceCulture); + return ResourceManager.GetString("ManufacturerAddressCompletedVehicle", resourceCulture); } } @@ -3363,6 +3489,105 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to ConventionalLorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ConventionalPrimaryBusManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV-IEPC-S_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV-Px_IHPCLorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV-S2_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV-S3_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HEV-S4_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV-E2_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV-E3_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV-E4_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PEV-IEPC_LorryManufacturerOutputDataType. + /// </summary> + public static string MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType { + get { + return ResourceManager.GetString("MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to PowerMap. /// </summary> @@ -3732,6 +3957,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to ManufacturerRecordSignature. + /// </summary> + public static string Report_ManufacturerRecord_Signature { + get { + return ResourceManager.GetString("Report_ManufacturerRecord_Signature", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to EnergyConsumption. /// </summary> @@ -4110,6 +4344,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to PrimaryVehicleSubgroup. + /// </summary> + public static string Report_Results_PrimaryVehicleSubgroup { + get { + return ResourceManager.GetString("Report_Results_PrimaryVehicleSubgroup", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to Summary. /// </summary> @@ -5441,5 +5684,14 @@ namespace TUGraz.VectoCommon.Resources { return ResourceManager.GetString("XMLManufacturerReport_torqueLimitPercent", resourceCulture); } } + + /// <summary> + /// Looks up a localized string similar to type. + /// </summary> + public static string XSIType { + get { + return ResourceManager.GetString("XSIType", resourceCulture); + } + } } } diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index fd22bdae3924c9030298629d0a4e65ae1ae01cc1..ff407bcb2eded8fd0f5b522dbd028acbb08f1435 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1020,6 +1020,9 @@ <data name="Report_ResultData_Signature" xml:space="preserve"> <value>ResultDataSignature</value> </data> + <data name="Report_ManufacturerRecord_Signature" xml:space="preserve"> + <value>ManufacturerRecordSignature</value> + </data> <data name="Report_Result_Payload" xml:space="preserve"> <value>Payload</value> </data> @@ -1149,8 +1152,8 @@ <data name="Engine_WHRCorrectionFactors_Electrical" xml:space="preserve"> <value>Electrical</value> </data> - <data name="ManufacturerAddressPrimaryVehicle" xml:space="preserve"> - <value>ManufacturerAddressPrimaryVehicle</value> + <data name="ManufacturerAddress" xml:space="preserve"> + <value>ManufacturerAddress</value> </data> <data name="Engine_WHRCorrectionFactors_Mechanical" xml:space="preserve"> <value>Mechanical</value> @@ -1911,4 +1914,85 @@ <data name="REESS" xml:space="preserve"> <value>ElectricEnergyStorage</value> </data> +<data name="MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType" xml:space="preserve"> + <value>ConventionalLorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType" xml:space="preserve"> + <value>ConventionalPrimaryBusManufacturerOutputDataType</value> +</data> +<data name="CIF_OutputDataType_ConventionalLorryOutputType" xml:space="preserve"> + <value>ConventionalLorryOutputType</value> +</data> +<data name="MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType" xml:space="preserve"> + <value>HEV-Px_IHPCLorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>HEV-S2_LorryManufacturerOutputDataType</value> +</data> +<data name="CIF_OutputDataType_HEV_S2_LorryOutputType" xml:space="preserve"> + <value>HEV_S2_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_HEV_S3_LorryOutputType" xml:space="preserve"> + <value>HEV_S3_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_HEV_S4_LorryOutputType" xml:space="preserve"> + <value>HEV_S4_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_HEV_IEPC_S_LorryOutputType" xml:space="preserve"> + <value>HEV_IEPC_S_LorryOutputType</value> +</data> +<data name="MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>HEV-S3_LorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>HEV-S4_LorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>HEV-IEPC-S_LorryManufacturerOutputDataType</value> +</data> +<data name="CIF_OutputDataType_HEV_Px_LorryOutputType" xml:space="preserve"> + <value>HEV_Px_LorryOutputType</value> +</data> +<data name="MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>PEV-E2_LorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>PEV-E3_LorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>PEV-E4_LorryManufacturerOutputDataType</value> +</data> +<data name="MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType" xml:space="preserve"> + <value>PEV-IEPC_LorryManufacturerOutputDataType</value> +</data> +<data name="CIF_OutputDataType_PEV_E2_LorryOutputType" xml:space="preserve"> + <value>PEV_E2_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_PEV_E3_LorryOutputType" xml:space="preserve"> + <value>PEV_E3_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_PEV_E4_LorryOutputType" xml:space="preserve"> + <value>PEV_E4_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_PEV_IEPC_LorryOutputType" xml:space="preserve"> + <value>PEV_IEPC_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_Exempted_LorryOutputType" xml:space="preserve"> + <value>Exempted_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_Exempted_CompletedBusOutputType" xml:space="preserve"> + <value>Exempted_CompletedBusOutputType</value> +</data> +<data name="BusAux_Clutch" xml:space="preserve"> + <value>Clutch</value> +</data> +<data name="ElectricMachine_P2_5GearRatios_Gear_Attr" xml:space="preserve"> + <value>gear</value> +</data> +<data name="XSIType" xml:space="preserve"> + <value>type</value> +</data> +<data name="Report_Results_PrimaryVehicleSubgroup" xml:space="preserve"> + <value>PrimaryVehicleSubgroup</value> +</data> </root> \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Utils/SI.cs b/VectoCommon/VectoCommon/Utils/SI.cs index 6776282cbbc86a44f4212c74d665da2f2549d32b..1557949c4a2a338c3a579e26440b098e62d4f589 100644 --- a/VectoCommon/VectoCommon/Utils/SI.cs +++ b/VectoCommon/VectoCommon/Utils/SI.cs @@ -1165,6 +1165,8 @@ namespace TUGraz.VectoCommon.Utils private Ohm(double val) : base(val, Units) { } public override string UnitString => "Ω"; + + public double AsMilliOhm => Val * 1000; } public class Farad : SIBase<Farad> diff --git a/VectoCommon/VectoCommon/Utils/SIUtils.cs b/VectoCommon/VectoCommon/Utils/SIUtils.cs index 993a93f9096b9f653229155ec3b4e0ef3aa02c67..e0d3190b8bd0b479070a0c1d848bc1ad56330d1a 100644 --- a/VectoCommon/VectoCommon/Utils/SIUtils.cs +++ b/VectoCommon/VectoCommon/Utils/SIUtils.cs @@ -285,6 +285,21 @@ namespace TUGraz.VectoCommon.Utils } } + /// <summary> + /// [m] + /// </summary> + public UnitInstance Ohm { + get { + var reciprocAndExponent = _reciproc * _exponent; + _units[0] += 1 * reciprocAndExponent; + _units[1] += 2 * reciprocAndExponent; + _units[2] -= 3 * reciprocAndExponent; + _units[3] -= 2 * reciprocAndExponent; + + return this; + } + } + /// <summary> /// Defines the denominator by the terms following after the Per. /// </summary> diff --git a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs index 8d67210f9e4cc22e58de82fe1996736413bd4ffc..189d426e3798592ca3645e0ddc7b08dce578dc2f 100644 --- a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs @@ -87,6 +87,16 @@ namespace TUGraz.VectoCommon.Utils return int.Parse(self) != 0; } + public static bool IsNullOrEmpty(this string self) + { + return string.IsNullOrEmpty(self); + } + + public static bool IsNullOrWhiteSpace(this string self) + { + return string.IsNullOrWhiteSpace(self); + } + public static double IndulgentParse(this string self) => double.Parse(new string(self.Trim().TakeWhile(c => char.IsDigit(c) || c == '.').ToArray()), CultureInfo.InvariantCulture); diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj index 157a10ad21b5f0c50a7fbbe0aeff1af3af72eb44..c92bd0f3f832ba3f0ab9be5fbd7cf684358b6beb 100644 --- a/VectoCommon/VectoCommon/VectoCommon.csproj +++ b/VectoCommon/VectoCommon/VectoCommon.csproj @@ -8,6 +8,9 @@ <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> + <PackageReference Include="Ninject" Version="3.3.6" /> + <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" /> + <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" /> <PackageReference Include="NLog" Version="4.7.13" /> </ItemGroup> diff --git a/VectoCommon/VectoHashing/VectoHash.cs b/VectoCommon/VectoHashing/VectoHash.cs index 9b0c9c6b1dc05bf9e4b6365afefb1d9c1c30c3a0..e389713ead82e7ce606c8408d317dce0eadf9f68 100644 --- a/VectoCommon/VectoHashing/VectoHash.cs +++ b/VectoCommon/VectoHashing/VectoHash.cs @@ -288,7 +288,7 @@ namespace TUGraz.VectoHashing return components.First(); } if (Document.DocumentElement.LocalName.Equals("VectoOutput")) { - return VectoComponents.VectoOutput; + return VectoComponents.VectoManufacturerReport; } if (Document.DocumentElement.LocalName.Equals("VectoCustomerInformation")) { return VectoComponents.VectoCustomerInformation; diff --git a/VectoCommon/VectoHashing/VectoHashing.csproj b/VectoCommon/VectoHashing/VectoHashing.csproj index f833fa86eb34d4986fa7a4a941b5fefba4267658..8a059112dc7a7617cfb2b73a7c9b67ef375db87b 100644 --- a/VectoCommon/VectoHashing/VectoHashing.csproj +++ b/VectoCommon/VectoHashing/VectoHashing.csproj @@ -8,6 +8,7 @@ <AssemblyName>VectoHashing</AssemblyName> <TargetFrameworks>net45;net48;net6.0</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupRelease</Configurations> </PropertyGroup> <ItemGroup Condition="'$(TargetFramework)' == 'net45'"> diff --git a/VectoCommon/VectoHashingTest/VectoHashTest.cs b/VectoCommon/VectoHashingTest/VectoHashTest.cs index af3457ba5635fa09e1b1dc0874efb977a037c7ed..066dd767fe7b54c637f338699e8c86fe7efb892c 100644 --- a/VectoCommon/VectoHashingTest/VectoHashTest.cs +++ b/VectoCommon/VectoHashingTest/VectoHashTest.cs @@ -640,7 +640,7 @@ namespace VectoHashingTest var reader = XmlReader.Create(file); - var vif = xmlInputReader.CreateDeclaration(reader) as IMultistageBusInputDataProvider; + var vif = xmlInputReader.CreateDeclaration(reader) as IMultistepBusInputDataProvider; var inputDataProvider = new XMLDeclarationVIFInputData(vif, null); diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj index 762bdaa894b986a0b04bd057a1156e6ec08b296f..062a1321abce0362d99881001e9d2fb508a124e7 100644 --- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj +++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj @@ -7,8 +7,7 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="Ninject" Version="3.3.3" /> - <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" /> + <PackageReference Include="Ninject" Version="3.3.6" /> <PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> diff --git a/VectoConsole/App.config b/VectoConsole/App.config index f3e7e3a3ca744804e9aff833998fa34e9908842b..7034a5b9a970c00aa2cc7ff792df49d915cddba6 100644 --- a/VectoConsole/App.config +++ b/VectoConsole/App.config @@ -3,6 +3,15 @@ <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> </configSections> + <!--<runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + --><!--<loadFromRemoteSources enabled="true"/>--><!-- + <dependentAssembly> + <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.3.5.0" newVersion="3.3.6.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime>--> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="false" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <targets async="true"> <target xsi:type="Console" name="ConsoleLogger" error="true" /> diff --git a/VectoConsole/VectoConsole.csproj b/VectoConsole/VectoConsole.csproj index cf2935dcb40b6f82b1d797fb0bf8e72cf50e96cf..1fab91cd911dcc6e336d49fc0e56324ea8feb2c1 100644 --- a/VectoConsole/VectoConsole.csproj +++ b/VectoConsole/VectoConsole.csproj @@ -6,10 +6,22 @@ <ApplicationIcon>VECTO.ico</ApplicationIcon> <TargetFrameworks>net45;net48;net6.0</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations> </PropertyGroup> - + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')"> + <DefineConstants>$(DefineConstants);MOCKUP</DefineConstants> + </PropertyGroup> <ItemGroup> - <PackageReference Include="Ninject" Version="3.3.3" /> + <PackageReference Include="Ninject" Version="3.3.6" /> <PackageReference Include="NLog" Version="4.7.13" /> </ItemGroup> @@ -28,4 +40,16 @@ <ItemGroup> <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" /> </ItemGroup> + + <Choose> + <When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
 $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))"> + <ItemGroup> + <ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" /> + + </ItemGroup> + <!--<PropertyGroup> + <DefineConstants>MOCKUP</DefineConstants> + </PropertyGroup>--> + </When> + </Choose> </Project> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs index 83a7e4610fca506f989e3002ca75e98a2671b7e0..b1f3ad145575a2237b3fde99f13fd2bf790f5286 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs @@ -836,7 +836,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON TotalVehicleMass = (node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_ResultEntry_TotalVehicleMass}']")?.InnerText.ToDouble() ?? 0).SI<Kilogram>(), Payload = (node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_Payload}']")?.InnerText.ToDouble() ?? 0).SI<Kilogram>(), PassengerCount = node.SelectSingleNode($"./*[local-name()='{XMLNames.Bus_PassengerCount}']")?.InnerText.ToDouble() ?? 0, - FuelMode = "" //node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_FuelMode}']").InnerText + //FuelMode = "" //node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_FuelMode}']").InnerText }; } @@ -1012,11 +1012,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON // -------------------------- - public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IDeclarationInputDataProvider, IDeclarationJobInputData + public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IMultistageVIFInputData //, IDeclarationInputDataProvider, IDeclarationJobInputData { private readonly IXMLInputDataReader _xmlInputReader; protected internal string PrimaryInputDataFile; protected internal string CompletedInputDataFile; + protected internal bool RunSimulation; public JSONInputDataCompletedBusFactorMethodV7(JObject data, string filename, bool tolerateMissing = false) : base( data, filename, tolerateMissing) @@ -1026,13 +1027,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON PrimaryInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("PrimaryVehicleResults")); CompletedInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("CompletedVehicle")); + RunSimulation = Body.GetEx<bool>(JsonKeys.BUS_RunSimulation); + - //PrimaryVehicle = CreateReader(primaryInputData); + //PrimaryVehicle = CreateReader(primaryInputData); - Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle; - PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IPrimaryVehicleInformationInputDataProvider); - JobName = Vehicle.VIN; - } + Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle; + PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IMultistepBusInputDataProvider); + //JobName = Vehicle.VIN; + } //private IDeclarationInputDataProvider CreateReader(string vehicleFileName) @@ -1048,22 +1051,31 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public override bool SavedInDeclarationMode => true; - #endregion + #endregion - #region Implementation of IDeclarationInputDataProvider + //#region Implementation of IDeclarationInputDataProvider - public IDeclarationJobInputData JobInputData => this; - public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; } - public XElement XMLHash { get; } + //public IDeclarationJobInputData JobInputData => this; + public IMultistepBusInputDataProvider PrimaryVehicleData { get; } + //public XElement XMLHash { get; } - #endregion + //#endregion - #region Implementation of IDeclarationJobInputData + //#region Implementation of IDeclarationJobInputData - public IVehicleDeclarationInputData Vehicle { get; } - public string JobName { get; } - - public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; + public IVehicleDeclarationInputData Vehicle { get; } + //public string JobName { get; } + + //public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; + + //#endregion + + #region Implementation of IMultistageVIFInputData + + public IVehicleDeclarationInputData VehicleInputData => Vehicle; + public IMultistepBusInputDataProvider MultistageJobInputData => PrimaryVehicleData; + + public bool SimulateResultingVIF => RunSimulation; #endregion } @@ -1205,9 +1217,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON : null; + public bool SimulateResultingVIF => _simulateResultingVif; private bool? _completed; + private bool _simulateResultingVif; public bool? Completed { @@ -1225,6 +1239,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON _primaryVehicleInputDataPath = Body.GetEx<string>(JsonKeys.PrimaryVehicle); _primaryVehicleInputDataPath = PathHelper.GetAbsolutePath(filename, _primaryVehicleInputDataPath); + _simulateResultingVif = Body.GetEx<bool>(JsonKeys.BUS_RunSimulation); _stageInputDataPath = Body.GetEx<string>(JsonKeys.InterimStep); _stageInputDataPath = PathHelper.GetAbsolutePath(filename, _stageInputDataPath); _completed = Body.GetValueOrDefault<bool>(JsonKeys.Completed); diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index c6f024ab1807c796120c21246a97f63109cba6f4..82a85abcf19d72a5322e68dd3b8c4f71c6472bab 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -368,7 +368,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual string ManufacturerAddress => Constants.NOT_AVAILABLE; - public virtual PerSecond EngineIdleSpeed => Body["IdlingSpeed"] != null ? Body.GetEx<double>("IdlingSpeed").RPMtoRad() : null; + public virtual PerSecond EngineIdleSpeed + { + get + { + if (Body["IdlingSpeed"] != null) { + return Body.GetEx<double>("IdlingSpeed").RPMtoRad(); + } else { + return (EngineInputData as IEngineModeDeclarationInputData)?.IdleSpeed; + } + + return null; + } + } IList<IAxleDeclarationInputData> IAxlesDeclarationInputData.AxlesDeclaration => AxleWheels().Cast<IAxleDeclarationInputData>().ToList(); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs index bee76d3ee5a6070b5f3a671f18961918eba68522..b6ef988d78e56eda6ead54a0d656e18abc410da5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs @@ -112,7 +112,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "AngledriveDataPIFType"; + public new const string XSD_TYPE = "AngledriveDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs index 241830b52f72e322920bb2eca4909a8d811d3170..238d531c9be600b81ce9f8c2515017ea717eb2b3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs @@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "AxlegearDataPIFType"; + public new const string XSD_TYPE = "AxlegearDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs index 7181384e6fac40f491ed5319857a53f8e4e3d220..3fc34bec5a4c7b278d57d039901d034517821640 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs @@ -143,7 +143,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "AxleWheelsDataPIFType"; + public new const string XSD_TYPE = "AxleWheelsDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs index 9cc9f3406cf956cc3d3864b47568988c59b886fa..95db59ab682dadd3fb90828a3f7238ee15fb403e 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs @@ -38,7 +38,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetNodes(new[] { "SteeringPump", XMLNames.Auxiliaries_Auxiliary_Technology }) - .Cast<XmlNode>().Select(x => x.InnerText).ToList(); + .Cast<XmlNode>().OrderBy(x => x.Attributes.GetNamedItem("axleNumber").InnerText.ToInt()) + .Select(x => x.InnerText).ToList(); } } @@ -290,6 +291,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override string Clutch => null; public override double Ratio => double.NaN; + + #region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + + public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown; + + #endregion } // --------------------------------------------------------------------------------------- @@ -314,20 +321,42 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override string Clutch => null; public override double Ratio => double.NaN; + + + public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown; + + } + + // --------------------------------------------------------------------------------------- + + + public class XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "AUX_Conventional_PrimaryBusType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + : base(componentNode) { } + + + public override XmlNode XMLSource => BaseNode; } // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryBusAuxiliariesDataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + public class XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "AuxiliaryDataPIFType"; + public const string XSD_TYPE = "AUX_HEV-P_PrimaryBusType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationPrimaryBusAuxiliariesDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + public XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(componentNode) { } @@ -337,6 +366,86 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- + public class XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "AUX_HEV-S_PrimaryBusType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + : base(componentNode) { } + + + public override XmlNode XMLSource => BaseNode; + + #region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + + public override bool SmartAirCompression => false; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + + public class XMLPrimaryBusAuxiliaries_PEV_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "AUX_PEV_PrimaryBusType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLPrimaryBusAuxiliaries_PEV_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + : base(componentNode) { } + + + public override XmlNode XMLSource => BaseNode; + + #region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + + public override string FanTechnology => null; + + public override bool SmartAirCompression => false; + + public override bool EngineWasteGasHeatExchanger => false; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + + public class XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "AUX_IEPC_PrimaryBusType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + : base(componentNode) { } + + + public override XmlNode XMLSource => BaseNode; + + #region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24 + + public override string FanTechnology => null; + + public override bool SmartAirCompression => false; + + public override bool EngineWasteGasHeatExchanger => false; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationCompletedBusAuxiliariesDataProviderV24 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24, IElectricConsumersDeclarationData { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs index fabc32df8e7cf5fb8845ed0b38ed37f72d1e4f39..42cc0ea13bf82f23cfa0037dc7639c1fe3e5fa75 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs @@ -200,18 +200,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01 : XMLDeclarationComponentsDataProviderV10, + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01 : XMLDeclarationComponentsDataProviderV10, IXMLVehicleComponentsDeclaration, IRetarderInputData { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "VehicleComponentsPIFType"; + public new const string XSD_TYPE = "Vehicle_Conventional_ComponentsVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); private IBusAuxiliariesDeclarationData _busAuxiliaries; - public XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01(IXMLDeclarationVehicleData vehicle, + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } @@ -234,6 +234,254 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + // --------------------------------------------------------------------------------------- + + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration, IRetarderInputData + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-Px_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IBusAuxiliariesDeclarationData _busAuxiliaries; + + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + + IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this; + + IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null; + + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null; + + public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData); + + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + #region IRetarderInputData Interface Implementation + + public RetarderType Type => _vehicle.RetarderType; + public double Ratio => _vehicle.RetarderRatio; + public TableData LossMap { get; } + + #endregion + } + + // --------------------------------------------------------------------------------------- + + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration, IRetarderInputData + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S2_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IBusAuxiliariesDeclarationData _busAuxiliaries; + + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + + IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this; + + IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null; + + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null; + + public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData); + + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + #region IRetarderInputData Interface Implementation + + public RetarderType Type => _vehicle.RetarderType; + public double Ratio => _vehicle.RetarderRatio; + public TableData LossMap { get; } + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01 : + XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S3_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLDeclarationComponentsDataProviderV10 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01 : + XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S4_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLDeclarationComponentsDataProviderV10 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + public override IAxleGearInputData AxleGearInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration, IRetarderInputData + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-IEPC-S_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IBusAuxiliariesDeclarationData _busAuxiliaries; + + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + + IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this; + + IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null; + + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null; + + public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData); + + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + #region IRetarderInputData Interface Implementation + + public RetarderType Type => _vehicle.RetarderType; + public double Ratio => _vehicle.RetarderRatio; + public TableData LossMap { get; } + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration, IRetarderInputData + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E2_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IBusAuxiliariesDeclarationData _busAuxiliaries; + + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + public override IEngineDeclarationInputData EngineInputData => null; + + IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this; + + IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null; + + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null; + + public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData); + + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + #region IRetarderInputData Interface Implementation + + public RetarderType Type => _vehicle.RetarderType; + public double Ratio => _vehicle.RetarderRatio; + public TableData LossMap { get; } + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01 : + XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E3_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLDeclarationComponentsDataProviderV10 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01 : + XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E4_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLDeclarationComponentsDataProviderV10 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + public override IAxleGearInputData AxleGearInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01 : + XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-IEPC_ComponentsVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLDeclarationComponentsDataProviderV10 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + public override IAxleGearInputData AxleGearInputData => null; + + #endregion + } // --------------------------------------------------------------------------------------- diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs index 2fd94d18f454dedbceda1186f149dff795b03804..660f63da517cc4206d52b144292d3b63ed359d52 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs @@ -404,7 +404,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "EngineDataPIFType"; + public new const string XSD_TYPE = "EngineDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs index 6942da549bdfdef277fe86ff247a503935448dda..1f0434442227980454d81e326553d32634b71d3f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs @@ -87,6 +87,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider case "APT-N": case "APT-P": case "AT - PowerSplit": return GearboxType.ATPowerSplit; + case "IHPC Type 1": return GearboxType.IHPC; } throw new ArgumentOutOfRangeException("GearboxType", value); @@ -176,7 +177,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "TransmissionDataPIFType"; + public new const string XSD_TYPE = "TransmissionDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs index 1f1d6320a08a1f50b1caa15311bf38abe042c065..fd22e022021574822578eca5bc58127d67d93936 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual string JobName => Vehicle.Identifier; - public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; + public virtual VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; #endregion @@ -97,26 +97,37 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider base(node, inputProvider, fileName) { } protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + #region Overrides of XMLDeclarationJobInputDataProviderV10 + + + public override VectoSimulationJobType JobType { get => Vehicle.VehicleType; } + + #endregion } // --------------------------------------------------------------------------------------- - public class XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource, + public class XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource, IXMLPrimaryVehicleBusJobInputData { - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "VehiclePIFType"; + public const string XSD_TYPE = "ConventionalVehicleVIFType"; - public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); protected IVehicleDeclarationInputData _vehicle; - public XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + public XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, + IXMLPrimaryVehicleBusInputData inputProvider, string fileName) : base(node, fileName) { InputData = inputProvider; } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; public IVehicleDeclarationInputData Vehicle => _vehicle ?? (_vehicle = Reader.CreateVehicle); @@ -124,20 +135,105 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider protected override DataSourceType SourceType { get; } public bool SavedInDeclarationMode { get; } public string JobName { get; } - + public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; public IXMLJobDataReader Reader { protected get; set; } - public IXMLPrimaryVehicleBusInputData InputData { get; } + public virtual IXMLPrimaryVehicleBusInputData InputData { get; } + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-Px_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + string fileName) : base(node,inputProvider, fileName) + { } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-Sx_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + string fileName) : base(node, inputProvider, fileName) + { } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + } // --------------------------------------------------------------------------------------- + public class XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-IEPC-S_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + string fileName) : base(node, inputProvider, fileName) + { } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "PEV_Ex_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + string fileName) : base(node, inputProvider, fileName) + { } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "IEPC_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + string fileName) : base(node, inputProvider, fileName) + { } + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + } + // --------------------------------------------------------------------------------------- + public class XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01 : - XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01 + XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType"; + public new const string XSD_TYPE = "Exempted_VehicleVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs index 14c1eaecd0480908eab71bb61be8e7b0ad856c92..6970ca1c2dfa1e1fcab036c424795e69a16cdc2b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs @@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public IManufacturingStageInputData ConsolidateManufacturingStage => _concolidateManfacturingStage ?? (_concolidateManfacturingStage = Reader.ConsolidateManufacturingStage); - public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle; + public VectoSimulationJobType JobType => ConsolidateManufacturingStage.Vehicle.VehicleType; public bool InputComplete => Reader.InputComplete; @@ -153,8 +153,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { return ResultsInputData.Results.FirstOrDefault( x => x.VehicleGroup == vehicleClass && - (x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission && - x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase)); + (x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission + // && x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase) + ); } public XmlNode ResultsNode => GetNode(XMLNames.Report_Results); @@ -217,19 +218,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public class XMLDeclarationVIFInputData : IMultistageVIFInputData { - private readonly IMultistageBusInputDataProvider _multistageJobInputData; + private readonly IMultistepBusInputDataProvider _multistageJobInputData; private readonly IVehicleDeclarationInputData _vehicleInput; - public XMLDeclarationVIFInputData(IMultistageBusInputDataProvider multistageJobInputData, - IVehicleDeclarationInputData vehicleInput) + public XMLDeclarationVIFInputData(IMultistepBusInputDataProvider multistageJobInputData, + IVehicleDeclarationInputData vehicleInput) : this(multistageJobInputData, vehicleInput, false) { } + + public XMLDeclarationVIFInputData(IMultistepBusInputDataProvider multistageJobInputData, + IVehicleDeclarationInputData vehicleInput, bool runSimulation) { _multistageJobInputData = multistageJobInputData; _vehicleInput = vehicleInput; + _simulateResultingVif = runSimulation; } public IVehicleDeclarationInputData VehicleInputData => _vehicleInput; - public IMultistageBusInputDataProvider MultistageJobInputData => _multistageJobInputData; + public IMultistepBusInputDataProvider MultistageJobInputData => _multistageJobInputData; + + private readonly bool _simulateResultingVif; + bool IMultistageVIFInputData.SimulateResultingVIF => _simulateResultingVif; public DataSource DataSource { get; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs index 21ae0bdaed5b9af7f160bd03ddaa1ff917a57e64..68546d42827cca2fc83d8f7cb7952457f28c12a4 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs @@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private IResult GetResult(XmlNode xmlNode) { var resultStatus = GetAttribute(xmlNode, XMLNames.Result_Status); - var vehicleGroup = GetString(XMLNames.Report_Vehicle_VehicleGroup, xmlNode); + var vehicleGroup = GetString(XMLNames.Report_Results_PrimaryVehicleSubgroup, xmlNode); var mission = GetString(XMLNames.Report_Result_Mission, xmlNode).ParseEnum<MissionType>(); var simulationNode = GetNode(XMLNames.Report_ResultEntry_SimulationParameters, xmlNode); var simulationParams = GetSimulationParameter(simulationNode); @@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider TotalVehicleMass = GetString(XMLNames.Report_ResultEntry_TotalVehicleMass, xmlNode).ToDouble().SI<Kilogram>(), Payload = GetString(XMLNames.Report_Result_Payload, xmlNode).ToDouble().SI<Kilogram>(), PassengerCount = GetString(XMLNames.Bus_PassengerCount, xmlNode).ToDouble(), - FuelMode = GetString(XMLNames.Report_Result_FuelMode, xmlNode) + //FuelMode = GetString(XMLNames.Report_Result_FuelMode, xmlNode) }; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs index a3706df1d1704be79922b6355423e94ab8599393..6081463d19d37025fe2f4e697b666ff285d2e49b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs @@ -94,7 +94,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "TorqueConverterDataPIFType"; + public new const string XSD_TYPE = "TorqueConverterDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs index 7b2dfa10639d032fbf52ba1bf731bff6b92c2252..94364961bee7ed9cc3ac2d6295fa474d82d7ff8e 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs @@ -75,7 +75,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual Newton TyreTestLoad => _fzIso ?? (_fzIso = GetDouble(XMLNames.AxleWheels_Axles_Axle_FzISO).SI<Newton>()); - public virtual string FuelEfficiencyClass => DeclarationData.Wheels.TyreClass.Lookup(RollResistanceCoefficient); + public virtual string FuelEfficiencyClass => null;// DeclarationData.Wheels.TyreClass.Lookup(RollResistanceCoefficient); + + #endregion + + #region Implementation of IXMLTyreDeclarationInputData + + public XmlNode GetXmlNode => BaseNode; #endregion } @@ -116,7 +122,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public class XMLDeclarationTyreDataProviderV23 : XMLDeclarationTyreDataProviderV10 { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23; //public new const string XSD_TYPE = "TyreComponentDeclarationType"; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index 43d1ac73300e541ac0d9354cd1abab13c3acbeaf..3b37daaa2bb96fe54a149f2b1b9e7a6963baaa79 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -38,6 +38,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.InputData.Impl; @@ -178,9 +179,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual bool ZeroEmissionVehicle => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ZeroEmissionVehicle)); - public virtual bool HybridElectricHDV => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_HybridElectricHDV)); + public virtual bool HybridElectricHDV => ElementExists(XMLNames.Vehicle_HybridElectricHDV) + ? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_HybridElectricHDV)) + : false; - public virtual bool DualFuelVehicle => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_DualFuelVehicle)); + public virtual bool DualFuelVehicle => ElementExists(XMLNames.Vehicle_DualFuelVehicle) + ? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_DualFuelVehicle)) + : false; public virtual Watt MaxNetPower1 => ElementExists(XMLNames.Vehicle_MaxNetPower1) @@ -231,11 +236,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual IVehicleComponentsDeclaration Components => _components ?? (_components = ComponentReader.ComponentInputData); public virtual string VehicleTypeApprovalNumber => ElementExists(XMLNames.VehicleTypeApprovalNumber) ? GetString(XMLNames.Vehicle_TypeApprovalNumber) : null; - public virtual ArchitectureID ArchitectureID => ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID)); - public virtual bool OvcHev => GetBool(XMLNames.Vehicle_OvcHev); + public virtual ArchitectureID ArchitectureID => ElementExists(XMLNames.Vehicle_ArchitectureID) ? ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID)) : ArchitectureID.UNKNOWN; + public virtual bool OvcHev => ElementExists(XMLNames.Vehicle_OvcHev) && GetBool(XMLNames.Vehicle_OvcHev); public virtual Watt MaxChargingPower => ElementExists(XMLNames.Vehicle_MaxChargingPower) ? XmlConvert.ToInt32(GetString(XMLNames.Vehicle_MaxChargingPower)).SI<Watt>() : null; + public virtual VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } + #region Implementation of IAdvancedDriverAssistantSystemDeclarationInputData #endregion @@ -253,6 +260,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public class XMLDeclarationVehicleDataProviderV20 : XMLDeclarationVehicleDataProviderV10 { + /* * use default values for new parameters introduced in 2019/318 (amendment of 2017/2400 */ @@ -287,6 +295,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override Watt MaxNetPower2 => null; + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } public class ADASDefaultValues : IAdvancedDriverAssistantSystemDeclarationInputData { #region Implementation of IAdvancedDriverAssistantSystemDeclarationInputData @@ -341,6 +350,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } protected override XNamespace SchemaNamespace => NAMESPACE_URI; + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } } // --------------------------------------------------------------------------------------- @@ -417,6 +428,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override IPTOTransmissionInputData PTOTransmissionInputData => null; #endregion + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } } @@ -448,12 +461,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData + public class XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "VehiclePIFType"; + public const string XSD_TYPE = "ConventionalVehicleVIFType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); @@ -463,7 +476,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private XmlElement _componentNode; private IVehicleComponentsDeclaration _components; - public XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01( + public XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01( IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(xmlNode, sourceFile) { @@ -472,12 +485,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Overrides of AbstractCommonComponentType - public override string Manufacturer => GetString(XMLNames.ManufacturerPrimaryVehicle); - - public string ManufacturerAddress => GetString(XMLNames.ManufacturerAddressPrimaryVehicle); + + public virtual string ManufacturerAddress => GetString(XMLNames.ManufacturerAddress); #endregion + public virtual string PowertrainPositionPrefix => "-"; + #region IXMLDeclarationVehicleData interface @@ -537,16 +551,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual ConsumerTechnology? DoorDriveTechnology => ConsumerTechnology.Unknown; public virtual VehicleDeclarationType VehicleDeclarationType { get; } - public Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits { get; } - public TableData BoostingLimitations { get; } - + public virtual Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits { get; } + public virtual TableData BoostingLimitations { get; } public virtual string VehicleTypeApprovalNumber { get; } - - public virtual IVehicleComponentsDeclaration Components => _components ?? (_components = ComponentReader.ComponentInputData); - public ArchitectureID ArchitectureID { get; } - public bool OvcHev { get; } - public Watt MaxChargingPower { get; } + public virtual ArchitectureID ArchitectureID => ElementExists(XMLNames.Vehicle_ArchitectureID) ? ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID)) : ArchitectureID.UNKNOWN; + public virtual bool OvcHev => ElementExists(XMLNames.Vehicle_OvcHev) && GetBool(XMLNames.Vehicle_OvcHev); + public virtual Watt MaxChargingPower => ElementExists(XMLNames.Vehicle_MaxChargingPower) ? GetDouble(XMLNames.Vehicle_MaxChargingPower).SI<Watt>() : null; #region Non seeded Properties @@ -615,16 +626,117 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider return torqueLimits; } + + public virtual VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 + { + + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "HEV-Px_VehicleVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ParallelHybridVehicle; } + + public override string PowertrainPositionPrefix => "P"; + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 + { + + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "HEV-Sx_VehicleVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.SerialHybridVehicle; } + + public override string PowertrainPositionPrefix => "E"; } // --------------------------------------------------------------------------------------- - public class XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01 + public class XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType"; + public new const string XSD_TYPE = "HEV-IEPC-S_VehicleVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.SerialHybridVehicle; } + + public override string PowertrainPositionPrefix => "S"; + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 + { + + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "PEV_Ex_VehicleVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.BatteryElectricVehicle; } + + public override bool OvcHev => true; + + public override string PowertrainPositionPrefix => "E"; + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 + { + + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "IEPC_VehicleVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.BatteryElectricVehicle; } + + public override bool OvcHev => true; + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 + { + + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Exempted_VehicleVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); @@ -641,8 +753,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override Watt MaxNetPower1 => GetDouble("SumNetPower").SI<Watt>(); - #endregion + + public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; } } // --------------------------------------------------------------------------------------- @@ -697,7 +810,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits => ElementExists(XMLNames.ElectricMotorTorqueLimits) ? ReadElectricMotorTorqueLimits() : null; - + + #region Overrides of XMLDeclarationVehicleDataProviderV20 + + public override VectoSimulationJobType VehicleType + { + get => throw new NotImplementedException($"not implemented in {this.GetType()}"); + } + + #endregion + private Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ReadElectricMotorTorqueLimits() { var torqueLimitNodes = GetNodes(XMLNames.ElectricMotorTorqueLimits); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs index 6a73d928db4c734bbbc058fbead8467010dc0b0b..365a218186703a42bb0727f04b815bc356e21ab2 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs @@ -17,7 +17,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE); - private IXMLDeclarationVehicleData _vehicle; + protected IXMLDeclarationVehicleData _vehicle; private IList<ElectricMachineEntry<IElectricMotorDeclarationInputData>> _entries; public XMLElectricMachinesDeclarationInputDataProvider( @@ -35,7 +35,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion - private List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries() + protected virtual List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries() { var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> { Position = PowertrainPositionHelper.Parse(((AbstractXMLVehicleDataProviderV24)_vehicle).PowertrainPositionPrefix, @@ -53,7 +53,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider return new List<ElectricMachineEntry<IElectricMotorDeclarationInputData>>{machineEntry}; } - private void SetGearRatios(ElectricMachineEntry<IElectricMotorDeclarationInputData> machineEntry) + protected void SetGearRatios(ElectricMachineEntry<IElectricMotorDeclarationInputData> machineEntry) { var gearRatios = GetNode(XMLNames.ElectricMachine_P2_5GearRatios, null, false); if (gearRatios != null) { @@ -134,4 +134,37 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider }); #endregion - } } + } + + public class XMLDeclarationElectricMachinesDataProviderV01 : XMLElectricMachinesDeclarationInputDataProvider + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "ElectricMachineType"; + public const string XSD_GEN_TYPE = "ElectricMachineGENType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE); + + public XMLDeclarationElectricMachinesDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + protected override List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries() + { + var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> { + Position = PowertrainPositionHelper.Parse(((XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01)_vehicle).PowertrainPositionPrefix, + GetString(XMLNames.ElectricMachine_PowertrainPosition)), + Count = XmlConvert.ToInt32(GetString(XMLNames.ElectricMachine_Count)), + ElectricMachine = ElectricMachineSystemReader.CreateElectricMachineSystem(GetNode(XMLNames.ElectricMachineSystem)), + }; + + if (ElementExists("ADC")) + machineEntry.ADC = ElectricMachineSystemReader.ADCInputData; + + if (ElementExists(XMLNames.ElectricMachine_P2_5GearRatios)) + SetGearRatios(machineEntry); + + return new List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> { machineEntry }; + } + } + +} diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs index 5b4e004570209e971071e75e546138deab6ff35f..a8d5bd96a4643142a9dd42f38f7d0e3d2988fa74 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs @@ -107,6 +107,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider voltageLevels.Add(new XMLElectricMotorIEPCIInputDataProviderV23(null, voltageLevelNode, null)); } + if (voltageLevels.Count > 1) { + voltageLevels = voltageLevels.OrderBy(x => x.VoltageLevel.Value()).ToList(); + } + return voltageLevels; } @@ -186,7 +190,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual TableData Conditioning => ElementExists(XMLNames.Conditioning) ? ReadConditioning() : null; - public virtual double OverloadRecoveryFactor { get; } #endregion @@ -464,4 +467,59 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + + // --------------------------------------------------------------------------------------- + + public class XMLElectricMotorDeclarationInputDataProviderV01 : XMLCommonElectricMotorDeclarationInputData, + IXMLElectricMotorDeclarationInputData + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "ElectricMachineSystemDataDeclarationType"; + + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IList<IElectricMotorVoltageLevel> _voltageLevels; + + public XMLElectricMotorDeclarationInputDataProviderV01( + XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) + { + SourceType = DataSourceType.XMLEmbedded; + } + + #region Implementation of IElectricMotorDeclarationInputData + + public bool DcDcConverterIncluded => GetBool(XMLNames.ElectricMachine_DcDcConverterIncluded); + + public string IHPCType => GetString(XMLNames.ElectricMachine_IHPCType); + + public IList<IElectricMotorVoltageLevel> VoltageLevels => + _voltageLevels ?? (_voltageLevels = GetVoltageLevels()); + public TableData DragCurve => ReadDragCurve(); + public TableData Conditioning => ElementExists(XMLNames.Conditioning) + ? ReadConditioning() : null; + + #endregion + + protected override XNamespace SchemaNamespace => NAMESPACE_URI; + protected override DataSourceType SourceType { get; } + } + + // --------------------------------------------------------------------------------------- + + public class XMLElectricMotorIEPCIInputDataProviderV01 : XMLElectricMotorIEPCIInputDataProviderV23 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "IEPCDataDeclarationType"; + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public XMLElectricMotorIEPCIInputDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLElectricMotorIEPCIInputDataProviderV23 + + protected override void ValidateGearCount() + { + } + + #endregion + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs index 17f31db33e864065fbfb885246932bca6c58027f..d2555cb1c639422a6b3902d2c376f57cb5aee1ad 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs @@ -11,7 +11,7 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { - public class XMLElectricStorageSystemDeclarationInputData : AbstractCommonComponentType, + public class XMLElectricStorageSystemDeclarationInputDataV24 : AbstractCommonComponentType, IXMLElectricStorageSystemDeclarationInputData { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; @@ -21,7 +21,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private IList<IElectricStorageDeclarationInputData> _electricStorageElements; private IXMLDeclarationVehicleData _vehicle; - public XMLElectricStorageSystemDeclarationInputData( + public XMLElectricStorageSystemDeclarationInputDataV24( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { @@ -84,14 +84,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLBatteryPackDeclarationDeclarationInputData : AbstractCommonComponentType, + public class XMLBatteryPackDeclarationDeclarationInputDataV24 : AbstractCommonComponentType, IXMLBatteryPackDeclarationInputData { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; public const string XSD_TYPE = "REESSBatteryType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLBatteryPackDeclarationDeclarationInputData(XmlNode componentNode, string sourceFile) + public XMLBatteryPackDeclarationDeclarationInputDataV24(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { SourceType = DataSourceType.XMLEmbedded; @@ -151,16 +151,29 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } - + + // --------------------------------------------------------------------------------------- + + public class XMLBatteryPackDeclarationDeclarationInputDataV01 : XMLBatteryPackDeclarationDeclarationInputDataV24 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "REESSBatteryType"; + + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLBatteryPackDeclarationDeclarationInputDataV01(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { } + } + // --------------------------------------------------------------------------------------- - - public class XMLSuperCapDeclarationInputData : AbstractCommonComponentType, IXMLSuperCapDeclarationInputData + + public class XMLSuperCapDeclarationInputDataV24 : AbstractCommonComponentType, IXMLSuperCapDeclarationInputData { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; public const string XSD_TYPE = "REESSCapacitorType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLSuperCapDeclarationInputData(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) + public XMLSuperCapDeclarationInputDataV24(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { SourceType = DataSourceType.XMLEmbedded; } @@ -174,7 +187,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of ISuperCapDeclarationInputData public Farad Capacity => GetDouble(XMLNames.Capacitor_Capacitance).SI<Farad>(); - public Ohm InternalResistance => GetDouble(XMLNames.Capacitor_InternalResistance).SI<Ohm>() / 1000; + public Ohm InternalResistance => GetDouble(XMLNames.Capacitor_InternalResistance).SI(Unit.SI.Milli.Ohm).Cast<Ohm>(); public Volt MinVoltage => GetDouble(XMLNames.Capacitor_MinVoltage).SI<Volt>(); public Volt MaxVoltage => GetDouble(XMLNames.Capacitor_MaxVoltage).SI<Volt>(); public Ampere MaxCurrentCharge => GetDouble(XMLNames.Capacitor_MaxChargingCurrent).SI<Ampere>(); @@ -193,4 +206,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + + + // --------------------------------------------------------------------------------------- + + public class XMLSuperCapDeclarationInputDataV01 : XMLSuperCapDeclarationInputDataV24 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "REESSCapacitorType"; + + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLSuperCapDeclarationInputDataV01(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { } + } + + //=================== + + public class XMLElectricStorageSystemDeclarationInputDataV01 : XMLElectricStorageSystemDeclarationInputDataV24 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "ElectricEnergyStorageType"; + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + + public XMLElectricStorageSystemDeclarationInputDataV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs index 44a39085ca37faef4c22000be90398cc123d6091..c5db2049232e61b5f3bd9117d603d0243cac5af7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs @@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "TransmissionGearPIFType"; + public new const string XSD_TYPE = "TransmissionGearVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs index 11204f01839578431c2017c4d3239517e9271415..f1fbdf90a1d4ad1df564d496d38f2267b15047ff 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs @@ -202,18 +202,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); public XMLDeclarationHevCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- - public class XMLDeclarationPeVompletedBusDataProviderV24 : AbstractXMLDeclarationCompletedBusDataProviderV24 + public class XMLDeclarationPEVCompletedBusDataProviderV24 : AbstractXMLDeclarationCompletedBusDataProviderV24 { public new const string XSD_TYPE = "Vehicle_PEV_CompletedBusDeclarationType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationPeVompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public XMLDeclarationPEVCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + + public override bool OvcHev => true; + } // --------------------------------------------------------------------------------------- @@ -226,6 +232,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); public XMLDeclarationIepcCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + + public override bool OvcHev => true; + + public override bool HybridElectricHDV => false; + } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs index a4458e285e0f9ff508e73d65816e882b172033d8..c04f4fd92a9b6f4d3068389b7dd4e24946f3f450 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs @@ -11,11 +11,11 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 { - public abstract class AbtractXMLDeclarationExemptedVehicleDataProviderV24 : XMLDeclarationVehicleDataProviderV20 + public abstract class AbstractXMLDeclarationExemptedVehicleDataProviderV24 : XMLDeclarationVehicleDataProviderV20 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; - public AbtractXMLDeclarationExemptedVehicleDataProviderV24( + public AbstractXMLDeclarationExemptedVehicleDataProviderV24( IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { SourceType = DataSourceType.XMLEmbedded; @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 #endregion - public override VehicleCategory VehicleCategory => VehicleCategory.HeavyBusPrimaryVehicle; + public override VehicleCategory VehicleCategory => VehicleCategoryHelper.Parse(GetString(XMLNames.ChassisConfiguration)); public override bool ExemptedVehicle => true; @@ -45,7 +45,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override bool VocationalVehicle => false; - public override bool? SleeperCab => false; + public override bool? SleeperCab => + ElementExists(XMLNames.Vehicle_SleeperCab) && GetBool(XMLNames.Vehicle_SleeperCab); public override TankSystem? TankSystem => null; @@ -78,10 +79,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override double RetarderRatio => 0; public override IPTOTransmissionInputData PTOTransmissionInputData => null; + + public override Kilogram CurbMassChassis => GetDouble(XMLNames.CorrectedActualMass).SI<Kilogram>(); } // --------------------------------------------------------------------------------------- - public class XMLDeclarationExemptedHeavyLorryDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24 + public class XMLDeclarationExemptedHeavyLorryDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; @@ -90,12 +93,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) + : base(jobData, xmlNode, sourceFile) { } + + + #region Overrides of XMLDeclarationVehicleDataProviderV10 + + + + #endregion } // --------------------------------------------------------------------------------------- - public class XMLDeclarationExemptedMediumLorryDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24 + public class XMLDeclarationExemptedMediumLorryDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; @@ -109,7 +120,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 // --------------------------------------------------------------------------------------- - public class XMLDeclarationExemptedPrimaryBusDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24 + public class XMLDeclarationExemptedPrimaryBusDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; @@ -129,7 +140,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 // --------------------------------------------------------------------------------------- - public class XMLDeclarationExemptedCompletedBusDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24 + public class XMLDeclarationExemptedCompletedBusDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; public new const string XSD_TYPE = "Vehicle_Exempted_CompletedBusDeclarationType"; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs index 172959b3d5df9b65ecaaea8c99ab67c7807d2581..4b0bed4c08717bf7660f452e89d37fadcbf696aa 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs @@ -38,6 +38,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 : (TankSystem?)null; #endregion + + + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.ConventionalVehicle; + } } // --------------------------------------------------------------------------------------- @@ -81,6 +87,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 : null; #endregion + + public override bool HybridElectricHDV => true; + + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.ParallelHybridVehicle; + } + } // --------------------------------------------------------------------------------------- @@ -108,6 +122,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override IList<ITorqueLimitInputData> TorqueLimits => null; #endregion + + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.SerialHybridVehicle; + } + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- @@ -138,9 +160,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override CubicMeter CargoVolume => null; + public override bool OvcHev => true; + #endregion public override IList<ITorqueLimitInputData> TorqueLimits => null; + + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.BatteryElectricVehicle; + } } // --------------------------------------------------------------------------------------- @@ -161,12 +190,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override IList<ITorqueLimitInputData> TorqueLimits => null; - - + public override bool OvcHev => true; #endregion - + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.BatteryElectricVehicle; + } } // --------------------------------------------------------------------------------------- @@ -205,6 +236,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override TableData BoostingLimitations => null; #endregion + + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.SerialHybridVehicle; + } + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs index 5f6c85d56a8ac17b84ed42561efc30d6455522fc..643a30e3e60bec57021347944db07143d268e837 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs @@ -71,6 +71,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public XMLDeclarationConventionalMediumLorryVehicleDataProviderV24( IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + + #region Overrides of AbstractXMLVehicleDataProviderV24 + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ConventionalVehicle; + + #endregion } // --------------------------------------------------------------------------------------- @@ -85,6 +91,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public XMLDeclarationHevPxMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle; + #region Overrides of XMLDeclarationHevPxHeavyLorryDataProviderV24 public override string PowertrainPositionPrefix => "P"; @@ -107,6 +115,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override XmlElement PTONode => null; #endregion + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- @@ -123,6 +134,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 #endregion + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle; public XMLDeclarationHevSxMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } @@ -134,6 +146,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override XmlElement PTONode => null; #endregion + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- @@ -150,6 +165,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 #endregion + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle; + public XMLDeclarationPevMediumLorryExDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } @@ -166,6 +183,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override IList<ITorqueLimitInputData> TorqueLimits => null; + public override bool OvcHev => true; + #endregion } @@ -181,6 +200,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public XMLDeclarationIepcMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle; #region Overrides of XMLDeclarationVehicleDataProviderV10 @@ -195,6 +215,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override Kilogram GrossVehicleMassRating => GetDouble(XMLNames.TPMLM).SI<Kilogram>(); + public override bool OvcHev => true; + + #endregion } @@ -228,6 +251,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override XmlElement PTONode => null; #endregion + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle; + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs index df61c5b5071b21c2fa029a09eab91bdb0e3ede71..a4186e40a265f790d222fd81a96a5426fd6f9d66 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs @@ -83,6 +83,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 protected override DataSourceType SourceType { get; } #endregion + public override VectoSimulationJobType VehicleType + { + get => VectoSimulationJobType.ConventionalVehicle; + } } // --------------------------------------------------------------------------------------- @@ -110,6 +114,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public XMLDeclarationHevPxPrimaryBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle; + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- @@ -130,6 +139,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 : base(jobData, xmlNode, sourceFile) { } public override IList<ITorqueLimitInputData> TorqueLimits => null; + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle; + + public override bool HybridElectricHDV => true; + } // --------------------------------------------------------------------------------------- @@ -154,6 +168,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override IList<ITorqueLimitInputData> TorqueLimits => null; #endregion + + public override bool OvcHev => true; + + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle; } @@ -175,7 +194,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override bool Articulated => GetBool(XMLNames.Vehicle_Articulated); + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle; + #endregion + + public override bool OvcHev => true; + } // --------------------------------------------------------------------------------------- @@ -199,8 +223,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public override IList<ITorqueLimitInputData> TorqueLimits => null; + #region Overrides of AbstractXMLVehicleDataProviderV24 + + public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle; #endregion + + #endregion + + public override bool HybridElectricHDV => true; + } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs index 37de4917517342fc4abe7c4f7159064a273332af..eb247dd05d26dabb1f4bbd620e299af4527bddd0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs @@ -48,7 +48,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces XmlNode ApplicationInformationNode { get; } } - public interface IXMLMultistageInputDataProvider : IMultistageBusInputDataProvider, IXMLResource + public interface IXMLMultistageInputDataProvider : IMultistepBusInputDataProvider, IXMLResource { IXMLDeclarationMultistageVehicleInputDataReader Reader { set; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs index b31986822a02a0653f13b7e2b324ce76e2b06cba..79ed20d1a651d249c367b6a87e24b227988af2f3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs @@ -29,9 +29,13 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.Xml; using TUGraz.VectoCommon.InputData; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces { - public interface IXMLTyreDeclarationInputData : ITyreDeclarationInputData, IXMLResource { } + public interface IXMLTyreDeclarationInputData : ITyreDeclarationInputData, IXMLResource + { + XmlNode GetXmlNode { get; } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs index 8f61766998e747ae0ca2b542dbf3a8f650fe4b6e..359aced15d0c743a61d9ecc0bb9e385134afcef0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs @@ -30,43 +30,182 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules Bind<IXMLPrimaryVehicleBusInputData>().To<XMLDeclarationMultistagePrimaryVehicleInputDataV01>() .Named(XMLDeclarationMultistagePrimaryVehicleInputDataV01.QUALIFIED_XSD_TYPE); - Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLDeclarationPrimaryBusAuxiliariesDataProviderV01>() - .Named(XMLDeclarationPrimaryBusAuxiliariesDataProviderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01>() + .Named(XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01>() + .Named(XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01>() + .Named(XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_PEV_DataProviderV01>() + .Named(XMLPrimaryBusAuxiliaries_PEV_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01>() + .Named(XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01.QUALIFIED_XSD_TYPE); Bind<IXMLDeclarationPrimaryVehicleBusInputDataReader>().To<XMLMultistagePrimaryVehicleReaderV01>() .Named(XMLMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); - Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01>() - .Named(XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); - Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>() + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>() .Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); - Bind<IXMLJobDataReader>().To<XMLJobDataMultistagePrimaryVehicleReaderV01>() - .Named(XMLJobDataMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); Bind<IXMLJobDataReader>().To<XMLJobDataMultistageExemptedPrimaryVehicleReaderV01>() .Named(XMLJobDataMultistageExemptedPrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); - Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01>() - .Named(XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01>() .Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); // ----------------------------------- - Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() - .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLGearboxReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE); - Bind<IXMLGearboxReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() - .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE); + Bind<IXMLAxlesReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.AXLES_READER_QUALIFIED_XSD_TYPE); - Bind<IXMLAxlesReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() - .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.AXLES_READER_QUALIFIED_XSD_TYPE); + Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV01>().Named(XMLElectricMachineSystemReaderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV01>().Named(XMLElectricMachineSystemReaderV01.QUALIFIED_GEN_XSD_TYPE); + + Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputDataV01>() + .Named(XMLElectricStorageSystemDeclarationInputDataV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLREESSReader>().To<XMLREESSReaderV01>().Named(XMLREESSReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputDataV01>() + .Named(XMLBatteryPackDeclarationDeclarationInputDataV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputDataV01>() + .Named(XMLSuperCapDeclarationInputDataV01.QUALIFIED_XSD_TYPE); + + //Bind<IXMLADCDeclarationInputData>().To<XMLADCDeclarationInputDataV23>() + // .Named(XMLADCDeclarationInputDataV23.QUALIFIED_XSD_TYPE); + + + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01.QUALIFIED_XSD_TYPE); Bind<IXMLVehicleComponentsDeclaration>() - .To<XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01>() - .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01.QUALIFIED_XSD_TYPE); // ----------------------------------- @@ -98,6 +237,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules Bind<IXMLResultsInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01>() .Named(XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01.QUALIFIED_XSD_TYPE); + Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLDeclarationElectricMachinesDataProviderV01>().Named( + XMLDeclarationElectricMachinesDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLDeclarationElectricMachinesDataProviderV01>().Named( + XMLDeclarationElectricMachinesDataProviderV01.QUALIFIED_GEN_XSD_TYPE); + + Bind<IXMLElectricMotorDeclarationInputData>().To<XMLElectricMotorDeclarationInputDataProviderV01>() + .Named(XMLElectricMotorDeclarationInputDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLIEPCInputData>().To<XMLElectricMotorIEPCIInputDataProviderV01>() + .Named(XMLElectricMotorIEPCIInputDataProviderV01.QUALIFIED_XSD_TYPE); // ----------------------------------- diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs index 6d3098666294a5f40584badcc167690c1dbea1c8..4a05a67e5ed1e15bbc742316fc9b5ad996c45f5a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs @@ -19,11 +19,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>() .Named(XMLDeclarationConventionalCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE); - Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>() + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationHevCompletedBusDataProviderV24>() .Named(XMLDeclarationHevCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE); - Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>() - .Named(XMLDeclarationPeVompletedBusDataProviderV24.QUALIFIED_XSD_TYPE); - Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>() + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationPEVCompletedBusDataProviderV24>() + .Named(XMLDeclarationPEVCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE); + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationIepcCompletedBusDataProviderV24>() .Named(XMLDeclarationIepcCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE); Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationExemptedCompletedBusDataProviderV24>() @@ -315,14 +315,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules Bind<IXMLIEPCInputData>().To<XMLElectricMotorIepciStandardInputDataProviderV23>() .Named(XMLElectricMotorIepciStandardInputDataProviderV23.QUALIFIED_XSD_TYPE); - Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputData>() - .Named(XMLElectricStorageSystemDeclarationInputData.QUALIFIED_XSD_TYPE); + Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputDataV24>() + .Named(XMLElectricStorageSystemDeclarationInputDataV24.QUALIFIED_XSD_TYPE); - Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputData>() - .Named(XMLBatteryPackDeclarationDeclarationInputData.QUALIFIED_XSD_TYPE); + Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputDataV24>() + .Named(XMLBatteryPackDeclarationDeclarationInputDataV24.QUALIFIED_XSD_TYPE); - Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputData>() - .Named(XMLSuperCapDeclarationInputData.QUALIFIED_XSD_TYPE); + Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputDataV24>() + .Named(XMLSuperCapDeclarationInputDataV24.QUALIFIED_XSD_TYPE); Bind<IXMLADCDeclarationInputData>().To<XMLADCDeclarationInputDataV23>() .Named(XMLADCDeclarationInputDataV23.QUALIFIED_XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs deleted file mode 100644 index 228888aa42a97cd10366bc0f4517e962434b795e..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Ninject.Modules; -using TUGraz.VectoCommon.InputData; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl; - -namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules { - public class XMLDeclarationInputDataV26InjectModule : NinjectModule - { - #region Overrides of NinjectModule - - public override void Load() - { - - - } - - #endregion - } -} \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs index cc6f795b7e7f2509428bda2e85fca9b4e41a896a..8115e26038546b04ea2c9a2cb52841a91f48f584 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs @@ -52,7 +52,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration new XMLDeclarationInputDataV22InjectModule(), new XMLDeclarationInputDataV221InjectModule(), new XMLDeclarationInputDataV23InjectModule(), - new XMLDeclarationInputDataV26InjectModule(), new XMLDeclarationInputDataV24InjectModule(), new XMLDeclarationInputDataMultistageV01InjectModule(), }); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs index 16c5fdc36b9dc5ca1e97b79cbbc6549ada8cf8a9..8242415347b83143109bdf0aa82030101349cf0d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs @@ -50,12 +50,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl ParentComponent = parent; } - protected virtual T CreateComponent<T>( - string component, Func<string, XmlNode, string, T> componentCreator, bool createDummy = false) + protected virtual XmlNode GetComponentNode(string component) { var componentNode = BaseNode.LocalName == component ? BaseNode : BaseNode.SelectSingleNode(XMLHelper.QueryLocalName(component)); + + return componentNode; + } + + protected virtual T CreateComponent<T>( + string component, Func<string, XmlNode, string, T> componentCreator, bool createDummy = false) + { + var componentNode = GetComponentNode(component); var dataNode = componentNode?.SelectSingleNode($"./*[local-name()='{XMLNames.ComponentDataWrapper}']"); if (componentNode != null) { @@ -67,6 +74,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return componentCreator(version, componentNode, ParentComponent.DataSource.SourceFile); } + + if (createDummy) { try { return componentCreator(null, null, null); @@ -75,6 +84,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } + + throw new VectoException("Component {0} not found!", component); } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs index 1718297bc6925d871ae745363c36d3c9637407a9..f0fbde21e29c2a6ddf564843bf2020252e249139 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs @@ -120,7 +120,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl (_electricStorageSystemInputData = GetElectricEnergyStorageEntries()); public virtual IIEPCDeclarationInputData IEPCInputData => _iepcDeclarationInputData ?? - (_iepcDeclarationInputData = CreateComponent( XMLNames.IEPC_Component, IEPCCreator)); + (_iepcDeclarationInputData = GetComponentNode(XMLNames.IEPC_Component) != null ? CreateComponent( XMLNames.IEPC_Component, IEPCCreator) : null); public virtual ITransmissionInputData CreateGear(XmlNode gearNode) { @@ -558,13 +558,61 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl // --------------------------------------------------------------------------------------- + public class XMLElectricMachineSystemReaderV01 : AbstractComponentReader, IXMLElectricMachineSystemReader + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "ElectricMachineType"; + public const string XSD_GEN_TYPE = "ElectricMachineGENType"; + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE); + + [Inject] + public IDeclarationInjectFactory Factory { protected get; set; } + + public XMLElectricMachineSystemReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, + string sourceFile) : base(vehicle, componentNode) + { + + } + + #region Implementation of IXMLElectricMotorReader + + public virtual IElectricMotorDeclarationInputData CreateElectricMachineSystem(XmlNode electricMachineSystem) + { + return CreateComponent(XMLNames.ElectricMachineSystem, ElectricMachinesCreator); + } + + public virtual IADCDeclarationInputData ADCInputData { + get { + return CreateComponent("ADC", ADCCreator); + } + } + + + protected virtual IADCDeclarationInputData ADCCreator(string version, + XmlNode componentNode, string sourcefile) + { + return Factory.CreateADCDeclarationInputData(version, componentNode, sourcefile); + } + + protected virtual IElectricMotorDeclarationInputData ElectricMachinesCreator(string version, + XmlNode componentNode, string sourcefile) + { + return Factory.CreateElectricMotorDeclarationInputData(version, componentNode, sourcefile); + } + + #endregion + } + + // --------------------------------------------------------------------------------------- + public class XMLREESSReaderV24 : AbstractComponentReader, IXMLREESSReader { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24; public const string XSD_TYPE = "ElectricEnergyStorageType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - [Inject] public IDeclarationInjectFactory Factory { protected get; set; } + [Inject] public virtual IDeclarationInjectFactory Factory { protected get; set; } public XMLREESSReaderV24(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode) { } @@ -604,14 +652,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } // --------------------------------------------------------------------------------------- + public class XMLREESSReaderV01 : XMLREESSReaderV24 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + public const string XSD_TYPE = "ElectricEnergyStorageType"; + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public class XMLMultistagePrimaryVehicleBusComponentReaderV01 : XMLComponentReaderV20 + + public XMLREESSReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, + string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + } + + // --------------------------------------------------------------------------------------- + + public class XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 : XMLComponentReaderV20 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "VehicleComponentsPIFType"; - public new const string GEARBOX_READER_TYPE = "TransmissionDataPIFType"; - public new const string AXLES_READER_TYPE = "AxleWheelsDataPIFType"; + public new const string XSD_TYPE = "Vehicle_Conventional_ComponentsVIFType"; + public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); @@ -619,7 +680,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl protected IBusAuxiliariesDeclarationData _busAuxInputData; - public XMLMultistagePrimaryVehicleBusComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) + public XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } public override IGearboxDeclarationInputData GearboxInputData => _gearboxInputData ?? (_gearboxInputData = CreateComponent(XMLNames.Component_Transmission, GearboxCreator)); @@ -638,6 +699,190 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-Px_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base (vehicle, componentsNode) {} + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S2_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S3_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-S4_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + + #region Overrides of XMLComponentReaderV10 + + public override IAxleGearInputData AxleGearInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_HEV-IEPC-S_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + + #region Overrides of XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + + public override IGearboxDeclarationInputData GearboxInputData => null; + + #endregion + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E2_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E3_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-E4_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + } + + // --------------------------------------------------------------------------------------- + public class XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 + { + public new static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "Vehicle_PEV-IEPC_ComponentsVIFType"; + //public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType"; + //public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + //public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE); + + //public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE); + + public XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } + } + // --------------------------------------------------------------------------------------- public class XMLPrimaryBusHEVPxDeclarationComponentReaderV201 : XMLComponentReaderV10 diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs index 31443709b435892ab6860cd2b8f78e8f7fd68ba0..c8bbb71626a7033efe1130ec1dd60246cce4b780 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs @@ -487,6 +487,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl { _primaryVehicle = primaryVehicle; } + public VectoSimulationJobType VehicleType { get => _primaryVehicle.Vehicle.VehicleType; } #region ManufacturingStage mandatory properties @@ -591,27 +592,61 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl ////return _manufacturingStages.Any(x => x.Vehicle.ExemptedVehicle); } } - public VehicleCategory VehicleCategory { get; } - public AxleConfiguration AxleConfiguration { get; } + public VehicleCategory VehicleCategory + { + get + { + if (ExemptedVehicle) { + return IsInputDataCompleteExempted(VectoSimulationJobType.ConventionalVehicle, false) + ? VehicleCategory.HeavyBusCompletedVehicle + : VehicleCategory.HeavyBusInterimVehicle; + } + return VehicleDeclarationType == VehicleDeclarationType.final + ? VehicleCategory.HeavyBusCompletedVehicle + : VehicleCategory.HeavyBusInterimVehicle; + } + } + + #region Properties taken from primary vehicle + public AxleConfiguration AxleConfiguration => _primaryVehicle.Vehicle.AxleConfiguration; public IList<ITorqueLimitInputData> TorqueLimits { get; } + public bool HybridElectricHDV => _primaryVehicle.Vehicle.HybridElectricHDV; + + public bool ZeroEmissionVehicle => _primaryVehicle.Vehicle.ZeroEmissionVehicle; + + public bool VocationalVehicle => _primaryVehicle.Vehicle.VocationalVehicle; + public bool? SleeperCab => _primaryVehicle.Vehicle.SleeperCab; + + public bool DualFuelVehicle => _primaryVehicle.Vehicle.DualFuelVehicle; + + public bool OvcHev => _primaryVehicle.Vehicle.OvcHev; + + public PerSecond EngineIdleSpeed => _primaryVehicle.Vehicle.EngineIdleSpeed; + + public Watt MaxNetPower1 => _primaryVehicle.Vehicle.MaxNetPower1; + public Watt MaxNetPower2 => _primaryVehicle.Vehicle.MaxNetPower2; + public string ExemptedTechnology => _primaryVehicle.Vehicle.ExemptedTechnology; + + public ArchitectureID ArchitectureID => _primaryVehicle.Vehicle.ArchitectureID; - public PerSecond EngineIdleSpeed { get; } - public bool VocationalVehicle { get; } - public bool? SleeperCab { get; } - public bool ZeroEmissionVehicle { get; } - public bool HybridElectricHDV { get; } - public bool DualFuelVehicle { get; } - public Watt MaxNetPower1 { get; } - public Watt MaxNetPower2 { get; } - public string ExemptedTechnology { get; } - - public CubicMeter CargoVolume { get; } + public Watt MaxChargingPower => _primaryVehicle.Vehicle.MaxChargingPower; + + #endregion + + + + + + + + + public CubicMeter CargoVolume { get; } public bool Articulated { get; } public XmlNode XMLSource { get; } - public ArchitectureID ArchitectureID { get; } - public bool OvcHev { get; } - public Watt MaxChargingPower { get; } + + + #endregion @@ -868,7 +903,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl private bool PrimaryGearboxIsAT() { - switch (_primaryVehicleData.Components.GearboxInputData.Type) { + switch (_primaryVehicleData.Components.GearboxInputData?.Type) { case GearboxType.ATPowerSplit: case GearboxType.ATSerial: return true; @@ -1028,6 +1063,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public SquareMeter TransferredAirDragArea => AirdragEntry?.TransferredAirDragArea; public SquareMeter AirDragArea_0 => AirdragEntry.AirDragArea_0; + + public XmlNode XMLSource => AirdragEntry.XMLSource; public DataSource DataSource => AirdragEntry?.DataSource; public bool SavedInDeclarationMode { get; } @@ -1071,6 +1108,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl private ConsolidateElectricConsumerData _consolidateElectricConsumerData; private ConsolidatedHVACBusAuxiliariesData _consolidatedHVACBusAuxiliariesData; private XmlNode _xmlNode; + private IList<string> _consolidateSteeringPumpData; public ConsolidatedBusAuxiliariesData(IEnumerable<IManufacturingStageInputData> manufacturingStages) @@ -1180,10 +1218,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } + // --------------------------------------------------------------------------------------- - public class ConsolidateElectricConsumerData : ConsolidatedDataBase, IElectricConsumersDeclarationData + public class ConsolidateElectricConsumerData : ConsolidatedDataBase, IElectricConsumersDeclarationData { public ConsolidateElectricConsumerData(IEnumerable<IManufacturingStageInputData> manufacturingStages) : base(manufacturingStages) { } 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 52d4631c79bfe8d3da587b5e276c413af565dc2a..7abb3d9dfbe0f5541353a31baf57f4f25a01fdae 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs @@ -137,11 +137,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl // --------------------------------------------------------------------------------------- - public class XMLJobDataMultistagePrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader + public class XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "VehiclePIFType"; + public const string XSD_TYPE = "ConventionalVehicleVIFType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); @@ -153,7 +153,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl private readonly IXMLPrimaryVehicleBusJobInputData _primaryBusJobData; - public XMLJobDataMultistagePrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + public XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) : base(busJobData, jobNode) { _primaryBusJobData = busJobData; @@ -173,11 +173,86 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl // --------------------------------------------------------------------------------------- - public class XMLJobDataMultistageExemptedPrimaryVehicleReaderV01 : XMLJobDataMultistagePrimaryVehicleReaderV01 + public class XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-Px_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + : base(busJobData, jobNode) + { } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-Sx_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + : base(busJobData, jobNode) + { } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "HEV-IEPC-S_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + : base(busJobData, jobNode) + { } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "PEV_Ex_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + : base(busJobData, jobNode) + { } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "IEPC_VehicleVIFType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + : base(busJobData, jobNode) + { } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataMultistageExemptedPrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType"; + public new const string XSD_TYPE = "Exempted_VehicleVIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs index 6b4c37b2b4a7601c03a34488db1b79393d9e5667..0a144792ccb442b556c992178fb3ad4566311877 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs @@ -155,7 +155,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML } } - private IMultistageBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source) + protected virtual IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source) { var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType); try { @@ -167,7 +167,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML } } - private IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source) + protected virtual IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source) { var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType); @@ -176,7 +176,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML return input; } - private IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source) + protected virtual IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source) { var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType); try { diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs index e3a7d4c85dfe044c14a3dad93e055fc48597a4c4..903a0d7ffe3656de5604285dbf323ec0b26dfabe 100644 --- a/VectoCore/VectoCore/InputData/Impl/InputData.cs +++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs @@ -284,7 +284,7 @@ namespace TUGraz.VectoCore.InputData.Impl public Kilogram TotalVehicleMass { get; internal set; } public Kilogram Payload { get; internal set; } public double PassengerCount { get; internal set; } - public string FuelMode { get; internal set; } + //public string FuelMode { get; internal set; } } public class ApplicationInformation : IApplicationInformation diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs index ac3b230f9ed4ad3710a0cc62dbfce276a1595ebc..26ed7e131ef7253f6869037009847f5a968fb5dc 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery; @@ -50,4 +51,21 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { public const string BatteryVoltage = "V"; } } + + public static class BatteryHelper + { + public static WattSecond TotalUsableCapacityInSimulation(this IBatteryPackDeclarationInputData batteryData) + { + var tmp = BatterySOCReader.Create(batteryData.VoltageCurve); + var voltage = tmp.Lookup(((batteryData.MinSOC ?? 0) + (batteryData.MaxSOC ?? 1)) / 2.0); + return batteryData.Capacity * voltage; + } + + public static WattSecond TotalStorageCapacity(this IBatteryPackDeclarationInputData batteryData) + { + var tmp = BatterySOCReader.Create(batteryData.VoltageCurve); + var voltage = tmp.Lookup(((batteryData.MinSOC ?? 0) + (batteryData.MaxSOC ?? 1)) / 2.0); + return batteryData.Capacity * voltage; + } + } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index b2d437bb2d471ae5387a829f6757d700d2a0b5a4..b11c599c0695fa580b9b2254e5113d525004d290 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -168,8 +168,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Current = spPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage }; - var fanPower = DeclarationData.Fan.LookupElectricalPowerDemand( - vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology); + var fanPower = vehicleData.VehicleType == VectoSimulationJobType.BatteryElectricVehicle + ? 0.SI<Watt>() + : DeclarationData.Fan.LookupElectricalPowerDemand( + vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology); retVal[Constants.Auxiliaries.IDs.Fan] = new ElectricConsumerEntry { ActiveDuringEngineStopStandstill = false, ActiveDuringEngineStopDriving = false, @@ -183,9 +185,14 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter IVehicleDeclarationInputData completedVehicle) { return new PneumaticUserInputsConfig { - CompressorMap = DeclarationData.BusAuxiliaries.GetCompressorMap(primaryBusAuxiliaries.PneumaticSupply.CompressorSize, primaryBusAuxiliaries.PneumaticSupply.Clutch), + CompressorMap = completedVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle + ? null + : DeclarationData.BusAuxiliaries.GetCompressorMap( + primaryBusAuxiliaries.PneumaticSupply.CompressorSize, + primaryBusAuxiliaries.PneumaticSupply.Clutch), CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency, - CompressorGearRatio = primaryBusAuxiliaries.PneumaticSupply.Ratio, + CompressorGearRatio = completedVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle + ? 0 : primaryBusAuxiliaries.PneumaticSupply.Ratio, SmartAirCompression = primaryBusAuxiliaries.PneumaticSupply.SmartAirCompression, SmartRegeneration = primaryBusAuxiliaries.PneumaticSupply.SmartRegeneration, KneelingHeight = VectoMath.Max(0.SI<Meter>(), @@ -345,6 +352,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Mission mission) { var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration; + if (!hvacConfiguration.HasValue || hvacConfiguration.IsOneOf(BusHVACSystemConfiguration.Configuration0, BusHVACSystemConfiguration.Unknown )) { + throw new VectoException( + $"HVAC Configuration {hvacConfiguration.ToXmlFormat()} is invalid for final step"); + } + var correctionLengthDrivetrainVolume = DeclarationData.BusAuxiliaries.CorrectionLengthDrivetrainVolume( completedVehicle.VehicleCode, completedVehicle.LowEntry, primaryVehicle.AxleConfiguration.NumAxles(), primaryVehicle.Articulated); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs index d4895ea0363ba2a54b1f941e3d0fe50cfd503419..45f045e6f4807422299308d2936e76e721fbe85e 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs @@ -50,7 +50,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var retVal = GetDefaultElectricalUserConfig(); var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries; - retVal.AlternatorType = primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology; + retVal.AlternatorType = primaryVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle + ? AlternatorType.None + : primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology; retVal.ElectricalConsumers = currentDemand; retVal.AlternatorMap = new SimpleAlternator( diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index 3a64be695e9cc6e04c6715e7a44513dafe6c6440..dbf110ae2245df035c2951433021b0d21131f1dd 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -40,14 +40,18 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { protected ShiftStrategyParameters _gearshiftData; protected AbstractDeclarationVectoRunDataFactory( - IDeclarationInputDataProvider dataProvider, IDeclarationReport report) + IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) { InputDataProvider = dataProvider; - - if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)){ - throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation."); + + if (checkJobType) { + if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)) + { + throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation."); + } } - Report = report; + + Report = report; _allowVocational = true; //try { diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs index baeba8a41c51a797cccec0fc376049139df02c27..7d9a3523e5079a18b21af8309ed0bfc1b1f022fd 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs @@ -18,7 +18,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { public class DeclarationModeCompletedMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory { - protected readonly IMultistageBusInputDataProvider InputDataProvider; + protected readonly IMultistepBusInputDataProvider InputDataProvider; protected IDeclarationReport Report; protected Segment _segmentCompletedBus; @@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected DeclarationDataAdapterCompletedBusGeneric DataAdapterGeneric = new DeclarationDataAdapterCompletedBusGeneric(); public DeclarationModeCompletedMultistageBusVectoRunDataFactory( - IMultistageBusInputDataProvider dataProvider, IDeclarationReport report) + IMultistepBusInputDataProvider dataProvider, IDeclarationReport report) { InputDataProvider = dataProvider; @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl Report.InitializeReport(powertrainConfig, new List<List<FuelData.Entry>>()); } - private VectoRunData GetExemptedVectoRunData() + protected virtual VectoRunData GetExemptedVectoRunData() { return new VectoRunData() { Exempted = true, @@ -92,7 +92,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl Report = Report, Mission = new Mission() { MissionType = MissionType.ExemptedMission - } + }, + InputData = InputDataProvider }; } @@ -147,63 +148,71 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } - private IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted() + protected virtual IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted() { - var engineModes = InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.EngineModes; + if (InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleType == + VectoSimulationJobType.BatteryElectricVehicle) { + foreach (var vectoRunData in CreateVectoRunDataForMissions(0, "")) + yield return vectoRunData; + } else { + var engineModes = InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData + ?.EngineModes; + + for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) { + var fuelMode = "single fuel mode"; + if (engineModes[modeIdx].Fuels.Count > 1) { + fuelMode = "dual fuel mode"; + } - for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) - { - var fuelMode = "single fuel mode"; - if (engineModes[modeIdx].Fuels.Count > 1) - { - fuelMode = "dual fuel mode"; + foreach (var vectoRunData in CreateVectoRunDataForMissions(modeIdx, fuelMode)) + yield return vectoRunData; } - foreach (var mission in _segmentCompletedBus.Missions) - { - foreach (var loading in mission.Loadings) - { - var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx); - if (simulationRunData != null) - { - yield return simulationRunData; - } - - var primarySegment = GetPrimarySegment(PrimaryVehicle); - var primaryMission = primarySegment.Missions.Where( - m => { - return m.BusParameter.DoubleDecker == - CompletedVehicle.VehicleCode.IsDoubleDeckerBus() && - m.MissionType == mission.MissionType && - m.BusParameter.FloorType == CompletedVehicle.VehicleCode.GetFloorType(); - }).First(); - simulationRunData = CreateVectoRunDataGeneric( - primaryMission, - new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(loading.Key, primaryMission.Loadings[loading.Key]), - primarySegment, modeIdx); - - var primaryResult = InputDataProvider.JobInputData.PrimaryVehicle.GetResult( + } + } + + private IEnumerable<VectoRunData> CreateVectoRunDataForMissions(int modeIdx, string fuelMode) + { + foreach (var mission in _segmentCompletedBus.Missions) { + foreach (var loading in mission.Loadings) { + var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx); + if (simulationRunData != null) { + yield return simulationRunData; + } + + var primarySegment = GetPrimarySegment(PrimaryVehicle); + var primaryMission = primarySegment.Missions.Where( + m => { + return m.BusParameter.DoubleDecker == + CompletedVehicle.VehicleCode.IsDoubleDeckerBus() && + m.MissionType == mission.MissionType && + m.BusParameter.FloorType == CompletedVehicle.VehicleCode.GetFloorType(); + }).First(); + simulationRunData = CreateVectoRunDataGeneric( + primaryMission, + new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(loading.Key, + primaryMission.Loadings[loading.Key]), + primarySegment, modeIdx); + + var primaryResult = InputDataProvider.JobInputData.PrimaryVehicle.GetResult( + simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode, + simulationRunData.VehicleData.Loading); + if (primaryResult == null || !primaryResult.ResultStatus.Equals("success")) { + throw new VectoException( + "Failed to find results in PrimaryVehicleReport for vehicle group: {0}, mission: {1}, fuel mode: '{2}', payload: {3}. Make sure PIF and completed vehicle data match!", simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode, simulationRunData.VehicleData.Loading); - if (primaryResult == null || !primaryResult.ResultStatus.Equals("success")) - { - throw new VectoException( - "Failed to find results in PrimaryVehicleReport for vehicle group: {0}, mission: {1}, fuel mode: '{2}', payload: {3}. Make sure PIF and completed vehicle data match!", - simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode, - simulationRunData.VehicleData.Loading); - } - - if (primaryResult.ResultStatus != "success") - { - throw new VectoException( - "Simulation results in PrimaryVehicleReport for vehicle group: {0}, mission: {1}, fuel mode: '{2}', payload: {3} not finished successfully.", - simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode, - simulationRunData.VehicleData.Loading); - } - - simulationRunData.PrimaryResult = primaryResult; + } - yield return simulationRunData; + if (primaryResult.ResultStatus != "success") { + throw new VectoException( + "Simulation results in PrimaryVehicleReport for vehicle group: {0}, mission: {1}, fuel mode: '{2}', payload: {3} not finished successfully.", + simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode, + simulationRunData.VehicleData.Loading); } + + simulationRunData.PrimaryResult = primaryResult; + + yield return simulationRunData; } } } @@ -235,7 +244,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } - protected VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) + protected virtual VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) { var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); @@ -274,7 +283,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } - protected VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) + protected virtual VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) { var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs index d07214774fe8ad549d74b8855be47d178cf83cd4..3952f390b4ec0d3238481a12ac4068c903507c16 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs @@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl DeclarationDataAdapterHeavyLorry _dao = new DeclarationDataAdapterHeavyLorry(); internal DeclarationModeTruckVectoRunDataFactory( - IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : base(dataProvider, report) + IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) : base(dataProvider, report, checkJobType) { } #region Overrides of AbstractDeclarationVectoRunDataFactory @@ -97,6 +97,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl //if (InitException != null) { // throw InitException; //} + + + + + if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) { yield return CreateVectoRunData(InputDataProvider.JobInputData.Vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); @@ -110,19 +115,50 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl private IEnumerable<VectoRunData> VectoRunDataTruckNonExempted() + { + switch (InputDataProvider.JobInputData.JobType) { + case VectoSimulationJobType.ConventionalVehicle: + case VectoSimulationJobType.ParallelHybridVehicle: + case VectoSimulationJobType.SerialHybridVehicle: + return VectoRunDataConventionalTruckNonExempted(); + case VectoSimulationJobType.BatteryElectricVehicle: + return VectoRunDataBatteryElectricVehicle(); + case VectoSimulationJobType.EngineOnlySimulation: + break; + default: + throw new ArgumentOutOfRangeException(); + } + return VectoRunDataConventionalTruckNonExempted(); + + } + + private IEnumerable<VectoRunData> VectoRunDataBatteryElectricVehicle() + { + var vehicle = InputDataProvider.JobInputData.Vehicle; + foreach (var mission in _segment.Missions) { + foreach (var loading in mission.Loadings) + { + var simulationRunData = CreateVectoRunData(vehicle, 0, mission, loading); + yield return simulationRunData; + } + + } + } + + private IEnumerable<VectoRunData> VectoRunDataConventionalTruckNonExempted() { var vehicle = InputDataProvider.JobInputData.Vehicle; var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; var engineModes = engine.EngineModes; - for(var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) { - + for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) { foreach (var mission in _segment.Missions) { if (mission.MissionType.IsEMS() && engine.RatedPowerDeclared.IsSmaller(DeclarationData.MinEnginePowerForEMS)) { continue; } + foreach (var loading in mission.Loadings) { var simulationRunData = CreateVectoRunData(vehicle, modeIdx, mission, loading); yield return simulationRunData; @@ -136,13 +172,16 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) { if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) { - return new VectoRunData { + var runData = new VectoRunData { + InputData = InputDataProvider, Exempted = true, Report = Report, Mission = new Mission() { MissionType = MissionType.ExemptedMission }, VehicleData = DataAdapter.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, new Segment(), null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(LoadingType.ReferenceLoad, Tuple.Create<Kilogram, double?>(0.SI<Kilogram>(), null)), _allowVocational), InputDataHash = InputDataProvider.XMLHash }; + runData.VehicleData.InputData = vehicle; + return runData; } var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; @@ -180,9 +219,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl InputDataHash = InputDataProvider.XMLHash, SimulationType = SimulationType.DistanceCycle, GearshiftParameters = _gearshiftData, + InputData = InputDataProvider }; simulationRunData.EngineData.FuelMode = modeIdx; simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass; + simulationRunData.VehicleData.InputData = vehicle; return simulationRunData; } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs index b4dfa81ff8cb72c4ff9f5ddfa89d4bcf764dba5d..5e162563ef680f08e2841efecbebecd7f8d3b627 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs @@ -18,8 +18,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { protected DeclarationDataAdapterPrimaryBus _dao = new DeclarationDataAdapterPrimaryBus(); - public DeclarationModePrimaryBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : - base(dataProvider, report) + public DeclarationModePrimaryBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) : + base(dataProvider, report, checkJobType) { } #region Overrides of AbstractDeclarationVectoRunDataFactory @@ -66,6 +66,38 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } private IEnumerable<VectoRunData> VectoRunDataHeavyBusPrimary() + { + switch (InputDataProvider.JobInputData.JobType) { + case VectoSimulationJobType.ConventionalVehicle: + case VectoSimulationJobType.ParallelHybridVehicle: + case VectoSimulationJobType.SerialHybridVehicle: + return VectoRunDataConventionalHeavyBusPrimaryNonExempted(); + case VectoSimulationJobType.BatteryElectricVehicle: + return VectoRunDataBatteryElectricHeavyBusPrimaryNonExempted(); + case VectoSimulationJobType.EngineOnlySimulation: + break; + default: + throw new ArgumentOutOfRangeException(); + } + return VectoRunDataConventionalHeavyBusPrimaryNonExempted(); + } + + private IEnumerable<VectoRunData> VectoRunDataBatteryElectricHeavyBusPrimaryNonExempted() + { + var vehicle = InputDataProvider.JobInputData.Vehicle; + foreach (var mission in _segment.Missions) { + foreach (var loading in mission.Loadings) { + var simulationRunData = CreateVectoRunData(vehicle, 0, mission, loading); + if (simulationRunData == null) { + continue; + } + yield return simulationRunData; + } + + } + } + + private IEnumerable<VectoRunData> VectoRunDataConventionalHeavyBusPrimaryNonExempted() { var vehicle = InputDataProvider.JobInputData.Vehicle; var engine = vehicle.Components.EngineInputData; diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs index a6c47b6b84b75c9f92564085bf40ef196e24571f..26fa6f62844dccc2c4f5e98bab5faf1cccd5990d 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs @@ -8,6 +8,9 @@ using TUGraz.VectoCore.OutputData; namespace TUGraz.VectoCore.InputData.Reader { + + + public class VectoRunDataFactoryFactory : IVectoRunDataFactoryFactory { /// <summary> diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs index 7bc75be024efa0c23b34e5d4f3ab1bfbf586a264..7aecb1906a63f80f66a5fa3b1f878b6acf34057c 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs @@ -7,7 +7,7 @@ using Ninject.Modules; namespace TUGraz.VectoCore.InputData.Reader { - class VectoRunDataFactoryNinjectModule : NinjectModule + public class VectoRunDataFactoryNinjectModule : NinjectModule { #region Overrides of NinjectModule diff --git a/VectoCore/VectoCore/JsonKeys.Designer.cs b/VectoCore/VectoCore/JsonKeys.Designer.cs index 62ae58c6222f7ef7d2a7e7e7c5efb4582399f3af..2920ff7eedba8af3a186a9ee81881785f014a8c5 100644 --- a/VectoCore/VectoCore/JsonKeys.Designer.cs +++ b/VectoCore/VectoCore/JsonKeys.Designer.cs @@ -69,6 +69,15 @@ namespace TUGraz.VectoCore { } } + /// <summary> + /// Looks up a localized string similar to RunSimulation. + /// </summary> + internal static string BUS_RunSimulation { + get { + return ResourceManager.GetString("BUS_RunSimulation", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to Completed. /// </summary> diff --git a/VectoCore/VectoCore/JsonKeys.resx b/VectoCore/VectoCore/JsonKeys.resx index 04560f85bea6e606998446aeebf62bd79aff605c..ea3d993adcf2ed1492bb780021e799e173ef55e6 100644 --- a/VectoCore/VectoCore/JsonKeys.resx +++ b/VectoCore/VectoCore/JsonKeys.resx @@ -483,4 +483,7 @@ <data name="JsonHeader_Date" xml:space="preserve"> <value>Date</value> </data> +<data name="BUS_RunSimulation" xml:space="preserve"> + <value>RunSimulation</value> +</data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index cebc43f320d6d5180068379690145a14cdb57579..2b593d99bf07c3f629dfedea82157584a1933ad1 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -137,6 +137,56 @@ namespace TUGraz.VectoCore.Models.Declaration grossVehicleWeight - curbWeight).Value() / 100, 0) * 100).SI<Kilogram>(); } + public static VehicleClass GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData) + { + switch (vehicleData.VehicleCategory) { + case VehicleCategory.Van: + case VehicleCategory.RigidTruck: + case VehicleCategory.Tractor: + var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory, + vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, vehicleData.CurbMassChassis, + vehicleData.VocationalVehicle); + return truckSegment.VehicleClass; + case VehicleCategory.HeavyBusPrimaryVehicle: + var primarySegment = DeclarationData.PrimaryBusSegments.Lookup(vehicleData.VehicleCategory, + vehicleData.AxleConfiguration, vehicleData.Articulated); + return primarySegment.VehicleClass; + case VehicleCategory.HeavyBusCompletedVehicle: + var segment = DeclarationData.CompletedBusSegments.Lookup(vehicleData.AxleConfiguration.NumAxles(), + vehicleData.VehicleCode, + vehicleData.RegisteredClass, vehicleData.NumberPassengerSeatsLowerDeck, vehicleData.Height, + vehicleData.LowEntry); + return segment.VehicleClass; + } + + throw new VectoException("No Group found for vehicle"); + } + + public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IVehicleDeclarationInputData vehicleData) + { + switch (vehicleData.VehicleCategory) { + case VehicleCategory.Van: + case VehicleCategory.RigidTruck: + case VehicleCategory.Tractor: + var vehicleGroup = GetVehicleGroupGroup(vehicleData); + var propulsionPower = (vehicleData.Components?.EngineInputData?.RatedPowerDeclared ?? 0.SI<Watt>()) + + (vehicleData.Components?.ElectricMachines?.Entries + .Where(x => x.Position != PowertrainPosition.GEN) + .Sum(x => x.ElectricMachine.R85RatedPower * x.Count) ?? 0.SI<Watt>()) + + (vehicleData.Components?.IEPC?.R85RatedPower ?? 0.SI<Watt>()) + + (vehicleData.MaxNetPower1 ?? 0.SI<Watt>()); + var co2Group = WeightingGroup.Lookup(vehicleGroup, vehicleData.SleeperCab ?? false, propulsionPower); + return co2Group; + default: + return Declaration.WeightingGroup.Unknown; + } + //throw new VectoException("No CO2 Group found for vehicle"); + } + + public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IMultistepBusInputDataProvider multiStageInputDataProvider) + { + return Declaration.WeightingGroup.Unknown; + } @@ -1155,5 +1205,7 @@ namespace TUGraz.VectoCore.Models.Declaration public const bool EngineStopStartDefault = false; } } + + } } diff --git a/VectoCore/VectoCore/Models/Declaration/Mission.cs b/VectoCore/VectoCore/Models/Declaration/Mission.cs index 592ca44b1ed91bdd30216fa4c721a4d14d7d07c4..77120162563488effacd4f269612c7608db34769 100644 --- a/VectoCore/VectoCore/Models/Declaration/Mission.cs +++ b/VectoCore/VectoCore/Models/Declaration/Mission.cs @@ -58,8 +58,28 @@ namespace TUGraz.VectoCore.Models.Declaration public Kilogram BodyCurbWeight { get; internal set; } + private Stream _cycleFile; + private object _cycleLock = new object(); [JsonIgnore] - public Stream CycleFile { get; internal set; } + public Stream CycleFile + { + get + { + lock (_cycleLock) { + var memoryStream = new MemoryStream(); + _cycleFile.CopyTo(memoryStream); + memoryStream.Position = 0; + _cycleFile.Seek(0, SeekOrigin.Begin); + return memoryStream; + } + } + internal set + { + lock (_cycleLock) { + _cycleFile = value; + } + } + } public IList<MissionTrailer> Trailer { get; internal set; } diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs index 9dcc8106abe58d9e487cd6f037ec8ed83fc7c1e8..91a78f96b37a8f5480c6f937b7443a89bb9848f8 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -160,6 +160,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data // container to pass genset data from powertrain to post-processing, not filled by dataadapter/rundatafactory public GenSetData GenSet { get; set; } + [JsonIgnore] + public IDeclarationInputDataProvider InputData { get; internal set; } public class AuxData { diff --git a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs index 878c80f6a2e27397a3cd2bf22ecfe8385b7a0dfc..216be6c25d0a0c5efdc444b8ace49d7c6da4e8c8 100644 --- a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs @@ -44,13 +44,15 @@ namespace TUGraz.VectoCore.Models.Simulation bool Validate { get; set; } SummaryDataContainer SumData { get; set; } int JobNumber { get; set; } - IVectoRunDataFactory DataReader { get; } + IVectoRunDataFactory RunDataFactory { get; } ISimulatorFactory FollowUpSimulatorFactory { get; } IOutputDataWriter ReportWriter { get; } bool SerializeVectoRunData { get; set; } bool CreateFollowUpSimulatorFactory { get; set; } + + /// <summary> /// Creates powertrain and initializes it with the component's data. /// </summary> diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs index 611fcfedbeaec3b22e34c04b1bd94010d53aaede..8b583724387d32d70b3c492f56aca95c51300818 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs @@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { return new ResponseCycleFinished(this); } - private void CheckValidInput() + protected virtual void CheckValidInput() { if (Container.RunData.MultistageRun) { return; diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs index 75c7e3e7f131c0cf441e6ac640683b87375a9e84..f86537721f1e1632699272eaf3f4a30e59fecace 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs @@ -362,13 +362,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl try { _runContainerMap.TryGetValue(runContainerId, out var runContainer); var additionalSimulatorFactory = runContainer?.GetFollowUpSimulatorFactory(); - if (additionalSimulatorFactory == null) + if (additionalSimulatorFactory == null) { return; + } + AddRuns(additionalSimulatorFactory); Execute(_multithreaded); } catch (Exception ex) { + Log.Error(ex.Message); + throw; } } diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 9a40b6810639974ccaa54a4db2b3f2405e37ff0f..7c95e3401ef4cce19cecc8d394d0d9aa65f44566 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -31,6 +31,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -56,6 +57,23 @@ using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; namespace TUGraz.VectoCore.Models.Simulation.Impl { + //public interface IPowertrainBuilderFactory + //{ + // PowertrainBuilder GetPowerTrainBuilder(IModalDataContainer modData, WriteSumData sumWriter = null); + + //} + + //public class PowertrainBuilderFactory : IPowertrainBuilderFactory + //{ + // #region Implementation of IPowertrainBuilderFactory + + // public PowertrainBuilder GetPowerTrainBuilder(IModalDataContainer modData, WriteSumData sumWriter = null) + // { + // return new PowertrainBuilder(modData, sumWriter); + // } + + // #endregion + //} /// <summary> /// Provides Methods to build a simulator with a powertrain step by step. /// </summary> diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs index df9125aa06538519d6197b3c7b5b041cc12cce25..8389d72c48b82112bee2b7cafa42eccbe44f6c3f 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs @@ -46,9 +46,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory public class InterimAfterPrimaryFactoryCreator : FollowUpSimulatorFactoryCreator { - private readonly TempFileOutputWriter _currentStageOutputDataWriter = null; + protected readonly TempFileOutputWriter _currentStageOutputDataWriter = null; private readonly IOutputDataWriter _originalReportWriter = null; - private readonly IDeclarationReport _currentStageDeclarationReport = null; + protected IDeclarationReport _currentStageDeclarationReport = null; private readonly IXMLInputDataReader _inputDataReader; private readonly IMultistagePrimaryAndStageInputDataProvider _originalStageInputData; private readonly IDeclarationReport _originalDeclarationReport; @@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory new TempFileOutputWriter(originalReportWriter, ReportType.DeclarationReportManufacturerXML) ; _currentStageDeclarationReport = - new XMLDeclarationReportPrimaryVehicle(_currentStageOutputDataWriter, true); + new XMLDeclarationReportPrimaryVehicle(_currentStageOutputDataWriter); _currentStageInputData = originalStageInputData.PrimaryVehicle; } @@ -82,11 +82,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { //Prepare inputdata for next simulation step var primaryInputData = _inputDataReader.CreateDeclaration(_currentStageOutputDataWriter - .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistageBusInputDataProvider; + .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistepBusInputDataProvider; Debug.Assert(primaryInputData != null); var stageInputData = _originalStageInputData.StageInputData; - var nextStageInput = new XMLDeclarationVIFInputData(primaryInputData, stageInputData); + var nextStageInput = new XMLDeclarationVIFInputData(primaryInputData, stageInputData, _originalStageInputData.SimulateResultingVIF); var manStagesCount = nextStageInput.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1; @@ -132,9 +132,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory } public override ISimulatorFactory GetNextFactory() { + if (!_originalInputData.SimulateResultingVIF) { + return null; + } var output = _xmlInputDataReader.CreateDeclaration( - XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistageBusInputDataProvider; - var nextStageInput = new XMLDeclarationVIFInputData(output, null); + XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistepBusInputDataProvider; + var nextStageInput = new XMLDeclarationVIFInputData(output, null, true); return _simulatorFactoryFactory.Factory(ExecutionMode.Declaration, nextStageInput, CurrentStageOutputDataWriter, null, null, _validate); diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs index 4e9575202b4a331766666f4ec81a8e07a172997d..dcee463d4eea0a0ef5a7fb687eae4fe98d595218 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs @@ -38,6 +38,7 @@ using System.Threading; using System.Xml; using Newtonsoft.Json; using Ninject; +using NLog.LayoutRenderers; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -70,22 +71,15 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory protected bool _simulate = true; + public ISimulatorFactory FollowUpSimulatorFactory { get { - //if (!CreateFollowUpSimulatorFactory) - // return null; + - if (_followUpSimulatorFactoryCreator != null) { - var retVal = _followUpSimulatorFactoryCreator.GetNextFactory(); - retVal.SerializeVectoRunData = SerializeVectoRunData; + return _followUpSimulatorFactoryCreator?.GetNextFactory(); - return retVal; - } else { - return null; - } - //return _followingSimulatorFactoryCreator?.Invoke(); } } @@ -94,7 +88,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory protected readonly ExecutionMode _mode; - #region Constructors and Factory Methods to instantiate Instances of SimulatorFactory without NInject (should only be used in Testcases that are not updated yet) +#region Constructors and Factory Methods to instantiate Instances of SimulatorFactory without NInject (should only be used in Testcases that are not updated yet) [Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)] public static ISimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport = null, IVTPReport vtpReport=null, bool validate = true) @@ -127,7 +121,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory } - #endregion +#endregion @@ -136,7 +130,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory public bool Validate { get; set; } - public IVectoRunDataFactory DataReader { get; protected set; } + public IVectoRunDataFactory RunDataFactory { get; protected set; } public SummaryDataContainer SumData { get; set; } @@ -161,15 +155,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory if (!_simulate) { yield break; } - foreach (var data in DataReader.NextRun()) { + foreach (var data in RunDataFactory.NextRun()) { var current = i++; var d = data; data.JobRunId = current; - yield return data.Exempted || data.MultistageRun ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz); + yield return (data.Exempted || data.MultistageRun) ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz); } } - private IVectoRun GetExemptedRun(VectoRunData data) + + protected virtual IVectoRun GetExemptedRun(VectoRunData data) { if (data.Report != null) { data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); @@ -181,7 +176,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory }); } - private IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz) + protected virtual IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz) { var addReportResult = PrepareReport(data); if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) { @@ -280,16 +275,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory return run; } - private static Action<ModalDataContainer> PrepareReport(VectoRunData data) + protected static Action<ModalDataContainer> PrepareReport(VectoRunData data) { if (data.Report != null) { - data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData.FuelMode, data); + data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); } Action<ModalDataContainer> addReportResult = modData => { if (data.Report != null) { - data.Report.AddResult(data.Loading, data.Mission, data.EngineData.FuelMode, data, modData); + data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); } }; + return addReportResult; } } diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs index c376f56987254e3ebc4f08069285e9ae1ba30378..503c1aae973845b91d4fe498e948264abe40b0bf 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs @@ -5,6 +5,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.Reader; using TUGraz.VectoCore.InputData.Reader.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -14,12 +15,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { public class SimulatorFactoryDeclaration : SimulatorFactory { - private readonly IXMLInputDataReader _xmlInputDataReader; - private readonly ISimulatorFactoryFactory _simFactoryFactory; + protected readonly IXMLInputDataReader _xmlInputDataReader; + protected readonly ISimulatorFactoryFactory _simFactoryFactory; private IInputDataProvider _currentStageInputData; private IDeclarationReport _currentStageDeclarationReport; private IVTPReport _currentStageVTPReport; - private readonly IXMLDeclarationReportFactory _xmlDeclarationReportFactory; + protected readonly IXMLDeclarationReportFactory _xmlDeclarationReportFactory; public SimulatorFactoryDeclaration(IInputDataProvider dataProvider, @@ -51,8 +52,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory _simulate = CanBeSimulated(dataProvider); if (_simulate) { - //CreateDeclarationDataReader(_currentStageInputData, _currentStageDeclarationReport, _currentStageVTPReport); - DataReader = runDataFactoryFactory.CreateDeclarationRunDataFactory(_currentStageInputData, _currentStageDeclarationReport, + RunDataFactory = runDataFactoryFactory.CreateDeclarationRunDataFactory(_currentStageInputData, _currentStageDeclarationReport, _currentStageVTPReport); } else { System.Diagnostics.Debug.Assert(_followUpSimulatorFactoryCreator == null, @@ -60,12 +60,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory } } - private void CreateReport() - { - if (_currentStageDeclarationReport != null && _currentStageInputData != null) { - - } - } /// <summary> @@ -91,15 +85,15 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory ISimulatorFactoryFactory simulatorFactoryFactory, IXMLDeclarationReportFactory xmlDeclarationReportFactory, IVectoRunDataFactoryFactory runDataFactoryFactory) : this( - dataProvider: dataProvider, - declarationReport: null, - writer: writer, - vtpReport: null, - validate: validate, - xmlInputDataReader: xmlInputDataReader, - simulatorFactoryFactory: simulatorFactoryFactory, - xmlDeclarationReportFactory: xmlDeclarationReportFactory, - runDataFactoryFactory: runDataFactoryFactory) + dataProvider: dataProvider, + declarationReport: null, + writer: writer, + vtpReport: null, + validate: validate, + xmlInputDataReader: xmlInputDataReader, + simulatorFactoryFactory: simulatorFactoryFactory, + xmlDeclarationReportFactory: xmlDeclarationReportFactory, + runDataFactoryFactory: runDataFactoryFactory) { } @@ -123,7 +117,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory return true; } - private IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData, IDeclarationReport currentStageDeclarationReport) + protected virtual IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData, IDeclarationReport currentStageDeclarationReport) { switch (currentStageInputData) { case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputDataProvider: @@ -152,66 +146,25 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { switch (dataProvider) { case IVTPDeclarationInputDataProvider vtpProvider: { - DataReader = CreateRunDataReader(vtpProvider, vtpReport); + RunDataFactory = CreateRunDataReader(vtpProvider, vtpReport); return; } case ISingleBusInputDataProvider singleBusProvider: { - DataReader = CreateRunDataReader(singleBusProvider, declarationReport); + RunDataFactory = CreateRunDataReader(singleBusProvider, declarationReport); return; } case IDeclarationInputDataProvider declDataProvider: { - DataReader = CreateRunDataReader(declDataProvider, declarationReport); + RunDataFactory = CreateRunDataReader(declDataProvider, declarationReport); return; } case IMultistageVIFInputData multistageVifInputData: { - DataReader = CreateRunDataReader(multistageVifInputData, declarationReport); + RunDataFactory = CreateRunDataReader(multistageVifInputData, declarationReport); return; } case IMultistagePrimaryAndStageInputDataProvider multiStagePrimaryAndStageInputData: { - throw new VectoException("Why are we here ? "); - - //Create Temporary Writer to hold the files only in Memory -#pragma warning disable 162 - var tempOutputWriter = new TempFileOutputWriter(ReportWriter, ReportType.DeclarationReportManufacturerXML); - var originalReportWriter = ReportWriter; - ReportWriter = tempOutputWriter; - var tempPrimaryReport = new XMLDeclarationReportPrimaryVehicle(tempOutputWriter, true); - - - DataReader = CreateRunDataReader(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport); - - - CreateFollowUpSimulatorFactory = true; - Func<ISimulatorFactory> _followingSimulatorFactoryCreator = () => - { - try - { - var primaryInputData = _xmlInputDataReader.CreateDeclaration(tempOutputWriter - .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()); - - var vifInputData = new XMLDeclarationVIFInputData( - primaryInputData as IMultistageBusInputDataProvider, - multiStagePrimaryAndStageInputData.StageInputData); - - var manStagesCount = - vifInputData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1; - - originalReportWriter.NumberOfManufacturingStages = manStagesCount; - - return _simFactoryFactory.Factory(_mode, vifInputData, originalReportWriter, null, - vtpReport, Validate); - } - catch (Exception ex) - { - Log.Error($"Failed to create additional Simulation run: {ex.Message}"); - return null; - } - }; - return; -#pragma warning restore 162 - - } + throw new VectoException("Simulation should be split up in separate steps"); + } default: throw new VectoException("Unknown InputData for Declaration Mode!"); } diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs index 61aaef20da4ffca41c726ea4f3b684b98b0b8a01..6b195d204525f8720c805573138126a773a599cc 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs @@ -17,16 +17,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { switch (dataProvider) { case IVTPEngineeringInputDataProvider vtpProvider when vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry(): - DataReader = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider); + RunDataFactory = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider); return; case IVTPEngineeringInputDataProvider vtpProvider when vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus(): - DataReader = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider); + RunDataFactory = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider); return; case IEngineeringInputDataProvider engDataProvider when engDataProvider.JobInputData.JobType == VectoSimulationJobType.EngineOnlySimulation: - DataReader = new EngineOnlyVectoRunDataFactory(engDataProvider); + RunDataFactory = new EngineOnlyVectoRunDataFactory(engDataProvider); return; case IEngineeringInputDataProvider engDataProvider: - DataReader = new EngineeringModeVectoRunDataFactory(engDataProvider); + RunDataFactory = new EngineeringModeVectoRunDataFactory(engDataProvider); return; default: throw new VectoException("Unknown InputData for Engineering Mode!"); diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs index 641291ebdc124d5466451eda4f32b3586f70cc4a..c32d35109c6bc1b0c369e8516d2f78ad83940bd3 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs @@ -81,6 +81,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl public IVehicleContainer GetContainer() => Container; + public virtual bool CalculateAggregateValues() + { + return !(GetContainer().RunData.Exempted || GetContainer().RunData.MultistageRun); + } public void Run() { if (Container.RunStatus != Status.Pending) { @@ -119,7 +123,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl Container.AbsTime = AbsTime; } } while (response is ResponseSuccess); - if (!(GetContainer().RunData.Exempted || GetContainer().RunData.MultistageRun)) { + if (CalculateAggregateValues()) { //foreach (var fuel in GetContainer().RunData.EngineData.Fuels) { // calculate vehicleline correction here in local thread context because writing sum-data and // report afterwards is synchronized @@ -165,12 +169,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl throw ex; } - if (Container.RunData.Exempted || Container.RunData.MultistageRun) - Container.RunStatus = Status.Success; - else if (CyclePort.Progress < 1) - Container.RunStatus = response is ResponseBatteryEmpty ? Status.REESSEmpty : Status.Aborted; - else + if (CheckCyclePortProgress()) { + if (CyclePort.Progress < 1) { + Container.RunStatus = response is ResponseBatteryEmpty ? Status.REESSEmpty : Status.Aborted; + } else { + Container.RunStatus = Status.Success; + } + } else { Container.RunStatus = Status.Success; + } + Container.FinishSimulationRun(); WritingResultsDone = true; if (Progress.IsSmaller(1, 1e-9)) { @@ -188,6 +196,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl Log.Info("VectoJob finished."); } + protected virtual bool CheckCyclePortProgress() + { + return !Container.RunData.Exempted && !Container.RunData.MultistageRun; + } + public bool PostProcessingDone { get; protected set; } public bool WritingResultsDone { get; protected set; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs index fe62e55f65acf41484adabd86441a9fd720f3986..1c3f3fc8c8d11448dfa84152f9c23a4f11839fba 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs @@ -33,6 +33,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Runtime.CompilerServices; using System.Xml; using System.Xml.Linq; using Newtonsoft.Json; @@ -45,8 +46,11 @@ using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; + + namespace TUGraz.VectoCore.Models.SimulationComponent.Data { + [CustomValidation(typeof(AirdragData), "ValidateAirDragData")] public class AirdragData : SimulationComponentData { @@ -234,6 +238,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data public ADASData ADAS { get; internal set; } public bool VocationalVehicle { get; internal set; } + public bool Ocv { get; internal set; } + public class ADASData { public bool EngineStopStart { get; internal set; } diff --git a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs index 3f0baeffc70462b2e8adc5a16c6b7e6a2b631675..3ea6c57d0560151765e54711886ded5b7af82d18 100644 --- a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs +++ b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs @@ -29,15 +29,22 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System; +using System.Diagnostics; +using System.IO; +using System.Reflection; using Ninject.Modules; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; using TUGraz.VectoCore.OutputData.XML.ComponentWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; using TUGraz.VectoCore.OutputData.XML.Engineering; -using TUGraz.VectoCore.OutputData.XML.GroupWriter; +using TUGraz.VectoCore.OutputData.XML.GroupWriter; namespace TUGraz.VectoCore { public abstract class AbstractNinjectModule : NinjectModule @@ -53,26 +60,65 @@ namespace TUGraz.VectoCore public class VectoNinjectModule : AbstractNinjectModule { + private readonly bool _mockup; + #region Overrides of NinjectModule + + + public VectoNinjectModule() + { + + } + + public override void Load() { + LoadModule<XMLInputDataNinjectModule>(); LoadModule<XMLEngineeringWriterInjectModule>(); LoadModule<SimulatorFactoryNinjectModule>(); - LoadModule<XMLDeclarationReportFactoryNinjectModule>(); + LoadModule<XMLDeclarationReportFactoryNinjectModule>(); LoadModule<VectoRunDataFactoryNinjectModule>(); LoadModule<GroupWriterNinjectModule>(); LoadModule<ComponentWriterNinjectModule>(); + + LoadModule<SimulatorFactoryNinjectModule>(); + + LoadModule<MRFNinjectModule>(); + LoadModule<CIFNinjectModule>(); + LoadModule<VIFNinjectModule>(); + + + +#if (MOCKUP) //TODO: add second constant for release + var compiledModuleLoaderPlugin = new CompiledModuleLoaderPlugin(Kernel, new AssemblyNameRetriever()); + var assembly = Assembly.LoadFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"VectoMockup.dll")); + //var assembly = Assembly.LoadFile("VectoMockup.dll"); + Kernel.Load(new Assembly[]{assembly}); + + + + + + +#endif + + + + + } - #endregion + + +#endregion } diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs index 3aeb1536c52b7d2a9368df914bd1bbc29d44af6f..5db62cfb67e531771d59e24060fcaf8c23106dcf 100644 --- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs @@ -156,7 +156,7 @@ namespace TUGraz.VectoCore.OutputData Mission = mission.MissionType, LoadingType = loadingType, FuelMode = fuelMode, - FuelData = runData.EngineData.Fuels.Select(x => x.FuelData).ToList(), + FuelData = runData.EngineData?.Fuels.Select(x => x.FuelData).ToList(), Payload = runData.VehicleData.Loading, TotalVehicleMass = runData.VehicleData.TotalVehicleMass, CargoVolume = runData.VehicleData.CargoVolume, @@ -164,8 +164,10 @@ namespace TUGraz.VectoCore.OutputData //runData.VehicleData.VehicleClass, PassengerCount = runData.VehicleData.PassengerCount }; - - Results.Add(entry); + lock (Results) { + Results.Add(entry); + } + DoStoreResult(entry, runData, modData); } @@ -174,9 +176,12 @@ namespace TUGraz.VectoCore.OutputData protected virtual IEnumerable<T> OrderedResults { - get { - return Results.OrderBy(x => x.VehicleClass).ThenBy(x => x.FuelMode).ThenBy(x => x.Mission) - .ThenBy(x => x.LoadingType); + get + { + lock (Results) { + return Results.OrderBy(x => x.VehicleClass).ThenBy(x => x.FuelMode).ThenBy(x => x.Mission) + .ThenBy(x => x.LoadingType); + } } } diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index fe7610ff63b029939cfe5177626a32331bd82e9e..5e651491b8a7a92734e095fe247bfdff7789ea08 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -711,7 +711,10 @@ namespace TUGraz.VectoCore.OutputData } } - _addReportResult(this); + if (_addReportResult != null) { + _addReportResult(this); + } + } private IList<string> GetOutputColumns() diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..968edce4bf5a2a09853757644463b83c614f0958 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9 +{ + public abstract class AbstractCustomerReport : IXMLCustomerReport + { + protected readonly ICustomerInformationFileFactory _cifFactory; + protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput"); + + public static XNamespace Cif_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"); + public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"); + + + protected XElement Vehicle { get; set; } + protected XElement Results { get; set; } + + protected XElement InputDataIntegrity { get; set; } + + public abstract string OutputDataType { get; } + + protected bool _ovc = false; + protected AbstractCustomerReport(ICustomerInformationFileFactory cifFactory) + { + _cifFactory = cifFactory; + + // MQ: write dummy result element for testcases (2022-07-13) + Results = new XElement(Cif_0_9 + "Results", + new XElement(Cif_0_9 + "Status", "success"), + new XElement(Cif_0_9 + "ExemptedVehicle")); + } + + + public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData); + + #region Implementation of IXMLCustomerReport + + public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + _ovc = modelData.VehicleData.Ocv; + Results = new XElement(Cif_0_9 + "Results"); + InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature, + modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash)); + } + + public XDocument Report { get; protected set; } + + private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>(); + public void WriteResult(XMLDeclarationReport.ResultEntry resultValue) + { + results.Add(resultValue); + + } + + public void GenerateReport(XElement resultSignature) + { + var retVal = new XDocument(new XElement(Cif + "VectoCustomerInformation", + new XAttribute(XNamespace.Xmlns + "xsi", xsi), + new XAttribute(XNamespace.Xmlns + "cif", Cif.NamespaceName), + new XAttribute(XNamespace.Xmlns + "cif0.9", Cif_0_9.NamespaceName), + new XAttribute("xmlns", Cif_0_9), + new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation", + $"{Cif.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputCustomer.xsd"), + + new XElement(Cif + XMLNames.Report_DataWrap, + new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"), + GetReportContents(resultSignature) + ) + ) + ); + + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(retVal); + writer.Flush(); + stream.Seek(0, SeekOrigin.Begin); + var h = VectoHash.Load(stream); + Report = h.AddHash(); + } + + protected virtual IList<XElement> GetReportContents(XElement resultSignature) + { + return new[] { + Vehicle, + InputDataIntegrity, + new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature), + Results, + XMLHelper.GetApplicationInfo(Cif_0_9) + }; + } + + #endregion + + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..6435bfe621cbedb293badd70008ba7fa38735fe4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs @@ -0,0 +1,425 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Ninject.Activation; +using Ninject.Extensions.ContextPreservation; +using Ninject.Extensions.Factory; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils.Ninject; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9 +{ + internal class CIFNinjectModule : MRFNinjectModule + { + #region Overrides of VectoNinjectModule + + public override void Load() + { + LoadModule<ContextPreservationModule>(); + Bind<ICustomerInformationFileFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider( + nameCombinationMethod, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory + .GetCustomerReport)))).InSingletonScope(); + + #region Lorry CIF + Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, false,true, false))); + + Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #region MediumLorryCIF + + Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, false, false, false))); + + Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod( + ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, false, true, false))); + + Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Van, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #endregion + + #endregion + + #region CompletedBUsCIF + + Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<HEV_Px_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<HEV_S2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<HEV_S3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<HEV_S4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + + Bind<IXMLCustomerReport>().To<HEV_IEPC_S_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_E4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLCustomerReport>().To<PEV_IEPC_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + #endregion + + #region VehicleTypes + Bind<IXmlTypeWriter>().To<CIFConventionalLorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalLorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEVPx_LorryVehicleWriter>().When(AccessedViaCIFFactory); + + Bind<IXmlTypeWriter>().To<CIF_HEVPx_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_PxLorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S2_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S2_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S3_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S3_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S4_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S4_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_IEPC_S_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IEPC_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E2_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E2_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E3_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E3_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E4_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E4_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_Exempted_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExempted_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_Conventional_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventional_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_Px_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Px_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_IHPC_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IHPC_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S2_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S2_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S3_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S3_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_S4_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S4_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_HEV_IEPC_S_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IEPC_S_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E2_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E2_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E3_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E3_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_E4_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E4_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_CompletedBusVehicleType()); + + Bind<IXmlTypeWriter>().To<CIF_ExemptedCompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleType()); + #endregion + + #region VehicleGroups + Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetGeneralVehicleSequenceGroupWriter()); + Bind<IReportCompletedBusOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetGeneralVehicleSequenceGroupWriterCompletedBus()); + + Bind<IReportOutputGroup>().To<LorryGeneralVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetLorryGeneralVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<ConventionalLorryVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalLorryVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<HEV_LorryVehicleTypeGroupCIF>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_LorryVehicleTypeGroup()); + Bind<IReportOutputGroup>().To<HEV_LorryVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_LorryVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<PEV_LorryVehicleTypeGroupCIF>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_LorryVehicleTypeGroup()); + Bind<IReportOutputGroup>().To<PEV_LorryVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_LorryVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<CompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetCompletedBusVehicleTypeGroup()); + Bind<IReportOutputGroup>().To<PEVCompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEVCompletedBusVehicleTypeGroup()); + Bind<IReportOutputGroup>().To<ExemptedCompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleTypeGroup()); + + Bind<IReportOutputGroup>().To<HEV_CompletedBusVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_CompletedBusVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<PEV_CompletedBusVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_CompletedBusVehicleSequenceGroupWriter()); + Bind<IReportOutputGroup>().To<ConventionalCompletedBusVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalCompletedBusVehicleSequenceGroupWriter()); + + #endregion + #region ComponentGroups + Bind<IReportOutputGroup>().To<EngineGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetEngineGroup()); + Bind<IReportOutputGroup>().To<TransmissionGroupWithGearbox>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroup()); + Bind<IReportOutputGroup>().To<TransmissionGroupWithoutGearbox>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroupNoGearbox()); + Bind<IReportOutputGroup>().To<IEPCTransmissionGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetIEPCTransmissionGroup()); + Bind<IReportOutputGroup>().To<AxleWheelsGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetAxleWheelsGroup()); + Bind<IReportOutputGroup>().To<ElectricMachineGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetElectricMachineGroup()); + Bind<IReportOutputGroup>().To<REESSGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetREESSGroup()); + Bind<IReportOutputGroup>().To<LorryAuxGroup>().When(AccessedViaCIFFactory). + NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetLorryAuxGroup()); + Bind<IReportOutputGroup>().To<ConventionalCompletedBusAuxGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalCompletedBusAuxGroup()); + Bind<IReportOutputGroup>().To<HEV_Px_IHPCompletedBusAuxGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Px_IHPC_CompletedBusAuxGroup()); + Bind<IReportOutputGroup>().To<HEV_Sx_CompletedBusAuxGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Sx_CompletedBusAuxGroup()); + Bind<IReportOutputGroup>().To<PEVCompletedBusAuxGroup>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_CompletedBusAuxGroup()); + + + #endregion + + #region ADAS + Bind<ICIFAdasType>().To<CIFConventionalAdasType>() + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalADASType()); + Bind<ICIFAdasType>().To<CIFHevAdasType>() + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEVADASType()); + Bind<ICIFAdasType>().To<CIFPevAdasType>() + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEVADASType()); + + #endregion ADAS + + + } + + private bool AccessedViaCIFFactory(IRequest request) + { + if (request.ParentRequest == null) { + return false; + } + return typeof(ICustomerInformationFileFactory).IsAssignableFrom(request.ParentRequest.Service); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..5f5ce5e906a320ad773578b46e929541cc7d6d15 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter +{ + public abstract class AbstractCIFGroupWriter : IReportOutputGroup + { + //protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"; + protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"; + protected readonly ICustomerInformationFileFactory _cifFactory; + + protected AbstractCIFGroupWriter(ICustomerInformationFileFactory cifFactory) + { + _cifFactory = cifFactory; + } + + #region Implementation of IMRFGroupWriter + + public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData); + + #endregion + + protected virtual IVehicleDeclarationInputData GetVehicle(IDeclarationInputDataProvider inputData) + { + if (inputData is IMultistepBusInputDataProvider multistep) { + return multistep.JobInputData.PrimaryVehicle.Vehicle; + } else { + return inputData.JobInputData.Vehicle; + } + } + } + + public abstract class AbstractCifXmlType + { + protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"; + protected readonly ICustomerInformationFileFactory _cifFactory; + + protected AbstractCifXmlType(ICustomerInformationFileFactory cifFactory) + { + _cifFactory = cifFactory; + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs new file mode 100644 index 0000000000000000000000000000000000000000..144fb1f962f77dc83ad0a8e8463d6f0322131335 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs @@ -0,0 +1,69 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public interface ICIFAdasType + { + XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas); + } + + internal class CIFConventionalAdasType : AbstractCifXmlType, ICIFAdasType + { + public CIFConventionalAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFComponentWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_cif + XMLNames.Vehicle_ADAS, + new XElement(_cif + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart), + new XElement(_cif + "EcoRollWithoutEngineStopStart", + inputData.EcoRoll == EcoRollType.WithoutEngineStop), + new XElement(_cif + "EcoRollWithEngineStopStart", + inputData.EcoRoll == EcoRollType.WithEngineStop), + new XElement(_cif + XMLNames.Vehicle_ADAS_PCC, + inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)); + } + + #endregion + + + } + + internal class CIFHevAdasType : AbstractCifXmlType, ICIFAdasType + { + public CIFHevAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_cif + XMLNames.Vehicle_ADAS, + new XElement(_cif + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart), + new XElement(_cif + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None) + ); + } + + #endregion + } + + internal class CIFPevAdasType : AbstractCifXmlType, ICIFAdasType + { + public CIFPevAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_cif + XMLNames.Vehicle_ADAS, + new XElement(_cif + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None) + ); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs new file mode 100644 index 0000000000000000000000000000000000000000..d2d0ac0c483eaeda79ff69bf322c84b9ca00d8fc --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs @@ -0,0 +1,404 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter +{ + public class EngineGroup : AbstractCIFGroupWriter + { + public EngineGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = GetVehicle(inputData); + var engine = vehicle.Components.EngineInputData; + + var fuelTypesXElement = new XElement(_cif + XMLNames.Report_Vehicle_FuelTypes); + + var fuelTypes = new HashSet<FuelType>(); + foreach (var engineMode in engine.EngineModes) + { + foreach (var fuel in engineMode.Fuels) { + fuelTypes.Add(fuel.FuelType); + } + } + var sortedFuels = fuelTypes.ToList(); + sortedFuels.Sort((fuelType1, fuelType2) => fuelType1.CompareTo(fuelType2)); + + sortedFuels.ForEach(type => fuelTypesXElement.Add(new XElement(_cif + XMLNames.Engine_FuelType, type.ToXMLFormat()))); + + return new List<XElement>() { + new XElement(_cif + "EngineRatedPower", engine.RatedPowerDeclared.ValueAsUnit("kW")), + new XElement(_cif + "EngineCapacity", engine.Displacement.ValueAsUnit("ltr", 1)), + fuelTypesXElement + }; + } + + #endregion + } + + + public class TransmissionGroupWithGearbox : AbstractCIFGroupWriter + { + public TransmissionGroupWithGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = GetVehicle(inputData); + var gearbox = vehicle.Components.GearboxInputData; + + return new List<XElement>() { + new XElement(_cif + "TransmissionValues", gearbox.CertificationMethod.ToXMLFormat()), + new XElement(_cif + XMLNames.Gearbox_TransmissionType, gearbox.Type.ToXMLFormat()), + new XElement(_cif + "NrOfGears", gearbox.Gears.Count) + }; + } + + #endregion + } + + public class TransmissionGroupWithoutGearbox : AbstractCIFGroupWriter + { + public TransmissionGroupWithoutGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + //var vehicle = GetVehicle(inputData); + //var gearbox = vehicle.Components.GearboxInputData; + return new List<XElement>() { + new XElement(_cif + "NrOfGears", 1) + }; + } + + #endregion + } + + public class IEPCTransmissionGroup : AbstractCIFGroupWriter + { + public IEPCTransmissionGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = GetVehicle(inputData); + var iepc = vehicle.Components.IEPC; + + return new List<XElement>() { + new XElement(_cif + "NrOfGears", iepc.Gears.Count) + }; + } + + #endregion + } + + public class AxleWheelsGroup : AbstractCIFGroupWriter + { + public AxleWheelsGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = GetVehicle(inputData); + var axleWheels = vehicle.Components.AxleWheels; + double averageRRC = 0; + var result = new List<XElement>(); + int axleCount = 0; + + foreach (var axle in axleWheels.AxlesDeclaration) { + averageRRC += axle.Tyre.RollResistanceCoefficient; + result.Add(new XElement(_cif + XMLNames.AxleWheels_Axles_Axle, + new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, ++axleCount), + new XElement(_cif + XMLNames.Report_Tyre_TyreDimension, axle.Tyre.Dimension), + new XElement(_cif + "FuelEfficiencyClass", axle.Tyre.FuelEfficiencyClass), + new XElement(_cif + XMLNames.Report_Tyre_TyreCertificationNumber, axle.Tyre.CertificationNumber))); + } + averageRRC /= axleWheels.AxlesDeclaration.Count; + result.Insert(0, new XElement(_cif + "AverageRRC", averageRRC.ToXMLFormat(4))); + + + return result; + } + + #endregion + } + + public class LorryAuxGroup : AbstractCIFGroupWriter + { + public LorryAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + return new List<XElement>() { + new XElement(_cif + "SteeringPumpTechnology", + inputData.JobInputData.Vehicle.Components.AuxiliaryInputData.Auxiliaries + .Single(aux => aux.Type == AuxiliaryType.SteeringPump).Technology.Join()) + }; + } + + #endregion + } + + public class ElectricMachineGroup : AbstractCIFGroupWriter + { + public ElectricMachineGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + Watt totalRatedPropulsionPower = null; + IList<IElectricMotorVoltageLevel> voltageLevels = null; + var vehicle = GetVehicle(inputData); + if (vehicle.ArchitectureID == ArchitectureID.S_IEPC || vehicle.ArchitectureID == ArchitectureID.E_IEPC) { + totalRatedPropulsionPower = vehicle.Components.IEPC.R85RatedPower; + voltageLevels = vehicle.Components.IEPC.VoltageLevels.ToList(); + + } else { + voltageLevels = new List<IElectricMotorVoltageLevel>(); + var propulsionElectricMachines = vehicle.Components.ElectricMachines.Entries + .Where(e => e.Position != PowertrainPosition.GEN); + totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower * e.Count)); + var groupedVoltageLevels = propulsionElectricMachines + .SelectMany(electricMachine => electricMachine.ElectricMachine.VoltageLevels).GroupBy((level => level.VoltageLevel)); + foreach (IGrouping<Volt, IElectricMotorVoltageLevel> electricMotorVoltageLevels in groupedVoltageLevels) { + voltageLevels.Add(electricMotorVoltageLevels.MaxBy(level => level.ContinuousTorqueSpeed * level.ContinuousTorque)); + } + } + + result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW", 0))); + + var voltageLevelsXElement = new XElement(_cif + "VoltageLevels"); + result.Add(voltageLevelsXElement); + + foreach (var electricMotorVoltageLevel in voltageLevels) { + var voltageLevel = new XElement(_cif + XMLNames.ElectricMachine_VoltageLevel, + voltageLevels.Count > 1 + ? new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)) + : null, + new XElement(_cif + "MaxContinuousPropulsionPower", + (electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed) + .ValueAsUnit("kW", 0))); + + voltageLevelsXElement.Add(voltageLevel); + } + + + return result; + } + + #endregion + } + + public class REESSGroup : AbstractCIFGroupWriter + { + public REESSGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = GetVehicle(inputData); + var reess = vehicle.Components.ElectricStorage; + var batteries = reess.ElectricStorageElements + .Where(es => es.REESSPack.StorageType == REESSType.Battery) + .Select(es => es.REESSPack as IBatteryPackDeclarationInputData).ToArray(); + var capacitors = reess.ElectricStorageElements.Where(es => es.REESSPack.StorageType == REESSType.SuperCap) + .Select(es => es.REESSPack as ISuperCapDeclarationInputData).ToArray(); + + var totalStorageCapacity = + (batteries.Length > 0 ? batteries.Sum(bp => bp.TotalStorageCapacity()) : 0.SI<WattSecond>()) + + (capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<WattSecond>()); + var totalUsableCapacity = (batteries.Length > 0 + ? batteries.Sum(bp => bp.TotalUsableCapacityInSimulation()) + : 0.SI<WattSecond>()) + + (capacitors.Length > 0 + ? capacitors.Sum(cap => GetTotalUsableCapacityInSimulation(cap)) + : 0.SI<WattSecond>()); + + return new List<XElement>() { + new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("kWh", 0)), + new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0)) + }; + } + + private WattSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap) + { + return GetStorageCapacity(cap) * 0.8; + } + + private WattSecond GetStorageCapacity(ISuperCapDeclarationInputData cap) + { + var voltageRange = cap.MaxVoltage - cap.MinVoltage; + //var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0; + return cap.Capacity * voltageRange * voltageRange / 2.0; + } + + #endregion + } + + public class ConventionalCompletedBusAuxGroup : AbstractCIFGroupWriter + { + public ConventionalCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multistage = inputData as IMultistepBusInputDataProvider; + if (multistage == null) { + throw new VectoException("BusAuxGroupWriter requires MultistepInputData"); + } + + var completedBusAux = multistage.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries; + var primaryBusAux = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.BusAuxiliaries; + var retVal = new List<XElement>(); + retVal.Add(new XElement(_cif + XMLNames.BusAux_SteeringPump, GetSteeringPumpTech(completedBusAux, primaryBusAux))); + retVal.Add(new XElement(_cif + XMLNames.BusAux_ElectricSystem, GetElectricSystem(completedBusAux, primaryBusAux))); + retVal.Add(new XElement(_cif + XMLNames.BusAux_PneumaticSystem, GetPneumaticSystem(completedBusAux, primaryBusAux))); + retVal.Add(new XElement(_cif + XMLNames.BusAux_HVAC, GetHVAC(completedBusAux, primaryBusAux))); + return retVal; + + } + + protected virtual IList<XElement> GetPneumaticSystem( + IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + return new[] { + new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, + primaryBusAux.PneumaticSupply.SmartAirCompression), + new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, + primaryBusAux.PneumaticSupply.SmartRegeneration) + }; + } + + protected virtual IList<XElement> GetElectricSystem( + IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + var retVal = new List<XElement>() { + new XElement(_cif + "AlternatorTechnology", primaryBusAux.ElectricSupply.AlternatorTechnology.ToXMLFormat()) + }; + if (primaryBusAux.ElectricSupply.AlternatorTechnology == AlternatorType.Smart) { + retVal.Add(new XElement(_cif + "MaxAlternatorPower", + primaryBusAux.ElectricSupply.Alternators.Sum(x => x.RatedCurrent * x.RatedVoltage).ValueAsUnit("kW", 0))); + retVal.Add(new XElement(_cif + "ElectricStorageCapacity", + primaryBusAux.ElectricSupply.ElectricStorage.Sum(x => x.ElectricStorageCapacity).ValueAsUnit("kWh", 0))); + } + + return retVal; + } + + protected virtual IList<XElement> GetSteeringPumpTech( + IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + return primaryBusAux.SteeringPumpTechnology.Select(x => new XElement(_cif + XMLNames.BusAux_Technology, x)) + .ToArray(); + } + + protected virtual IList<XElement> GetHVAC(IBusAuxiliariesDeclarationData completedBusAux, + IBusAuxiliariesDeclarationData primaryBusAux) + { + return new[] { + new XElement(_cif + XMLNames.Bus_SystemConfiguration, + completedBusAux.HVACAux.SystemConfiguration.ToXmlFormat()), + new XElement(_cif + "AuxiliaryHeaterPower", + completedBusAux.HVACAux.AuxHeaterPower.ValueAsUnit("kW", 0)), + new XElement(_cif + XMLNames.Bus_DoubleGlazing, completedBusAux.HVACAux.DoubleGlazing) + }; + } + + #endregion + } + + public class HEV_Px_IHPCompletedBusAuxGroup : ConventionalCompletedBusAuxGroup + { + public HEV_Px_IHPCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + } + + //public class HEV_Px_IHPCompleteHEV_Sx_CompletedBusAuxGroupdBusAuxGroup : ConventionalCompletedBusAuxGroup + //{ + // public HEV_Px_IHPCompleteHEV_Sx_CompletedBusAuxGroupdBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + //} + + public class HEV_Sx_CompletedBusAuxGroup : ConventionalCompletedBusAuxGroup + { + public HEV_Sx_CompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + protected override IList<XElement> GetPneumaticSystem( + IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + return new[] { + //new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, + // primaryBusAux.PneumaticSupply.SmartAirCompression), + new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, + primaryBusAux.PneumaticSupply.SmartRegeneration) + }; + } + } + + public class PEVCompletedBusAuxGroup : ConventionalCompletedBusAuxGroup + { + public PEVCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of ConventionalCompletedBusAuxGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multistage = inputData as IMultistepBusInputDataProvider; + if (multistage == null) { + throw new VectoException("BusAuxGroupWriter requires MultistepInputData"); + } + + var completedBusAux = multistage.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries; + var primaryBusAux = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.BusAuxiliaries; + var retVal = new List<XElement>(); + retVal.Add(new XElement(_cif + XMLNames.BusAux_SteeringPump, GetSteeringPumpTech(completedBusAux, primaryBusAux))); + //retVal.Add(new XElement(_cif + XMLNames.BusAux_ElectricSystem, GetElectricSystem(completedBusAux, primaryBusAux))); + retVal.Add(new XElement(_cif + XMLNames.BusAux_PneumaticSystem, GetPneumaticSystem(completedBusAux, primaryBusAux))); + retVal.Add(new XElement(_cif + XMLNames.BusAux_HVAC, GetHVAC(completedBusAux, primaryBusAux))); + return retVal; + + } + + protected override IList<XElement> GetElectricSystem(IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + return new XElement[] { }; + } + + protected override IList<XElement> GetPneumaticSystem( + IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux) + { + return new[] { + //new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, + // primaryBusAux.PneumaticSupply.SmartAirCompression), + new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, + primaryBusAux.PneumaticSupply.SmartRegeneration) + }; + } + + #endregion + } + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs new file mode 100644 index 0000000000000000000000000000000000000000..119a65fa87fd35049ec05668ab9c63d7934d3609 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs @@ -0,0 +1,448 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter +{ + public class GeneralVehicleOutputSequenceGroupCif : AbstractCIFGroupWriter, IReportVehicleOutputGroup, IReportCompletedBusOutputGroup + { + public GeneralVehicleOutputSequenceGroupCif(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + return GetElements(inputData.JobInputData.Vehicle); + } + + #endregion + + #region Implementation of IReportVehicleOutputGroup + + public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData) + { + var result = new List<XElement>() { + new XElement(_cif + XMLNames.Vehicle_VIN, vehicleData.VIN), + new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), + new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), + new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")), + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()), + new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()), + + }; + return result; + } + + #endregion + + #region Implementation of IReportCompletedBusOutputGroup + + public IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider) + { + var consolidatedVehicleData = multiStageInputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle; + var primary = multiStageInputDataProvider.JobInputData.PrimaryVehicle.Vehicle; + var result = new List<XElement>() { + new XElement(_cif + XMLNames.Vehicle_VIN, consolidatedVehicleData.VIN), + new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()), + new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()), + new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")), + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).GetClassNumber()), + new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()), + }; + return result; + } + + #endregion + } + + + public class LorryGeneralVehicleSequenceGroupCIF : AbstractCIFGroupWriter + { + public LorryGeneralVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var result = new List<XElement>() { + new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress), + new XElement(_cif + XMLNames.Component_Model, vehicleData.Model), + !vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty() + ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, vehicleData.VehicleTypeApprovalNumber) + : null, + //new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, !vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty() + // ? vehicleData.VehicleTypeApprovalNumber + // : null), + new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ValueAsUnit("kg")), + new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleData.VocationalVehicle), + new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV) + }; + return result; + } + + #endregion + } + + public class ConventionalLorryVehicleSequenceGroupCIF : AbstractCIFGroupWriter + { + public ConventionalLorryVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var dualFuel = vehicleData.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1); + return new List<XElement>() { + new XElement(_cif + "WasteHeatRecovery", + vehicleData.Components.EngineInputData.WHRType != WHRType.None), + new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel) + }; + } + + #endregion + } + + public class ConventionalCompletedBusVehicleSequenceGroupCIF : AbstractCIFGroupWriter + { + public ConventionalCompletedBusVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multistep = inputData as IMultistepBusInputDataProvider; + if (multistep == null) { + throw new VectoException("Completed Bus CIF requires bus input data"); + } + var vehicleData = multistep.JobInputData.PrimaryVehicle.Vehicle; + var dualFuel = vehicleData.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1); + return new List<XElement>() { + new XElement(_cif + "WasteHeatRecovery", + vehicleData.Components.EngineInputData.WHRType != WHRType.None), + new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel) + }; + } + + #endregion + } + + public class HEV_LorryVehicleTypeGroupCIF : AbstractCIFGroupWriter + { + public HEV_LorryVehicleTypeGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + result.AddRange(_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle)); + result.AddRange(_cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData)); + result.AddRange(_cifFactory.GetHEV_LorryVehicleSequenceGroupWriter().GetElements(inputData)); + + return result; + } + + #endregion + } + public class PEV_LorryVehicleTypeGroupCIF : AbstractCIFGroupWriter + { + public PEV_LorryVehicleTypeGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + result.AddRange(_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle)); + result.AddRange(_cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData)); + result.AddRange(_cifFactory.GetPEV_LorryVehicleSequenceGroupWriter().GetElements(inputData)); + + return result; + } + + #endregion + } + + + public class HEV_LorryVehicleSequenceGroupWriter : AbstractCIFGroupWriter + { + public HEV_LorryVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + var ovCc = inputData.JobInputData.Vehicle.OvcHev; + result.AddRange(_cifFactory.GetConventionalLorryVehicleSequenceGroupWriter().GetElements(inputData)); + var vehicleData = inputData.JobInputData.Vehicle; + var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC; + result.AddRange(new List<XElement>() { + new XElement(_cif + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : vehicleData.ArchitectureID.GetLabel()), + new XElement(_cif + "OffVehicleChargingCapability", ovCc) + }); + if (ovCc) { + result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1))); + } + return result; + } + + #endregion + } + + + public class PEV_LorryVehicleSequenceGroupWriter : AbstractCIFGroupWriter + { + public PEV_LorryVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + var vehicle = GetVehicle(inputData); + var ovCc = vehicle.OvcHev; + result.AddRange(new List<XElement>() { + new XElement(_cif + "PEVArchitecture", vehicle.ArchitectureID.GetLabel()), + new XElement(_cif + "OffVehicleChargingCapability", ovCc) + }); + return result; + } + + #endregion + } + + + public class HEV_CompletedBusVehicleSequenceGroupWriter : AbstractCIFGroupWriter + { + public HEV_CompletedBusVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multistep = inputData as IMultistepBusInputDataProvider; + if (multistep == null) { + throw new VectoException("Completed Bus CIF requires bus input data"); + } + var result = new List<XElement>(); + var ovCc = multistep.JobInputData.PrimaryVehicle.Vehicle.OvcHev; + //result.AddRange(_cifFactory.GetConventionalCompletedBusVehicleSequenceGroupWriter().GetElements(inputData)); + var vehicleData = multistep.JobInputData.PrimaryVehicle.Vehicle; + var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC; + result.AddRange(new List<XElement>() { + new XElement(_cif + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : multistep.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID.GetLabel()), + new XElement(_cif + "OffVehicleChargingCapability", ovCc) + }); + if (ovCc) { + result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", multistep.JobInputData.PrimaryVehicle.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1))); + } + return result; + } + + #endregion + } + + + public class PEV_CompletedBusVehicleSequenceGroupWriter : AbstractCIFGroupWriter + { + public PEV_CompletedBusVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multistep = inputData as IMultistepBusInputDataProvider; + if (multistep == null) { + throw new VectoException("Completed Bus CIF requires bus input data"); + } + var result = new List<XElement>(); + var ovCc = multistep.JobInputData.PrimaryVehicle.Vehicle.OvcHev; + result.AddRange(new List<XElement>() { + new XElement(_cif + "PEVArchitecture", multistep.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID.GetLabel()), + new XElement(_cif + "OffVehicleChargingCapability", ovCc) + }); + return result; + } + + #endregion + } + + public class CompletedBusVehicleTypeGroup : AbstractCIFGroupWriter + { + private XElement GetManufacturerAndAddress(string manufacturer, string manufacturerAddress, int stepCount) + { + return new XElement(_cif + "Step", + new XAttribute(XMLNames.ManufacturingStep_StepCount, stepCount), + new XElement(_cif + XMLNames.Component_Manufacturer, manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, manufacturerAddress)); + } + public CompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var completedBusData = inputData as IMultistepBusInputDataProvider; + if (completedBusData == null) { + throw new ArgumentException( + $"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}"); + } + var result = new List<XElement>(); + result.AddRange( + _cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData)); + result.Add(GetManufacturers(completedBusData)); + + + + var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle; + var dualFuel = completedBusData.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1); + + result.AddRange(new List<XElement>() { + new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model), + new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, consolidatedVehicle.HybridElectricHDV), + new XElement(_cif + "WasteHeatRecovery", completedBusData.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.WHRType != WHRType.None), + new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel), + new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()), + new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck + + consolidatedVehicle.NumberPassengerSeatsUpperDeck + + consolidatedVehicle.NumberPassengersStandingLowerDeck + + consolidatedVehicle.NumberPassengersStandingUpperDeck), + !consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null + }); + + return result; + } + + protected XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData) + { + var manufacturers = new XElement(_cif + "Manufacturers", + GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer, + completedBusData.JobInputData.PrimaryVehicle.Vehicle.ManufacturerAddress, 1)); + foreach (var step in completedBusData.JobInputData.ManufacturingStages) { + manufacturers.Add(GetManufacturerAndAddress(step.Vehicle.Manufacturer, step.Vehicle.ManufacturerAddress, + step.StepCount)); + } + + return manufacturers; + } + + #endregion + } + + public class PEVCompletedBusVehicleTypeGroup : AbstractCIFGroupWriter + { + private XElement GetManufacturerAndAddress(string manufacturer, string manufacturerAddress, int stepCount) + { + return new XElement(_cif + "Step", + new XAttribute(XMLNames.ManufacturingStep_StepCount, stepCount), + new XElement(_cif + XMLNames.Component_Manufacturer, manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, manufacturerAddress)); + } + public PEVCompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var completedBusData = inputData as IMultistepBusInputDataProvider; + if (completedBusData == null) { + throw new ArgumentException( + $"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}"); + } + var result = new List<XElement>(); + result.AddRange( + _cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData)); + result.Add(GetManufacturers(completedBusData)); + + + + var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle; + result.AddRange(new List<XElement>() { + new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model), + new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, consolidatedVehicle.HybridElectricHDV), + new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()), + new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck + + consolidatedVehicle.NumberPassengerSeatsUpperDeck + + consolidatedVehicle.NumberPassengersStandingLowerDeck + + consolidatedVehicle.NumberPassengersStandingUpperDeck), + !consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null + }); + + return result; + } + + private XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData) + { + var manufacturers = new XElement(_cif + "Manufacturers", + GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer, + completedBusData.JobInputData.PrimaryVehicle.Vehicle.ManufacturerAddress, 1)); + foreach (var step in completedBusData.JobInputData.ManufacturingStages) { + manufacturers.Add(GetManufacturerAndAddress(step.Vehicle.Manufacturer, step.Vehicle.ManufacturerAddress, + step.StepCount)); + } + + return manufacturers; + } + + #endregion + } + + + public class ExemptedCompletedBusVehicleTypeGroup : CompletedBusVehicleTypeGroup + { + public ExemptedCompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var completedBusData = inputData as IMultistepBusInputDataProvider; + if (completedBusData == null) { + throw new ArgumentException( + $"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}"); + } + var result = new List<XElement>(); + result.AddRange( + _cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData)); + result.Add(GetManufacturers(completedBusData)); + + + + var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle; + result.AddRange(new List<XElement>() { + new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model), + new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()), + new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck + + consolidatedVehicle.NumberPassengerSeatsUpperDeck + + consolidatedVehicle.NumberPassengersStandingLowerDeck + + consolidatedVehicle.NumberPassengersStandingUpperDeck), + !consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null + }); + + return result; + } + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..9cdd1052abf33c4ee387bf759cff64bfd1a398a6 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs @@ -0,0 +1,665 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter +{ + public abstract class VehicleWriter : IXmlTypeWriter + { + protected readonly ICustomerInformationFileFactory _cifFactory; + //protected readonly IManufacturerReportFactory _mrfFactory; + protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + public VehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) + { + _cifFactory = cifFactory; + //_mrfFactory = mrfFactory; + } + + + #region Implementation of IXmlTypeWriter + + public abstract XElement GetElement(IDeclarationInputDataProvider inputData); + + #endregion + + + protected XElement GetRetarder(IDeclarationInputDataProvider inputData) + { + IRetarderInputData retarder; + if (inputData is IMultistepBusInputDataProvider multistage) { + retarder = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.RetarderInputData; + } else { + retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData; + } + return new XElement(_cif + XMLNames.Component_Retarder, + retarder.Type != RetarderType.None); + } + + protected XElement GetAxleRatio(IDeclarationInputDataProvider inputData, bool optional = false) + { + IAxleGearInputData axlegear; + if (inputData is IMultistepBusInputDataProvider multistage) { + axlegear = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.AxleGearInputData; + } else { + axlegear = inputData.JobInputData.Vehicle.Components.AxleGearInputData; + } + if (!optional || (axlegear != null)) { + return new XElement(_cif + "AxleRatio", axlegear.Ratio.ToXMLFormat(3)); + } else { + return null; + } + + } + + } + + + public class CIFConventionalLorryVehicleWriter : VehicleWriter + { + public CIFConventionalLorryVehicleWriter(ICustomerInformationFileFactory cifFactory, + IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) + { + + } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle), + _cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetConventionalLorryVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + + + + } + + #endregion + } + + public class CIF_HEVPx_LorryVehicleWriter : VehicleWriter + { + public CIF_HEVPx_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_S2_LorryVehicleWriter : VehicleWriter + { + public CIF_HEV_S2_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_S3_LorryVehicleWriter : VehicleWriter + { + public CIF_HEV_S3_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_S4_LorryVehicleWriter : VehicleWriter + { + public CIF_HEV_S4_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_IEPC_S_LorryVehicleWriter : VehicleWriter + { + public CIF_HEV_IEPC_S_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData, true), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E2_LorryVehicleWriter : VehicleWriter + { + public CIF_PEV_E2_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E3_LorryVehicleWriter : VehicleWriter + { + public CIF_PEV_E3_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E4_LorryVehicleWriter : VehicleWriter + { + public CIF_PEV_E4_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_IEPC_LorryVehicleWriter : VehicleWriter + { + public CIF_PEV_IEPC_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData, true), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetLorryAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_Exempted_LorryVehicleWriter : VehicleWriter + { + public CIF_Exempted_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + return new XElement(_cif + XMLNames.Component_Vehicle, + + new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress), + new XElement(_cif + XMLNames.Component_Model, vehicleData.Model), + _cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(vehicleData), + + new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ToXMLFormat(0)), + new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), + new XElement(_cif + "VehicleTechnologyExempted", vehicleData.ExemptedTechnology) + ); + } + + #endregion + } + + public class CIF_Conventional_CompletedBusVehicleWriter : VehicleWriter + { + public CIF_Conventional_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "Conventional_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetConventionalADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetConventionalCompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_Px_CompletedBusVehicleWriter : VehicleWriter + { + public CIF_HEV_Px_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV_Px_IHPC_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetHEV_Px_IHPC_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_IHPC_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_HEV_IHPC_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + } + + public class CIF_HEV_S2_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_HEV_S2_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV_S2_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_S3_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_HEV_S3_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV_S3_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_S4_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_HEV_S4_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_HEV_IEPC_S_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_HEV_IEPC_S_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"), + _cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E2_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_PEV_E2_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_E2_CompletedBusVehicleType"), + _cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E3_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_PEV_E3_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_E3_CompletedBusVehicleType"), + _cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_E4_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_PEV_E4_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_E4_CompletedBusVehicleType"), + _cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), + //GetRetarder(inputData), + //GetAxleRatio(inputData), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + public class CIF_PEV_IEPC_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter + { + public CIF_PEV_IEPC_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_IEPC_CompletedBusVehicleType"), + _cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData), + _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + _cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData) + .JobInputData + .ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), + //_cifFactory.GetEngineGroup().GetElements(inputData), + _cifFactory.GetElectricMachineGroup().GetElements(inputData), + _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetIEPCTransmissionGroup().GetElements(inputData), + GetRetarder(inputData), + GetAxleRatio(inputData, true), + _cifFactory.GetAxleWheelsGroup().GetElements(inputData), + + _cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData) + ); + } + + #endregion + } + + + public class CIF_ExemptedCompletedBusVehicleWriter : VehicleWriter + { + public CIF_ExemptedCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetExemptedCompletedBusVehicleTypeGroup().GetElements(inputData) + //_cifFactory.GetConveCompletedBusVehicleSequenceGroupWriter().GetElements(inputData), + ); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs new file mode 100644 index 0000000000000000000000000000000000000000..e01d3d70a410e1defd8902b7f3ab6245fe5c09d4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs @@ -0,0 +1,416 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile +{ + public abstract class CustomerInformationFile : AbstractCustomerReport + { + public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"); + + protected CustomerInformationFile(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + } + + #region LorryCIF + public class ConventionalLorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_ConventionalLorryOutputType; + public ConventionalLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetConventionalLorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class HEV_PxLorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_Px_LorryOutputType; + public HEV_PxLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_PxLorryVehicleType().GetElement(inputData); + } + #endregion + } + + public class HEV_S2_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S2_LorryOutputType; + public HEV_S2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class HEV_S3_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S3_LorryOutputType; + public HEV_S3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class HEV_S4_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S4_LorryOutputType; + public HEV_S4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class HEV_IEPC_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_IEPC_S_LorryOutputType; + public HEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_IEPC_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class PEV_E2_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E2_LorryOutputType; + public PEV_E2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class PEV_E3_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E3_LorryOutputType; + public PEV_E3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + public class PEV_E4_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E4_LorryOutputType; + public PEV_E4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData); + + } + + #endregion + } + + + + public class PEV_IEPC_Lorry_CIF : CustomerInformationFile + { + public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType; + public PEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + + public class Exempted_Lorry_CIF : CustomerInformationFile + { + public Exempted_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_LorryOutputType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + #endregion + + + #region CompletedBus + + public abstract class CustomerInformationFileCompletedBus : CustomerInformationFile + { + protected XElement InputDataIntegrityPrimaryVehicle { get; set; } + + protected XElement ManufacturerReportIntegrityPrimaryVehicle { get; set; } + + protected CustomerInformationFileCompletedBus(ICustomerInformationFileFactory cifFactory) : + base(cifFactory) { } + + public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + _ovc = modelData.VehicleData.Ocv; + + var inputData = modelData.InputData as IMultistepBusInputDataProvider; + if (inputData == null) { + throw new VectoException("CompletedBus CustomerInformationFile requires MultistepBusInputData"); + } + Results = new XElement(Cif_0_9 + "Results"); + InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature, + inputData.JobInputData.ConsolidateManufacturingStage.Signature == null + ? XMLHelper.CreateDummySig(_di) + : inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di)); + //new XElement()); + InputDataIntegrityPrimaryVehicle = new XElement(Cif_0_9 + "InputDataSignaturePrimaryVehicle", + inputData.JobInputData.PrimaryVehicle.PrimaryVehicleInputDataHash.ToXML(_di)); + ManufacturerReportIntegrityPrimaryVehicle = + new XElement(Cif_0_9 + "ManufacturerRecordSignaturePrimaryVehicle", inputData.JobInputData.PrimaryVehicle.ManufacturerRecordHash.ToXML(_di)); + } + + protected override IList<XElement> GetReportContents(XElement resultSignature) + { + return new[] { + Vehicle, + InputDataIntegrityPrimaryVehicle, + ManufacturerReportIntegrityPrimaryVehicle, + InputDataIntegrity, + new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature), + Results, + XMLHelper.GetApplicationInfo(Cif_0_9) + }; + } + } + + public class Conventional_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "Conventional_CompletedBusOutputType"; + + public Conventional_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_Px_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_Px_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_Px_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_IHPC_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_IHPC_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_IHPC_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_S2_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_S2_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S2_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_S3_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_S3_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S3_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_S4_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_S4_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_S4_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class HEV_IEPC_S_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "HEV_CompletedBusOutputType"; + + public HEV_IEPC_S_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetHEV_IEPC_S_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class PEV_E2_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "PEV_CompletedBusOutputType"; + + public PEV_E2_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E2_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class PEV_E3_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "PEV_CompletedBusOutputType"; + + public PEV_E3_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E3_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class PEV_E4_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "PEV_CompletedBusOutputType"; + + public PEV_E4_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_E4_CompletedBusVehicleType().GetElement(inputData); + } + } + + public class PEV_IEPC_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public override string OutputDataType => "PEV_CompletedBusOutputType"; + + public PEV_IEPC_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) + { + } + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetPEV_IEPC_CompletedBusVehicleType().GetElement(inputData); + } + } + + + public class Exempted_CompletedBusCIF : CustomerInformationFileCompletedBus + { + public Exempted_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_CompletedBusOutputType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExemptedCompletedBusVehicleType().GetElement(inputData); + } + + #endregion + } + + #endregion +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..58816ff398eac6a9a42c5dc5c9d0c94ed1f2d610 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9 +{ + public interface ICustomerInformationFileFactory + { + IXMLCustomerReport GetCustomerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + + IXmlTypeWriter GetConventionalLorryVehicleType(); + IXmlTypeWriter GetHEV_PxLorryVehicleType(); + IXmlTypeWriter GetHEV_S2_LorryVehicleType(); + IXmlTypeWriter GetHEV_S3_LorryVehicleType(); + IXmlTypeWriter GetHEV_S4_LorryVehicleType(); + IXmlTypeWriter GetHEV_IEPC_LorryVehicleType(); + + IXmlTypeWriter GetPEV_E2_LorryVehicleType(); + IXmlTypeWriter GetPEV_E3_LorryVehicleType(); + IXmlTypeWriter GetPEV_E4_LorryVehicleType(); + IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + + IXmlTypeWriter GetExempted_LorryVehicleType(); + + IXmlTypeWriter GetConventional_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_Px_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_IHPC_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_S2_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_S3_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_S4_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_IEPC_S_CompletedBusVehicleType(); + + IXmlTypeWriter GetPEV_E2_CompletedBusVehicleType(); + IXmlTypeWriter GetPEV_E3_CompletedBusVehicleType(); + IXmlTypeWriter GetPEV_E4_CompletedBusVehicleType(); + IXmlTypeWriter GetPEV_IEPC_CompletedBusVehicleType(); + + + //IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + + IXmlTypeWriter GetExemptedCompletedBusVehicleType(); + + + IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter(); + IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter(); + IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter(); + IReportOutputGroup GetConventionalCompletedBusVehicleSequenceGroupWriter(); + IReportOutputGroup GetEngineGroup(); + IReportOutputGroup GetTransmissionGroup(); + IReportOutputGroup GetTransmissionGroupNoGearbox(); + IReportOutputGroup GetAxleWheelsGroup(); + IReportOutputGroup GetLorryAuxGroup(); + IReportOutputGroup GetConventionalCompletedBusAuxGroup(); + IReportOutputGroup GetHEV_Px_IHPC_CompletedBusAuxGroup(); + IReportOutputGroup GetHEV_Sx_CompletedBusAuxGroup(); + IReportOutputGroup GetPEV_CompletedBusAuxGroup(); + + IReportOutputGroup GetHEV_LorryVehicleSequenceGroupWriter(); + IReportOutputGroup GetHEV_CompletedBusVehicleSequenceGroupWriter(); + IReportOutputGroup GetHEV_LorryVehicleTypeGroup(); + IReportOutputGroup GetElectricMachineGroup(); + IReportOutputGroup GetREESSGroup(); + IReportOutputGroup GetPEV_LorryVehicleTypeGroup(); + + IReportOutputGroup GetPEV_LorryVehicleSequenceGroupWriter(); + IReportOutputGroup GetPEV_CompletedBusVehicleSequenceGroupWriter(); + IReportOutputGroup GetCompletedBusVehicleTypeGroup(); + IReportOutputGroup GetExemptedCompletedBusVehicleTypeGroup(); + IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus(); + + + ICIFAdasType GetConventionalADASType(); + ICIFAdasType GetHEVADASType(); + ICIFAdasType GetPEVADASType(); + //IReportOutputGroup GetHEV_VehicleSequenceGroup(); + IReportOutputGroup GetPEVCompletedBusVehicleTypeGroup(); + IReportOutputGroup GetIEPCTransmissionGroup(); + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs index 9d5c5a935cab08a8b8162f4d37539cc080a9da7e..38ff22b18cceb85d1502bdb45d7eb451edd20545 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs @@ -49,6 +49,7 @@ using TUGraz.VectoHashing; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile { + public class XMLCustomerReport : IXMLCustomerReport { public const string CURRENT_SCHEMA_VERSION = "0.8"; @@ -99,12 +100,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation ); if (exempted) { - VehiclePart.Add(new XAttribute(xsi + "type", "ExemptedVehicleType"), + VehiclePart.Add(new XAttribute(xsi + XMLNames.XSIType, "ExemptedVehicleType"), ExemptedData(modelData)); Results.Add(new XElement(tns + XMLNames.Report_ExemptedVehicle)); } else { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleType"), new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), @@ -204,7 +205,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation return new XElement(tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "error"), - new XAttribute(xsi + "type", "ResultErrorType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"), new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()), content); } @@ -214,7 +215,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation return new XElement( tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "success"), - new XAttribute(xsi + "type", "ResultSuccessType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"), new XElement(tns + XMLNames.Report_Result_Mission, result.Mission.ToXMLFormat()), new XElement(tns + XMLNames.Report_ResultEntry_TotalVehicleMass, XMLHelper.ValueAsUnit(result.TotalVehicleMass, XMLNames.Unit_kg)), @@ -275,7 +276,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XAttribute(xsi + "schemaLocation", $"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}DEV/VectoOutputCustomer.xsd"), new XElement(rootNS + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "VectoOutputDataType"), + new XAttribute(xsi + XMLNames.XSIType, "VectoOutputDataType"), vehicle, new XElement(tns + XMLNames.Report_ResultData_Signature, resultSignature), results, diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs index 4c65a69830f2860cc6c764b01ceeb38f1c2277b7..c604214d7c580f3e8e3ba213a9e1443b9748fe88 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation { _tankSystem = modelData.VehicleData.InputData.TankSystem; VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleCompletedBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedBusType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement( tns + "PrimaryVehicle", @@ -118,7 +118,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation return new XElement( tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "error"), - new XAttribute(xsi + "type", "ResultErrorType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"), new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()), GetSimulationParameters(specificResult, primaryResult), content); @@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation return new XElement( tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "success"), - new XAttribute(xsi + "type", "ResultSuccessType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"), new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()), //new XElement(tns + XMLNames.Report_ResultEntry_Distance, XMLHelper.ValueAsUnit(specificResult.Distance, XMLNames.Unit_km, 3)), GetSimulationParameters(specificResult, primaryResult), @@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation XMLHelper.ValueAsUnit(result.TotalVehicleMass, XMLNames.Unit_kg)), new XElement(tns + XMLNames.Report_Result_MassPassengers, XMLHelper.ValueAsUnit(result.Payload, XMLNames.Unit_kg)), result.PassengerCount.HasValue && result.PassengerCount.Value > 0 ? new XElement(tns + XMLNames.Report_Result_PassengerCount, result.PassengerCount.Value.ToMinSignificantDigits(3, 1)) : null, - new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode) + //new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode) }; } @@ -288,7 +288,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XAttribute(xsi + "schemaLocation", $"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}DEV/VectoOutputCustomer.xsd"), new XElement(rootNS + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "VectoOutputDataType"), + new XAttribute(xsi + XMLNames.XSIType, "VectoOutputDataType"), vehicle, new XElement(tns + XMLNames.Report_ResultData_Signature, resultSignature), results, diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs index 0fdb84069614a29c9a09359acde0ea9d379381b4..89ed7fe8871935c4a4ee0b0d6fbc1a16846f07d3 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs @@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleCompletedExemptedBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedExemptedBusType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement( tns + "PrimaryVehicle", diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs index a2882b7a4367511435d51782312effc9de893846..9ad7ca0bf5f4f104cd915e24927c68fa07ca8da3 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs @@ -42,6 +42,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport public virtual XDocument Report { get; protected set; } + + public void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + public abstract void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes); public virtual void GenerateReport() @@ -71,7 +77,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport $"{mrf} {AbstractXMLWriter.SchemaLocationBaseUrl}/DEV/VectoOutputManufacturer.xsd"), new XElement( mrf + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "tns:VectoOutputDataType"), + new XAttribute(xsi + XMLNames.XSIType, "tns:VectoOutputDataType"), vehicle, results, GetApplicationInfo()) @@ -138,7 +144,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport tns + XMLNames.Report_Result_Result, new XAttribute( XMLNames.Report_Result_Status_Attr, "error"), - new XAttribute(xsi + "type", "ResultErrorType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"), new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()), content); } @@ -149,7 +155,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport tns + XMLNames.Report_Result_Result, new XAttribute( XMLNames.Report_Result_Status_Attr, "success"), - new XAttribute(xsi + "type", "ResultSuccessType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"), new XElement(tns + XMLNames.Report_Result_Mission, result.Mission.ToXMLFormat()), new XElement( tns + XMLNames.Report_ResultEntry_Distance, new XAttribute(XMLNames.Report_Results_Unit_Attr, XMLNames.Unit_km), @@ -252,7 +258,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Vehicle_ADAS, new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName), - new XAttribute(xsi + "type", $"{adasPrefix}:{type}"), + new XAttribute(xsi + XMLNames.XSIType, $"{adasPrefix}:{type}"), XElement.Parse(adasData.InputData.XMLSource.OuterXml).Elements() ); } @@ -266,7 +272,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Vehicle_ADAS, new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName), - new XAttribute(xsi + "type", $"{adasPrefix}:{type}"), + new XAttribute(xsi + XMLNames.XSIType, $"{adasPrefix}:{type}"), new XElement(ns + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart), new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()), new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs index 7bc13048203c9b0ff9e7fdfcb92f36b5b4a96ef3..9a62c0353a6873e8ea48ba0b9072aeffbbb46de9 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; @@ -7,6 +8,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport { public interface IXMLManufacturerReport { + void InitializeVehicleData(IDeclarationInputDataProvider inputData); void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes); XDocument Report { get; } void WriteResult(XMLDeclarationReport.ResultEntry resultValue); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..d23eac2738f725808b09f54d7b3d2222ed2964db --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9 +{ + public abstract class AbstractManufacturerReport : IXMLManufacturerReport + { + protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput"); + + public static XNamespace Mrf_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); + public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"); + + + protected readonly IManufacturerReportFactory _mRFReportFactory; + + protected bool _ovc = false; + + protected XElement Results { get; set; } + protected XElement Vehicle { get; set; } + + protected XElement InputDataIntegrity { get; set; } + + protected XElement Signature { get; set; } + + public abstract string OutputDataType { get; } //also used as name for the mockup result element + + protected AbstractManufacturerReport(IManufacturerReportFactory MRFReportFactory) + { + _mRFReportFactory = MRFReportFactory; + + // MQ: write dummy result element for testcases (2022-07-13) + Results = new XElement(Mrf_0_9 + "Results", + new XElement(Mrf_0_9 + "Status", "success"), + new XElement(Mrf_0_9 + "ExemptedVehicle")); + } + + #region Implementation of IXMLManufacturerReport + + public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData); + + public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + _ovc = modelData.VehicleData.Ocv; + + Results = new XElement(Mrf_0_9 + XMLNames.Report_Results); + InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature, + modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash)); + } + + public XDocument Report { get; protected set; } + + private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>(); + + public void WriteResult(XMLDeclarationReport.ResultEntry resultValue) + { + + + } + + + public void GenerateReport() + { + var retVal = new XDocument(new XElement(Mrf + "VectoOutput", + new XAttribute(XNamespace.Xmlns + "xsi", xsi), + new XAttribute(XNamespace.Xmlns + "mrf", Mrf), + new XAttribute(XNamespace.Xmlns + "mrf0.9", Mrf_0_9), + new XAttribute("xmlns", Mrf_0_9), + new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation", + $"{Mrf.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputManufacturer.xsd"), + + new XElement(Mrf + XMLNames.Report_DataWrap, + new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"), + GetContents() + ) + ) + ); + + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(retVal); + writer.Flush(); + stream.Seek(0, SeekOrigin.Begin); + var h = VectoHash.Load(stream); + Report = h.AddHash(); + } + + protected virtual IList<XElement> GetContents() + { + return new[] { + Vehicle, + InputDataIntegrity, + Results, + XMLHelper.GetApplicationInfo(Mrf_0_9) + }; + } + + #endregion + + } + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..b6169310666f5de9aa58145d2aba265c0563ec64 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs @@ -0,0 +1,156 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public interface IManufacturerReportFactory + { + IXMLManufacturerReport GetConventionalLorryManufacturerReport(); + + IXMLManufacturerReport GetManufacturerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + + IXmlTypeWriter GetConventionalLorryVehicleType(); + IXmlTypeWriter GetHEV_Px_IHCP_LorryVehicleType(); + IXmlTypeWriter GetHEV_S2_LorryVehicleType(); + IXmlTypeWriter GetHEV_S3_LorryVehicleType(); + IXmlTypeWriter GetHEV_S4_LorryVehicleType(); + IXmlTypeWriter GetHEV_IEPC_S_LorryVehicleType(); + IXmlTypeWriter GetPEV_E2_LorryVehicleType(); + IXmlTypeWriter GetPEV_E3_LorryVehicleType(); + IXmlTypeWriter GetPEV_E4_LorryVehicleType(); + IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + + IXmlTypeWriter GetExempted_LorryVehicleType(); + + + + + + IXmlTypeWriter GetConventional_PrimaryBusVehicleType(); + IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusVehicleType(); + IXmlTypeWriter GetHEV_S2_PrimaryBusVehicleType(); + IXmlTypeWriter GetHEV_S3_PrimaryBusVehicleType(); + IXmlTypeWriter GetHEV_S4_PrimaryBusVehicleType(); + IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusVehicleType(); + IXmlTypeWriter GetPEV_E2_PrimaryBusVehicleType(); + IXmlTypeWriter GetPEV_E3_PrimaryBusVehicleType(); + IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType(); + IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType(); + + IXmlTypeWriter GetExempted_PrimaryBusVehicleType(); + + IXmlTypeWriter GetConventional_CompletedBusVehicleType(); + IXmlTypeWriter GetHEV_CompletedBusVehicleType(); + IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + + IXmlTypeWriter GetExempted_CompletedBusVehicleType(); + + + IXmlTypeWriter GetConventionalLorryComponentsType(); + IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType(); + IXmlTypeWriter GetHEV_S2_LorryComponentsType(); + IXmlTypeWriter GetHEV_S3_LorryComponentsType(); + IXmlTypeWriter GetHEV_S4_LorryComponentsType(); + IXmlTypeWriter GetHEV_IEPC_S_LorryComponentsType(); + IXmlTypeWriter GetPEV_E2_LorryComponentsType(); + IXmlTypeWriter GetPEV_E3_LorryComponentsType(); + IXmlTypeWriter GetPEV_E4_LorryComponentsType(); + IXmlTypeWriter GetPEV_IEPC_S_LorryComponentsType(); + IXmlTypeWriter GetConventional_PrimaryBusComponentsType(); + IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusComponentsType(); + IXmlTypeWriter GetHEV_S2_PrimaryBusComponentsType(); + IXmlTypeWriter GetHEV_S3_PrimaryBusComponentsType(); + IXmlTypeWriter GetHEV_S4_PrimaryBusComponentsType(); + IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusComponentsType(); + IXmlTypeWriter GetPEV_E2_PrimaryBusComponentsType(); + IXmlTypeWriter GetPEV_E3_PrimaryBusComponentsType(); + IXmlTypeWriter GetPEV_E4_PrimaryBusComponentsType(); + IXmlTypeWriter GetPEV_IEPC_PrimaryBusComponentsType(); + IXmlTypeWriter GetConventional_CompletedBusComponentsType(); + IXmlTypeWriter GetHEV_CompletedBusComponentsType(); + IXmlTypeWriter GetPEV_CompletedBusComponentsType(); + + + IReportVehicleOutputGroup GetGeneralVehicleOutputGroup(); + + + IReportOutputGroup GetGeneralLorryVehicleOutputGroup(); + IReportOutputGroup GetHEV_VehicleSequenceGroup(); + IReportOutputGroup GetPEV_VehicleSequenceGroup(); + IReportOutputGroup GetConventionalLorryVehicleOutputGroup(); + IReportOutputGroup GetHEV_lorryVehicleOutputGroup(); + IReportOutputGroup GetPEV_lorryVehicleOutputGroup(); + IReportOutputGroup GetHEV_lorryVehicleOutputSequenceGroup(); + IReportOutputGroup GetPrimaryBusGeneralVehicleOutputGroup(); + IReportOutputGroup GetExemptedPrimaryBusGeneralVehicleOutputGroup(); + IReportOutputGroup GetHEV_PrimaryBusVehicleOutputGroup(); + + + IXmlTypeWriter GetEngineTorqueLimitationsType(); + IXmlTypeWriter GetEngineType(); + IXmlTypeWriter GetRetarderType(); + IXmlTypeWriter GetTorqueConverterType(); + IXmlTypeWriter GetAngleDriveType(); + IXmlTypeWriter GetTransmissionType(); + IXmlTypeWriter GetElectricMachinesType(); + IXmlTypeWriter GetAxleGearType(); + IXmlTypeWriter GetAxleWheelsType(); + IMRFAdasType GetConventionalADASType(); + IMRFAdasType GetHEVADASType(); + IMRFAdasType GetPEVADASType(); + IXmlTypeWriter GetIEPCSpecifications(); + IXmlTypeWriter GetREESSSpecificationsType(); + IMrfAirdragType GetAirdragType(); + + + IMRFLorryAuxiliariesType GetConventionalLorryAuxType(); + IMRFLorryAuxiliariesType GetHEV_LorryAuxiliariesType(); + + IMRFLorryAuxiliariesType GetPEV_LorryAuxiliariesType(); + + + IMRFBusAuxiliariesType GetPrimaryBusAuxType_Conventional(); + IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_P(); + IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_S(); + IMRFBusAuxiliariesType GetPrimaryBusAuxType_PEV(); + IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px(); + IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_HEV_S(); + IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_PEV_IEPC(); + + IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_Conventional_HEV(); + + IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_PEV(); + IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_Conventional_HEV(); + IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_PEV(); + + IMRFBusAuxiliariesType GetConventionalCompletedBusAuxType(); + IMRFBusAuxiliariesType GetConventionalCompletedBus_HVACSystemType(); + IMRFBusAuxiliariesType GetConventionalCompletedBusElectricSystemType(); + + IMRFBusAuxiliariesType GetHEVCompletedBusAuxType(); + IMRFBusAuxiliariesType GetHEVCompletedBus_HVACSystemType(); + IMRFBusAuxiliariesType GetHEVCompletedBusElectricSystemType(); + + IMRFBusAuxiliariesType GetPEVCompletedBusAuxType(); + IMRFBusAuxiliariesType GetPEVCompletedBus_HVACSystemType(); + IMRFBusAuxiliariesType GetPEVCompletedBusElectricSystemType(); + + + IReportOutputGroup GetPEV_PrimaryBusVehicleOutputGroup(); + IReportOutputGroup GetConventionalCompletedBusGeneralVehicleOutputGroup(); + IReportOutputGroup GetHEVCompletedBusGeneralVehicleOutputGroup(); + IReportOutputGroup GetPEVCompletedBusGeneralVehicleOutputGroup(); + IReportVehicleOutputGroup GetCompletedBusSequenceGroup(); + IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup(); + IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup(); + IMrfBusAuxGroup GetCompletedBus_xEVHVACSystemGroup(); + IMrfVehicleType GetBoostingLimitationsType(); + + } + + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..7e04844b72b551ce8e811bc28e1460573ebbc1dc --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs @@ -0,0 +1,778 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ninject.Activation; +using Ninject.Extensions.ContextPreservation; +using Ninject.Extensions.Factory; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Common; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Lorry; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.CompletedBus; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components; +using TUGraz.VectoCore.Utils.Ninject; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9 +{ + internal class MRFNinjectModule : AbstractNinjectModule + { + + //IXMLManufacturerReport GetManufacturerReport(string vehicleType, VectoSimulationJobType jobType, + // ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + protected static object[] ToParams(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc) + { + return new[] { (object)vehicleType, jobType, archId, exempted, iepc, ihpc}; + } + protected static CombineArgumentsToNameInstanceProvider.CombineToName nameCombinationMethod = arguments => { + + //may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory + string vehicleType = arguments[0] as string; + if (arguments[0] is VehicleCategory vehicleCategory) { + vehicleType = vehicleCategory.GetVehicleType(); + } + + + + VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1]; + ArchitectureID archId = (ArchitectureID)arguments[2]; + bool exempted = (bool)arguments[3]; + bool iepc = (bool)arguments[4]; + bool ihpc = (bool)arguments[5]; + + + + string result = ""; + if (exempted) { + result += exempted + vehicleType; + } else { + if (vehicleType == VehicleCategoryHelper.Lorry || vehicleType == VehicleCategoryHelper.PrimaryBus || vehicleType == VehicleCategoryHelper.CompletedBus || vehicleType == VehicleCategoryHelper.Van) { + if (jobType == VectoSimulationJobType.ParallelHybridVehicle || ihpc) { + result += "HEV-Px/IHPC"; + }else if (jobType == VectoSimulationJobType.SerialHybridVehicle) { + result += "HEV-" + archId; + }else if (jobType == VectoSimulationJobType.BatteryElectricVehicle) { + if (iepc) { + result += "PEV-IEPC"; + } else { + result += "PEV" + archId; + } + }else if (jobType == VectoSimulationJobType.ConventionalVehicle) { + result += "Conventional"; + } + }else if (vehicleType == VehicleCategoryHelper.CompletedBus) { + result += jobType; + } + + result += vehicleType; + } + + + return result; + }; + + public override void Load() + { + LoadModule<ContextPreservationModule>(); + Bind<IManufacturerReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + 6, 6, typeof(IManufacturerReportFactory).GetMethod(nameof(IManufacturerReportFactory.GetManufacturerReport)))).InSingletonScope(); + Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryManufacturerReport()); + + #region LorryMRF + Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named( + nameCombinationMethod.Invoke(ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>() + .Named(nameCombinationMethod.Invoke(ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + true))); + + Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + + Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named( + nameCombinationMethod.Invoke(ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>() + .Named(nameCombinationMethod.Invoke(ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + true))); + + Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + + Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams( + VehicleCategoryHelper.Van, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #endregion + #region PrimaryBUSMRF + Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + true))); + + Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_S3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_S4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_PrimaryBus_ManufacturerReport>().Named( + nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, false, false, false))); + + Bind<IXMLManufacturerReport>().To<PEV_E2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_E4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_IEPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + #endregion + #region CompletedBus MRF + + Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + + #endregion + + #region Vehicle + + Bind<IXmlTypeWriter>().To<ConventionalLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryVehicleType()); + Bind<IXmlTypeWriter>().To<HevPxIhpcLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHCP_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<HevS2LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<HevS3LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<HevS4LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<HevIepcSLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<PevE2LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<PevE3LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<PevE4LorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<PevIEPCLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_LorryVehicleType()); + + Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevPxIhpcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHPC_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevS2PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevS3PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevS4PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevIepcSPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<PevE2PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<PevE3PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<PevE4PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<PevIepcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_PrimaryBusVehicleType()); + + Bind<IXmlTypeWriter>().To<ConventionalCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<HevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<PevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_CompletedBusVehicleType()); + #endregion + #region Components + Bind<IXmlTypeWriter>().To<ConventionalLorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevPxIhpcLorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHCP_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS2LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS3LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS4LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevIepcSLorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevE2LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_LorryComponentsType()); + + Bind<IXmlTypeWriter>().To<MrfpevE3LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevE4LorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryComponentsType()); + Bind<IXmlTypeWriter>().To<MrfPevIEPCLorryComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_S_LorryComponentsType()); + + Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevPxIhpcPrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHPC_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS2PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS3PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevS4PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevIepcSPrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevE2PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevE3PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevE4PrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevIepcPrimaryBusComponentsTypeWriter>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusComponentsType()); + + + Bind<IXmlTypeWriter>().To<ConventionalCompletedBusComponentsTypeWriter>() + .NamedLikeFactoryMethod( + (IManufacturerReportFactory f) => f.GetConventional_CompletedBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfhevCompletedBusComponentsTypeWriter>() + .NamedLikeFactoryMethod( + (IManufacturerReportFactory f) => f.GetHEV_CompletedBusComponentsType()); + Bind<IXmlTypeWriter>().To<MrfpevCompletedBusComponentsTypeWriter>() + .NamedLikeFactoryMethod( + (IManufacturerReportFactory f) => f.GetPEV_CompletedBusComponentsType()); + + + #endregion + + + Bind<IReportOutputGroup>().To<HEV_VehicleSequenceGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_VehicleSequenceGroup()); + + Bind<IReportOutputGroup>().To<PEV_VehicleSequenceGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_VehicleSequenceGroup()); + #region ADAS + Bind<IMRFAdasType>().To<MRFConventionalAdasType>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalADASType()); + Bind<IMRFAdasType>().To<MRFHevAdasType>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVADASType()); + Bind<IMRFAdasType>().To<MRFPevAdasType>() + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVADASType()); + + #endregion ADAS + Bind<IXmlTypeWriter>().To<TorqueLimitationsTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetEngineTorqueLimitationsType()); + + Bind<IXmlTypeWriter>().To<EngineTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetEngineType()); + + + + Bind<IXmlTypeWriter>().To<TransmissionTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetTransmissionType()); + + Bind<IXmlTypeWriter>().To<RetarderTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetRetarderType()); + + Bind<IXmlTypeWriter>().To<TorqueConverterTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetTorqueConverterType()); + + Bind<IXmlTypeWriter>().To<AngleDriveTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAngleDriveType()); + + Bind<IMrfAirdragType>().To<MRFAirdragType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAirdragType()); + + Bind<IXmlTypeWriter>().To<AxleWheelsTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAxleWheelsType()); + + Bind<IXmlTypeWriter>().To<AxleGearTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAxleGearType()); + + Bind<IXmlTypeWriter>().To<ElectricMachinesTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetElectricMachinesType()); + + Bind<IXmlTypeWriter>().To<MrfiepcSpecificationsTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetIEPCSpecifications()); + + Bind<IXmlTypeWriter>().To<MrfreessSpecificationsTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetREESSSpecificationsType()); + + Bind<IMrfVehicleType>().To<MRFBoostingLimitationsType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetBoostingLimitationsType()); + + #region Auxiliaries + Bind<IMRFLorryAuxiliariesType>().To<MRFConventionalLorryAuxiliariesType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryAuxType()); + Bind<IMRFLorryAuxiliariesType>().To<MRFHEV_LorryAuxiliariesType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_LorryAuxiliariesType()); + Bind<IMRFLorryAuxiliariesType>().To<MRFPEV_LorryAuxiliariesType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_LorryAuxiliariesType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_Conventional>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_Conventional()); + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_HEV_P>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_HEV_P()); + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_HEV_S>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_HEV_S()); + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_PEV>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_PEV()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px()); + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_HEV_S>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_HEV_S()); + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_PEV_IEPC>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_PEV_IEPC()); + + + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusElectricSystemType_Conventional_HEV>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusElectricSystemType_Conventional_HEV()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusElectricSystemType_PEV>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusElectricSystemType_PEV()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusHVACSystemType_Conventional_HEV>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusHVACSystemType_Conventional_HEV()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusHVACSystemType_PEV>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusHVACSystemType_PEV()); + + Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBusAuxType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusAuxType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBus_HVACSystemType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBusElectricSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusElectricSystemType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBusAuxType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusAuxType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBus_HVACSystemType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBusElectricSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusElectricSystemType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBusAuxType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusAuxType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBus_HVACSystemType()); + + Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBusElectricSystemType>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusElectricSystemType()); + + #region Groups + + Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetGeneralVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<LorryGeneralVehicleOutputXmlGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetGeneralLorryVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<ConventionalLorryVehicleXmlGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<PrimaryBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusGeneralVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<ExemptedPrimaryBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExemptedPrimaryBusGeneralVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<HEVPrimaryBusVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_PrimaryBusVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<PEVPrimaryBusVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_PrimaryBusVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<HEV_LorryVehicleOutputTypeGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_lorryVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<PEV_LorryVehicleOutputTypeGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_lorryVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<HEV_LorryVehicleOutputTypeSequenceGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_lorryVehicleOutputSequenceGroup()); + + Bind<IReportVehicleOutputGroup>().To<CompletedBusSequenceOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBusSequenceGroup()); + + Bind<IReportVehicleOutputGroup>().To<CompletedBusDimensionsSequenceOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBusDimensionSequenceGroup()); + + Bind<IReportOutputGroup>().To<ConventionalCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusGeneralVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<HEVCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusGeneralVehicleOutputGroup()); + + Bind<IReportOutputGroup>().To<PEVCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusGeneralVehicleOutputGroup()); + + + Bind<IMrfBusAuxGroup>().To<CompletedBus_HVACSystem_Group>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBus_HVACSystemGroup()); + + Bind<IMrfBusAuxGroup>().To<CompletedBus_xEVHVACSystem_Group>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBus_xEVHVACSystemGroup()); + + #endregion + + + + } + + private bool AccessedViaMRFFactory(IRequest request) + { + if (request.ParentRequest == null) + { + return false; + } + return typeof(IManufacturerReportFactory).IsAssignableFrom(request.ParentRequest.Service); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..c447e1d1f899576d9f9114edbd753af2c4119df8 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport +{ + internal abstract class CompletedBusManufacturerReportBase : AbstractManufacturerReport + { + protected XNamespace _mrf = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); + public CompletedBusManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + _ovc = modelData.VehicleData.Ocv; + var inputData = modelData.InputData as IMultistepBusInputDataProvider; + if (inputData == null) { + throw new VectoException("CompletedBus ManrufacturersRecordFile requires MultistepBusInputData"); + } + Results = new XElement(Mrf_0_9 + XMLNames.Report_Results); + InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature, + inputData.JobInputData.ConsolidateManufacturingStage.Signature == null + ? XMLHelper.CreateDummySig(_di) + : inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di)); + } + + } + + internal class Conventional_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public Conventional_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ConventionalCompletedBusManufacturerOutputDataType"; + + + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); + //GenerateReport(OutputDataType); + + } + + #endregion + } + + internal class HEV_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public HEV_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEVCompletedBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_CompletedBusVehicleType().GetElement(inputData); + //GenerateReport("HEVCompletedBusManufacturerOutputDataType"); + } + + #endregion + } + + internal class PEV_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public PEV_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "PEVCompletedBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_CompletedBusVehicleType().GetElement(inputData); + //GenerateReport(OutputDataType); + } + + #endregion + } + + internal class Exempted_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public Exempted_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedCompletedBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_CompletedBusVehicleType().GetElement(inputData); + //GenerateReport(OutputDataType); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs new file mode 100644 index 0000000000000000000000000000000000000000..9baebdb892613c0d3bfd406347cecb588ef4bb9b --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs @@ -0,0 +1,210 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport +{ + internal abstract class LorryManufacturerReportBase : AbstractManufacturerReport + { + public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) + { + + } + + + } + + internal class ConventionalLorryManufacturerReport : LorryManufacturerReportBase + { + + + public ConventionalLorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) + { + + } + + #region Overrides of AbstractManufacturerReport + + + public override string OutputDataType => + XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetConventionalLorryVehicleType().GetElement(inputData); + + } + + + #endregion + + } + + internal class HEV_Px_IHPC_LorryManufacturerReport : LorryManufacturerReportBase + { + + public HEV_Px_IHPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_Px_IHCP_LorryVehicleType().GetElement(inputData); + } + + + + #endregion + } + + internal class HEV_S2_LorryManufacturerReport : LorryManufacturerReportBase + { + public HEV_S2_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class HEV_S3_LorryManufacturerReport : LorryManufacturerReportBase + { + public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType; + + public HEV_S3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) + { + + } + + #region Overrides of AbstractManufacturerReport + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class HEV_S4_LorryManufacturerReport : LorryManufacturerReportBase + { + public HEV_S4_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class HEV_IEPC_S_LorryManufacturerReport : LorryManufacturerReportBase + { + public HEV_IEPC_S_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_IEPC_S_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class PEV_E2_LorryManufacturerReport : LorryManufacturerReportBase + { + public PEV_E2_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData); + + } + + #endregion + } + + internal class PEV_E3_LorryManufacturerReport : LorryManufacturerReportBase + { + public PEV_E3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class PEV_E4_LorryManufacturerReport : LorryManufacturerReportBase + { + public PEV_E4_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class PEV_IEPC_LorryManufacturerReport : LorryManufacturerReportBase + { + public PEV_IEPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class Exempted_LorryManufacturerReport : LorryManufacturerReportBase + { + public Exempted_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedLorryManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs new file mode 100644 index 0000000000000000000000000000000000000000..a15ca5d30d179a7872aed6953e030afad0f00915 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs @@ -0,0 +1,211 @@ +using System; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport +{ + internal abstract class PrimaryBus_ManufacturerReportBase : AbstractManufacturerReport + { + protected XNamespace _mrf = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); + protected PrimaryBus_ManufacturerReportBase(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + protected void GenerateReport(string outputDataType) + { + Report = new XDocument(new XElement(_mrf + "VectoOutput", + new XAttribute("xmlns", _mrf), + new XAttribute(XNamespace.Xmlns + "xsi", xsi), + new XAttribute(xsi + XMLNames.XSIType, $"{outputDataType}"), + Vehicle, + new XElement(_mrf + "Results"))); + } + } + + internal class Conventional_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public Conventional_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetConventional_PrimaryBusVehicleType().GetElement(inputData); + + } + + #endregion + } + + internal class HEV_Px_IHPC_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public HEV_Px_IHPC_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + + internal class HEV_S2_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public HEV_S2_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEV-S2_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class HEV_S3_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public HEV_S3_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEV-S3_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class HEV_S4_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public HEV_S4_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEV-S4_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData); + + } + + #endregion + } + + + internal class HEV_IEPC_S_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public HEV_IEPC_S_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class PEV_E2_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public PEV_E2_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "PEV-E2_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + + internal class PEV_E3_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public PEV_E3_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "PEV-E3_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + + internal class PEV_E4_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public PEV_E4_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base( + MRFReportFactory) + { + + } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "PEV-E4_PrimaryBusManufacturerOutputDataType"; + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + + internal class PEV_IEPC_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public PEV_IEPC_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "PEV-IEPC_PrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } + + internal class Exempted_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public Exempted_PrimaryBus_ManufacturerReport(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedPrimaryBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs new file mode 100644 index 0000000000000000000000000000000000000000..2deef90af1587b11afc3e37926604c8cbea3f408 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs @@ -0,0 +1,10 @@ +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport0._9 +{ + internal class ManufacturerReportComponentWriters + { + + + + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..774bb4c771bf63614342fdbe9c4f38fb3d856ee4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter +{ + public abstract class AbstractReportOutputGroup : IReportOutputGroup + { + protected readonly IManufacturerReportFactory _mrfFactory; + protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"; + + protected AbstractReportOutputGroup(IManufacturerReportFactory mrfFactory) + { + _mrfFactory = mrfFactory; + + } + + #region Implementation of IMRFGroupWriter + + public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData); + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..782667d1ffbbaa4d44b8fee981635bfc9f02ff14 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Common +{ + public class GeneralVehicleOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup + { + public GeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + return GetElements(vehicle); + + } + + #endregion + + #region Implementation of IMrfVehicleGroup + + public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData) + { + return new List<XElement>() { + new XElement(_mrf + XMLNames.Component_Model, vehicleData.Model), + new XElement(_mrf + XMLNames.Vehicle_VIN, vehicleData.VIN), + vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty() + ? null + : new XElement(_mrf + XMLNames.Vehicle_TypeApprovalNumber, vehicleData.VehicleTypeApprovalNumber), + new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), + new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), + new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()), + new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()), + + }; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..8fabbd12f01f050c00c6d4bbc1b0ddea4bdaef91 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry +{ + internal class HEV_VehicleSequenceGroup : AbstractReportOutputGroup + { + public HEV_VehicleSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC; + var dualFuel = vehicleData.Components?.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1) ?? false; + + var result = new List<XElement>() + { + new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel), + new XElement(_mrf + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : vehicleData.ArchitectureID.GetLabel()), + new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev), + vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null, + }; + result.Add(_mrfFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle)); + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs new file mode 100644 index 0000000000000000000000000000000000000000..2b0c365285fbdb44ab68d8b2770886e1ff263896 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry +{ + internal class PEV_VehicleSequenceGroup : AbstractReportOutputGroup + { + public PEV_VehicleSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var result = new List<XElement>() + { + new XElement(_mrf + "PEVArchitecture", vehicleData.ArchitectureID.GetLabel()), + new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev), + vehicleData.MaxChargingPower != null ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null, + }; + result.Add(_mrfFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle)); + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs new file mode 100644 index 0000000000000000000000000000000000000000..afee30627f100937a51f6835cd002037e47dee37 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.CompletedBus +{ + internal class ConventionalCompletedBusGeneralVehicleOutputGroup : AbstractReportOutputGroup + { + + public ConventionalCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var multiStageInputData = inputData as IMultistepBusInputDataProvider; + if (multiStageInputData == null) { + throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}"); + } + var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle; + var result = new List<XElement>(); + result.Add(GetManufacturers(multiStageInputData)); + result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle)); + result.AddRange(_mrfFactory.GetCompletedBusSequenceGroup().GetElements(consolidatedVehicleData)); + result.AddRange(_mrfFactory.GetCompletedBusDimensionSequenceGroup().GetElements(consolidatedVehicleData)); + result.Add(new XElement(_mrf + XMLNames.Bus_DoorDriveTechnology, consolidatedVehicleData.DoorDriveTechnology.ToXMLFormat())); + result.Add(GetNGTankSystem(multiStageInputData)); + return result; + } + + protected virtual XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData) + { + var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle; + return new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, consolidatedVehicleData.TankSystem); + } + + protected virtual XElement GetManufacturers(IMultistepBusInputDataProvider multiStageInputData) + { + var primaryVehicleData = multiStageInputData.JobInputData.PrimaryVehicle.Vehicle; + var manufacturers = new XElement(_mrf + "Manufacturers"); + manufacturers.Add(GetManufacturerAndAddress(primaryVehicleData.Manufacturer, primaryVehicleData.ManufacturerAddress, + 1)); + foreach (var manufacturingStageInputData in multiStageInputData.JobInputData.ManufacturingStages) { + manufacturers.Add(GetManufacturerAndAddress(manufacturingStageInputData.Vehicle.Manufacturer, + manufacturingStageInputData.Vehicle.ManufacturerAddress, + stepCount: manufacturingStageInputData.StepCount)); + } + + return manufacturers; + } + + protected XElement GetManufacturerAndAddress(string manufacturer, string address, int stepCount) + { + return new XElement(_mrf + "Step", + new XAttribute("Count", stepCount), + new XElement(_mrf + XMLNames.Component_Manufacturer, manufacturer), + new XElement(_mrf + XMLNames.Component_ManufacturerAddress, address)); + } + + #endregion + } + + internal class HEVCompletedBusGeneralVehicleOutputGroup : ConventionalCompletedBusGeneralVehicleOutputGroup + { + + public HEVCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : + base(mrfFactory) { } + + } + + + + internal class PEVCompletedBusGeneralVehicleOutputGroup : ConventionalCompletedBusGeneralVehicleOutputGroup + { + + public PEVCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : + base(mrfFactory) + { } + + #region Overrides of ConventionalCompletedBusGeneralVehicleOutputGroup + + protected override XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData) + { + return null; + } + + #endregion + } + + internal class CompletedBusSequenceOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup + { + public CompletedBusSequenceOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMrfVehicleGroup + + public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData) + { + var result = new List<XElement>() { + new XElement(_mrf + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), + new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV), + new XElement(_mrf + XMLNames.Vehicle_RegisteredClass, vehicleData.RegisteredClass.ToXMLFormat()), + new XElement(_mrf + XMLNames.Bus_NumberPassengersUpperDeck, vehicleData.NumberPassengerSeatsUpperDeck + vehicleData.NumberPassengersStandingUpperDeck), + new XElement(_mrf + XMLNames.Bus_NumberPassengersLowerDeck, vehicleData.NumberPassengerSeatsLowerDeck + vehicleData.NumberPassengersStandingLowerDeck), + new XElement(_mrf + XMLNames.Vehicle_BodyworkCode, vehicleData.VehicleCode.ToXMLFormat()), + new XElement(_mrf + XMLNames.Bus_LowEntry, vehicleData.LowEntry) + }; + return result; + } + + #endregion + } + + internal class CompletedBusDimensionsSequenceOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup + { + public CompletedBusDimensionsSequenceOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMrfVehicleGroup + + public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData) + { + var result = new List<XElement>() { + new XElement(_mrf + XMLNames.Bus_HeightIntegratedBody, vehicleData.Height.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Bus_VehicleLength, vehicleData.Length.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Bus_VehicleWidth, vehicleData.Width.ConvertToMilliMeter().ToXMLFormat(0)) + }; + return result; + } + + #endregion + } + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs new file mode 100644 index 0000000000000000000000000000000000000000..06841535a9fdb3e65d1584ef056371e5d41c287e --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus +{ + public interface IMrfBusAuxGroup + { + IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries); + + } + internal class CompletedBus_HVACSystem_Group : AbstractReportOutputGroup, IMrfBusAuxGroup + { + public CompletedBus_HVACSystem_Group(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMrfBusAuxGroup + + public IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries) + { + return new List<XElement>() { + new XElement(_mrf + XMLNames.Bus_SystemConfiguration, + busAuxiliaries.HVACAux.SystemConfiguration.ToXmlFormat()), + new XElement(_mrf + XMLNames.Bus_HeatPumpTypeDriver, + new XElement(_mrf + XMLNames.BusHVACHeatPumpCooling, + busAuxiliaries.HVACAux.HeatPumpTypeCoolingDriverCompartment.GetLabel()), + new XElement(_mrf + XMLNames.BusHVACHeatPumpHeating, + busAuxiliaries.HVACAux.HeatPumpTypeHeatingDriverCompartment.GetLabel())), + new XElement(_mrf + XMLNames.Bus_HeatPumpTypePassenger, + new XElement(_mrf + XMLNames.BusHVACHeatPumpCooling, + busAuxiliaries.HVACAux.HeatPumpTypeCoolingPassengerCompartment.GetLabel()), + new XElement(_mrf + XMLNames.BusHVACHeatPumpHeating, + busAuxiliaries.HVACAux.HeatPumpTypeHeatingPassengerCompartment.GetLabel())), + + new XElement(_mrf + XMLNames.Bus_DoubleGlazing, busAuxiliaries.HVACAux.DoubleGlazing), + new XElement(_mrf + XMLNames.Bus_AdjustableAuxiliaryHeater, busAuxiliaries.HVACAux.AdjustableAuxiliaryHeater), + new XElement(_mrf + XMLNames.Bus_SeparateAirDistributionDucts, busAuxiliaries.HVACAux.SeparateAirDistributionDucts), + new XElement(_mrf + XMLNames.Bus_AuxiliaryHeaterPower, busAuxiliaries.HVACAux.AuxHeaterPower.ConvertToKiloWatt().ToXMLFormat(0)) + }; + } + + #endregion + } + + internal class CompletedBus_xEVHVACSystem_Group : AbstractReportOutputGroup, IMrfBusAuxGroup + { + public CompletedBus_xEVHVACSystem_Group(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMrfBusAuxGroup + + public IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries) + { + return new List<XElement>() { + new XElement(_mrf + XMLNames.Bus_WaterElectricHeater, + busAuxiliaries.HVACAux.WaterElectricHeater), + new XElement(_mrf + XMLNames.Bus_AirElectricHeater, busAuxiliaries.HVACAux.AirElectricHeater), + new XElement(_mrf + XMLNames.Bus_OtherHeatingTechnology, busAuxiliaries.HVACAux.OtherHeatingTechnology) + }; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..ab0746d1b440ae342742feb37a4bfc1862727883 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter +{ + public interface IReportOutputGroup + { + IList<XElement> GetElements(IDeclarationInputDataProvider inputData); + } + + public interface IReportVehicleOutputGroup + { + IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData); + } + + public interface IReportCompletedBusOutputGroup + { + IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider); + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..5b30b05b2e27e7cbf682b167918a640191a4b3a0 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter +{ + public class ConventionalLorryVehicleXmlGroup : AbstractReportOutputGroup + { + public ConventionalLorryVehicleXmlGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + var result = new List<XElement>(); + var dualFuel = vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1); + result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData)); + result.AddRange(new List<XElement>(){new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel), + new XElement(_mrf + XMLNames.Vehicle_SleeperCab, inputData.JobInputData.Vehicle.SleeperCab), + (inputData.JobInputData.Vehicle.TankSystem.HasValue ? new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, inputData.JobInputData.Vehicle.TankSystem.Value.ToString()) : null), + //If content is null, nothing is added. When passing a collection, items in the collection can be null. A null item in the collection has no effect on the tree. + _mrfFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)}); + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..b12fe6f5d4b56ac44e27076358f72411dc9cbdc4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry +{ + internal class HEV_LorryVehicleOutputTypeGroup : AbstractReportOutputGroup + { + public HEV_LorryVehicleOutputTypeGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData)); + result.AddRange(_mrfFactory.GetHEV_lorryVehicleOutputSequenceGroup().GetElements(inputData)); + + + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..7e50079967a7c5c25e3395f9b1563d00d83f3fd9 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Lorry +{ + internal class HEV_LorryVehicleOutputTypeSequenceGroup : AbstractReportOutputGroup + { + public HEV_LorryVehicleOutputTypeSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var result = new List<XElement>(); + result.AddRange(_mrfFactory.GetHEV_VehicleSequenceGroup().GetElements(inputData)); + result.Add(new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab)); + if (vehicleData.TankSystem.HasValue) { + result.Add(new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, vehicleData.TankSystem.Value.ToString())); + } + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..555d815b60e212ac49f226210c1cb3fa7eb2c30f --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter +{ + public class LorryGeneralVehicleOutputXmlGroup : AbstractReportOutputGroup + { + #region Implementation of IMRFGroupWriterb + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + var elements = new List<XElement>(); + elements.AddRange(new List<XElement>() { + new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer), + new XElement(_mrf + XMLNames.Component_ManufacturerAddress, vehicle.ManufacturerAddress), + }); + elements.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(vehicle)); + elements.AddRange(new List<XElement>() { + // new XElement(mrf + "CO2StandardGroup", vehicle.) //CO2 Standardgroup + new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicle.VocationalVehicle), + new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle), + new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicle.HybridElectricHDV), + }); + + return elements; + } + + #endregion + + public LorryGeneralVehicleOutputXmlGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..cafbce3adc373f2970924cebdf8a18e1d83f3a37 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry +{ + internal class PEV_LorryVehicleOutputTypeGroup : AbstractReportOutputGroup + { + public PEV_LorryVehicleOutputTypeGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + var result = new List<XElement>(); + result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData)); + result.Add(new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab)); + result.AddRange(_mrfFactory.GetPEV_VehicleSequenceGroup().GetElements(inputData)); + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs new file mode 100644 index 0000000000000000000000000000000000000000..54ae1518ae75cb91602dbade3c13a786f80da77a --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle +{ + internal class PrimaryBusGeneralVehicleOutputGroup : AbstractReportOutputGroup + { + public PrimaryBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var primaryBus = inputData.JobInputData.Vehicle; + var result = new List<XElement>() { + new XElement(_mrf + XMLNames.Component_Manufacturer, primaryBus.Manufacturer), + new XElement(_mrf + XMLNames.Component_ManufacturerAddress, primaryBus.ManufacturerAddress) + }; + result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(primaryBus)); + result.Add(new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, primaryBus.ZeroEmissionVehicle)); + result.Add(new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, primaryBus.HybridElectricHDV)); + + + return result; + } + + #endregion + } + + internal class ExemptedPrimaryBusGeneralVehicleOutputGroup : AbstractReportOutputGroup + { + public ExemptedPrimaryBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var primaryBus = inputData.JobInputData.Vehicle; + var result = new List<XElement>() { + new XElement(_mrf + XMLNames.Component_Manufacturer, primaryBus.Manufacturer), + new XElement(_mrf + XMLNames.Component_ManufacturerAddress, primaryBus.ManufacturerAddress) + }; + result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(primaryBus)); + result.Add(new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, primaryBus.ZeroEmissionVehicle)); + //result.Add(new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, primaryBus.HybridElectricHDV)); + + + return result; + } + + #endregion + } + + internal class HEVPrimaryBusVehicleOutputGroup : AbstractReportOutputGroup + { + public HEVPrimaryBusVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + result.AddRange(_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData)); + result.AddRange(_mrfFactory.GetHEV_VehicleSequenceGroup().GetElements(inputData)); + + return result; + } + + #endregion + } + + internal class PEVPrimaryBusVehicleOutputGroup : AbstractReportOutputGroup + { + public PEVPrimaryBusVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlGroup + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var result = new List<XElement>(); + result.AddRange(_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData)); + result.AddRange(_mrfFactory.GetPEV_VehicleSequenceGroup().GetElements(inputData)); + + return result; + } + + #endregion + } + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs new file mode 100644 index 0000000000000000000000000000000000000000..d59563f0a578dbdb32b84029fc0dc8baccdacaea --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs @@ -0,0 +1,18 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public abstract class AbstractMrfXmlType + { + protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"; + protected readonly IManufacturerReportFactory _mrfFactory; + + protected AbstractMrfXmlType(IManufacturerReportFactory mrfFactory) + { + _mrfFactory = mrfFactory; + } + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs new file mode 100644 index 0000000000000000000000000000000000000000..d4be0fcd16599348f82a0f977282e6bf07a7cb23 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs @@ -0,0 +1,67 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public interface IMRFAdasType + { + XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas); + } + + internal class MRFConventionalAdasType : AbstractMrfXmlType, IMRFAdasType + { + public MRFConventionalAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFComponentWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_mrf + XMLNames.Vehicle_ADAS, + new XElement(_mrf + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart), + new XElement(_mrf + "EcoRollWithoutEngineStopStart", + inputData.EcoRoll == EcoRollType.WithoutEngineStop), + new XElement(_mrf + "EcoRollWithEngineStopStart", + inputData.EcoRoll == EcoRollType.WithEngineStop), + new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC, + inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)); + } + + #endregion + + + } + + internal class MRFHevAdasType : AbstractMrfXmlType, IMRFAdasType + { + public MRFHevAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_mrf + XMLNames.Vehicle_ADAS, + new XElement(_mrf + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart), + new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None) + ); + } + + #endregion + } + + internal class MRFPevAdasType : AbstractMrfXmlType, IMRFAdasType + { + public MRFPevAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + return new XElement(_mrf + XMLNames.Vehicle_ADAS, + new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None) + ); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs new file mode 100644 index 0000000000000000000000000000000000000000..10d5407af0c5e579b13c38cdd8126a2f1edd15fb --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using NLog.LayoutRenderers.Wrappers; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public interface IMrfAirdragType + { + XElement GetXmlType(IAirdragDeclarationInputData inputData); + + + } + public class MRFAirdragType : AbstractMrfXmlType, IMrfAirdragType + { + + public MRFAirdragType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMrfAirdragType + + public XElement GetXmlType(IAirdragDeclarationInputData inputData) + { + if (inputData == null || inputData.AirDragArea == null) { + return null; + } + return new XElement(_mrf + XMLNames.Component_AirDrag, + new XElement(_mrf + XMLNames.Component_Model, inputData.Model), + new XElement(_mrf + XMLNames.Component_CertificationMethod, inputData.CertificationMethod), + inputData.CertificationNumber.IsNullOrEmpty() + ? null + : new XElement(_mrf + XMLNames.Component_CertificationNumber, inputData.CertificationNumber), + new XElement(_mrf + "CdxA", inputData.AirDragArea.ToXMLFormat(2)), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, inputData.DigestValue?.DigestValue ?? "")); + } + + #endregion + } + + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs new file mode 100644 index 0000000000000000000000000000000000000000..5ca8b6c3661c41d28e48444e8f2894e0ecfc4edd --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class AngleDriveTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public AngleDriveTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var angleDriveData = inputData.JobInputData.Vehicle.Components.AngledriveInputData; + if (angleDriveData == null || angleDriveData.Type == AngledriveType.None) { + return null; + } + return new XElement(_mrf + XMLNames.Component_Angledrive, + new XElement(_mrf + XMLNames.Component_Model, angleDriveData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, angleDriveData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, angleDriveData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, angleDriveData.CertificationMethod.ToXMLFormat()), + new XElement(_mrf + "AngledriveRatio", angleDriveData.Ratio.ToXMLFormat(3))); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs new file mode 100644 index 0000000000000000000000000000000000000000..0ed3f6c7024c6c5a026b8e697d31bcea35812fcf --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class AxleGearTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public AxleGearTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var axleGearInputData = inputData.JobInputData.Vehicle.Components.AxleGearInputData; + return new XElement(_mrf + XMLNames.Component_Axlegear, + new XElement(_mrf + XMLNames.Component_Model, axleGearInputData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, axleGearInputData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, + axleGearInputData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, + axleGearInputData.CertificationMethod.ToXMLFormat()), + new XElement(_mrf + "AxleType", axleGearInputData.LineType.ToXMLFormat()), + new XElement(_mrf + XMLNames.Axlegear_Ratio, axleGearInputData.Ratio.ToXMLFormat(3))); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..23b49e435f3e1179fd294c610e99384c025afb70 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public class AxleWheelsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public AxleWheelsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var result = new XElement(_mrf + XMLNames.Component_AxleWheels); + var axleWheelsInputdata = inputData.JobInputData.Vehicle.Components.AxleWheels; + var axleCount = 0; + foreach (var axleDeclaration in axleWheelsInputdata.AxlesDeclaration) { + var axle = new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle, + new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, ++axleCount)); + + if (axleCount != 1) { + axle.Add(new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle_TwinTyres, axleDeclaration.TwinTyres)); + } + axle.Add(new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle_Tyre, + new XElement(_mrf + XMLNames.Report_Tyre_TyreDimension, axleDeclaration.Tyre.Dimension), + new XElement(_mrf + XMLNames.Component_CertificationNumber, axleDeclaration.Tyre.CertificationNumber), + new XElement(_mrf + "SpecificRRC", axleDeclaration.Tyre.RollResistanceCoefficient.ToXMLFormat(4)), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, axleDeclaration.Tyre.DigestValue?.DigestValue ?? ""))); + result.Add(axle); + } + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..46bc3c8d73faca7d0ab178a87f6be41218e83af0 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public interface IMrfVehicleType + { + XElement GetElement(IVehicleDeclarationInputData inputData); + + } + + internal class MRFBoostingLimitationsType : AbstractMrfXmlType, IMrfVehicleType + { + public MRFBoostingLimitationsType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMrfVehicleType + + public XElement GetElement(IVehicleDeclarationInputData inputData) + { + var boostingLimitations = inputData.BoostingLimitations; + if (boostingLimitations != null) + { + var boostingLimitationsXElement = new XElement(_mrf + XMLNames.Vehicle_BoostingLimitation); + foreach (DataRow row in boostingLimitations.Rows) + { + boostingLimitationsXElement.Add(new XElement(_mrf + XMLNames.BoostingLimitation_Entry, + new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]), + new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]))); + } + + + return boostingLimitationsXElement; + } + return null; + } + + #endregion + } + + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs new file mode 100644 index 0000000000000000000000000000000000000000..051f4c84c1ecc0b0a19d32e8927131d8c05d5513 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs @@ -0,0 +1,415 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + + + public interface IMRFBusAuxiliariesType + { + XElement GetElement(IBusAuxiliariesDeclarationData auxData); + } + + + + + internal class MRFPrimaryBusAuxType_Conventional : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusAuxType_Conventional(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + + #region Implementation of MRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var steeringPumpData = auxData.SteeringPumpTechnology; + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "CoolingFanTechnology", + auxData.FanTechnology), + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)), + + + _mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData), + _mrfFactory.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px().GetElement(auxData), + _mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData) + ); + } + + #endregion + } + + internal class MRFPrimaryBusAuxType_HEV_P : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusAuxType_HEV_P(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var steeringPumpData = auxData.SteeringPumpTechnology; + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "CoolingFanTechnology", + auxData.FanTechnology), + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)), + _mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData), + _mrfFactory.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px().GetElement(auxData), + _mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData) + ); + } + + #endregion + } + internal class MRFPrimaryBusAuxType_HEV_S : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusAuxType_HEV_S(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var steeringPumpData = auxData.SteeringPumpTechnology; + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "CoolingFanTechnology", + auxData.FanTechnology), + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)), + _mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData), + + _mrfFactory.GetPrimaryBusPneumaticSystemType_HEV_S().GetElement(auxData), + _mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData) + ); + } + + #endregion + } + + internal class MRFPrimaryBusAuxType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusAuxType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var steeringPumpData = auxData.SteeringPumpTechnology; + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)), + _mrfFactory.GetPrimaryBusElectricSystemType_PEV().GetElement(auxData), + _mrfFactory.GetPrimaryBusPneumaticSystemType_PEV_IEPC().GetElement(auxData) + //_mrfFactory.GetPrimaryBusHVACSystemType_PEV().GetXmlType(auxData) + ); + } + + #endregion + } + + + + public class MRFPrimaryBusHVACSystemType_Conventional_HEV : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusHVACSystemType_Conventional_HEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var hvac = auxData.HVACAux; + return new XElement(_mrf + "HVACSystem", + new XElement(_mrf + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat), + new XElement(_mrf + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger)); + } + + #endregion + } + + public class MRFPrimaryBusHVACSystemType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusHVACSystemType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var hvac = auxData.HVACAux; + return new XElement(_mrf + "HVACSystem", + new XElement(_mrf + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat)); + } + + #endregion + } + + internal class MRFConventionalCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFConventionalCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var result = new XElement(_mrf + XMLNames.Component_Auxiliaries, + _mrfFactory.GetConventionalCompletedBusElectricSystemType().GetElement(auxData), + _mrfFactory.GetConventionalCompletedBus_HVACSystemType().GetElement(auxData) + ); + return result; + } + + #endregion + } + + internal class MRFHEVCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFHEVCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var result = new XElement(_mrf + XMLNames.Component_Auxiliaries, + _mrfFactory.GetHEVCompletedBusElectricSystemType().GetElement(auxData), + _mrfFactory.GetHEVCompletedBus_HVACSystemType().GetElement(auxData) + ); + return result; + } + + #endregion + } + + internal class MRFPEVCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPEVCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetXmlType(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var result = new XElement(_mrf + XMLNames.Component_Auxiliaries, + _mrfFactory.GetPEVCompletedBusElectricSystemType().GetElement(auxData), + _mrfFactory.GetPEVCompletedBus_HVACSystemType().GetElement(auxData) + ); + return result; + } + + #endregion + } + + internal class MRFConventionalCompletedBusElectricSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFConventionalCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + XMLNames.BusAux_ElectricSystem, + new XElement(_mrf + "DayRunningLightsLED", auxData.ElectricConsumers.DayrunninglightsLED), + new XElement(_mrf + "HeadLightsLED", auxData.ElectricConsumers.HeadlightsLED), + new XElement(_mrf + "PositionLightsLED", auxData.ElectricConsumers.PositionlightsLED), + new XElement(_mrf + "BrakeLightsLED", auxData.ElectricConsumers.BrakelightsLED), + new XElement(_mrf + "InteriorLightsLED", auxData.ElectricConsumers.InteriorLightsLED)); + } + + #endregion + } + + internal class MRFHEVCompletedBusElectricSystemType : MRFConventionalCompletedBusElectricSystemType + { + public MRFHEVCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + } + + internal class MRFPEVCompletedBusElectricSystemType : MRFConventionalCompletedBusElectricSystemType + { + public MRFPEVCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + } + + internal class MRFConventionalCompletedBus_HVACSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFConventionalCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + "HVACSystem", + _mrfFactory.GetCompletedBus_HVACSystemGroup().GetElements(auxData)); + } + + #endregion + } + + internal class MRFHEVCompletedBus_HVACSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFHEVCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + "HVACSystem", + _mrfFactory.GetCompletedBus_HVACSystemGroup().GetElements(auxData), + _mrfFactory.GetCompletedBus_xEVHVACSystemGroup().GetElements(auxData)); + } + + #endregion + } + + internal class MRFPEVCompletedBus_HVACSystemType : MRFHEVCompletedBus_HVACSystemType + { + public MRFPEVCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + + } + + internal class MRFPrimaryBusElectricSystemType_Conventional_HEV : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusElectricSystemType_Conventional_HEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + + var maxAlternatorPower = auxData.ElectricSupply.GetMaxAlternatorPower(); + var electricStorageCapacity = + auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity) ?? 0.SI<WattSecond>(); + return new XElement(_mrf + XMLNames.BusAux_ElectricSystem, + new XElement(_mrf + XMLNames.BusAux_ElectricSystem_AlternatorTechnology, + auxData.ElectricSupply.AlternatorTechnology.ToXMLFormat()), + (auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart + ? new XElement(_mrf + "MaxAlternatorPower", maxAlternatorPower.ToXMLFormat(0)) + : null), + + auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart + ? new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat()) + : null); + } + + #endregion + } + + internal class MRFPrimaryBusElectricSystemType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusElectricSystemType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + + #region Implementation of IMRFBusAuxiliariesType + + public XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + var electricStorageCapacity = + auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity); + return new XElement(_mrf + XMLNames.BusAux_ElectricSystem, + auxData.ElectricSupply.ElectricStorage == null || electricStorageCapacity == null ? null : new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat())); + } + + #endregion + } + + + internal class MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px : AbstractMrfXmlType, IMRFBusAuxiliariesType + { + public MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, + new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)), + new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)), + + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, auxData.PneumaticSupply.SmartAirCompression), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()), + new XElement(_mrf + "ReagentDosing", auxData.PneumaticConsumers.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + protected virtual string GetPneumaticSystemTechnology(IBusAuxiliariesDeclarationData auxData) + { + return $"{auxData.PneumaticSupply.CompressorSize}, {auxData.PneumaticSupply.CompressorDrive.GetLabel()}, clutch: {auxData.PneumaticSupply.Clutch}"; + } + + #endregion + } + + internal class MRFPrimaryBusPneumaticSystemType_HEV_S : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px + { + public MRFPrimaryBusPneumaticSystemType_HEV_S(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public override XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, + new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)), + new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()), + new XElement(_mrf + "ReagentDosing", auxData.PneumaticConsumers.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + #endregion + } + + internal class MRFPrimaryBusPneumaticSystemType_PEV_IEPC : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px + { + public MRFPrimaryBusPneumaticSystemType_PEV_IEPC(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFBusAuxiliariesType + + public override XElement GetElement(IBusAuxiliariesDeclarationData auxData) + { + return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, + new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, auxData.PneumaticSupply.CompressorDrive.ToString()), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()) + ); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..b2fdd96d16416a9c7a9c2535ece6ef7988452cec --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs @@ -0,0 +1,592 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + #region Lorry + internal class ConventionalLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public ConventionalLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of MRFComponentType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var addTorqueConverterData = + inputData.JobInputData.Vehicle.Components.GearboxInputData.Type == GearboxType.ATPowerSplit || + inputData.JobInputData.Vehicle.Components.GearboxInputData.Type == GearboxType.ATSerial; + var addRetarderInputData = inputData.JobInputData.Vehicle.Components.RetarderInputData != null; + var addAngleDriveData = inputData.JobInputData.Vehicle.Components.AngledriveInputData != null; + var addAirdragdata = inputData.JobInputData.Vehicle.Components.AirdragInputData != null; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + (addTorqueConverterData ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null), + (addAngleDriveData ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null), + (addRetarderInputData ? _mrfFactory.GetRetarderType().GetElement(inputData) : null), + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetConventionalLorryAuxType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData), + (addAirdragdata ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null) + ); + //return new XElement(_mrf + XMLNames.Vehicle_Components, + // _mrfFactory.GetEngineType()) + } + + #endregion + } + + internal class MrfhevPxIhpcLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevPxIhpcLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var result = new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + _mrfFactory.GetTorqueConverterType().GetElement(inputData), + _mrfFactory.GetAngleDriveType().GetElement(inputData), + _mrfFactory.GetRetarderType().GetElement(inputData), + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData), + _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) + ); + return result; + } + + #endregion + } + + internal class MrfhevS2LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS2LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + + components.TorqueConverterInputData != null + ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) + : null, + components.AngledriveInputData != null ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null, + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData), + components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null + ); + + } + + #endregion + } + + internal class MrfhevS3LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS3LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData), + components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null); + } + + #endregion + } + + internal class MrfhevS4LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS4LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null, + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData), + components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null); + } + #endregion + } + + internal class MrfhevIepcSLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevIepcSLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetIEPCSpecifications().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null, + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData), + components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null); + } + + #endregion + } + + internal class MrfpevE2LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE2LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + components.TorqueConverterInputData != null + ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) + : null, + components.RetarderInputData != null + ? _mrfFactory.GetRetarderType().GetElement(inputData) + : null, + + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData), + components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null + ); + } + } + + internal class MrfpevE3LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE3LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + + + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData), + components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) + : null + ); + } + + } + + internal class MrfpevE4LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE4LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData), + components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) + : null + ); + } + } + + internal class MrfPevIEPCLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfPevIEPCLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetIEPCSpecifications().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null, + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData), + components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) + : null + ); + } + } + + #endregion Lorry + + + #region PrimaryBus + internal class ConventionalPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public ConventionalPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + components.TorqueConverterInputData != null ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null, + components.AngledriveInputData != null ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null, + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null, + + + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_Conventional().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + + internal class MrfhevPxIhpcPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevPxIhpcPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + _mrfFactory.GetTorqueConverterType().GetElement(inputData), + _mrfFactory.GetAngleDriveType().GetElement(inputData), + _mrfFactory.GetRetarderType().GetElement(inputData), + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_Conventional().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfhevS2PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS2PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + + _mrfFactory.GetTransmissionType().GetElement(inputData), + + components.TorqueConverterInputData != null + ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) + : null, + + components.AngledriveInputData != null + ? _mrfFactory.GetAngleDriveType().GetElement(inputData) + : null, + + components.RetarderInputData != null + ? _mrfFactory.GetRetarderType().GetElement(inputData) + : null, + + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfhevS3PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS3PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + + + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + + + ); + } + + #endregion + } + + internal class MrfhevS4PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevS4PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + + + ); + } + + #endregion + } + + internal class MrfhevIepcSPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevIepcSPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetEngineType().GetElement(inputData), + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetIEPCSpecifications().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfpevE2PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE2PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetTransmissionType().GetElement(inputData), + components.TorqueConverterInputData != null ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null, + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfpevE3PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE3PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + _mrfFactory.GetAxleGearType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + + internal class MrfpevE4PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevE4PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetElectricMachinesType().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfpevIepcPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevIepcPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var components = inputData.JobInputData.Vehicle.Components; + return new XElement(_mrf + XMLNames.Vehicle_Components, + _mrfFactory.GetIEPCSpecifications().GetElement(inputData), + _mrfFactory.GetREESSSpecificationsType().GetElement(inputData), + components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null, + components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null, + _mrfFactory.GetAxleWheelsType().GetElement(inputData), + _mrfFactory.GetPrimaryBusAuxType_PEV() + .GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)); + } + + #endregion + } + + #endregion + #region CompletedBus + internal class ConventionalCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public ConventionalCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputData = inputData as IMultistepBusInputDataProvider; + if (multistageInputData == null) { + throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Vehicle_Components, + multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null, + _mrfFactory.GetConventionalCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfhevCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfhevCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputData = inputData as IMultistepBusInputDataProvider; + if (multistageInputData == null) { + throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Vehicle_Components, + multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null, + _mrfFactory.GetHEVCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + internal class MrfpevCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfpevCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputData = inputData as IMultistepBusInputDataProvider; + if (multistageInputData == null) { + throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Vehicle_Components, + multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null + ? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null, + _mrfFactory.GetPEVCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries) + ); + } + + #endregion + } + + #endregion +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs new file mode 100644 index 0000000000000000000000000000000000000000..0f8d12ed16f071def5a8714fbe964fc2ffb1da3a --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class ElectricMachinesTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public ElectricMachinesTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var electricMachines = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries; + var result = new XElement(_mrf + "ElectricMachines"); + + foreach (var electricMachine in electricMachines.OrderBy((entry => entry.Position))) { + var electricMachineElement = new XElement(_mrf + XMLNames.Component_ElectricMachine, + new XElement(_mrf + XMLNames.ElectricMachine_Position, electricMachine.Position.ToXmlFormat()), new XElement(_mrf + "CountAtPosition", electricMachine.Count)); + result.Add(electricMachineElement); + var electricMachineSystem = new XElement(_mrf + XMLNames.ElectricMachineSystem); + + electricMachineSystem.Add(new XElement(_mrf + XMLNames.Component_Model, electricMachine.ElectricMachine.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, electricMachine.ElectricMachine.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, electricMachine.ElectricMachine.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.ElectricMachine_ElectricMachineType, electricMachine.ElectricMachine.ElectricMachineType), + new XElement(_mrf + XMLNames.Component_CertificationMethod, electricMachine.ElectricMachine.CertificationMethod), + new XElement(_mrf + "RatedPower", electricMachine.ElectricMachine.R85RatedPower.ConvertToKiloWatt().ToXMLFormat(0))); + + var voltageLevels = new XElement(_mrf + "VoltageLevels"); + electricMachineSystem.Add(voltageLevels); + + foreach (var electricMotorVoltageLevel in electricMachine.ElectricMachine.VoltageLevels) { + var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel, + electricMachine.ElectricMachine.VoltageLevels.Count > 1 + ? new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)) + : null, + new XElement(_mrf + "MaxContinuousPower", + (electricMotorVoltageLevel.ContinuousTorque * + electricMotorVoltageLevel.ContinuousTorqueSpeed).ConvertToKiloWatt() + .ToXMLFormat(0))); + + + voltageLevels.Add(voltageLevel); + } + + electricMachineElement.Add(electricMachineSystem); + if (electricMachine.ADC != null) { + var adc = electricMachine.ADC; + electricMachineElement.Add(new XElement(_mrf + XMLNames.Component_ADC, + new XElement(_mrf + XMLNames.Component_Model, adc.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, adc.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, adc.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, adc.CertificationMethod.ToXMLFormat()), + new XElement(_mrf + XMLNames.AngleDrive_Ratio, adc.Ratio.ToXMLFormat(3))) + ); + } + + } + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs new file mode 100644 index 0000000000000000000000000000000000000000..9a44c651e00929cf780e570de2259b357d6de29f --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public class EngineTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public EngineTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var engineData = inputData.JobInputData.Vehicle.Components.EngineInputData; + var result = new XElement(_mrf + XMLNames.Component_Engine, + new XElement(_mrf + XMLNames.Component_Model, engineData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, engineData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, engineData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Engine_RatedPower, engineData.RatedPowerDeclared.ConvertToKiloWatt().ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Engine_IdlingSpeed, inputData.JobInputData.Vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Engine_RatedSpeed, inputData.JobInputData.Vehicle.Components.EngineInputData.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)), + new XElement(_mrf + "Capacity", SIBase<Liter>.Create(engineData.Displacement.ConvertToCubicDeziMeter()).ToXMLFormat()) + ); + var fuels = new HashSet<FuelType>(); + foreach (var engineMode in engineData.EngineModes) { + foreach (var fuel in engineMode.Fuels) { + fuels.Add(fuel.FuelType); + } + } + + var sortedFuels = fuels.ToList(); + sortedFuels.Sort((fuelType1, fuelType2) => fuelType1.CompareTo(fuelType2)); + var fuelTypesElement = new XElement(_mrf + XMLNames.Report_Vehicle_FuelTypes); + result.Add(fuelTypesElement); + foreach (var fuel in sortedFuels) + { + fuelTypesElement.Add(new XElement(_mrf + XMLNames.Engine_FuelType, fuel.ToXMLFormat())); + } + result.Add(new XElement(_mrf + "WasteHeatRecoverySystem", engineData.WHRType != WHRType.None)); + foreach (WHRType whrType in Enum.GetValues(typeof(WHRType))) { + if (whrType == WHRType.None) { + continue; + } + + if ((whrType & engineData.WHRType) == whrType) { + result.Add(_mrf + "WasteHeatRecoverySystemType", whrType.ToXMLFormat()); + } + } + + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs new file mode 100644 index 0000000000000000000000000000000000000000..0240b89e73b2c90538da5c60b92c2e84716353fb --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class MrfiepcSpecificationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfiepcSpecificationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var iepcData = inputData.JobInputData.Vehicle.Components.IEPC; + + + var iepcXElement = new XElement(_mrf + "IEPCSpecifications", + new XElement(_mrf + XMLNames.Component_Model, iepcData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, iepcData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, iepcData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Engine_RatedPower, iepcData.R85RatedPower.ConvertToKiloWatt().ToXMLFormat(0))); + //new XElement(_mrf + "MaxContinuousPower",(iepcData.ContinuousTorque*iepcData.ContinuousTorqueSpeed).ToXMLFormat()), + + var voltageLevels = new XElement(_mrf + "VoltageLevels"); + iepcXElement.Add(voltageLevels); + + foreach (var electricMotorVoltageLevel in iepcData.VoltageLevels) { + var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel, + electricMotorVoltageLevel.VoltageLevel == null + ? null + : new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)), + new XElement(_mrf + "MaxContinuousPower", + (electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed) + .ToXMLFormat(0))); + + + voltageLevels.Add(voltageLevel); + } + + iepcXElement.Add( + new XElement(_mrf + "NrOfGears", iepcData.Gears.Count), + new XElement(_mrf + "LowestTotalTransmissionRatio", (iepcData.Gears.OrderByDescending(g => g.GearNumber).First().Ratio + * inputData.JobInputData.Vehicle.Components.AxleGearInputData.Ratio).ToXMLFormat(3)), + new XElement(_mrf + XMLNames.IEPC_DifferentialIncluded, iepcData.DifferentialIncluded), + new XElement(_mrf + XMLNames.IEPC_DesignTypeWheelMotor, iepcData.DesignTypeWheelMotor), + new XElement(_mrf + XMLNames.Component_CertificationMethod, iepcData.CertificationMethod) + ); + + + return iepcXElement; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs new file mode 100644 index 0000000000000000000000000000000000000000..110932396dfc5dd988355bc201666869b6df0ef7 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs @@ -0,0 +1,60 @@ +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public interface IMRFLorryAuxiliariesType + { + XElement GetXmlType(IAuxiliariesDeclarationInputData auxData); + } + internal class MRFConventionalLorryAuxiliariesType : AbstractMrfXmlType, IMRFLorryAuxiliariesType + { + public MRFConventionalLorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + public XElement GetXmlType(IAuxiliariesDeclarationInputData auxData) + { + var fanData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.Fan); + var steeringPumpData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.SteeringPump); + var electricSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.ElectricSystem); + var pneumaticSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.PneumaticSystem); + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "CoolingFanTechnology", + string.Join("\n", fanData.Technology)), + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData.Technology)), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, string.Join("\n", pneumaticSystemData.Technology))), + new XElement(_mrf + XMLNames.BusAux_ElectricSystem, new XElement(_mrf + "LEDHeadLights", electricSystemData.Technology.Contains("Standard technology - LED headlights, all")))); + } + } + + + internal class MRFHEV_LorryAuxiliariesType : MRFConventionalLorryAuxiliariesType + { + public MRFHEV_LorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + } + + internal class MRFPEV_LorryAuxiliariesType : AbstractMrfXmlType, IMRFLorryAuxiliariesType + { + public MRFPEV_LorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Implementation of IMRFLorryAuxiliariesType + + public XElement GetXmlType(IAuxiliariesDeclarationInputData auxData) + { + + var steeringPumpData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.SteeringPump); + var electricSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.ElectricSystem); + var pneumaticSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.PneumaticSystem); + + return new XElement(_mrf + XMLNames.Component_Auxiliaries, + new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData.Technology)), + new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, string.Join("\n", pneumaticSystemData.Technology))), + new XElement(_mrf + XMLNames.BusAux_ElectricSystem, new XElement(_mrf + "LEDHeadLights", electricSystemData.Technology.Contains("Standard technology - LED headlights, all")))); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs new file mode 100644 index 0000000000000000000000000000000000000000..dddbd5772db79c72521df796d406811a1c80af2e --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..b467210b32094e1cfb89ca2d7e7715d46efd6b14 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class MrfreessSpecificationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfreessSpecificationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var reessElements = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements; + + var result = new XElement(_mrf + "REESSSpecifications"); + + foreach (var electricStorage in reessElements.OrderBy((element) => element.StringId)) { + if (electricStorage.REESSPack.StorageType == REESSType.Battery && + electricStorage.REESSPack is IBatteryPackDeclarationInputData battery) { + result.Add(new XElement(_mrf + XMLNames.ElectricEnergyStorage_Battery, + new XAttribute("stringId", electricStorage.StringId), + new XElement(_mrf + XMLNames.Component_Model, battery.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, battery.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, battery.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.BusAux_ElectricSystem_NominalVoltage, BatterySOCReader.Create(battery.VoltageCurve).Lookup(0.5).ToXMLFormat(0)), + new XElement(_mrf + "TotalStorageCapacity", battery.TotalStorageCapacity().ValueAsUnit("kWh", 0)), + new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().ValueAsUnit("kWh"), 0), + new XElement(_mrf + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat()) + ) + ); + } else if (electricStorage.REESSPack.StorageType == REESSType.SuperCap && + electricStorage.REESSPack is ISuperCapDeclarationInputData superCap) { + result.Add(new XElement(_mrf + XMLNames.ElectricEnergyStorage_Capacitor, + new XElement(_mrf + XMLNames.Component_Model, superCap.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, superCap.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, + superCap.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Capacitor_Capacitance, superCap.Capacity.ToXMLFormat()), + new XElement(_mrf + XMLNames.Capacitor_MinVoltage, superCap.MinVoltage.ToXMLFormat(2)), + new XElement(_mrf + XMLNames.Capacitor_MaxVoltage, superCap.MaxVoltage.ToXMLFormat(2)) + ) + ); + } else { + throw new VectoException("Invalid REESS type"); + } + } + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs new file mode 100644 index 0000000000000000000000000000000000000000..30242b960407b54b613bfdb0d948a8f51bbd7759 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class RetarderTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public RetarderTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var retarderData = inputData.JobInputData.Vehicle.Components.RetarderInputData; + var iepcData = inputData.JobInputData.Vehicle.Components.IEPC; + var retarderPossible = iepcData == null || !iepcData.DesignTypeWheelMotor; + if (retarderData == null || !retarderPossible) { + return null; + } + var result = new XElement(_mrf + XMLNames.Component_Retarder, + new XElement(_mrf + XMLNames.Vehicle_RetarderType, + retarderData.Type.ToXMLFormat())); + if (retarderData.Type.IsDedicatedComponent()) { + result.Add(new XElement(_mrf + XMLNames.Component_Model, + inputData.JobInputData.Vehicle.Components.RetarderInputData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, retarderData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, + retarderData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, + retarderData.CertificationMethod.ToXMLFormat())); + } + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs new file mode 100644 index 0000000000000000000000000000000000000000..a55aa967d89811f413f1dd7e4bb9bb4c9f29ab18 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public class TorqueConverterTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public TorqueConverterTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var torqueConverterInputData = inputData.JobInputData.Vehicle.Components.TorqueConverterInputData; + if (torqueConverterInputData == null) { + return null; + } + return new XElement(_mrf + XMLNames.Component_TorqueConverter, + new XElement(_mrf + XMLNames.Component_Model, torqueConverterInputData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, + torqueConverterInputData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, torqueConverterInputData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, + torqueConverterInputData.CertificationMethod.ToXMLFormat())); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..628de75510d7bb823c12966c8b459d2ad3c1e939 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + internal class TorqueLimitationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + if (inputData.JobInputData.Vehicle.TorqueLimits == null || inputData.JobInputData.Vehicle.TorqueLimits.Count == 0) { + + return null; + } + var torqueLimitsElement = new XElement(_mrf + "EngineTorqueLimitations"); + + var maxEngineTorque = inputData.JobInputData.Vehicle.Components.EngineInputData.MaxTorqueDeclared; + foreach (var torqueLimitInputData in inputData.JobInputData.Vehicle.TorqueLimits) { + var value = (torqueLimitInputData.MaxTorque / maxEngineTorque).Value(); + torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit", + new XAttribute("Gear", torqueLimitInputData.Gear), value.ValueAsUnit("%", 0) + )); + } + + return torqueLimitsElement; + } + + + + public TorqueLimitationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs new file mode 100644 index 0000000000000000000000000000000000000000..23cac4bece1c0f1d169132477f3664fbdc43b269 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + public class TransmissionTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public TransmissionTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleComponents = inputData.JobInputData.Vehicle.Components; + var result = new XElement(_mrf + XMLNames.Component_Transmission, + new XElement(_mrf + XMLNames.Component_Model, vehicleComponents.GearboxInputData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, + vehicleComponents.GearboxInputData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, + vehicleComponents.GearboxInputData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Component_CertificationMethod, vehicleComponents.GearboxInputData.CertificationMethod.ToXMLFormat()), + new XElement(_mrf + "Type", + vehicleComponents.GearboxInputData.Type.ToXMLFormat()), + new XElement(_mrf + "NrOfGears", vehicleComponents.GearboxInputData.Gears.Count), + new XElement(_mrf + "FinalGearRatio", + vehicleComponents.GearboxInputData.Gears.Last().Ratio.ToXMLFormat(3)), + //new XElement(_mrf + XMLNames.Vehicle_RetarderType, + // vehicleComponents.RetarderInputData.Type.ToXMLFormat()), + (vehicleComponents.PTOTransmissionInputData != null ? new XElement(_mrf + "PowerTakeOff", + vehicleComponents.PTOTransmissionInputData.PTOTransmissionType != "None") : null)); + return result; + } + + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs new file mode 100644 index 0000000000000000000000000000000000000000..8506e8653de1beb12462d60c81f2b0d639e27622 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs @@ -0,0 +1,11 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public interface IXmlTypeWriter + { + XElement GetElement(IDeclarationInputDataProvider inputData); + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..9fc18c83cd96f50af9923ff94d50fba532f9b093 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs @@ -0,0 +1,540 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter +{ + public abstract class VehicleTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + + + public VehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + public abstract XElement GetElement(IDeclarationInputDataProvider inputData); + } + + + public class ConventionalLorryVehicleTypeWriter : VehicleTypeWriter + { + public ConventionalLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFComponentWriter + + #endregion + + #region Overrides of AbstractMRFComponentWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetConventionalLorryVehicleOutputGroup().GetElements(inputData), + + _mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData), + _mrfFactory.GetConventionalLorryComponentsType().GetElement(inputData) + + + + + ); + + } + + #endregion + } + + public class HevPxIhpcLorryVehicleTypeWriter : VehicleTypeWriter + { + public HevPxIhpcLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMRFComponentWriter + #endregion + + #region Overrides of AbstractMRFComponentWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData), + _mrfFactory.GetHEV_Px_IHCP_LorryComponentsType().GetElement(inputData) + + + ); + } + + #endregion + } + + public class HevS2LorryVehicleTypeWriter : VehicleTypeWriter + { + public HevS2LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData), + //_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData), + _mrfFactory.GetHEV_S2_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class HevS3LorryVehicleTypeWriter : VehicleTypeWriter + { + public HevS3LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_S3_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class HevS4LorryVehicleTypeWriter : VehicleTypeWriter + { + public HevS4LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_S4_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class HevIepcSLorryVehicleTypeWriter : VehicleTypeWriter + { + public HevIepcSLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_IEPC_S_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevE2LorryVehicleTypeWriter : VehicleTypeWriter + { + public PevE2LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E2_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevE3LorryVehicleTypeWriter : VehicleTypeWriter + { + public PevE3LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E3_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + public class PevE4LorryVehicleTypeWriter : VehicleTypeWriter + { + public PevE4LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E4_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevIEPCLorryVehicleTypeWriter : VehicleTypeWriter + { + public PevIEPCLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_IEPC_S_LorryComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class ExemptedLorryVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + return new XElement(_mrf + XMLNames.Component_Vehicle, + new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer), + new XElement(_mrf + XMLNames.ManufacturerAddress, vehicle.ManufacturerAddress), + _mrfFactory.GetGeneralVehicleOutputGroup().GetElements(vehicle), + new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicle.SleeperCab), + new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW)) + ); + } + + #endregion + } + + + public class ConventionalPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public ConventionalPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + var dualFuel = vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1); + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel), + _mrfFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS), + _mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData), + _mrfFactory.GetConventional_PrimaryBusComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + + public class HevPxIhpcPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public HevPxIhpcPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData), + _mrfFactory.GetHEV_Px_IHPC_PrimaryBusComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class HevS2PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public HevS2PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_S2_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class HevS3PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public HevS3PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_S3_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + public class HevS4PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public HevS4PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_S4_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class HevIepcSPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public HevIepcSPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEV_IEPC_S_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevE2PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public PevE2PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E2_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevE3PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public PevE3PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E3_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevE4PrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public PevE4PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_E4_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class PevIepcPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public PevIepcPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEV_IEPC_PrimaryBusComponentsType().GetElement(inputData)); + } + + #endregion + } + + public class ExemptedPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetExemptedPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW)) + ); + } + + #endregion + } + + public class ConventionalCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public ConventionalCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistepBusInputDataProvider; + if (multistageInputdata == null) { + throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetConventionalCompletedBusGeneralVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetConventionalADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS), + _mrfFactory.GetConventional_CompletedBusComponentsType().GetElement(inputData) + ); + + } + + #endregion + } + + public class HevCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public HevCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistepBusInputDataProvider; + if (multistageInputdata == null) { + throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetHEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetHEVADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS), + _mrfFactory.GetHEV_CompletedBusComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class PevCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public PevCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistepBusInputDataProvider; + if (multistageInputdata == null) { + throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData), + _mrfFactory.GetPEVADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS), + _mrfFactory.GetPEV_CompletedBusComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class ExemptedCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistepBusInputDataProvider; + if (multistageInputdata == null) + { + throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}"); + } + var primaryVehicleData = multistageInputdata.JobInputData.PrimaryVehicle.Vehicle; + var consolidatedVehicleData = multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle; + var result = new XElement(_mrf + XMLNames.Component_Vehicle); + var manufacturers = new XElement(_mrf + "Manufacturers"); + result.Add(manufacturers); + manufacturers.Add(GetManufacturerAndAddress(primaryVehicleData.Manufacturer, primaryVehicleData.ManufacturerAddress, 1)); + foreach (var manufacturingStageInputData in multistageInputdata.JobInputData.ManufacturingStages) { + manufacturers.Add(GetManufacturerAndAddress(manufacturingStageInputData.Vehicle.Manufacturer, + manufacturingStageInputData.Vehicle.ManufacturerAddress, + stepCount: manufacturingStageInputData.StepCount)); + } + result.Add(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle)); + result.Add( + new XElement(_mrf + XMLNames.CorrectedActualMass, + consolidatedVehicleData.CurbMassChassis.ToXMLFormat(0)), + new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicleData.ZeroEmissionVehicle), + new XElement(_mrf + XMLNames.Vehicle_RegisteredClass, + consolidatedVehicleData.RegisteredClass.ToXMLFormat()), + new XElement(_mrf + XMLNames.Bus_NumberPassengersUpperDeck, + consolidatedVehicleData.NumberPassengerSeatsUpperDeck + + consolidatedVehicleData.NumberPassengersStandingUpperDeck), + new XElement(_mrf + XMLNames.Bus_NumberPassengersLowerDeck, + consolidatedVehicleData.NumberPassengerSeatsLowerDeck + + consolidatedVehicleData.NumberPassengersStandingLowerDeck), + new XElement(_mrf + XMLNames.Vehicle_BodyworkCode, consolidatedVehicleData.VehicleCode.ToXMLFormat()), + new XElement(_mrf + XMLNames.Bus_LowEntry, consolidatedVehicleData.LowEntry) + ); + //result.Add(_mrfFactory.GetCompletedBusSequenceGroup().GetElements(consolidatedVehicleData)); + return result; + + //return new XElement(_mrf + XMLNames.Component_Vehicle, + // _mrfFactory.GetCompletedBusGeneralVehicleOutputGroup().GetElements(inputData) + //); + } + + #endregion + + protected XElement GetManufacturerAndAddress(string manufacturer, string address, int stepCount) + { + return new XElement(_mrf + "Step", + new XAttribute("Count", stepCount), + new XElement(_mrf + XMLNames.Component_Manufacturer, manufacturer), + new XElement(_mrf + XMLNames.Component_ManufacturerAddress, address)); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs index dc29a872ee98c7cf7dc702ad78b372ab9445617c..770a98df0ab4644f95a18d3e83a0d8b762af591c 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport { _tankSystem = modelData.VehicleData.InputData.TankSystem; VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleCompletedBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedBusType"), GetPrimaryVehicleInformation(), new XElement( tns + "CompletedVehicle", @@ -115,7 +115,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "error"), - new XAttribute(xsi + "type", "ResultErrorType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"), new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()), GetSimulationParameters(specificResult), content); @@ -126,7 +126,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "success"), - new XAttribute(xsi + "type", "ResultCompletedVehicleSuccessType"), + new XAttribute(xsi + XMLNames.XSIType, "ResultCompletedVehicleSuccessType"), new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()), new XElement(tns + XMLNames.Report_ResultEntry_Distance, XMLHelper.ValueAsUnit(specificResult.Distance, XMLNames.Unit_km, 3)), GetSimulationParametersPrimaryVehicle(primaryResult), @@ -190,8 +190,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport tns + XMLNames.Report_ResultEntry_TotalVehicleMass, XMLHelper.ValueAsUnit(primaryResult.SimulationParameter.TotalVehicleMass, XMLNames.Unit_kg)), new XElement(tns + XMLNames.Report_ResultEntry_Payload, XMLHelper.ValueAsUnit(primaryResult.SimulationParameter.Payload, XMLNames.Unit_kg)), - new XElement(tns + "PassengerCount", primaryResult.SimulationParameter.PassengerCount.ToMinSignificantDigits(3, 1)), - new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode) + new XElement(tns + "PassengerCount", primaryResult.SimulationParameter.PassengerCount.ToMinSignificantDigits(3, 1)) + //new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode) ); } @@ -341,7 +341,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport { return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsCompletedBusType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsCompletedBusType"), GetAirDragDescription(modelData.AirdragData), GetAuxiliariesDescription(modelData) ); @@ -380,7 +380,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Component_Auxiliaries, new XAttribute(XNamespace.Xmlns + auxPrefix, namespaceName), - new XAttribute(xsi + "type", $"{auxPrefix}:CompletedVehicleAuxiliaryDataDeclarationType"), + new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:CompletedVehicleAuxiliaryDataDeclarationType"), XElement.Parse(busAuxXML.InnerXml).Elements() ); } @@ -389,7 +389,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return new XElement( tns + XMLNames.Component_Auxiliaries, new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName), - new XAttribute(xsi + "type", $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"), + new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"), XElement.Parse(busAuxXML.InnerXml).Elements() ); } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs index 39bc841a7a608484aae7fe04edda00dbf181e484..f203b0cbe518aee03b76023b226f76f27499967e 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs @@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleExemptedCompletedBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedCompletedBusType"), GetPrimaryVehicleInformation(), new XElement( tns + "CompletedVehicle", diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs index dff94b2e3fefe0d78cccdf729afb30b348d54295..de9ccd34d9c5be4da55f9c9104262c00864ac771 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs @@ -13,7 +13,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleExemptedTruckType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedTruckType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs index 0ffdd2282aede0b4e3f0109b14ec06fdfcf49c0e..96719d814625cb2129c51425d3dba6d34d7b1ab1 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs @@ -19,7 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleExemptedPrimaryBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedPrimaryBusType"), new XElement(vns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), new XElement(vns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), new XElement(vns + XMLNames.Component_Model, modelData.VehicleData.ModelName), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs index d3011bc2e24c6ec332db6655ccb50769df229bce..986154b38828457d04593a2261f8b1398dd72608 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs @@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML { public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehiclePrimaryBusType"), + new XAttribute(xsi + XMLNames.XSIType, "VehiclePrimaryBusType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), @@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML { { return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsPrimaryBusType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsPrimaryBusType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), @@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.OutputData.XML { return new XElement( tns + XMLNames.Component_Auxiliaries, new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName), - new XAttribute(xsi + "type", $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"), + new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"), XElement.Parse(busAuxXML.InnerXml).Elements() ); } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs index ab08dd4c1b8d78e741013f7f1533493f626b381a..52a7effd760fbbb06c64c7dfc42bbd26b15c9d08 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs @@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleTruckType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleTruckType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), @@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport if (modelData.VehicleData.AxleConfiguration.AxlegearIncludedInGearbox()) { return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsTruckFWDType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckFWDType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData, modelData.AxleGearData), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), @@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport } return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsTruckType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), @@ -129,19 +129,5 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport return auxId + "Technology"; } - - - - - - - - - - - - - - } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs index c3e2338ebdb8c16e13072ea4fd625dfae4811249..826aee0066813c1df8857fbfe6f90e1b8a06e95d 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs @@ -331,7 +331,7 @@ namespace TUGraz.VectoCore.OutputData.XML $"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}VTPReport.xsd"), new XElement( rootNS + "Data", - new XAttribute(xsi + "type", "VTPReportDataType"), + new XAttribute(xsi + XMLNames.XSIType, "VTPReportDataType"), new XElement(GeneralPart), new XElement(VehiclePart), new XElement(DataIntegrityPart), @@ -355,7 +355,7 @@ namespace TUGraz.VectoCore.OutputData.XML new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress)); VehiclePart.Add( - new XAttribute(xsi + "type", "VehicleType"), + new XAttribute(xsi + XMLNames.XSIType, "VehicleType"), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()), @@ -371,7 +371,7 @@ namespace TUGraz.VectoCore.OutputData.XML VehiclePart.Add( new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsTruckFWDType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckFWDType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData, modelData.AxleGearData.AxleGear.Ratio), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), @@ -385,7 +385,7 @@ namespace TUGraz.VectoCore.OutputData.XML VehiclePart.Add( new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsTruckType"), + new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs similarity index 84% rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs index 8111f0f90327ad62916024eb1a0593f6d8343f86..c7773ea200500399a9b0cade1f6ed30247590072 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs @@ -3,7 +3,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile { - public interface IXMLMultistageReport + public interface IXMLMultistepIntermediateReport { void Initialize(VectoRunData modelData); XDocument Report { get; } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs similarity index 86% rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs index f28672258a5e8043e12bedfe8736f3b5c85ba629..7cd02a7241e187c775828ec47bfc8d6bb121f46d 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs @@ -5,11 +5,12 @@ using TUGraz.VectoCore.Models.Simulation.Data; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile { - public interface IXMLPrimaryVehicleReport + public interface IXMLVehicleInformationFile { void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes); void WriteResult(XMLDeclarationReport.ResultEntry result); void GenerateReport(XElement fullReportHash); XDocument Report { get; } + XNamespace Tns { get; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..96273458f05f0dace0dad629c893d7c5d08dcb6d --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class AbstractVIFGroupWriter : IReportOutputGroup + { + protected readonly IVIFReportFactory _vifReportFactory; + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + + + protected AbstractVIFGroupWriter(IVIFReportFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + #region Implementation of IReportOutputGroup + + public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData); + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs new file mode 100644 index 0000000000000000000000000000000000000000..d6170e971d60e3629526e6fcb94eef9094efd7a5 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class AbstractVIFXmlType + { + + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + protected XNamespace _v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"; + protected XNamespace _v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + protected XNamespace _di = XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"); + + + + protected readonly IVIFReportFactory _vifFactory; + + protected AbstractVIFXmlType(IVIFReportFactory vifFactory) + { + _vifFactory = vifFactory; + } + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs new file mode 100644 index 0000000000000000000000000000000000000000..b5bbe10ee0b220c73e09967aa6425c226331ba8b --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Hashing; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class AbstractVehicleInformationFile : IXMLVehicleInformationFile + { + protected XNamespace _tns; + + protected readonly IVIFReportFactory _vifFactory; + + + public static XNamespace VIF => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"); + + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + protected XNamespace _di = "http://www.w3.org/2000/09/xmldsig#"; + protected XNamespace _v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"; + protected XNamespace _v21 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1"; + protected XNamespace _v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + protected XNamespace _v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"; + + public abstract string OutputDataType { get; } + + protected XElement Vehicle { get; set; } + protected XElement Results { get; set; } + + protected List<XMLDeclarationReport.ResultEntry> _results = new List<XMLDeclarationReport.ResultEntry>(); + protected XElement InputDataIntegrity; + + protected AbstractVehicleInformationFile(IVIFReportFactory vifFactory) + { + _vifFactory = vifFactory; + } + + protected abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData); + + #region Implementation of IXMLPrimaryVehicleReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + Results = new XElement(VIF + XMLNames.Report_Results); + InputDataIntegrity = new XElement(VIF + XMLNames.Report_InputDataSignature, + modelData.InputDataHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputDataHash)); + + } + + + public void WriteResult(XMLDeclarationReport.ResultEntry result) + { + _results.Add(result); + } + + public virtual void GenerateReport(XElement fullReportHash) + { + var retVal = new XDocument(new XElement(VIF + XMLNames.VectoOutputMultistep, + new XAttribute(XNamespace.Xmlns + "di", _di), + new XAttribute(XNamespace.Xmlns + "xsi", _xsi.NamespaceName), + new XAttribute(XNamespace.Xmlns + "vif", VIF), + new XAttribute(XNamespace.Xmlns + "v1.0", _v10), + new XAttribute(XNamespace.Xmlns + "v2.0", _v20), + new XAttribute(XNamespace.Xmlns + "v2.1", _v21), + new XAttribute(XNamespace.Xmlns + "v2.3", _v23), + new XAttribute(XNamespace.Xmlns + "v2.4", _v24), + new XAttribute(_xsi + "schemaLocation", $"{_tns.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"), + new XAttribute("xmlns", _tns), + + GeneratePrimaryVehicle(fullReportHash) + )); + + Report = retVal; + } + + public XDocument Report { get; protected set; } + + public XNamespace Tns => _tns; + + #endregion + + protected virtual XElement GeneratePrimaryVehicle(XElement resultSignature) + { + var allSuccess = _results.All(x => x.Status == VectoRun.Status.Success); + + var results = new XElement(Results); + results.AddFirst(new XElement(VIF + XMLNames.Report_Result_Status, allSuccess ? "success" : "error")); + var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{XMLHelper.GetGUID()}"; + + var primaryVehicle = new XElement(VIF + XMLNames.Bus_PrimaryVehicle, + new XElement(VIF + XMLNames.Report_DataWrap, + new XAttribute(XMLNames.Component_ID_Attr, vehicleId), + new XAttribute(_xsi + XMLNames.XSIType, "PrimaryVehicleDataType"), + Vehicle, + InputDataIntegrity, + new XElement(VIF + "ManufacturerRecordSignature", resultSignature), + Results, + XMLHelper.GetApplicationInfo(VIF) + ) + ); + + var sigXElement = GetSignatureElement(primaryVehicle); + primaryVehicle.LastNode.Parent.Add(sigXElement); + return primaryVehicle; + } + + protected XElement GetSignatureElement(XElement stage) + { + var stream = new MemoryStream(); + var writer = new XmlTextWriter(stream, Encoding.UTF8); + stage.WriteTo(writer); + writer.Flush(); + stream.Seek(0, SeekOrigin.Begin); + + return new XElement(VIF + XMLNames.DI_Signature, + VectoHash.Load(stream).ComputeXmlHash + (VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod)); + } + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..c1ed87270a122b4deacb823604872ad012f9c06e --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs @@ -0,0 +1,169 @@ +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public interface IXmlMultistepTypeWriter + { + XElement GetElement(IMultistageVIFInputData inputData); + } + + public interface IReportMultistepCompletedBusOutputGroup + { + IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider); + } + + public interface IReportMultistepCompletedBusTypeWriter + { + XElement GetElement(IMultistageVIFInputData inputData); + + } + + public interface IVIFReportInterimFactory + { + IXMLMultistepIntermediateReport GetInterimVIFReport(VehicleCategory vehicleType, + VectoSimulationJobType jobType, ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + + #region Vehicle + + IXmlMultistepTypeWriter GetConventionalVehicleType(); + + IXmlMultistepTypeWriter GetHEVVehicleType(); + + IXmlMultistepTypeWriter GetPEVVehicleType(); + + IXmlMultistepTypeWriter GetIEPCVehicleType(); + + IXmlMultistepTypeWriter GetExemptedVehicleType(); + + #endregion + + IReportMultistepCompletedBusOutputGroup GetCompletedBusGeneralParametersGroup(); + IReportMultistepCompletedBusOutputGroup GetCompletedBusParametersGroup(); + IReportMultistepCompletedBusOutputGroup GetCompletedBusPassengerCountGroup(); + IReportMultistepCompletedBusOutputGroup GetCompletedBusDimensionsGroup(); + + IReportMultistepCompletedBusTypeWriter GetConventionalInterimComponentsType(); + + IReportMultistepCompletedBusTypeWriter GetxEVInterimComponentsType(); + + + IReportMultistepCompletedBusTypeWriter GetInterimAirdragType(); + IReportMultistepCompletedBusTypeWriter GetInterimConventionalAuxiliariesType(); + + IReportMultistepCompletedBusTypeWriter GetInterimxEVAuxiliariesType(); + + IVIFFAdasType GetConventionalInterimADASType(); + + IVIFFAdasType GetHEVInterimADASType(); + + IVIFFAdasType GetPEVInterimADASType(); + + IVIFFAdasType GetIEPCInterimADASType(); + + } + + + public interface IVIFReportFactory + { + IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + + + #region Vehicle + + IXmlTypeWriter GetConventionalVehicleType(); + IXmlTypeWriter GetHevIepcSVehicleType(); + IXmlTypeWriter GetHevPxVehicleType(); + IXmlTypeWriter GetHevS2VehicleType(); + IXmlTypeWriter GetHevS3VehicleType(); + IXmlTypeWriter GetHevS4VehicleType(); + IXmlTypeWriter GetIepcVehicleType(); + IXmlTypeWriter GetPevE2VehicleType(); + IXmlTypeWriter GetPevE3VehicleType(); + IXmlTypeWriter GetPevE4VehicleType(); + + IXmlTypeWriter GetPevIEPCVehicleType(); + + IXmlTypeWriter GetExemptedVehicleType(); + + + #endregion + + #region Componenet Group + + IXmlTypeWriter GetConventionalComponentType(); + IXmlTypeWriter GetHevIepcSComponentVIFType(); + IXmlTypeWriter GetHevPxComponentVIFType(); + IXmlTypeWriter GetHevS2ComponentVIFType(); + IXmlTypeWriter GetHevS3ComponentVIFType(); + IXmlTypeWriter GetHevS4ComponentVIFType(); + IXmlTypeWriter GetPevE2ComponentVIFType(); + IXmlTypeWriter GetPevE3ComponentVIFType(); + IXmlTypeWriter GetPevE4ComponentVIFType(); + IXmlTypeWriter GetPevIEPCComponentVIFType(); + + #endregion + + + #region Components + + IVIFFAdasType GetConventionalADASType(); + IVIFFAdasType GetHEVADASType(); + IVIFFAdasType GetPEVADASType(); + IVIFFAdasType GetIEPCADASType(); + + IXmlTypeWriter GetAngelDriveType(); + + IXmlTypeWriter GetRetarderType(); + IXmlTypeWriter GetAuxiliaryType(); + IXmlTypeWriter GetAuxiliaryHevSType(); + + IXmlTypeWriter GetAuxiliaryIEPC_SType(); + + IXmlTypeWriter GetAuxiliaryHevPType(); + IXmlTypeWriter GetAuxiliaryIEPCType(); + IXmlTypeWriter GetAuxiliaryPEVType(); + IXmlTypeWriter GetAxlegearType(); + IXmlTypeWriter GetAxleWheelsType(); + IXmlTypeWriter GetBoostingLimitationsType(); + IXmlTypeWriter GetElectricEnergyStorageType(); + IXmlTypeWriter GetElectricMachineGENType(); + IXmlElectricMachineSystemType GetElectricMachineSystemType(); + IXmlTypeWriter GetElectricMachineType(); + IXmlTypeWriter GetElectricMotorTorqueLimitsType(); + IXmlTypeWriter GetEngineType(); + IXmlTypeWriter GetTorqueConvertType(); + IXmlTypeWriter GetIepcType(); + IXmlTypeWriter GetTorqueLimitsType(); + IXmlTypeWriter GetTransmissionType(); + + #endregion + + + #region Parameter Groups + + IReportOutputGroup GetConventionalVehicleGroup(); + IReportOutputGroup GetPrimaryBusGeneralParameterGroup(); + IReportOutputGroup GetPrimaryBusChassisParameterGroup(); + IReportOutputGroup GetPrimaryBusRetarderParameterGroup(); + IReportOutputGroup GetPrimaryBusXevParameterGroup(); + + IReportOutputGroup GetHevIepcSVehicleParameterGroup(); + IReportOutputGroup GetHevSxVehicleParameterGroup(); + IReportOutputGroup GetIepcVehicleParameterGroup(); + IReportOutputGroup GetPevExVehicleParmeterGroup(); + IReportOutputGroup GetPevIEPCVehicleParmeterGroup(); + IReportOutputGroup GetHevPxVehicleParameterGroup(); + + IReportOutputGroup GetExemptedVehicleParameterGroup(); + + #endregion + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs new file mode 100644 index 0000000000000000000000000000000000000000..cfc23d3ec1232081a00402d14b5585764c06aa67 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs @@ -0,0 +1,77 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class CompletedComponentVIFType : IReportMultistepCompletedBusTypeWriter + { + protected readonly IVIFReportInterimFactory _vifReportFactory; + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected CompletedComponentVIFType(IVIFReportInterimFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + #region Implementation of IReportMultistepCompletedBusTypeWriter + + public abstract XElement GetElement(IMultistageVIFInputData inputData); + + #endregion + } + + + public class ConventionalComponentsInterimVIFType : CompletedComponentVIFType + { + public ConventionalComponentsInterimVIFType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of CompletedComponentVIFType + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var airDrag = _vifReportFactory.GetInterimAirdragType().GetElement(inputData); + var auxiliaries = _vifReportFactory.GetInterimConventionalAuxiliariesType().GetElement(inputData); + + if (airDrag == null && auxiliaries == null) { + return null; + } + + return new XElement(_v24 + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Components_Conventional_CompletedBusType"), + airDrag, + auxiliaries); + + } + + #endregion + } + + + public class XEVComponentsInterimVIFType : CompletedComponentVIFType + { + public XEVComponentsInterimVIFType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of CompletedComponentVIFType + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var airDrag = _vifReportFactory.GetInterimAirdragType().GetElement(inputData); + var auxiliaries = _vifReportFactory.GetInterimxEVAuxiliariesType().GetElement(inputData); + + if (airDrag == null && auxiliaries == null) { + return null; + } + + return new XElement(_v24 + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Components_xEV_CompletedBusType"), + airDrag, + auxiliaries); + + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs new file mode 100644 index 0000000000000000000000000000000000000000..03c65264aa420e6eed82a20d3078292739ec6d1b --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs @@ -0,0 +1,126 @@ +using System; +using System.Xml; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Hashing; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents +{ + public class AirdragInterimType : IReportMultistepCompletedBusTypeWriter + { + protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#"; + protected XNamespace v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"; + protected XNamespace v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"; + protected XNamespace v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"; + protected XNamespace v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + + public AirdragInterimType() {} + + #region Implementation of IReportMultistepCompletedBusTypeWriter + + public XElement GetElement(IMultistageVIFInputData inputData) + { + var airdrag = inputData.VehicleInputData.Components?.AirdragInputData; + if (airdrag != null && inputData.VehicleInputData.AirdragModifiedMultistep != false) { + return GetAirdragElement(airdrag); + } + + return inputData.VehicleInputData.AirdragModifiedMultistep == true + ? GetBusAirdragUseStandardValues() + : null; + } + + #endregion + + protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV10 airdrag) + { + var retVal = new XElement(v24 + XMLNames.Component_AirDrag); + var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree()); + retVal.Add(tmp.Elements()); + return retVal; + } + + protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV20 airdrag) + { + var retVal = new XElement(v24 + XMLNames.Component_AirDrag, + new XAttribute("xmlns", v20.NamespaceName)); + var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree()); + retVal.Add(tmp.Elements()); + return retVal; + } + + protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV24 airdrag) + { + var retVal = new XElement(v24 + XMLNames.Component_AirDrag); + var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree()); + retVal.Add(tmp.Elements()); + return retVal; + } + + protected XElement GetAirdragElement(IAirdragDeclarationInputData airdrag) + { + switch (airdrag) { + case XMLDeclarationAirdragDataProviderV20 av20: + return GetAirdragElement(av20); + case XMLDeclarationAirdragDataProviderV24 av24: + return GetAirdragElement(av24); + case XMLDeclarationAirdragDataProviderV10 av10: + return GetAirdragElement(av10); + } + throw new VectoException( + $"Specific implementation for Airdrag Data (Interim Stage) missing {airdrag.GetType().Name}"); + + // //if (airdrag == null) + // // return null; + + // //var dataAndSig = + // // airdrag.XMLSource.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.Component_AirDrag)); + // //var dataXmlType = dataAndSig.FirstChild.SchemaInfo.SchemaAttribute.QualifiedName; + + // //return null; + // //XmlNode airdragNode = null; + // //if (airdrag is AbstractCommonComponentType) + // // airdragNode = (airdrag as AbstractCommonComponentType).XMLSource; + // //else { + // // var type = airdrag.GetType(); + // // var property = type.GetProperty(nameof(AbstractCommonComponentType.XMLSource)); + // // if (property != null) + // // airdragNode = (XmlNode)property.GetValue(airdrag, null); + // //} + + // //if (airdragNode == null) + // // return null; + + // //var dataNode = airdragNode.SelectSingleNode(".//*[local-name()='Data']"); + // //var signatureNode = airdragNode.SelectSingleNode(".//*[local-name()='Signature']"); + + // //if (dataNode == null) + // // throw new VectoException("Data node of airdrag component is null!"); + // //if (signatureNode == null) + // // throw new VectoException("Signature node of the given airdrag component is null!"); + + // //return dataNode.NamespaceURI == v10.NamespaceName + // // ? GetAirdragXMLElementV1(dataNode, signatureNode) + // // : GetAirdragXMLElementV2(dataNode, signatureNode); + } + + protected XElement GetBusAirdragUseStandardValues() + { + var id = $"{VectoComponents.Airdrag.HashIdPrefix()}{XMLHelper.GetGUID()}"; + + return new XElement(v24 + XMLNames.Component_AirDrag, + new XElement(v20 + XMLNames.ComponentDataWrapper, + new XAttribute(xsi + XMLNames.Attr_Type, "AirDragModifiedUseStandardValueType"), + new XAttribute(XMLNames.Component_ID_Attr, id) + ), + new XElement(v20 + XMLNames.DI_Signature, XMLHelper.CreateDummySig(di))); + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs new file mode 100644 index 0000000000000000000000000000000000000000..a6abe6982eb10be5bc60edfd4882354f470810e7 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs @@ -0,0 +1,150 @@ +using System.Xml.Linq; +using NLog.LayoutRenderers; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents +{ + public abstract class InterimVIFAuxiliaryType : IReportMultistepCompletedBusTypeWriter + { + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected readonly IVIFReportInterimFactory _vifFactory; + + protected InterimVIFAuxiliaryType(IVIFReportInterimFactory vifFactory) + { + _vifFactory = vifFactory; + } + + #region Implementation of IReportMultistepCompletedBusTypeWriter + + public abstract XElement GetElement(IMultistageVIFInputData inputData); + + #endregion + } + + public class ConventionalInterimAuxiliaryType : InterimVIFAuxiliaryType + { + public ConventionalInterimAuxiliaryType(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + protected virtual string XMLType => "AUX_Conventional_CompletedBusType"; + + #region Overrides of InterimVIFAuxiliaryType + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var busAux = inputData.VehicleInputData.Components?.BusAuxiliaries; + if (busAux == null) + return null; + + var electricSystemEntry = GetElectricSystem(busAux.ElectricConsumers); + var hvacEntry = GetHVAC(busAux.HVACAux); + + if (electricSystemEntry == null && hvacEntry == null) + return null; + + return new XElement(_v24 + XMLNames.Component_Auxiliaries, + new XElement(_v24 + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.Attr_Type, XMLType), + electricSystemEntry != null + ? GetElectricSystem(busAux.ElectricConsumers) : null, + hvacEntry != null + ? GetHVAC(busAux.HVACAux) : null + )); + } + + #endregion + + protected virtual XElement GetElectricSystem(IElectricConsumersDeclarationData electricConsumer) + { + if (electricConsumer == null) + return null; + + if (electricConsumer.InteriorLightsLED == null && electricConsumer.DayrunninglightsLED == null && + electricConsumer.PositionlightsLED == null && electricConsumer.BrakelightsLED == null && + electricConsumer.HeadlightsLED == null) + return null; + + return new XElement(_v24 + XMLNames.BusAux_ElectricSystem, + new XElement(_v24 + XMLNames.BusAux_LEDLights, + electricConsumer.InteriorLightsLED != null + ? new XElement(_v24 + XMLNames.Bus_Interiorlights, electricConsumer.InteriorLightsLED) : null, + electricConsumer.DayrunninglightsLED != null + ? new XElement(_v24 + XMLNames.Bus_Dayrunninglights, electricConsumer.DayrunninglightsLED) : null, + electricConsumer.PositionlightsLED != null + ? new XElement(_v24 + XMLNames.Bus_Positionlights, electricConsumer.PositionlightsLED) : null, + electricConsumer.BrakelightsLED != null + ? new XElement(_v24 + XMLNames.Bus_Brakelights, electricConsumer.BrakelightsLED) : null, + electricConsumer.HeadlightsLED != null + ? new XElement(_v24 + XMLNames.Bus_Headlights, electricConsumer.HeadlightsLED) : null + )); + } + + protected virtual XElement GetHVAC(IHVACBusAuxiliariesDeclarationData hvac) + { + if (hvac == null) + return null; + + if (hvac.SystemConfiguration == null && + hvac.HeatPumpTypeCoolingDriverCompartment == null && hvac.HeatPumpTypeHeatingDriverCompartment == null && + hvac.HeatPumpTypeCoolingPassengerCompartment == null && hvac.HeatPumpTypeHeatingPassengerCompartment == null && + hvac.AuxHeaterPower == null && hvac.DoubleGlazing == null && + hvac.AdjustableAuxiliaryHeater == null && hvac.SeparateAirDistributionDucts == null && + hvac.WaterElectricHeater == null && hvac.AirElectricHeater == null && hvac.OtherHeatingTechnology == null) + return null; + + return new XElement(_v24 + XMLNames.BusAux_HVAC, + hvac.SystemConfiguration != null + ? new XElement(_v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.ToXmlFormat()) : null, + hvac.HeatPumpTypeCoolingDriverCompartment != null && hvac.HeatPumpTypeHeatingDriverCompartment != null + ? new XElement(_v24 + XMLNames.Bus_HeatPumpTypeDriver, + new XElement(_v24 + XMLNames.BusHVACHeatPumpCooling, hvac.HeatPumpTypeCoolingDriverCompartment.GetLabel()), + new XElement(_v24 + XMLNames.BusHVACHeatPumpHeating, hvac.HeatPumpTypeHeatingDriverCompartment.GetLabel())) : null, + hvac.HeatPumpTypeCoolingPassengerCompartment != null && hvac.HeatPumpTypeHeatingPassengerCompartment != null + ? new XElement(_v24 + XMLNames.Bus_HeatPumpTypePassenger, + new XElement(_v24 + XMLNames.BusHVACHeatPumpCooling, hvac.HeatPumpTypeCoolingPassengerCompartment.GetLabel()), + new XElement(_v24 + XMLNames.BusHVACHeatPumpHeating, hvac.HeatPumpTypeHeatingPassengerCompartment.GetLabel())) : null, + hvac.AuxHeaterPower != null + ? new XElement(_v24 + XMLNames.Bus_AuxiliaryHeaterPower, hvac.AuxHeaterPower.ToXMLFormat(0)) : null, + hvac.DoubleGlazing != null + ? new XElement(_v24 + XMLNames.Bus_DoubleGlazing, hvac.DoubleGlazing) : null, + hvac.AdjustableAuxiliaryHeater != null + ? new XElement(_v24 + XMLNames.Bus_AdjustableAuxiliaryHeater, hvac.AdjustableAuxiliaryHeater) : null, + hvac.SeparateAirDistributionDucts != null + ? new XElement(_v24 + XMLNames.Bus_SeparateAirDistributionDucts, hvac.SeparateAirDistributionDucts) : null + ); + } + + } + + public class XEVInterimAuxiliaryType : ConventionalInterimAuxiliaryType + { + public XEVInterimAuxiliaryType(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + protected override string XMLType => "AUX_xEV_CompletedBusType"; + + protected override XElement GetHVAC(IHVACBusAuxiliariesDeclarationData hvac) + { + var retVal = base.GetHVAC(hvac); + retVal.Add(GetxEVHVAC(hvac)); + + return retVal; + + } + + protected virtual XElement[] GetxEVHVAC(IHVACBusAuxiliariesDeclarationData hvac) + { + return new[] { + hvac.WaterElectricHeater.HasValue ? + new XElement(_v24 + XMLNames.Bus_WaterElectricHeater, hvac.WaterElectricHeater) :null, + hvac.AirElectricHeater.HasValue ? + new XElement(_v24 + XMLNames.Bus_AirElectricHeater, hvac.AirElectricHeater) : null, + hvac.OtherHeatingTechnology.HasValue ? + new XElement(_v24 + XMLNames.Bus_OtherHeatingTechnology, hvac.OtherHeatingTechnology) : null + }; + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs new file mode 100644 index 0000000000000000000000000000000000000000..3583ba7922a34cbd93b477923f2ee0b9f911d606 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs @@ -0,0 +1,96 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents +{ + public class VIFCompletedConventionalAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFCompletedConventionalAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_v24 + XMLNames.Vehicle_ADAS, + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_Conventional_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()), + adas.ATEcoRollReleaseLockupClutch.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, + adas.ATEcoRollReleaseLockupClutch.Value) + : null); + } + + #endregion + } + + + public class VIFCompletedHEVAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFCompletedHEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_v24 + XMLNames.Vehicle_ADAS, + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_HEV_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()), + adas.ATEcoRollReleaseLockupClutch.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, + adas.ATEcoRollReleaseLockupClutch.Value) + : null); + } + + #endregion + } + + public class VIFCompletedPEVAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFCompletedPEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_v24 + XMLNames.Vehicle_ADAS, + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_PEV_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); + } + + #endregion + } + + public class VIFCompletedIEPCAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFCompletedIEPCAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_v24 + XMLNames.Vehicle_ADAS, + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_IEPC_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..57c61a1f31d6c21071350479b50288ffa955d94d --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs @@ -0,0 +1,147 @@ +using System.Collections.Generic; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class AbstractInterimVIFGroupWriter : IReportMultistepCompletedBusOutputGroup + { + protected readonly IVIFReportInterimFactory _vifReportFactory; + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + + protected AbstractInterimVIFGroupWriter(IVIFReportInterimFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + #region Implementation of IReportMultistepCompletedBusOutputGroup + + public abstract IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider); + + #endregion + } + + public class CompletedBusGeneralParametersGroup : AbstractInterimVIFGroupWriter + { + public CompletedBusGeneralParametersGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractInterimVIFGroupWriter + + public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider) + { + var vehicleInputData = multiStageInputDataProvider.VehicleInputData; + return new[] { + new XElement(_v24 + XMLNames.Component_Manufacturer, vehicleInputData.Manufacturer), + new XElement(_v24 + XMLNames.Component_ManufacturerAddress, vehicleInputData.ManufacturerAddress), + new XElement(_v24 + XMLNames.Vehicle_VIN, vehicleInputData.VIN), + new XElement(_v24 + XMLNames.Component_Date, + XmlConvert.ToString(vehicleInputData.Date, XmlDateTimeSerializationMode.Utc)), + + }; + } + + #endregion + } + + public class GetCompletedBusParametersGroup : AbstractInterimVIFGroupWriter + { + public GetCompletedBusParametersGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractInterimVIFGroupWriter + + public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider) + { + var vehicleInputData = multiStageInputDataProvider.VehicleInputData; + return new [] { + vehicleInputData.Model != null + ? new XElement(_v24 + XMLNames.Component_Model, vehicleInputData.Model) : null, + vehicleInputData.LegislativeClass != null + ? new XElement(_v24 + XMLNames.Vehicle_LegislativeCategory, vehicleInputData.LegislativeClass.ToXMLFormat()) : null, + vehicleInputData.CurbMassChassis != null + ? new XElement(_v24 + XMLNames.CorrectedActualMass, vehicleInputData.CurbMassChassis.ToXMLFormat(0)) : null, + vehicleInputData.GrossVehicleMassRating != null + ? new XElement(_v24 + XMLNames.TPMLM, vehicleInputData.GrossVehicleMassRating.ToXMLFormat(0)) : null, + GetAirdragModifiedMultistageEntry(multiStageInputDataProvider), + vehicleInputData.RegisteredClass != null + ? new XElement(_v24 + XMLNames.Vehicle_RegisteredClass, vehicleInputData.RegisteredClass.ToXMLFormat()) : null, + }; + } + + protected XElement GetAirdragModifiedMultistageEntry(IMultistageVIFInputData multiStageInputDataProvider) + { + var consolidatedInputData = multiStageInputDataProvider.MultistageJobInputData.JobInputData + .ConsolidateManufacturingStage; + var vehicleInputData = multiStageInputDataProvider.VehicleInputData; + if (consolidatedInputData?.Vehicle?.Components?.AirdragInputData == null) + return null; + + switch (vehicleInputData.AirdragModifiedMultistep) { + case null: + throw new VectoException("AirdragModifiedMultistage must be set if an airdrag component has been set in previous stages."); + default: + return new XElement(_v24 + XMLNames.Bus_AirdragModifiedMultistep, vehicleInputData.AirdragModifiedMultistep); + } + } + #endregion + } + + public class CompletedBusPassengerCountGroup : AbstractInterimVIFGroupWriter + { + public CompletedBusPassengerCountGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractInterimVIFGroupWriter + + public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider) + { + var vehicleInputData = multiStageInputDataProvider.VehicleInputData; + + if (vehicleInputData.NumberPassengerSeatsLowerDeck == null || + vehicleInputData.NumberPassengersStandingLowerDeck == null || + vehicleInputData.NumberPassengerSeatsUpperDeck == null || + vehicleInputData.NumberPassengersStandingUpperDeck == null) { + return new XElement[] {}; + } + + return new [] { + new XElement(_v24 + XMLNames.Bus_NumberPassengerSeatsLowerDeck, vehicleInputData.NumberPassengerSeatsLowerDeck), + new XElement(_v24 + XMLNames.Bus_NumberPassengersStandingLowerDeck, vehicleInputData.NumberPassengersStandingLowerDeck), + new XElement(_v24 + XMLNames.Bus_NumberPassengerSeatsUpperDeck, vehicleInputData.NumberPassengerSeatsUpperDeck), + new XElement(_v24 + XMLNames.Bus_NumberPassengersStandingUpperDeck, vehicleInputData.NumberPassengersStandingUpperDeck), + }; + } + + #endregion + } + + public class CompletedBusDimensionsGroup : AbstractInterimVIFGroupWriter + { + public CompletedBusDimensionsGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractInterimVIFGroupWriter + + public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider) + { + var vehicleInputData = multiStageInputDataProvider.VehicleInputData; + + if (vehicleInputData.Height == null || vehicleInputData.Length == null || + vehicleInputData.Width == null || vehicleInputData.EntranceHeight == null) { + return new XElement[] { }; + } + + return new[] { + new XElement(_v24 + XMLNames.Bus_HeightIntegratedBody, vehicleInputData.Height.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(_v24 + XMLNames.Bus_VehicleLength, vehicleInputData.Length.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(_v24 + XMLNames.Bus_VehicleWidth, vehicleInputData.Width.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(_v24 + XMLNames.Bus_EntranceHeight, vehicleInputData.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)), + }; + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..2c778cdd51ba502b3b5c82869ac9f21b7efcef26 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs @@ -0,0 +1,269 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Hashing; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class InterimVehicleWriter : IXmlMultistepTypeWriter + { + protected readonly IVIFReportInterimFactory _vifReportFactory; + + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected InterimVehicleWriter(IVIFReportInterimFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + #region Implementation of IXmlMultistepTypeWriter + + public abstract XElement GetElement(IMultistageVIFInputData inputData); + + #endregion + + protected string GetVehicleID() + { + return $"{VectoComponents.Vehicle.HashIdPrefix()}{XMLHelper.GetGUID()}"; + } + } + + public class ConventionalInterimVehicleType : InterimVehicleWriter + { + public ConventionalInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var vehicleInput = inputData.VehicleInputData; + var ngTankSystem = vehicleInput.TankSystem.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_NgTankSystem, vehicleInput.TankSystem.ToString()) + : null; + var bodyworkCode = vehicleInput.VehicleCode.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat()) + : null; + var lowEntry = vehicleInput.LowEntry.HasValue + ? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) + : null; + var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue + ? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology, + vehicleInput.DoorDriveTechnology.ToXMLFormat()) + : null; + var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber) + ? null + : new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()), + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Conventional_CompletedBusDeclarationType"), + new XAttribute("xmlns", _v24), + //new XAttribute(XNamespace.Xmlns + "xsi", _xsi), + _vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData), + ngTankSystem, + _vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData), + bodyworkCode, + lowEntry, + _vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData), + doordriveTechnology, + new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType, + inputData.VehicleInputData.VehicleDeclarationType.GetLabel()), + vehicleTypeApprovalNumber, + _vifReportFactory.GetConventionalInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS), + _vifReportFactory.GetConventionalInterimComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class HEVInterimVehicleType : InterimVehicleWriter + { + public HEVInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of InterimVehicleWriter + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var vehicleInput = inputData.VehicleInputData; + var ngTankSystem = vehicleInput.TankSystem.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_NgTankSystem, vehicleInput.TankSystem.ToString()) + : null; + var bodyworkCode = vehicleInput.VehicleCode.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat()) + : null; + var lowEntry = vehicleInput.LowEntry.HasValue + ? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) + : null; + var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue + ? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology, + vehicleInput.DoorDriveTechnology.ToXMLFormat()) + : null; + var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber) + ? null + : new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()), + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV_CompletedBusDeclarationType"), + new XAttribute("xmlns", _v24), + //new XAttribute(XNamespace.Xmlns + "xsi", _xsi), + _vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData), + ngTankSystem, + _vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData), + bodyworkCode, + lowEntry, + _vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData), + doordriveTechnology, + new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType, + inputData.VehicleInputData.VehicleDeclarationType.GetLabel()), + vehicleTypeApprovalNumber, + _vifReportFactory.GetHEVInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS), + _vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class PEVInterimVehicleType : InterimVehicleWriter + { + public PEVInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of InterimVehicleWriter + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var vehicleInput = inputData.VehicleInputData; + var bodyworkCode = vehicleInput.VehicleCode.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat()) + : null; + var lowEntry = vehicleInput.LowEntry.HasValue + ? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) + : null; + var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue + ? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology, + vehicleInput.DoorDriveTechnology.ToXMLFormat()) + : null; + var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber) + ? null + : new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()), + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV_CompletedBusDeclarationType"), + new XAttribute("xmlns", _v24), + //new XAttribute(XNamespace.Xmlns + "xsi", _xsi), + _vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData), + bodyworkCode, + lowEntry, + _vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData), + doordriveTechnology, + new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType, + inputData.VehicleInputData.VehicleDeclarationType.GetLabel()), + vehicleTypeApprovalNumber, + _vifReportFactory.GetPEVInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS), + _vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class IEPCInterimVehicleType : InterimVehicleWriter + { + public IEPCInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of InterimVehicleWriter + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var vehicleInput = inputData.VehicleInputData; + var bodyworkCode = vehicleInput.VehicleCode.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat()) + : null; + var lowEntry = vehicleInput.LowEntry.HasValue + ? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) + : null; + var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue + ? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology, + vehicleInput.DoorDriveTechnology.ToXMLFormat()) + : null; + var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber) + ? null + : new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()), + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_IEPC_CompletedBusDeclarationType"), + new XAttribute("xmlns", _v24), + //new XAttribute(XNamespace.Xmlns + "xsi", _xsi), + _vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData), + _vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData), + bodyworkCode, + lowEntry, + _vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData), + doordriveTechnology, + new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType, + inputData.VehicleInputData.VehicleDeclarationType.GetLabel()), + vehicleTypeApprovalNumber, + _vifReportFactory.GetIEPCInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS), + _vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData) + ); + } + + #endregion + } + + public class ExemptedInterimVehicleType : InterimVehicleWriter + { + public ExemptedInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of InterimVehicleWriter + + public override XElement GetElement(IMultistageVIFInputData inputData) + { + var vehicleInput = inputData.VehicleInputData; + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()), + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Exempted_CompletedBusDeclarationType"), + new XAttribute("xmlns", _v24), + _vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData), + vehicleInput.Model != null + ? new XElement(_v24 + XMLNames.Component_Model, vehicleInput.Model) : null, + vehicleInput.LegislativeClass != null + ? new XElement(_v24 + XMLNames.Vehicle_LegislativeCategory, vehicleInput.LegislativeClass.ToXMLFormat()) : null, + vehicleInput.CurbMassChassis != null + ? new XElement(_v24 + XMLNames.CorrectedActualMass, vehicleInput.CurbMassChassis.ToXMLFormat(0)) : null, + vehicleInput.GrossVehicleMassRating != null + ? new XElement(_v24 + XMLNames.TPMLM, vehicleInput.GrossVehicleMassRating.ToXMLFormat(0)) : null, + vehicleInput.AirdragModifiedMultistep != null ? + new XElement(_v24 + XMLNames.Bus_AirdragModifiedMultistep, vehicleInput.AirdragModifiedMultistep) : null, + vehicleInput.RegisteredClass != null && vehicleInput.RegisteredClass != RegistrationClass.unknown + ? new XElement(_v24 + XMLNames.Vehicle_RegisteredClass, vehicleInput.RegisteredClass.ToXMLFormat()) : null, + _vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData), + vehicleInput.VehicleCode.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat()) + : null, + vehicleInput.LowEntry != null + ? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) : null, + vehicleInput.Height != null + ? new XElement(_v24 + XMLNames.Bus_HeightIntegratedBody, vehicleInput.Height.ConvertToMilliMeter().ToXMLFormat(0)) : null + + ); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..7a1af05caf0731af06df0f74f6bbe31e57ad35ab --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs @@ -0,0 +1,260 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class PrimaryComponentVIFType : IXmlTypeWriter + { + protected readonly IVIFReportFactory _vifReportFactory; + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected PrimaryComponentVIFType(IVIFReportFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + #region Implementation of IXmlTypeWriter + + public abstract XElement GetElement(IDeclarationInputDataProvider inputData); + + #endregion + } + + + public class ConventionalComponentVIFType : PrimaryComponentVIFType + { + public ConventionalComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Conventional_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetTransmissionType().GetElement(inputData), + _vifReportFactory.GetTorqueConvertType().GetElement(inputData), + _vifReportFactory.GetAngelDriveType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryType().GetElement(inputData)); + } + + #endregion + } + + + public class HevIepcSComponentVIFType : PrimaryComponentVIFType + { + public HevIepcSComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-IEPC-S_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetElectricMachineGENType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetIepcType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryIEPC_SType().GetElement(inputData)); + } + + #endregion + } + + public class HevPxComponentVIFType : PrimaryComponentVIFType + { + public HevPxComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-Px_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetTransmissionType().GetElement(inputData), + _vifReportFactory.GetTorqueConvertType().GetElement(inputData), + _vifReportFactory.GetAngelDriveType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryHevPType().GetElement(inputData)); + } + + #endregion + } + + public class HevS2ComponentVIFType: PrimaryComponentVIFType + { + public HevS2ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S2_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetElectricMachineGENType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetTransmissionType().GetElement(inputData), + _vifReportFactory.GetTorqueConvertType().GetElement(inputData), + _vifReportFactory.GetAngelDriveType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData)); + } + + #endregion + } + + + public class HevS3ComponentVIFType : PrimaryComponentVIFType + { + public HevS3ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S3_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetElectricMachineGENType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData)); + } + + #endregion + } + + + public class HevS4ComponentVIFType : PrimaryComponentVIFType + { + public HevS4ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S4_ComponentsVIFType"), + _vifReportFactory.GetEngineType().GetElement(inputData), + _vifReportFactory.GetElectricMachineGENType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData)); + } + + #endregion + } + + + public class PevE2ComponentVIFType : PrimaryComponentVIFType + { + public PevE2ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E2_ComponentsVIFType"), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetTransmissionType().GetElement(inputData), + _vifReportFactory.GetTorqueConvertType().GetElement(inputData), + _vifReportFactory.GetAngelDriveType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData)); + } + + #endregion + } + + + public class PevE3ComponentVIFType : PrimaryComponentVIFType + { + public PevE3ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E3_ComponentsVIFType"), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData)); + } + + #endregion + } + + + public class PevE4ComponentVIFType : PrimaryComponentVIFType + { + public PevE4ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E4_ComponentsVIFType"), + _vifReportFactory.GetElectricMachineType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData)); + } + + #endregion + } + + + public class IepcComponentVIFType : PrimaryComponentVIFType + { + public IepcComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of ComponentVIFType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_vif + XMLNames.Vehicle_Components, + new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-IEPC_ComponentsVIFType"), + _vifReportFactory.GetIepcType().GetElement(inputData), + _vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData), + _vifReportFactory.GetRetarderType().GetElement(inputData), + _vifReportFactory.GetAxlegearType().GetElement(inputData), + _vifReportFactory.GetAxleWheelsType().GetElement(inputData), + _vifReportFactory.GetAuxiliaryIEPCType().GetElement(inputData)); + } + + #endregion + } + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs new file mode 100644 index 0000000000000000000000000000000000000000..63c3c10761211c293ab960e5929ee0e02e948159 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public interface IVIFFAdasType + { + XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas); + } + + public class VIFConventionalAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFConventionalAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_vif + XMLNames.Vehicle_ADAS, + new XAttribute("xmlns", _v24), + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_Conventional_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()), + adas.ATEcoRollReleaseLockupClutch.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, + adas.ATEcoRollReleaseLockupClutch.Value) + : null); + } + + #endregion + } + + public class VIFHEVAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFHEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_vif + XMLNames.Vehicle_ADAS, + new XAttribute("xmlns", _v24), + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_HEV_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()), + adas.ATEcoRollReleaseLockupClutch.HasValue + ? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, + adas.ATEcoRollReleaseLockupClutch.Value) + : null); + } + + #endregion + } + + public class VIFPEVAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFPEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_vif + XMLNames.Vehicle_ADAS, + new XAttribute("xmlns", _v24), + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_PEV_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); + } + + #endregion + } + + public class VIFIEPCAdasType : AbstractVIFXmlType, IVIFFAdasType + { + public VIFIEPCAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + if (adas == null) + return null; + + return new XElement(_vif + XMLNames.Vehicle_ADAS, + new XAttribute("xmlns", _v24), + new XAttribute(_xsi + XMLNames.XSIType, "ADAS_IEPC_Type"), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs new file mode 100644 index 0000000000000000000000000000000000000000..71665bdef412ee440d13d21f1354003ab28ec2aa --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs @@ -0,0 +1,42 @@ +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFAngleDriveType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFAngleDriveType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var angelDrive = inputData.JobInputData.Vehicle.Components.AngledriveInputData; + if (angelDrive == null) + return null; + + return new XElement(_vif + XMLNames.Component_Angledrive, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AngledriveDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, angelDrive.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, angelDrive.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, angelDrive.CertificationMethod.ToXMLFormat()), + angelDrive.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, + angelDrive.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(angelDrive.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, angelDrive.AppVersion), + new XElement(_vif + XMLNames.AngleDrive_Ratio, angelDrive.Ratio.ToXMLFormat(3)) + )); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs new file mode 100644 index 0000000000000000000000000000000000000000..b3f7a339ac7c234d4cca18013efd640d579906f5 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs @@ -0,0 +1,373 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Impl; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFAuxiliaryType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFAuxiliaryType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public virtual XElement GetElement(IDeclarationInputDataProvider inputData) + { + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_Conventional_PrimaryBusType"), + new XElement(_vif + XMLNames.BusAux_Fan, + new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetElectricSystem(aux.ElectricSupply), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + } + + protected virtual XElement GetSteeringPumpElement(IList<string> steeringPumps) + { + var result = new List<XElement>(); + for (int i = 0; i < steeringPumps.Count; i++) + { + result.Add(new XElement(_vif + XMLNames.BusAux_Technology, + new XAttribute("axleNumber", (i + 1).ToString()), steeringPumps[i])); + } + + return new XElement(_vif + XMLNames.BusAux_SteeringPump, result); + } + + + protected virtual XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply) + { + var alternatorTech = new XElement(_vif + XMLNames.Bus_AlternatorTechnology, electricSupply.AlternatorTechnology.ToXMLFormat()); + + List<XElement> smartAlternators = null; + List<XElement> auxBattery = null; + List<XElement> auxCapacitor = null; + + if (electricSupply.Alternators?.Any() == true) + { + smartAlternators = new List<XElement>(); + + foreach (var alternator in electricSupply.Alternators) + { + smartAlternators.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_SmartAlternator, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCurrent, alternator.RatedCurrent.Value()), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedRatedVoltage, alternator.RatedVoltage.Value()))); + } + } + + if (electricSupply.ElectricStorage?.Any() == true) + { + auxBattery = new List<XElement>(); + auxCapacitor = new List<XElement>(); + + foreach (var electricStorage in electricSupply.ElectricStorage) + { + if (electricStorage is BusAuxBatteryInputData battery) + { + auxBattery.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_Battery, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_BatteryTechnology, battery.Technology), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCapacity, battery.Capacity.AsAmpHour), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_NominalVoltage, battery.Voltage.Value()))); + } + else if (electricStorage is BusAuxCapacitorInputData capacitor) + { + auxCapacitor.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_Capacitor, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_CapacitorTechnology, capacitor.Technology), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCapacitance, capacitor.Capacity.Value()), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedVoltage, capacitor.Voltage.Value()))); + } + } + + auxBattery = auxBattery.Any() ? auxBattery : null; + auxCapacitor = auxCapacitor.Any() ? auxCapacitor : null; + } + + return new XElement(_vif + XMLNames.BusAux_ElectricSystem, + alternatorTech, + smartAlternators, + auxBattery, + auxCapacitor, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, electricSupply.ESSupplyFromHEVREESS) + ); + } + + + protected virtual XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer) + { + + return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, + new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize), + new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), + new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch), + new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)), + new XElement(_vif + XMLNames.Bus_SmartCompressionSystem, pSupply.SmartAirCompression), + new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration), + new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + protected string GetXMLAirsuspensionControl(ConsumerTechnology airsuspensionControl) + { + switch (airsuspensionControl) + { + case ConsumerTechnology.Electrically: + return "electronically"; + case ConsumerTechnology.Mechanically: + return "mechanically"; + default: + throw new VectoException("Unknown AirsuspensionControl!"); + } + } + + + protected virtual XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac) + { + return new XElement(new XElement(_vif + XMLNames.BusAux_HVAC, + new XElement(_vif + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat), + new XElement(_vif + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger))); + } + + #endregion + } + + public class VIFAuxiliaryHevSType : VIFAuxiliaryType + { + public VIFAuxiliaryHevSType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VIFAuxiliaryType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-S_PrimaryBusType"), + new XElement(_vif + XMLNames.BusAux_Fan, + new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetElectricSystem(aux.ElectricSupply), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + } + + + protected override XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply) + { + return new XElement(_vif + XMLNames.BusAux_ElectricSystem, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_AlternatorTechnology, + electricSupply.AlternatorTechnology.ToXMLFormat()), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, + electricSupply.ESSupplyFromHEVREESS)); + } + + + protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer) + { + return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, + new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize), + new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), + new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch), + new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)), + new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration), + new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + #endregion + } + + public class VIFAuxiliaryIEPC_SType : VIFAuxiliaryType + { + public VIFAuxiliaryIEPC_SType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VIFAuxiliaryType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-S_PrimaryBusType"), + new XElement(_vif + XMLNames.BusAux_Fan, + new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetElectricSystem(aux.ElectricSupply), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + } + + + protected override XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply) + { + return new XElement(_vif + XMLNames.BusAux_ElectricSystem, + new XElement(_vif + XMLNames.BusAux_ElectricSystem_AlternatorTechnology, + electricSupply.AlternatorTechnology.ToXMLFormat()), + new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, + electricSupply.ESSupplyFromHEVREESS)); + } + + + protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer) + { + return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, + new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize), + new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), + new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch), + new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)), + new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration), + new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + #endregion + } + + public class VIFAuxiliaryHevPType : VIFAuxiliaryType + { + public VIFAuxiliaryHevPType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VIFAuxiliaryHevSType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-P_PrimaryBusType"), + new XElement(_vif + XMLNames.BusAux_Fan, + new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetElectricSystem(aux.ElectricSupply), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + + } + + #endregion + + #region Overrides of VIFAuxiliaryHevSType + + protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer) + { + return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, + new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize), + new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), + new XElement(_vif + XMLNames.BusAux_Clutch, pSupply.Clutch), + new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, pSupply.SmartAirCompression), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, pSupply.SmartRegeneration), + new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + #endregion + } + + public class VIFAuxiliaryIEPCType : VIFAuxiliaryType + { + public VIFAuxiliaryIEPCType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_IEPC_PrimaryBusType"), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + } + + #endregion + + + #region Overrides of VIFAuxiliaryType + + protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer) + { + return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, + new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), + new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration), + new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), + new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + protected override XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac) + { + return new XElement(new XElement(_vif + XMLNames.BusAux_HVAC, + new XElement(_vif + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat))); + } + + #endregion + } + + public class VIFAuxiliaryPEVType : VIFAuxiliaryIEPCType + { + public VIFAuxiliaryPEVType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VIFAuxiliaryType + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + + var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries; + if (aux == null) + return null; + + return new XElement(_vif + XMLNames.Component_Auxiliaries, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AUX_PEV_PrimaryBusType"), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux) + )); + } + + #endregion + + + } + +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..f4119fb9f8af240b49f8a68a9cae57885be09ed6 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs @@ -0,0 +1,86 @@ +using System.Collections.Generic; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFAxleWheelsType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFAxleWheelsType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var axleWheels = inputData.JobInputData.Vehicle.Components.AxleWheels; + if (axleWheels == null) + return null; + + return new XElement(_vif + XMLNames.Component_AxleWheels, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AxleWheelsDataVIFType"), + new XElement(_vif + XMLNames.AxleWheels_Axles, + GetAxleData(axleWheels.AxlesDeclaration) + ) + ) + ); + } + + private List<XElement> GetAxleData(IList<IAxleDeclarationInputData> axleInput) + { + var axles = new List<XElement>(); + + var axleNumber = 1; + foreach (var currentAxle in axleInput) { + var axle = new XElement(_vif + XMLNames.AxleWheels_Axles_Axle, + new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, axleNumber++), + new XAttribute("xmlns", _v20), + new XAttribute(_xsi + XMLNames.XSIType, "AxleDataDeclarationType"), + new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_AxleType, currentAxle.AxleType.ToXMLFormat()), + new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_TwinTyres, currentAxle.TwinTyres), + new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_Steered, currentAxle.Steered), + GetTyre(currentAxle.Tyre)); + axles.Add(axle); + } + + return axles; + } + + private XElement GetTyre(ITyreDeclarationInputData tyre) + { + var xmlTyre = tyre as IXMLTyreDeclarationInputData; + if (xmlTyre == null) { + throw new VectoException("Tyre input data must be in XML format"); + } + + return XElement.Load(xmlTyre.GetXmlNode.CreateNavigator().ReadSubtree()); + //var currentTyre = + // new XElement(_v20 + XMLNames.ComponentDataWrapper, + // new XAttribute(_xsi + XMLNames.XSIType, "TyreDataDeclarationType"), + // new XAttribute("id", tyre.DigestValue.Reference), + // new XElement(XMLNames.Component_Manufacturer, tyre.Manufacturer), + // new XElement(XMLNames.Component_Model, tyre.Model), + // new XElement(XMLNames.Component_CertificationNumber, tyre.CertificationNumber), + // new XElement(XMLNames.Component_Date, XmlConvert.ToString(tyre.Date, XmlDateTimeSerializationMode.Utc)), + // new XElement(XMLNames.Component_AppVersion, tyre.Date), + // new XElement(XMLNames.AxleWheels_Axles_Axle_Dimension, tyre.Dimension), + // new XElement(XMLNames.AxleWheels_Axles_Axle_RRCDeclared, tyre.RollResistanceCoefficient.ToXMLFormat(4)), + // new XElement(XMLNames.AxleWheels_Axles_Axle_FzISO, tyre.TyreTestLoad.ToXMLFormat()) + //); + + //return new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_Tyre, + // currentTyre, + // GetSignature(tyre.DigestValue) + //); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs new file mode 100644 index 0000000000000000000000000000000000000000..385754ac7be82d9b02c2c52e1293828f09e58c65 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs @@ -0,0 +1,42 @@ +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFAxlegearType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFAxlegearType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var axleGear = inputData.JobInputData.Vehicle.Components.AxleGearInputData; + if (axleGear == null) + return null; + + return new XElement(_vif + XMLNames.Component_Axlegear, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "AxlegearDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, axleGear.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, axleGear.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, axleGear.CertificationMethod.ToXMLFormat()), + axleGear.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, + axleGear.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(axleGear.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, axleGear.AppVersion), + new XElement(_vif + XMLNames.Axlegear_LineType, axleGear.LineType.ToXMLFormat()), + new XElement(_vif + XMLNames.Axlegear_Ratio, axleGear.Ratio.ToXMLFormat(3)))); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..7de33a3fac3f196c114fdcd0f9516a95d7d31df4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs @@ -0,0 +1,37 @@ +using System.Data; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFBoostingLimitationsType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFBoostingLimitationsType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var boostingLimitations = inputData.JobInputData.Vehicle.BoostingLimitations; + if (boostingLimitations == null) + return null; + + var boostingLimitationsXElement = new XElement(_vif + XMLNames.Vehicle_BoostingLimitation, + new XAttribute(_xsi + XMLNames.XSIType, "BoostingLimitationsType"), + new XAttribute("xmlns", _v24.NamespaceName)); + foreach (DataRow row in boostingLimitations.Rows) + { + boostingLimitationsXElement.Add(new XElement(_v24 + XMLNames.BoostingLimitation_Entry, + new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]), + new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]) + )); + } + + return boostingLimitationsXElement; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs new file mode 100644 index 0000000000000000000000000000000000000000..70d5658a7355777e8957d4aebb9fff987b547b35 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs @@ -0,0 +1,161 @@ +using System.Collections.Generic; +using System.Data; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFElectricEnergyStorageType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFElectricEnergyStorageType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var electricStorages = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements; + if (electricStorages == null) + return null; + + var result = new List<XElement>(); + + foreach (var entry in electricStorages) { + switch (entry.REESSPack.StorageType) { + case REESSType.SuperCap: + result.Add(GetCapacitor(entry)); + break; + case REESSType.Battery: + result.Add(GetBattery(entry)); + break; + } + } + + return new XElement(_vif + XMLNames.Component_ElectricEnergyStorage, result); + } + + #endregion + + private XElement GetCapacitor(IElectricStorageDeclarationInputData reess) + { + if(reess == null) + return null; + + var supercap = reess.REESSPack as ISuperCapDeclarationInputData; + if (supercap == null) { + throw new VectoException("Electric energy storage of type 'Capacitor' requires capacitor component"); + } + + return new XElement(_vif + XMLNames.ElectricEnergyStorage_Capacitor, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "CapacitorSystemDataType"), + new XElement(_vif + XMLNames.Component_Manufacturer, supercap.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, supercap.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, supercap.CertificationMethod.ToXMLFormat()), + supercap.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, supercap.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(supercap.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, supercap.AppVersion), + new XElement(_vif + XMLNames.Capacitor_Capacitance, supercap.Capacity.ToXMLFormat(2)), + new XElement(_vif + XMLNames.Capacitor_InternalResistance, supercap.InternalResistance.AsMilliOhm.ToXMLFormat(2)), + new XElement(_vif + XMLNames.Capacitor_MinVoltage, supercap.MinVoltage.ToXMLFormat(2)), + new XElement(_vif + XMLNames.Capacitor_MaxVoltage, supercap.MaxVoltage.ToXMLFormat(2)), + new XElement(_vif + XMLNames.Capacitor_MaxChargingCurrent, supercap.MaxCurrentCharge.ToXMLFormat(2)), + new XElement(_vif + XMLNames.Capacitor_MaxDischargingCurrent, supercap.MaxCurrentDischarge.ToXMLFormat(2)), + supercap.TestingTemperature == null + ? null + : new XElement(_vif + XMLNames.REESS_TestingTemperature, supercap.TestingTemperature.AsDegCelsius.ToXMLFormat(0)) + )); + } + + + private XElement GetBattery(IElectricStorageDeclarationInputData reess) + { + if (reess == null) + return null; + var battery = reess.REESSPack as IBatteryPackDeclarationInputData; + if (battery == null) { + throw new VectoException("Electric energy storage of type 'Battery' requires battery component"); + } + + + var result = new XElement(_vif + XMLNames.ElectricEnergyStorage_Battery, + new XElement(_vif + XMLNames.Battery_StringID, reess.StringId), + new XElement(_vif + "REESS", GetReess(battery)), + battery.MinSOC.HasValue ? new XElement(_vif + XMLNames.Battery_SOCmin, battery.MinSOC.Value) : null, + battery.MaxSOC.HasValue ? new XElement(_vif + XMLNames.Battery_SOCmax, battery.MaxSOC.Value) : null + ); + + return result; + } + + + private XElement GetReess(IBatteryPackDeclarationInputData battery) + { + return new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "BatterySystemDataType"), + new XElement(_vif + XMLNames.Component_Manufacturer, battery.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, battery.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat()), + battery.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, battery.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(battery.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, battery.AppVersion), + new XElement(_vif + XMLNames.REESS_BatteryType, battery.BatteryType.ToString()), + new XElement(_vif + XMLNames.REESS_RatedCapacity, battery.Capacity.AsAmpHour.ToXMLFormat(2)), + new XElement(_vif + XMLNames.REESS_ConnectorsSubsystemsIncluded, battery.ConnectorsSubsystemsIncluded), + new XElement(_vif + XMLNames.REESS_JunctionboxIncluded, battery.JunctionboxIncluded), + battery.TestingTemperature == null + ? null + : new XElement(_vif + XMLNames.REESS_TestingTemperature, battery.TestingTemperature.AsDegCelsius.ToXMLFormat(0)), + GetOcv(battery.VoltageCurve), + GetCurrentLimits(battery.MaxCurrentMap) + ); + + } + + + private XElement GetOcv(DataTable voltageCurve) + { + var entries = new List<XElement>(); + + foreach (DataRow row in voltageCurve.Rows) { + var soc = row[XMLNames.REESS_OCV_SoC]; + var ocv = row[XMLNames.REESS_OCV_OCV].ToString().ToDouble(); + + entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry, + new XAttribute(XMLNames.REESS_OCV_SoC, soc), + new XAttribute(XMLNames.REESS_OCV_OCV, ocv.ToXMLFormat(2)))); + } + return new XElement(_vif + XMLNames.REESS_OCV, entries); + } + + private XElement GetCurrentLimits(DataTable batteryMaxCurrentMap) + { + var entries = new List<XElement>(); + + foreach (DataRow row in batteryMaxCurrentMap.Rows) + { + var soc = row[XMLNames.REESS_CurrentLimits_SoC]; + var maxChargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxChargingCurrent].ToString().ToDouble(); + var maxDischargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxDischargingCurrent].ToString().ToDouble(); + + entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry, + new XAttribute(XMLNames.REESS_OCV_SoC, soc), + new XAttribute(XMLNames.REESS_CurrentLimits_MaxChargingCurrent, maxChargingCurrent.ToXMLFormat(2)), + new XAttribute(XMLNames.REESS_CurrentLimits_MaxDischargingCurrent, maxDischargingCurrent.ToXMLFormat(2)) + )); + } + + return new XElement(_vif + XMLNames.REESS_CurrentLimits, entries); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs new file mode 100644 index 0000000000000000000000000000000000000000..58f6eb5c68f01e8931345715d4b2b00efea78336 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs @@ -0,0 +1,67 @@ +using System.Collections.Generic; +using System.Data; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFElectricMachineGENType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFElectricMachineGENType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public virtual XElement GetElement(IDeclarationInputDataProvider inputData) + { + + foreach (var entry in inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries) { + + if (entry.Position == PowertrainPosition.GEN) + return GetElectricMachineGENType(entry); + } + + return null; + } + + #endregion + + + private XElement GetElectricMachineGENType(ElectricMachineEntry<IElectricMotorDeclarationInputData> electricMachineData) + { + return new XElement(_vif + XMLNames.Component_ElectricMachineGEN, + new XElement(_vif + XMLNames.ElectricMachine_PowertrainPosition, + electricMachineData.Position.ToXmlFormat()), + new XElement(_vif + XMLNames.ElectricMachine_Count, electricMachineData.Count), + _vifFactory.GetElectricMachineSystemType().GetElement(electricMachineData.ElectricMachine), + GetADC(electricMachineData.ADC) + ); + } + + protected virtual XElement GetADC(IADCDeclarationInputData adcData) + { + if (adcData == null) + return null; + + return new XElement(_vif + XMLNames.Component_ADC, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "ADCDataDeclarationType"), + new XElement(_vif + XMLNames.Component_Manufacturer, adcData.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, adcData.Model), + new XElement(_vif + XMLNames.Report_Component_CertificationNumber, adcData.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(adcData.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, adcData.AppVersion), + new XElement(_vif + XMLNames.ADC_Ratio, adcData.Ratio.ToXMLFormat(3)), + new XElement(_vif + XMLNames.Component_CertificationMethod, adcData.CertificationMethod.ToXMLFormat()) + ) + ); + } + + + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs new file mode 100644 index 0000000000000000000000000000000000000000..9545147c1681f73e5b3c4a3891cec78e5693307b --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs @@ -0,0 +1,156 @@ +using System.Collections.Generic; +using System.Data; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public interface IXmlElectricMachineSystemType + { + XElement GetElement(IElectricMotorDeclarationInputData em); + } + + + public class XmlElectricMachineSystemMeasuredType : AbstractVIFXmlType, IXmlElectricMachineSystemType + { + + public XmlElectricMachineSystemMeasuredType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IVIFElectricMachineSystemType + + public virtual XElement GetElement(IElectricMotorDeclarationInputData em) + { + return new XElement(_vif + XMLNames.ElectricMachineSystem, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "ElectricMachineSystemDataDeclarationType"), + GetElectricMachineSystemCommon(em), + GetElectricMachineSystemPowerRange(em), + new XElement(_vif + XMLNames.ElectricMachine_DcDcConverterIncluded, em.DcDcConverterIncluded), + new XElement(_vif + XMLNames.ElectricMachine_IHPCType, em.IHPCType), + GetVoltageLevels(em.VoltageLevels, em.CertificationMethod), + GetDragCurve(em.DragCurve), + GetConditioning(em.Conditioning) + ) + ); + } + + #endregion + + protected virtual List<XElement> GetElectricMachineSystemCommon(IElectricMotorDeclarationInputData em) + { + return new List<XElement> { + new XElement(_vif + XMLNames.Component_Manufacturer, em.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, em.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, em.CertificationMethod.ToXMLFormat()), + em.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Component_CertificationNumber, em.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(em.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, em.AppVersion), + new XElement(_vif + XMLNames.ElectricMachine_ElectricMachineType, em.ElectricMachineType.ToString()), + }; + } + + protected virtual List<XElement> GetElectricMachineSystemPowerRange(IElectricMotorDeclarationInputData em) + { + return new List<XElement> { + new XElement(_vif + XMLNames.ElectricMachine_R85RatedPower, em.R85RatedPower.ToXMLFormat(0)), + new XElement(_vif + XMLNames.ElectricMachine_RotationalInertia, em.Inertia.ToXMLFormat(2)) + }; + } + + + protected virtual List<XElement> GetVoltageLevels(IList<IElectricMotorVoltageLevel> voltageLevels, CertificationMethod certificationMethod) + { + var result = new List<XElement>(); + + foreach (var voltageLevel in voltageLevels) { + + var entry = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel, + voltageLevels.Count > 1 + ? new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0)) + : null, + new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageLevel.ContinuousTorque.ToXMLFormat(2)), + new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, + voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, + voltageLevel.OverloadTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, + voltageLevel.OverloadTestSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, + voltageLevel.OverloadTime.ToXMLFormat(2)), GetMaxTorqueCurve(voltageLevel.FullLoadCurve) + ); + result.Add(entry); + } + + return result; + } + + + protected virtual XElement GetMaxTorqueCurve(DataTable maxTorqueData) + { + var maxTorqueCurveEntries = new List<XElement>(); + + for (int r = 0; r < maxTorqueData.Rows.Count; r++) + { + var row = maxTorqueData.Rows[r]; + var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed]; + var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque]; + var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque]; + + var element = new XElement(_vif + XMLNames.MaxTorqueCurve_Entry, + new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed), + new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque), + new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque) + ); + + maxTorqueCurveEntries.Add(element); + } + + return new XElement(_vif + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries); + } + + + protected XElement GetDragCurve(TableData dragCurve) + { + var entries = new List<XElement>(); + foreach (DataRow rowEntry in dragCurve.Rows) + { + var outShaftSpeed = rowEntry[XMLNames.DragCurve_OutShaftSpeed].ToString().ToDouble(); + var dragTorque = rowEntry[XMLNames.DragCurve_DragTorque].ToString().ToDouble(); + + var entry = new XElement(_vif + XMLNames.DragCurve_Entry, + new XAttribute(XMLNames.DragCurve_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)), + new XAttribute(XMLNames.DragCurve_DragTorque, dragTorque.ToXMLFormat(2))); + + entries.Add(entry); + } + + return new XElement(_vif + XMLNames.DragCurve, entries); + } + + + protected XElement GetConditioning(DataTable iepcData) + { + if (iepcData == null) + return null; + + var entries = new List<XElement>(); + for (int r = 0; r < iepcData.Rows.Count; r++) + { + + var coolantTempInLet = iepcData.Rows[r][XMLNames.Conditioning_CoolantTempInlet]; + var coolingPower = iepcData.Rows[r][XMLNames.Conditioning_CoolingPower]; + + entries.Add(new XElement(_vif + XMLNames.Conditioning_Entry, + new XAttribute(XMLNames.Conditioning_CoolantTempInlet, coolantTempInLet), + new XAttribute(XMLNames.Conditioning_CoolingPower, coolingPower))); + } + + return new XElement(_vif + XMLNames.Conditioning, entries); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs new file mode 100644 index 0000000000000000000000000000000000000000..1582901c6038fe647b035a9ee9c5779acfe1cbb2 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; + + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFElectricMachineType : VIFElectricMachineGENType + { + public VIFElectricMachineType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var electricMachineEntries = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries; + if (electricMachineEntries == null || electricMachineEntries.Count == 0) + return null; + + foreach (var electricMachine in electricMachineEntries) { + if (electricMachine.Position != PowertrainPosition.GEN) + return GetElectricMachineType(electricMachine); + } + + return null; + } + + #endregion + + private XElement GetElectricMachineType(ElectricMachineEntry<IElectricMotorDeclarationInputData> electricMachineData) + { + return new XElement(_vif + XMLNames.Component_ElectricMachine, + new XElement(_vif + XMLNames.ElectricMachine_PowertrainPosition, + electricMachineData.Position.ToXmlFormat()), + new XElement(_vif + XMLNames.ElectricMachine_Count, electricMachineData.Count), + _vifFactory.GetElectricMachineSystemType().GetElement(electricMachineData.ElectricMachine), + GetADC(electricMachineData.ADC), + Get25GearRatio(electricMachineData.RatioPerGear) + ); + } + + private XElement Get25GearRatio(double[] gearRatios) + { + if (gearRatios == null) + return null; + + var results = new List<XElement>(); + for (int i = 0; i < gearRatios.Length; i++) { + results.Add(new XElement(_vif + XMLNames.Gear_Ratio, new XAttribute(XMLNames.ElectricMachine_P2_5GearRatios_Gear_Attr, i + 1), + gearRatios[i].ToXMLFormat(3))); + } + + return new XElement(_vif + XMLNames.ElectricMachine_P2_5GearRatios, results); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..e7e4fc4ac42e911cf9b3c0385545df423a6ddd6b --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFElectricMotorTorqueLimitsType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFElectricMotorTorqueLimitsType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var elTorqueLimits = inputData.JobInputData.Vehicle.ElectricMotorTorqueLimits; + if (elTorqueLimits == null || elTorqueLimits.Count == 0) + return null; + + var electricMachine = new List<XElement>(); + foreach (var entry in elTorqueLimits) { + electricMachine.Add(new XElement(_v24 + XMLNames.Component_ElectricMachine, + new XElement(_v24 + XMLNames.ElectricMachine_Position, entry.Key.ToXmlFormat()), + GetVoltageLevels(entry.Value))); + } + + var xmlType = inputData.JobInputData.Vehicle.VehicleType == VectoSimulationJobType.SerialHybridVehicle + ? "ElectricMachineTorqueLimitsSerialHybridType" + : "ElectricMachineTorqueLimitsType"; + return new XElement(_vif + XMLNames.ElectricMotorTorqueLimits, + new XAttribute(_xsi + XMLNames.XSIType, xmlType), + new XAttribute("xmlns", _v24), + electricMachine); + } + + private List<XElement> GetVoltageLevels(List<Tuple<Volt, TableData>> voltageLevels) + { + var voltageEntries = new List<XElement>(); + foreach (var voltageLevel in voltageLevels) + { + var voltage = voltageLevel.Item1; + var maxTorqueCurveEntries = new List<XElement>(); + for (int i = 0; i < voltageLevel.Item2.Rows.Count; i++) { + + var row = voltageLevel.Item2.Rows[i]; + var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed]; + var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque]; + var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque]; + + var element = new XElement(_v23 + XMLNames.MaxTorqueCurve_Entry, + new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed), + new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque), + new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque) + ); + + maxTorqueCurveEntries.Add(element); + } + + voltageEntries.Add( new XElement(_v24 + XMLNames.ElectricMachine_VoltageLevel, + new XElement(_v24 + XMLNames.VoltageLevel_Voltage, voltage.ToXMLFormat(0)), + new XElement(_v24 + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries))); + + } + + return voltageEntries; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs new file mode 100644 index 0000000000000000000000000000000000000000..6258d8454e3eceefcb5458013fb604aa85137271 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs @@ -0,0 +1,82 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFEngineType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFEngineType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var engine = inputData.JobInputData.Vehicle.Components.EngineInputData; + if (engine == null) + return null; + + return new XElement(_vif + XMLNames.Component_Engine, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "EngineDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, engine.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, engine.Model), + new XElement(_vif + XMLNames.Component_CertificationNumber, engine.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(engine.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, engine.AppVersion), + new XElement(_vif + XMLNames.Engine_Displacement, + engine.Displacement.ConvertToCubicCentiMeter().ToXMLFormat(0)), + new XElement(_vif + XMLNames.Engine_RatedSpeed, engine.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)), + new XElement(_vif + XMLNames.Engine_RatedPower, engine.RatedPowerDeclared.ToXMLFormat(0)), + new XElement(_vif + XMLNames.Engine_MaxTorque, engine.MaxTorqueDeclared.ToXMLFormat(0)), + new XElement( + _vif + XMLNames.Engine_WHRType, + new XElement(_vif + XMLNames.Engine_WHR_MechanicalOutputICE, (engine.WHRType & WHRType.MechanicalOutputICE) != 0), + new XElement(_vif + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain, (engine.WHRType & WHRType.MechanicalOutputDrivetrain) != 0), + new XElement(_vif + XMLNames.Engine_WHR_ElectricalOutput, (engine.WHRType & WHRType.ElectricalOutput) != 0) + ), + GetEngineModes(engine.EngineModes)) + ); + } + + private List<XElement> GetEngineModes(IList<IEngineModeDeclarationInputData> engineModes) + { + var modes = new List<XElement>(); + foreach (var mode in engineModes) + { + modes.Add( + new XElement( + _vif + XMLNames.Engine_FuelModes, + new XElement(_vif + XMLNames.Engine_IdlingSpeed, mode.IdleSpeed.AsRPM.ToXMLFormat(0)), + new XElement( + _vif + XMLNames.Engine_FullLoadAndDragCurve, + FullLoadCurveReader.Create(mode.FullLoadCurve, true).FullLoadEntries.Select( + x => new XElement( + _vif + XMLNames.Engine_FullLoadCurve_Entry, + new XAttribute(XMLNames.Engine_EngineFullLoadCurve_EngineSpeed_Attr, x.EngineSpeed.AsRPM.ToXMLFormat(2)), + new XAttribute(XMLNames.Engine_FullLoadCurve_MaxTorque_Attr, x.TorqueFullLoad.ToXMLFormat(2)), + new XAttribute(XMLNames.Engine_FullLoadCurve_DragTorque_Attr, x.TorqueDrag.ToXMLFormat(2))) + )), + new XElement( + _vif + "Fuels", + mode.Fuels.Select(x => new XElement(_vif + XMLNames.Engine_FuelType, x.FuelType.ToXMLFormat()))) + ) + ); + } + + return modes; + } + + + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs new file mode 100644 index 0000000000000000000000000000000000000000..3545218ed395c1ec99669e045097edd737b1b894 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs @@ -0,0 +1,211 @@ +using System.Collections.Generic; +using System.Data; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFIepcType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFIepcType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var iepc = inputData.JobInputData.Vehicle.Components.IEPC; + if (iepc == null) + return null; + + var xmlIepc = iepc as AbstractCommonComponentType; + if (xmlIepc == null) { + throw new VectoException("IEPC requires input to be in XML format"); + } + + var certificationMethod = xmlIepc.XMLSource + .SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.Component_CertificationMethod))?.InnerText; + + return new XElement(_vif + XMLNames.Component_IEPC, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "IEPCDataDeclarationType"), + new XElement(_vif + XMLNames.Component_Manufacturer, iepc.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, iepc.Model), + new XElement(_vif + XMLNames.Component_CertificationNumber, iepc.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(iepc.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, iepc.AppVersion), + new XElement(_vif + XMLNames.ElectricMachine_ElectricMachineType, iepc.ElectricMachineType.ToString()), + new XElement(_vif + XMLNames.Component_CertificationMethod, certificationMethod), + new XElement(_vif + XMLNames.ElectricMachine_R85RatedPower, iepc.R85RatedPower.ToXMLFormat(0)), + new XElement(_vif + XMLNames.ElectricMachine_RotationalInertia, iepc.Inertia.ToXMLFormat(2)), + new XElement(_vif + XMLNames.IEPC_DifferentialIncluded, iepc.DifferentialIncluded), + new XElement(_vif + XMLNames.IEPC_DesignTypeWheelMotor, iepc.DesignTypeWheelMotor), + iepc.NrOfDesignTypeWheelMotorMeasured == null + ? null + : new XElement(_vif + XMLNames.IEPC_NrOfDesignTypeWheelMotorMeasured, iepc.NrOfDesignTypeWheelMotorMeasured.Value), + GetGears(iepc.Gears), + GetVoltageLevels(iepc.VoltageLevels), + GetDragCurves(iepc.DragCurves), + GetConditioning(iepc.Conditioning) + ) + ); + } + + #endregion + + + private XElement GetGears(IList<IGearEntry> gearsData) + { + var gears = new List<XElement>(); + + foreach (var gearEntry in gearsData) { + + var currentGear = new XElement(_vif + XMLNames.Gear_EntryName, + new XAttribute("number", gearEntry.GearNumber.ToString()), + new XElement(_vif + XMLNames.GearRatio_Ratio, gearEntry.Ratio.ToXMLFormat(3)), + gearEntry.MaxOutputShaftTorque == null + ? null + : new XElement(_vif + XMLNames.Gear_MaxOutputShaftTorque, gearEntry.MaxOutputShaftTorque.ToXMLFormat(0)), + + gearEntry.MaxOutputShaftSpeed == null + ? null + : new XElement(_vif + XMLNames.Gear_MaxOutputShaftSpeed, gearEntry.MaxOutputShaftSpeed.AsRPM.ToXMLFormat(0)) + ); + gears.Add(currentGear); + } + + return new XElement(_vif + XMLNames.Gearbox_Gears, + new XAttribute(_xsi + XMLNames.XSIType, "IEPCGearsDeclarationType"), + gears); + } + + + private IList<XElement> GetVoltageLevels(IList<IElectricMotorVoltageLevel> voltageData) + { + var voltageLevels = new List<XElement>(); + + foreach (var voltageEntry in voltageData) { + + var voltage = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel, + voltageEntry.VoltageLevel == null + ? null + : new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageEntry.VoltageLevel.ToXMLFormat(0)), + new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageEntry.ContinuousTorque.ToXMLFormat(2)), + new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, voltageEntry.ContinuousTorqueSpeed.ToXMLFormat(2)), + new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, voltageEntry.OverloadTorque.ToXMLFormat(2)), + new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, voltageEntry.OverloadTestSpeed.ToXMLFormat(2)), + new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, voltageEntry.OverloadTime.ToXMLFormat(2)), + GetMaxTorqueCurve(voltageEntry.FullLoadCurve) + //GetPowerMap(voltageEntry.PowerMap) + ); + + voltageLevels.Add(voltage); + } + + return voltageLevels; + } + + + private XElement GetMaxTorqueCurve(DataTable maxTorqueData) + { + var maxTorqueCurveEntries = new List<XElement>(); + + for (int r = 0; r < maxTorqueData.Rows.Count; r++) { + var row = maxTorqueData.Rows[r]; + var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed]; + var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque]; + var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque]; + + var element = new XElement(_v23 + XMLNames.MaxTorqueCurve_Entry, + new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed), + new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque), + new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque) + ); + + maxTorqueCurveEntries.Add(element); + } + + return new XElement(_vif + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries); + } + + private List<XElement> GetPowerMap(IList<IElectricMotorPowerMap> powerMapData) + { + var powerMaps = new List<XElement>(); + + foreach (var powerMapEntry in powerMapData) { + + var entries = new List<XElement>(); + for (int r = 0; r < powerMapEntry.PowerMap.Rows.Count; r++) { + var outShaftSpeed = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_OutShaftSpeed].ToString().ToDouble(); + var torque = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_Torque].ToString().ToDouble(); + var electricPower = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_ElectricPower].ToString().ToDouble(); + + var entry = new XElement(_vif + XMLNames.PowerMap_Entry, + new XAttribute(XMLNames.PowerMap_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)), + new XAttribute(XMLNames.PowerMap_Torque, torque.ToXMLFormat(2)), + new XAttribute(XMLNames.PowerMap_ElectricPower, electricPower.ToXMLFormat(2))); + entries.Add(entry); + } + + var powerEntry = new XElement(_vif + XMLNames.PowerMap, + new XAttribute("gear", powerMapEntry.Gear), + entries); + + powerMaps.Add(powerEntry); + } + + return powerMaps; + } + + private IList<XElement> GetDragCurves(IList<IDragCurve> dragCurves) + { + var result = new List<XElement>(); + + foreach (var dragCurve in dragCurves) { + var entries = new List<XElement>(); + for (int r = 0; r < dragCurve.DragCurve.Rows.Count; r++) { + var outShaftSpeed = dragCurve.DragCurve.Rows[r][XMLNames.DragCurve_OutShaftSpeed].ToString().ToDouble(); + var dragTorque = dragCurve.DragCurve.Rows[r][XMLNames.DragCurve_DragTorque].ToString().ToDouble(); + + var entry = new XElement(_vif + XMLNames.DragCurve_Entry, + new XAttribute(XMLNames.DragCurve_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)), + new XAttribute(XMLNames.DragCurve_DragTorque, dragTorque.ToXMLFormat(2))); + + entries.Add(entry); + } + + result.Add(new XElement(_vif + XMLNames.DragCurve, + new XAttribute(XMLNames.DragCurve_Gear, dragCurve.Gear.Value), + entries)); + } + + return result; + } + + private XElement GetConditioning(DataTable iepcData) + { + if (iepcData == null) + return null; + + var entries = new List<XElement>(); + for (int r = 0; r < iepcData.Rows.Count; r++) { + + var coolantTempInLet = iepcData.Rows[r][XMLNames.Conditioning_CoolantTempInlet]; + var coolingPower = iepcData.Rows[r][XMLNames.Conditioning_CoolingPower]; + + entries.Add(new XElement(_vif + XMLNames.Conditioning_Entry, + new XAttribute(XMLNames.Conditioning_CoolantTempInlet, coolantTempInLet), + new XAttribute(XMLNames.Conditioning_CoolingPower, coolingPower))); + } + + return new XElement(_vif + XMLNames.Conditioning, entries); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs new file mode 100644 index 0000000000000000000000000000000000000000..0754d15218f0ae7404fb5329d27b60dfd72bf7ef --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs @@ -0,0 +1,43 @@ +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFRetarderType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFRetarderType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData; + if (retarder == null || retarder.Type.IsOneOf(RetarderType.EngineRetarder, RetarderType.None, + RetarderType.LossesIncludedInTransmission)) + return null; + + return new XElement(_vif + XMLNames.Component_Retarder, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "RetarderDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, retarder.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, retarder.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, retarder.CertificationMethod.ToXMLFormat()), + retarder.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, + retarder.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(retarder.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, retarder.AppVersion), + new XElement(_vif + XMLNames.Vehicle_RetarderRatio, retarder.Ratio.ToXMLFormat(3)) + )); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs new file mode 100644 index 0000000000000000000000000000000000000000..715819fe9ed699dc44d11d4e5c581b3f85835fcb --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFTorqueConverterType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFTorqueConverterType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var torque = inputData.JobInputData.Vehicle.Components.TorqueConverterInputData; + if (torque == null) + return null; + + return new XElement(_vif + XMLNames.Component_TorqueConverter, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "TorqueConverterDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, torque.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, torque.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, + torque.CertificationMethod.ToXMLFormat()), + torque.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, + torque.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(torque.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion) + )); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs new file mode 100644 index 0000000000000000000000000000000000000000..f665a33df79ae19bf7ceb4cae383d0b3de2537e4 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs @@ -0,0 +1,37 @@ +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFTorqueLimitsType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFTorqueLimitsType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + if (inputData.JobInputData.Vehicle.TorqueLimits == null || + inputData.JobInputData.Vehicle.TorqueLimits.Count == 0) + return null; + + var torqueLimits = inputData.JobInputData.Vehicle.TorqueLimits; + + return new XElement(_vif + XMLNames.Vehicle_TorqueLimits, + new XAttribute(_xsi + XMLNames.XSIType, "TorqueLimitsType"), + new XAttribute("xmlns", _v20.NamespaceName), + torqueLimits + .OrderBy(x => x.Gear) + .Select(entry => new XElement(_v20 + XMLNames.Vehicle_TorqueLimits_Entry, + new XAttribute(XMLNames.Vehicle_TorqueLimits_Entry_Gear_Attr, entry.Gear), + new XAttribute(XMLNames.Vehicle_TorqueLimits_Entry_MaxTorque_Attr, entry.MaxTorque.ToXMLFormat(0)) + ) + )); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs new file mode 100644 index 0000000000000000000000000000000000000000..fee5ab2a148c1aba8a73dc86f58270e1fbab1c69 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFTransmissionType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFTransmissionType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var transmission = inputData.JobInputData.Vehicle.Components.GearboxInputData; + if (transmission == null) + return null; + + return new XElement(_vif + XMLNames.Component_Transmission, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "TransmissionDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, transmission.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, transmission.Model), + new XElement(_vif + XMLNames.Component_Gearbox_CertificationMethod, + transmission.CertificationMethod.ToXMLFormat()), + transmission.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Component_CertificationNumber, transmission.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(transmission.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, transmission.AppVersion), + new XElement(_vif + XMLNames.Gearbox_TransmissionType, transmission.Type.ToXMLFormat()), + new XElement(_vif + XMLNames.Gearbox_Gears, + new XAttribute(_xsi + XMLNames.XSIType, "TransmissionGearsVIFType"), + transmission.Gears.Select( + x => new XElement( + _vif + XMLNames.Gearbox_Gears_Gear, + new XAttribute(XMLNames.Gearbox_Gear_GearNumber_Attr, x.Gear), + new XElement(_vif + XMLNames.Gearbox_Gear_Ratio, x.Ratio.ToXMLFormat(3)), + x.MaxTorque != null + ? new XElement(_vif + XMLNames.Gearbox_Gears_MaxTorque, x.MaxTorque.ToXMLFormat(0)) + : null, + x.MaxInputSpeed != null + ? new XElement(_vif + XMLNames.Gearbox_Gear_MaxSpeed, + x.MaxInputSpeed.AsRPM.ToXMLFormat(0)) + : null) + ) + ) + ) + ); + } + + #endregion + } + + +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs new file mode 100644 index 0000000000000000000000000000000000000000..0fae518bb6ecf906991815222c975899110a8710 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs @@ -0,0 +1,334 @@ +using System.Collections.Generic; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + + public class PrimaryBusGeneralParameterGroup : AbstractVIFGroupWriter + { + public PrimaryBusGeneralParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement> + { + new XElement(_vif + XMLNames.Component_Manufacturer, vehicle.Manufacturer), + new XElement(_vif + XMLNames.Component_ManufacturerAddress, vehicle.ManufacturerAddress), + new XElement(_vif + XMLNames.Component_Model, vehicle.Model), + new XElement(_vif + XMLNames.Vehicle_VIN, vehicle.VIN), + new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(vehicle.Date, XmlDateTimeSerializationMode.Utc)), + }; + + return result; + } + + #endregion + } + + public class PrimaryBusChassisParameterGroup : AbstractVIFGroupWriter + { + public PrimaryBusChassisParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement> + { + new XElement(_vif + XMLNames.Vehicle_LegislativeCategory, vehicle.LegislativeClass.ToXMLFormat()), + new XElement(_vif + XMLNames.ChassisConfiguration, vehicle.VehicleCategory.ToXMLFormat()), + new XElement(_vif + XMLNames.Vehicle_AxleConfiguration, vehicle.AxleConfiguration.ToXMLFormat()), + new XElement(_vif + XMLNames.Vehicle_Articulated, vehicle.Articulated), + new XElement(_vif + XMLNames.TPMLM, vehicle.GrossVehicleMassRating.ToXMLFormat(0)), + }; + + return result; + } + + #endregion + } + + public class PrimaryBusRetarderParameterGroup : AbstractVIFGroupWriter + { + public PrimaryBusRetarderParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + var result = new List<XElement> + { + new XElement(_vif + XMLNames.Vehicle_RetarderType, vehicle.Components.RetarderInputData.Type.ToXMLFormat()), + vehicle.Components.RetarderInputData.Type.IsDedicatedComponent() + ? new XElement(_vif + XMLNames.Vehicle_RetarderRatio, vehicle.Components.RetarderInputData?.Ratio.ToXMLFormat(3)) + : null, + }; + return result; + } + + #endregion + } + + public class PrimaryBusXeVParameterGroup : AbstractVIFGroupWriter + { + public PrimaryBusXeVParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement> { + new XElement(_vif + XMLNames.Vehicle_OvcHev, vehicle.OvcHev), + }; + return result; + } + + #endregion + } + + + public class ConventionalVIFVehicleParameterGroup : AbstractVIFGroupWriter + { + public ConventionalVIFVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0))); + result.Add(new XElement(_vif + XMLNames.Vehicle_RetarderType, vehicle.Components.RetarderInputData.Type.ToXMLFormat())); + if (vehicle.Components.RetarderInputData.Type.IsDedicatedComponent()) { + result.Add(new XElement(_vif + XMLNames.Vehicle_RetarderRatio, + vehicle.Components.RetarderInputData?.Ratio.ToXMLFormat(3))); + } + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(_vifReportFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + result.Add(_vifReportFactory.GetTorqueLimitsType().GetElement(inputData)); + + return result; + } + + #endregion + } + + + public class HevIepcSVehicleParameterGroup : AbstractVIFGroupWriter + { + public HevIepcSVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0))); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + var electricMotorTorque = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData); + if(electricMotorTorque != null) + result.Add(electricMotorTorque); + + return result; + } + + #endregion + } + + public class HevSxVehicleParameterGroup : AbstractVIFGroupWriter + { + public HevSxVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0))); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + var electricMotorTorque = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData); + if (electricMotorTorque != null) + result.Add(electricMotorTorque); + + return result; + } + + #endregion + } + + public class IepcVehicleParameterGroup : AbstractVIFGroupWriter + { + public IepcVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + + return result; + } + + #endregion + } + + public class PevExVehicleParameterGroup : AbstractVIFGroupWriter + { + public PevExVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + var motorTorqueLimits = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData); + if(motorTorqueLimits != null) + result.Add(motorTorqueLimits); + + return result; + } + + #endregion + } + + public class PevIEPCVehicleParameterGroup : AbstractVIFGroupWriter + { + public PevIEPCVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetIEPCADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + var motorTorqueLimits = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData); + if (motorTorqueLimits != null) + result.Add(motorTorqueLimits); + + return result; + } + + #endregion + } + + public class HevPxVehicleParameterGroup : AbstractVIFGroupWriter + { + public HevPxVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0))); + result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat())); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel())); + result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData)); + result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); + result.Add(_vifReportFactory.GetTorqueLimitsType().GetElement(inputData)); + result.Add(_vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData)); + result.Add(_vifReportFactory.GetBoostingLimitationsType().GetElement(inputData)); + + return result; + } + + #endregion + } + + public class ExemptedVehicleParameterGroup : AbstractVIFGroupWriter + { + public ExemptedVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of AbstractVIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var vehicle = inputData.JobInputData.Vehicle; + + var result = new List<XElement>(); + + result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData)); + result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData)); + result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle)); + result.Add(new XElement(_vif + "SumNetPower", XMLHelper.ValueAsUnit(vehicle.MaxNetPower1, "W"))); + result.Add(new XElement(_vif + "Technology", vehicle.ExemptedTechnology)); + + return result; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..1b838f10fc15bb077ca2badd50018dabefc9080f --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleWriter.cs @@ -0,0 +1,264 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class VehicleWriter : IXmlTypeWriter + { + protected readonly IVIFReportFactory _vifReportFactory; + + protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + + protected VehicleWriter(IVIFReportFactory vifReportFactory) + { + _vifReportFactory = vifReportFactory; + } + + + #region Implementation of IXmlTypeWriter + + public abstract XElement GetElement(IDeclarationInputDataProvider inputData); + + #endregion + } + + + public class ConventionalVehicleType : VehicleWriter + { + public ConventionalVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetConventionalVehicleGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetConventionalComponentType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "ConventionalVehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class HevIepcSVehicleType : VehicleWriter + { + public HevIepcSVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetHevIepcSVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetHevIepcSComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV-IEPC-S_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class HevPxVehicleType : VehicleWriter + { + public HevPxVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + + var vehicleData = _vifReportFactory.GetHevPxVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetHevPxComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV-Px_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class HevS2VehicleType : VehicleWriter + { + public HevS2VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetHevS2ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class HevS3VehicleType : VehicleWriter + { + public HevS3VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetHevS3ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class HevS4VehicleType : VehicleWriter + { + public HevS4VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetHevS4ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + public class IepcVehicleType : VehicleWriter + { + public IepcVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetIepcVehicleParameterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "IEPC_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + + public class PevE2VehicleType : VehicleWriter + { + public PevE2VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetPevE2ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + public class PevE3VehicleType : VehicleWriter + { + public PevE3VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetPevE3ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + public class PevE4VehicleType : VehicleWriter + { + public PevE4VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetPevE4ComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + public class PevIEPCVehicleType : VehicleWriter + { + public PevIEPCVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetPevIEPCVehicleParmeterGroup().GetElements(inputData); + vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "IEPC_VehicleVIFType"), + vehicleData); + } + + #endregion + } + + public class ExemptedVehicleType : VehicleWriter + { + public ExemptedVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = _vifReportFactory.GetExemptedVehicleParameterGroup().GetElements(inputData); + //vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData)); + + return new XElement(_vif + XMLNames.Component_Vehicle, + new XAttribute(_xsi + XMLNames.XSIType, "Exempted_VehicleVIFType"), + vehicleData); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..da2414c8c771d3d37b6e1b0e03fda5f2ad073eb9 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs @@ -0,0 +1,503 @@ +using Ninject.Activation; +using Ninject.Extensions.ContextPreservation; +using Ninject.Extensions.Factory; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport; +using TUGraz.VectoCore.Utils.Ninject; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + internal class VIFNinjectModule : MRFNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + LoadModule<ContextPreservationModule>(); + + Bind<IVIFReportInterimFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + 6, 6, + typeof(IVIFReportInterimFactory).GetMethod(nameof(IVIFReportInterimFactory.GetInterimVIFReport)) )).InSingletonScope(); + + Bind<IVIFReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + 6, 6, typeof(IVIFReportFactory).GetMethod(nameof(IVIFReportFactory.GetVIFReport)) + )).InSingletonScope(); + + + #region Primary Vehicle Information File Reports + + Bind<IXMLVehicleInformationFile>().To<Conventional_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<HEV_Px_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<HEV_S3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + Bind<IXMLVehicleInformationFile>().To<HEV_S4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<HEV_IEPC_S_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLVehicleInformationFile>().To<PEV_E2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<PEV_E3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<PEV_E4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<PEV_IEPC_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC, + false, + true, + false))); + + Bind<IXMLVehicleInformationFile>().To<Exempted_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #endregion + + #region Complete(d) Primary Vehicle Information File Reports + + // -- Reports + + Bind<IXMLMultistepIntermediateReport>().To<Conventional_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC, + false, + true, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4, + false, + false, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<IEPC_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.UNKNOWN, + false, + true, + false))); + + Bind<IXMLMultistepIntermediateReport>().To<Exempted_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + // -- Vehicle type writers + + Bind<IXmlMultistepTypeWriter>().To<ConventionalInterimVehicleType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalVehicleType()); + + Bind<IXmlMultistepTypeWriter>().To<HEVInterimVehicleType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetHEVVehicleType()); + + Bind<IXmlMultistepTypeWriter>().To<PEVInterimVehicleType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetPEVVehicleType()); + + Bind<IXmlMultistepTypeWriter>().To<IEPCInterimVehicleType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetIEPCVehicleType()); + + + Bind<IXmlMultistepTypeWriter>().To<ExemptedInterimVehicleType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetExemptedVehicleType()); + + // -- Components type writers + + Bind<IReportMultistepCompletedBusTypeWriter>().To<ConventionalComponentsInterimVIFType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalInterimComponentsType()); + + Bind<IReportMultistepCompletedBusTypeWriter>().To<XEVComponentsInterimVIFType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetxEVInterimComponentsType()); + + // -- ADAS type writers + + Bind<IVIFFAdasType>().To<VIFCompletedConventionalAdasType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalInterimADASType()); + + Bind<IVIFFAdasType>().To<VIFCompletedHEVAdasType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetHEVInterimADASType()); + + Bind<IVIFFAdasType>().To<VIFCompletedPEVAdasType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetPEVInterimADASType()); + + Bind<IVIFFAdasType>().To<VIFCompletedIEPCAdasType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetIEPCInterimADASType()); + + + // -- Airdrag type writers + + Bind<IReportMultistepCompletedBusTypeWriter>().To<AirdragInterimType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimAirdragType()); + + // -- Aux type writers + + Bind<IReportMultistepCompletedBusTypeWriter>().To<ConventionalInterimAuxiliaryType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimConventionalAuxiliariesType()); + + Bind<IReportMultistepCompletedBusTypeWriter>().To<XEVInterimAuxiliaryType>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimxEVAuxiliariesType()); + + // -- Parameter Groups + + Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusGeneralParametersGroup>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusGeneralParametersGroup()); + + Bind<IReportMultistepCompletedBusOutputGroup>().To<GetCompletedBusParametersGroup>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusParametersGroup()); + + Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusPassengerCountGroup>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusPassengerCountGroup()); + + Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusDimensionsGroup>().When(AccessedViaInterimVIFFactory) + .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusDimensionsGroup()); + + #endregion + + #region VehicleTypes + + Bind<IXmlTypeWriter>().To<ConventionalVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalVehicleType()); + + Bind<IXmlTypeWriter>().To<HevIepcSVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSVehicleType()); + + Bind<IXmlTypeWriter>().To<HevPxVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxVehicleType()); + + Bind<IXmlTypeWriter>().To<HevS2VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS2VehicleType()); + + Bind<IXmlTypeWriter>().To<HevS3VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS3VehicleType()); + + Bind<IXmlTypeWriter>().To<HevS4VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS4VehicleType()); + + Bind<IXmlTypeWriter>().To<IepcVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcVehicleType()); + + Bind<IXmlTypeWriter>().To<PevE2VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE2VehicleType()); + + Bind<IXmlTypeWriter>().To<PevE3VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE3VehicleType()); + + Bind<IXmlTypeWriter>().To<PevE4VehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE4VehicleType()); + + Bind<IXmlTypeWriter>().To<PevIEPCVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCVehicleType()); + + Bind<IXmlTypeWriter>().To<ExemptedVehicleType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetExemptedVehicleType()); + + #endregion + + + #region Component Group + + Bind<IXmlTypeWriter>().To<ConventionalComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalComponentType()); + + Bind<IXmlTypeWriter>().To<HevIepcSComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSComponentVIFType()); + + Bind<IXmlTypeWriter>().To<HevPxComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxComponentVIFType()); + + Bind<IXmlTypeWriter>().To<HevS2ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS2ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<HevS3ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS3ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<HevS4ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS4ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<PevE2ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE2ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<PevE3ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE3ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<PevE4ComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE4ComponentVIFType()); + + Bind<IXmlTypeWriter>().To<IepcComponentVIFType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCComponentVIFType()); + + #endregion + + #region Vehicle Group + + Bind<IReportOutputGroup>().To<ConventionalVIFVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalVehicleGroup()); + + Bind<IReportOutputGroup>().To<PrimaryBusGeneralParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusGeneralParameterGroup()); + + Bind<IReportOutputGroup>().To<PrimaryBusChassisParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusChassisParameterGroup()); + + Bind<IReportOutputGroup>().To<PrimaryBusRetarderParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusRetarderParameterGroup()); + + Bind<IReportOutputGroup>().To<PrimaryBusXeVParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusXevParameterGroup()); + + Bind<IReportOutputGroup>().To<HevIepcSVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSVehicleParameterGroup()); + + Bind<IReportOutputGroup>().To<HevSxVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevSxVehicleParameterGroup()); + + Bind<IReportOutputGroup>().To<IepcVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcVehicleParameterGroup()); + + Bind<IReportOutputGroup>().To<PevExVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevExVehicleParmeterGroup()); + + Bind<IReportOutputGroup>().To<PevIEPCVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCVehicleParmeterGroup()); + + Bind<IReportOutputGroup>().To<HevPxVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxVehicleParameterGroup()); + + Bind<IReportOutputGroup>().To<ExemptedVehicleParameterGroup>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetExemptedVehicleParameterGroup()); + + #endregion + + + #region Components + + Bind<IVIFFAdasType>().To<VIFConventionalAdasType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalADASType()); + + Bind<IVIFFAdasType>().To<VIFHEVAdasType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHEVADASType()); + + Bind<IVIFFAdasType>().To<VIFPEVAdasType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPEVADASType()); + + Bind<IVIFFAdasType>().To<VIFIEPCAdasType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIEPCADASType()); + + Bind<IXmlTypeWriter>().To<VIFAngleDriveType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAngelDriveType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryHevSType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryHevSType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryIEPC_SType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryIEPC_SType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryHevPType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryHevPType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryIEPCType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryIEPCType()); + + Bind<IXmlTypeWriter>().To<VIFAuxiliaryPEVType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryPEVType()); + + Bind<IXmlTypeWriter>().To<VIFAxlegearType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAxlegearType()); + + Bind<IXmlTypeWriter>().To<VIFRetarderType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetRetarderType()); + + Bind<IXmlTypeWriter>().To<VIFAxleWheelsType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAxleWheelsType()); + + Bind<IXmlTypeWriter>().To<VIFBoostingLimitationsType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetBoostingLimitationsType()); + + Bind<IXmlTypeWriter>().To<VIFElectricEnergyStorageType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricEnergyStorageType()); + + Bind<IXmlTypeWriter>().To<VIFElectricMachineGENType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineGENType()); + + Bind<IXmlElectricMachineSystemType>().To<XmlElectricMachineSystemMeasuredType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineSystemType()); + + Bind<IXmlTypeWriter>().To<VIFElectricMachineType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineType()); + + Bind<IXmlTypeWriter>().To<VIFElectricMotorTorqueLimitsType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMotorTorqueLimitsType()); + + Bind<IXmlTypeWriter>().To<VIFEngineType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetEngineType()); + + Bind<IXmlTypeWriter>().To<VIFTorqueConverterType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTorqueConvertType()); + + Bind<IXmlTypeWriter>().To<VIFIepcType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcType()); + + Bind<IXmlTypeWriter>().To<VIFTorqueLimitsType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTorqueLimitsType()); + + Bind<IXmlTypeWriter>().To<VIFTransmissionType>().When(AccessedViaVIFFactory) + .NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTransmissionType()); + + #endregion + } + + + private bool AccessedViaVIFFactory(IRequest request) + { + if (request.ParentRequest == null) + { + return false; + } + return typeof(IVIFReportFactory).IsAssignableFrom(request.ParentRequest.Service); + } + + + private bool AccessedViaInterimVIFFactory(IRequest request) + { + if (request.ParentRequest == null) { + return false; + } + return typeof(IVIFReportInterimFactory).IsAssignableFrom(request.ParentRequest.Service); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs new file mode 100644 index 0000000000000000000000000000000000000000..287f6703d2d5e8d2b4c0664a1155444856328523 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.Hashing; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport +{ + public abstract class AbstractVehicleInformationFileCompleted : IXMLMultistepIntermediateReport + { + protected XNamespace VIF = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + + protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#"; + + protected IPrimaryVehicleInformationInputDataProvider _primaryVehicleInputData; + protected IList<IManufacturingStageInputData> _manufacturingStageInputData; + protected IManufacturingStageInputData _consolidatedInputData; + protected IVehicleDeclarationInputData _vehicleInputData; + + protected XElement _primaryVehicle; + protected List<XElement> _manufacturingStages; + protected List<XAttribute> _namespaceAttributes; + + protected readonly IVIFReportInterimFactory _vifFactory; + protected IMultistageVIFInputData _inputData; + + protected AbstractVehicleInformationFileCompleted(IVIFReportInterimFactory vifReportFactory) + { + _manufacturingStages = new List<XElement>(); + _namespaceAttributes = new List<XAttribute>(); + + _vifFactory = vifReportFactory; + } + + #region Implementation of IXMLVehicleInformationFile + + + public void Initialize(VectoRunData modelData) + { + //InitializeVehicleData(modelData.MultistageVIFInputData); + + _primaryVehicleInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.PrimaryVehicle; + _manufacturingStageInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ManufacturingStages; + _consolidatedInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage; + _vehicleInputData = modelData.MultistageVIFInputData.VehicleInputData; + + _inputData = modelData.MultistageVIFInputData; + + SetInputXMLData(_primaryVehicleInputData.Vehicle.XMLSource); + } + + private void SetInputXMLData(XmlNode primeVehicleNode) + { + var nodes = GetDocumentNodes(primeVehicleNode); + var documentNode = GetDocumentNode(nodes); + SetXmlNamespaceAttributes(nodes); + + var xDocument = XElement.Parse(documentNode.InnerXml); + foreach (var xElement in xDocument.Descendants()) { + if (xElement.Name.LocalName == XMLNames.Bus_PrimaryVehicle) + _primaryVehicle = xElement; + else if (xElement.Name.LocalName == XMLNames.ManufacturingStep) + _manufacturingStages.Add(xElement); + } + + if (_manufacturingStages.Count == 0) + _manufacturingStages = null; + } + + private List<XmlNode> GetDocumentNodes(XmlNode primeVehicleNode) + { + var nodes = new List<XmlNode>(); + NodeParentSearch(primeVehicleNode, nodes); + return nodes; + } + + private XmlNode GetDocumentNode(List<XmlNode> nodes) + { + if (nodes == null || nodes.Count == 0) + return null; + + foreach (var node in nodes) { + if (node.NodeType == XmlNodeType.Document) + return node; + } + return null; + } + + private void SetXmlNamespaceAttributes(List<XmlNode> nodes) + { + if (nodes == null || nodes.Count == 0) + return; + XmlAttributeCollection namespaceAttributes = null; + foreach (var node in nodes) { + if (node.LocalName == XMLNames.VectoOutputMultistep) { + namespaceAttributes = node.Attributes; + break; + } + } + + if (namespaceAttributes == null || namespaceAttributes.Count == 0) + return; + + foreach (XmlAttribute attribute in namespaceAttributes) { + if (string.IsNullOrEmpty(attribute.Prefix)) + _namespaceAttributes.Add(new XAttribute(attribute.LocalName, attribute.Value)); + else if (attribute.Prefix == "xmlns") + _namespaceAttributes.Add(new XAttribute(XNamespace.Xmlns + attribute.LocalName, attribute.Value)); + else if (attribute.Prefix == "xsi") + _namespaceAttributes.Add(new XAttribute(xsi + attribute.LocalName, attribute.Value)); + } + } + + private void NodeParentSearch(XmlNode currentNode, List<XmlNode> nodes) + { + if (currentNode?.ParentNode == null || nodes == null) + return; + + nodes.Add(currentNode.ParentNode); + NodeParentSearch(currentNode.ParentNode, nodes); + } + + public XDocument Report { get; protected set; } + + public void GenerateReport() + { + var retVal = new XDocument(); + retVal.Add( + new XElement(VIF + XMLNames.VectoOutputMultistep, + _namespaceAttributes, + _primaryVehicle, + _manufacturingStages, + GenerateInputManufacturingStage() + ) + ); + Report = retVal; + } + + #endregion + + protected abstract XElement GenerateInputManufacturingStage(); + } + + // ---------------------------------- + + internal abstract class VehicleInformationFile_InterimStep : AbstractVehicleInformationFileCompleted + { + protected VehicleInformationFile_InterimStep(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + protected override XElement GenerateInputManufacturingStage() + { + var multistageId = $"{VectoComponents.VectoManufacturingStep.HashIdPrefix()}{GetGUID()}"; + var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}"; + + var stage = new XElement(VIF + XMLNames.ManufacturingStep, + new XAttribute(XMLNames.ManufacturingStep_StepCount, GetStageNumber()), + new XAttribute(XNamespace.Xmlns + "xsi", xsi), + new XElement(VIF + XMLNames.Report_DataWrap, + new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStepDataType"), + new XAttribute(XMLNames.Component_ID_Attr, multistageId), + GetHashPreviousStepElement(), + GetVehicleElement(), + XMLHelper.GetApplicationInfo(VIF))); + + var sigXElement = GetSignatureElement(stage); + stage.LastNode.Parent.Add(sigXElement); + return stage; + } + + protected abstract XElement GetVehicleElement(); + + private XElement GetHashPreviousStepElement() + { + DigestData digitData; + if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0) { + digitData = _primaryVehicleInputData.VehicleSignatureHash; + } else { + digitData = _manufacturingStageInputData.Last().Signature; + } + + return new XElement(VIF + "HashPreviousStep", + digitData.ToXML(di)); + } + + private XElement GetSignatureElement(XElement stage) + { + var stream = new MemoryStream(); + var w = new XmlTextWriter(stream, Encoding.UTF8); + stage.WriteTo(w); + w.Flush(); + stream.Seek(0, SeekOrigin.Begin); + + return new XElement(VIF + XMLNames.DI_Signature, + VectoHash.Load(stream).ComputeXmlHash + (VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod) + ); + } + + private int GetStageNumber() + { + if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0) + return 2; + + return _manufacturingStageInputData.Last().StepCount + 1; + } + + protected string GetGUID() + { + return Guid.NewGuid().ToString("n").Substring(0, 20); + } + } + + // ---------------------------------- + + internal class Conventional_CompletedBus_VIF : VehicleInformationFile_InterimStep + { + public Conventional_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VehicleInformationFile_InterimStep + + protected override XElement GetVehicleElement() + { + return _vifFactory.GetConventionalVehicleType().GetElement(_inputData); + } + + #endregion + } + + // ---------------------------------- + + internal class HEV_CompletedBus_VIF : VehicleInformationFile_InterimStep + { + public HEV_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VehicleInformationFile_InterimStep + + protected override XElement GetVehicleElement() + { + return _vifFactory.GetHEVVehicleType().GetElement(_inputData); + } + + #endregion + } + + // ---------------------------------- + + internal class PEV_CompletedBus_VIF : VehicleInformationFile_InterimStep + { + public PEV_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VehicleInformationFile_InterimStep + + protected override XElement GetVehicleElement() + { + return _vifFactory.GetPEVVehicleType().GetElement(_inputData); + } + + #endregion + } + + // ---------------------------------- + + internal class IEPC_CompletedBus_VIF : VehicleInformationFile_InterimStep + { + public IEPC_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VehicleInformationFile_InterimStep + + protected override XElement GetVehicleElement() + { + return _vifFactory.GetIEPCVehicleType().GetElement(_inputData); + } + + #endregion + } + + // ---------------------------------- + + internal class Exempted_CompletedBus_VIF : VehicleInformationFile_InterimStep + { + public Exempted_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { } + + + #region Overrides of VehicleInformationFile_InterimStep + + protected override XElement GetVehicleElement() + { + return _vifFactory.GetExemptedVehicleType().GetElement(_inputData); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs new file mode 100644 index 0000000000000000000000000000000000000000..9ab107c7e8db4d9b64912670f38fda2ba5d17e01 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport +{ + internal abstract class VehicleInformationFile_PrimaryStep : AbstractVehicleInformationFile + { + private string _outputDataType; + + public VehicleInformationFile_PrimaryStep(IVIFReportFactory vifFactory) : base(vifFactory) + { + _tns = VIF; + } + + #region Overrides of AbstractVIFReport + + public override string OutputDataType => _outputDataType; + + + + #endregion + } + + internal class Conventional_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public Conventional_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetConventionalVehicleType().GetElement(inputData); + } + } + + internal class HEV_Px_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public HEV_Px_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetHevPxVehicleType().GetElement(inputData); + } + } + + internal class HEV_S2_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public HEV_S2_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetHevS2VehicleType().GetElement(inputData); + } + } + + internal class HEV_S3_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public HEV_S3_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetHevS3VehicleType().GetElement(inputData); + } + } + + internal class HEV_S4_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public HEV_S4_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetHevS4VehicleType().GetElement(inputData); + } + } + + internal class HEV_IEPC_S_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public HEV_IEPC_S_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetHevIepcSVehicleType().GetElement(inputData); + } + } + + internal class PEV_E2_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public PEV_E2_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetPevE2VehicleType().GetElement(inputData); + } + } + + internal class PEV_E3_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public PEV_E3_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetPevE3VehicleType().GetElement(inputData); + } + } + + internal class PEV_E4_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public PEV_E4_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetPevE4VehicleType().GetElement(inputData); + } + } + + internal class PEV_IEPC_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public PEV_IEPC_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetPevIEPCVehicleType().GetElement(inputData); + } + } + + internal class Exempted_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep + { + public Exempted_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + + protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _vifFactory.GetExemptedVehicleType().GetElement(inputData); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs index 5529ff1f3722a86225c7160cf69337ba8e29935c..091296243658f607321b5a0de2fec571b44952c6 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs @@ -20,7 +20,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF VehiclePart.Add( new XAttribute(xsi + XMLNames.Attr_Type, "VehicleExemptedPrimaryBusType"), new XElement(tns + XMLNames.ManufacturerPrimaryVehicle, modelData.VehicleData.Manufacturer), - new XElement(tns + XMLNames.ManufacturerAddressPrimaryVehicle, modelData.VehicleData.ManufacturerAddress), + new XElement(tns + XMLNames.ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), new XElement(tns + XMLNames.Component_Date, XmlConvert.ToString(modelData.VehicleData.Date, XmlDateTimeSerializationMode.Utc)), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs index 83820bd6682132c3db7b990a2d56bb56181abae0..8014f54f467732810739382b03926e1f6967addc 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs @@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF } } - public class XMLMultistageBusReport: IXMLMultistageReport + public class XMLMultistageBusReport: IXMLMultistepIntermediateReport { protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#"; @@ -89,6 +89,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF public XMLMultistageBusReport() { + throw new VectoException("do not use anymore!"); _manufacturingStages = new List<XElement>(); _namespaceAttributes = new List<XAttribute>(); } @@ -217,7 +218,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GenerateInputManufacturingStage() { var multistageId = $"{VectoComponents.VectoManufacturingStep.HashIdPrefix()}{GetGUID()}"; - var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}"; + var vehicleId = $"{VectoComponents.VectoInterimVehicleInformation.HashIdPrefix()}{GetGUID()}"; var stage = new XElement(tns + XMLNames.ManufacturingStep, new XAttribute(XMLNames.ManufacturingStep_StepCount, GetStageNumber()), @@ -327,7 +328,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement( v24 + XMLNames.Vehicle_ADAS, - new XAttribute(xsi + "type", "ADAS_Conventional_Type"), + new XAttribute(xsi + XMLNames.XSIType, "ADAS_Conventional_Type"), new XElement(v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart), new XElement(v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()), new XElement(v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()), @@ -510,7 +511,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement(v24 + XMLNames.BusAux_HVAC, hvac.SystemConfiguration != null - ? new XElement(v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.GetXmlFormat()) : null, + ? new XElement(v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.ToXmlFormat()) : null, hvac.HeatPumpTypeCoolingDriverCompartment != null && hvac.HeatPumpTypeHeatingDriverCompartment != null ? new XElement(v24 + XMLNames.Bus_HeatPumpTypeDriver, new XElement(v24 + XMLNames.BusHVACHeatPumpCooling, hvac.HeatPumpTypeCoolingDriverCompartment.GetLabel()), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs index 29d5de3a55aaf693d5b5aa82b493b63d248da16e..4f07df1870f816006c89b9af2d5d1bd18b8683fe 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs @@ -25,8 +25,9 @@ using TUGraz.VectoHashing; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile { - public class XMLPrimaryBusVehicleReport : IXMLPrimaryVehicleReport + public class XMLPrimaryBusVehicleReport : IXMLVehicleInformationFile { + public XNamespace Tns => tns; protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#"; protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); @@ -46,6 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF public XMLPrimaryBusVehicleReport() { + throw new NotImplementedException("use new implementation..."); VehiclePart = new XElement(tns + XMLNames.Component_Vehicle); Results = new XElement(tns + XMLNames.Report_Results); } @@ -79,12 +81,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF { var results = new XElement(Results); results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error")); - var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}"; + var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{GetGUID()}"; var primaryVehicle = new XElement(tns + XMLNames.Bus_PrimaryVehicle, new XElement(tns + XMLNames.Report_DataWrap, new XAttribute(XMLNames.Component_ID_Attr, vehicleId), - new XAttribute(xsi + "type", "PrimaryVehicleDataType"), + new XAttribute(xsi + XMLNames.XSIType, "PrimaryVehicleDataType"), new XAttribute("xmlns", tns), VehiclePart, InputDataIntegrity, @@ -131,9 +133,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehiclePIFType"), + new XAttribute(xsi + XMLNames.XSIType, "ConventionalVehicleVIFType"), new XElement(tns + XMLNames.ManufacturerPrimaryVehicle, modelData.VehicleData.Manufacturer), - new XElement(tns + XMLNames.ManufacturerAddressPrimaryVehicle, modelData.VehicleData.ManufacturerAddress), + new XElement(tns + XMLNames.ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), new XElement(tns + XMLNames.Component_Date, XmlConvert.ToString(modelData.VehicleData.Date, XmlDateTimeSerializationMode.Utc)), @@ -165,7 +167,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement( tns + XMLNames.Vehicle_ADAS, new XAttribute( - xsi + "type", + xsi + XMLNames.XSIType, $"{adasData.InputData.XMLSource.SchemaInfo.SchemaType.QualifiedName.Name}"), new XAttribute("xmlns", ns), XElement.Parse(adasData.InputData.XMLSource.OuterXml).Elements() @@ -185,7 +187,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement( tns + XMLNames.Vehicle_TorqueLimits, new XAttribute( - xsi + "type", $"{tcLimits.SchemaInfo.SchemaType.QualifiedName.Name}"), + xsi + XMLNames.XSIType, $"{tcLimits.SchemaInfo.SchemaType.QualifiedName.Name}"), new XAttribute("xmlns", ns.NamespaceName), XElement.Parse(tcLimits.OuterXml).Elements() ); @@ -195,7 +197,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF { return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "VehicleComponentsPIFType"), + new XAttribute(xsi + XMLNames.XSIType, "Vehicle_Conventional_ComponentsVIFType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData), GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), @@ -213,7 +215,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement(tns + XMLNames.Component_TorqueConverter, new XElement(tns + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "TorqueConverterDataPIFType"), + new XAttribute(xsi + XMLNames.XSIType, "TorqueConverterDataVIFType"), GetCommonDescription(torqueConverter), new XElement(tns + XMLNames.Component_AppVersion, torqueConverter.AppVersion) )); @@ -227,7 +229,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement(tns + XMLNames.Component_AxleWheels, new XElement(tns + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "AxleWheelsDataPIFType"), + new XAttribute(xsi + XMLNames.XSIType, "AxleWheelsDataVIFType"), new XElement(tns + XMLNames.AxleWheels_Axles, GetAxlesNodes(axlesNodes) ))); @@ -242,8 +244,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF var axleNumber = axleNode.Attributes[XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr].Value; var axle = new XElement(tns + XMLNames.AxleWheels_Axles_Axle, new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, axleNumber), - new XAttribute(XNamespace.Xmlns + "v2.0", v20), - new XAttribute(xsi + "type", "v2.0:AxleDataDeclarationType"), + //new XAttribute(XNamespace.Xmlns + "v2.0", v20), + new XAttribute(xsi + XMLNames.XSIType, "AxleDataDeclarationType"), XElement.Parse(axleNode.OuterXml.Replace("xsi:type=\"TyreDataDeclarationType\"", "xsi:type=\"v2.0:TyreDataDeclarationType\"")).Elements()); axles.Add(axle); @@ -264,7 +266,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF var result = new XElement(tns + XMLNames.Component_Auxiliaries, new XElement(tns + XMLNames.ComponentDataWrapper, - new XAttribute(xsi + "type", "AuxiliaryDataPIFType"), + new XAttribute(xsi + XMLNames.XSIType, "AUX_Conventional_PrimaryBusType"), //new XAttribute("xmlns", tns.NamespaceName), //automically created new XElement(tns + XMLNames.BusAux_Fan, new XElement(tns + XMLNames.BusAux_Technology, aux.FanTechnology)), GetSteeringPumpElement(aux.SteeringPumpTechnology), @@ -385,7 +387,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GetAxlegearDescription(AxleGearData axleGearData) { return WrapComponent( - XMLNames.Component_Axlegear, "AxlegearDataPIFType", + XMLNames.Component_Axlegear, "AxlegearDataVIFType", GetCommonDescription(axleGearData), new XElement(tns + XMLNames.Component_AppVersion, axleGearData.InputData.AppVersion), new XElement(tns + XMLNames.Axlegear_LineType, axleGearData.LineType.ToXMLFormat()), @@ -394,10 +396,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GetAngledriveDescription(AngledriveData angledriveData) { - if (angledriveData == null) + if (angledriveData == null) { return null; + } + - return WrapComponent(XMLNames.Component_Angledrive, "AngledriveDataPIFType", + return WrapComponent(XMLNames.Component_Angledrive, "AngledriveDataVIFType", GetCommonDescription(angledriveData), new XElement(tns + XMLNames.Component_AppVersion, angledriveData.InputData.AppVersion), new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3)) @@ -407,12 +411,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GetGearboxDescription(GearboxData gearboxData) { var retVal = WrapComponent( - "Transmission", "TransmissionDataPIFType", + "Transmission", "TransmissionDataVIFType", GetCommonDescription(gearboxData), new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()), new XElement( tns + XMLNames.Gearbox_Gears, - new XAttribute(xsi + "type", "TransmissionGearsPIFType"), + new XAttribute(xsi + XMLNames.XSIType, "TransmissionGearsVIFType"), gearboxData.Gears.Select( x => new XElement( @@ -432,6 +436,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GetEngineDescription(CombustionEngineData engineData, List<List<FuelData.Entry>> fuelModes) { + var fuels = new List<XElement>(); foreach (var mode in engineData.InputData.EngineModes) { fuels.Add( @@ -455,7 +460,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF } var retVal = WrapComponent( - XMLNames.Component_Engine, "EngineDataPIFType", + XMLNames.Component_Engine, "EngineDataVIFType", GetCommonDescription(engineData), new XElement(tns + XMLNames.Engine_Displacement, engineData.Displacement.ConvertToCubicCentiMeter().ToXMLFormat(0)), new XElement(tns + XMLNames.Engine_RatedSpeed, engineData.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)), @@ -464,11 +469,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF new XElement( tns + XMLNames.Engine_WHRType, new XElement( - v23 + XMLNames.Engine_WHR_MechanicalOutputICE, (engineData.WHRType & WHRType.MechanicalOutputICE) != 0), + tns + XMLNames.Engine_WHR_MechanicalOutputICE, (engineData.WHRType & WHRType.MechanicalOutputICE) != 0), new XElement( - v23 + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain, + tns + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain, (engineData.WHRType & WHRType.MechanicalOutputDrivetrain) != 0), - new XElement(v23 + XMLNames.Engine_WHR_ElectricalOutput, (engineData.WHRType & WHRType.ElectricalOutput) != 0) + new XElement(tns + XMLNames.Engine_WHR_ElectricalOutput, (engineData.WHRType & WHRType.ElectricalOutput) != 0) ), fuels ); @@ -482,11 +487,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF tns + elementName, new XElement( tns + XMLNames.ComponentDataWrapper, - new XAttribute(xsi + "type", dataType), + new XAttribute(xsi + XMLNames.XSIType, dataType), commonElements, specificElements)); } - + private object[] GetCommonDescription(CombustionEngineData data) { @@ -530,36 +535,36 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF { _allSuccess &= resultEntry.Status == VectoRun.Status.Success; - //if (resultEntry.Status == VectoRun.Status.Success) { - // _weightedPayload += resultEntry.Payload * resultEntry.WeightingFactor; - // _weightedCo2 += resultEntry.CO2Total / resultEntry.Distance * resultEntry.WeightingFactor; - //} - Results.Add( - new XElement( - tns + XMLNames.Report_Result_Result, - new XAttribute( - XMLNames.Report_Result_Status_Attr, - resultEntry.Status == VectoRun.Status.Success ? "success" : "error"), - new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, resultEntry.VehicleClass.GetClassNumber()), - new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()), - new XElement( - tns + XMLNames.Report_ResultEntry_SimulationParameters, - new XElement( - tns + XMLNames.Report_ResultEntry_TotalVehicleMass, - XMLHelper.ValueAsUnit(resultEntry.TotalVehicleMass, XMLNames.Unit_kg, 2)), - new XElement( - tns + XMLNames.Report_Result_Payload, XMLHelper.ValueAsUnit(resultEntry.Payload, XMLNames.Unit_kg, 2)), - new XElement( - tns + XMLNames.Report_ResultEntry_PassengerCount, - resultEntry.PassengerCount?.ToXMLFormat(2) ?? "NaN"), - new XElement( - tns + XMLNames.Report_Result_FuelMode, - resultEntry.FuelData.Count > 1 - ? XMLNames.Report_Result_FuelMode_Val_Dual - : XMLNames.Report_Result_FuelMode_Val_Single) - ), - GetResults(resultEntry))); - } + //if (resultEntry.Status == VectoRun.Status.Success) { + // _weightedPayload += resultEntry.Payload * resultEntry.WeightingFactor; + // _weightedCo2 += resultEntry.CO2Total / resultEntry.Distance * resultEntry.WeightingFactor; + //} + Results.Add( + new XElement( + tns + XMLNames.Report_Result_Result, + new XAttribute( + XMLNames.Report_Result_Status_Attr, + resultEntry.Status == VectoRun.Status.Success ? "success" : "error"), + new XElement(tns + XMLNames.Report_Results_PrimaryVehicleSubgroup, resultEntry.VehicleClass.GetClassNumber()), + new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()), + new XElement( + tns + XMLNames.Report_ResultEntry_SimulationParameters, + new XElement( + tns + XMLNames.Report_ResultEntry_TotalVehicleMass, + XMLHelper.ValueAsUnit(resultEntry.TotalVehicleMass, XMLNames.Unit_kg, 2)), + new XElement( + tns + XMLNames.Report_Result_Payload, XMLHelper.ValueAsUnit(resultEntry.Payload, XMLNames.Unit_kg, 2)), + new XElement( + tns + XMLNames.Report_ResultEntry_PassengerCount, + resultEntry.PassengerCount?.ToXMLFormat(2) ?? "NaN"), + new XElement( + tns + XMLNames.Report_Result_FuelMode, + resultEntry.FuelData.Count > 1 + ? XMLNames.Report_Result_FuelMode_Val_Dual + : XMLNames.Report_Result_FuelMode_Val_Single) + ), + GetResults(resultEntry))); + } private object[] GetResults(XMLDeclarationReport.ResultEntry resultEntry) { diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs index c5734c20a941ecc764680d429908ef1f1866004a..d7aa6efde1c45ed942b7f75c650cd841d6ef6968 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs @@ -162,7 +162,7 @@ namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer { var xsns = Writer.RegisterNamespace(XMLDefinitions.XML_SCHEMA_NAMESPACE); return new XAttribute( - xsns + "type", $"{Writer.GetNSPrefix(ComponentDataNamespace.NamespaceName)}:{XMLDataType}"); + xsns + XMLNames.XSIType, $"{Writer.GetNSPrefix(ComponentDataNamespace.NamespaceName)}:{XMLDataType}"); } public virtual object[] WriteXML(IAdvancedDriverAssistantSystemsEngineering inputData) diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs index 7a264233edcb4550215c763921976fdbc3a37e38..dd0542a3e98f2369cc732aede44e81f4da7c271f 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs @@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.OutputData.XML.Engineering new XElement( v10Inp + XMLNames.VectoComponentEngineering, new XAttribute( - xsns + "type", $"{GetNSPrefix(v10Def.NamespaceName)}:VectoComponentEngineeringType"), + xsns + XMLNames.XSIType, $"{GetNSPrefix(v10Def.NamespaceName)}:VectoComponentEngineeringType"), GetNamespaceAttributes(), GetSchemaLocations(), new XElement( diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs index b5e32a7a021ee7eb94a07d0b2439e7d55c4de491..f859fc1bf2953cef3cf42fac0f948dcfa27e52fa 100644 --- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs @@ -18,10 +18,10 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple return new XElement[] { new XElement(writerNamespace + XMLNames.Bus_HeightIntegratedBody, vehicle.Height.ConvertToMilliMeter()), - new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()), - new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()), + new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter().ToXMLFormat(0)), + new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter().ToXMLFormat(0)), new XElement(writerNamespace + XMLNames.Bus_EntranceHeight, - vehicle.EntranceHeight.ConvertToMilliMeter()) + vehicle.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)) }; } diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs index fb1acfd11c5d401f29126f559b33ea1f8c826de9..90246d90b312b4297fcafd2833196bb8b9811702 100644 --- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs @@ -23,7 +23,7 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Compon var elements = new List<XElement>(); elements.Add(new XElement(_writerNamespace + XMLNames.Bus_SystemConfiguration, - aux.HVACAux.SystemConfiguration.GetXmlFormat())); + aux.HVACAux.SystemConfiguration.ToXmlFormat())); elements.AddRange(_groupWriterFactory .GetBusAuxiliariesDeclarationGroupWriter(GroupNames.BusAuxHVACHeatPumpSequenceGroup, _writerNamespace) diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs index 47ab2e5bb42d3161bce0e91fdbf78bc522d8b1c7..888ff037c5950917b4320435ab026a098f2f991c 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs @@ -13,15 +13,15 @@ namespace TUGraz.VectoCore.OutputData.XML public static readonly XNamespace Xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); public static readonly XNamespace Tns = "urn:tugraz:ivt:VectoAPI:DeclarationInput"; public static readonly XNamespace Tns_v20 = Tns.NamespaceName + ":v2.0"; - public static readonly XNamespace V26 = DeclarationDefinition + ":DEV:v2.6"; + //public static readonly XNamespace V26 = DeclarationDefinition + ":DEV:v2.6"; public static readonly XNamespace V21 = DeclarationDefinition + ":v2.1"; - public static readonly XNamespace V23 = DeclarationDefinition + ":DEV:v2.3"; + public static readonly XNamespace V23 = DeclarationDefinition + ":v2.3"; public static readonly XNamespace V24 = DeclarationDefinition + ":v2.4"; public static readonly XNamespace V20 = DeclarationDefinition + ":v2.0"; public static readonly XNamespace V10 = DeclarationDefinition + ":v1.0"; - public static readonly XNamespace V28 = DeclarationDefinition + ":DEV:v2.8"; - public static readonly XNamespace v2_10_1 = DeclarationDefinition + ":DEV:v2.10.1"; - public static readonly XNamespace v2_10_2 = DeclarationDefinition + ":DEV:v2.10.2"; + //public static readonly XNamespace V28 = DeclarationDefinition + ":DEV:v2.8"; + //public static readonly XNamespace v2_10_1 = DeclarationDefinition + ":DEV:v2.10.1"; + //public static readonly XNamespace v2_10_2 = DeclarationDefinition + ":DEV:v2.10.2"; public static readonly XNamespace Di = "http://www.w3.org/2000/09/xmldsig#"; public static readonly string DeclarationRootNamespace = "urn:tugraz:ivt:VectoAPI:DeclarationJob"; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index 94eb0b24302e3cb824756009de2f173d96aff83d..7cdfff60bd38a6f915d12d5c40b02d17e4f05aac 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -237,7 +237,7 @@ namespace TUGraz.VectoCore.OutputData.XML WeightingGroup = DeclarationData.WeightingGroup.Lookup( modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab.Value, - modelData.EngineData.RatedPowerDeclared); + modelData.EngineData?.RatedPowerDeclared ?? Watt.Create(0)); } _weightingFactors = WeightingGroup == WeightingGroup.Unknown @@ -248,19 +248,19 @@ namespace TUGraz.VectoCore.OutputData.XML InstantiateReports(modelData); ManufacturerRpt.Initialize(modelData, fuelModes); - CustomerRpt.Initialize(modelData, fuelModes); + CustomerRpt?.Initialize(modelData, fuelModes); } public WeightingGroup WeightingGroup { get; protected set; } protected virtual void InstantiateReports(VectoRunData modelData) { - if (modelData.Exempted) { - ManufacturerRpt = new XMLManufacturerReportExemptedTruck(); - } else { - ManufacturerRpt = new XMLManufacturerReportTruck(); - } - CustomerRpt = new XMLCustomerReport(); + //if (modelData.Exempted) { + // ManufacturerRpt = new XMLManufacturerReportExemptedTruck(); + //} else { + // ManufacturerRpt = new XMLManufacturerReportTruck(); + //} + //CustomerRpt = new XMLCustomerReport(); } private static IDictionary<Tuple<MissionType, LoadingType>, double> ZeroWeighting => diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index 18d8a1e85ecdd895948090b3846024ae1743645a..5c4f366dd67215160f704204ca4c0f908e10da1a 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -13,12 +13,13 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; namespace TUGraz.VectoCore.OutputData.XML { public class XMLDeclarationReportCompletedVehicle : XMLDeclarationReport { - public XMLDeclarationReportCompletedVehicle(IReportWriter writer, bool writePIF = false) : base(writer) { } + public XMLDeclarationReportCompletedVehicle(IReportWriter writer) : base(writer) { } public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleReportInputData { get; set; } #region Overrides of XMLDeclarationReport + protected override void InstantiateReports(VectoRunData modelData) { ManufacturerRpt = modelData.Exempted @@ -101,5 +102,6 @@ namespace TUGraz.VectoCore.OutputData.XML { OutputReports(); } } + } } \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs index ad95a11bea40adcef0ae56fb10791115b9e70ed1..64cefe551683f1dd912d3bd5477c8150582c4b84 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs @@ -7,17 +7,33 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoCore.OutputData.XML { class XMLDeclarationReportFactory : IXMLDeclarationReportFactory { + private readonly IManufacturerReportFactory _mrfFactory; + private readonly ICustomerInformationFileFactory _cifFactory; + private readonly IVIFReportFactory _vifFactory; + private readonly IVIFReportInterimFactory _vifInterimFactory; + #region Implementation of IXMLDeclarationReportFactory + + public XMLDeclarationReportFactory(IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, IVIFReportInterimFactory vifInterimFactory) + { + _mrfFactory = mrfFactory; + _cifFactory = cifFactory; + _vifFactory = vifFactory; + _vifInterimFactory = vifInterimFactory; + } public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter) { switch (input) { - case IMultistageBusInputDataProvider multistageBusInputDataProvider: + case IMultistepBusInputDataProvider multistageBusInputDataProvider: break; case ISingleBusInputDataProvider singleBusInputDataProvider: return new XMLDeclarationReport(outputWriter); @@ -53,14 +69,14 @@ namespace TUGraz.VectoCore.OutputData.XML { if (multistageVifInputData.VehicleInputData == null) { - var reportCompleted = new XMLDeclarationReportCompletedVehicle(outputDataWriter, true) + var reportCompleted = new XMLDeclarationReportCompletedVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory) { PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle, }; return reportCompleted; } else { - var report = new XMLDeclarationReportMultistageBusVehicle(outputDataWriter); + var report = new XMLDeclarationReportInterimVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _vifInterimFactory); return report; } } @@ -71,21 +87,19 @@ namespace TUGraz.VectoCore.OutputData.XML var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory; if (vehicleCategory.IsLorry()) { - return new XMLDeclarationReport(outputDataWriter); + return new XMLDeclarationReport09(outputDataWriter, _mrfFactory, _cifFactory); } if (vehicleCategory.IsBus()) switch (declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory) { case VehicleCategory.HeavyBusCompletedVehicle: - return new XMLDeclarationReportCompletedVehicle(outputDataWriter, - declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle) + return new XMLDeclarationReportCompletedVehicle(outputDataWriter) { PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData, }; case VehicleCategory.HeavyBusPrimaryVehicle: - return new XMLDeclarationReportPrimaryVehicle(outputDataWriter, - declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); + return new XMLDeclarationReportPrimaryVehicle(outputDataWriter); default: break; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs index c2ba05703732a8c25a4d0f5e6a8123828388ab17..f43b744104bccdb232a27443433523775c2fc887 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs @@ -3,19 +3,25 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; namespace TUGraz.VectoCore.OutputData.XML { + /// <summary> + /// Create VIF of an interim (or the complete(d) step + /// </summary> public class XMLDeclarationReportMultistageBusVehicle : XMLDeclarationReport { - private IXMLMultistageReport _multistageBusReport; + protected IXMLMultistepIntermediateReport _multistageBusReport; public XMLDeclarationReportMultistageBusVehicle(IReportWriter writer) : base(writer) { + throw new NotImplementedException(); + //throw new VectoException("Used here"); //_multistageBusReport = new XMLMultistageBusReport(); } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs index 36bdb48f59d0c32501569a67a651132268576c30..633400763537d0101d3e3f0f1c055f6bf28720e4 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs @@ -10,16 +10,16 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; namespace TUGraz.VectoCore.OutputData.XML { public class XMLDeclarationReportPrimaryVehicle : XMLDeclarationReport { - protected IXMLPrimaryVehicleReport PrimaryReport; + protected IXMLVehicleInformationFile VehicleInformationFile; - public XMLDeclarationReportPrimaryVehicle(IReportWriter writer, bool writePIF = false) : base(writer) + public XMLDeclarationReportPrimaryVehicle(IReportWriter writer) : base(writer) { } public override XDocument CustomerReport => null; - public override XDocument PrimaryVehicleReport => PrimaryReport?.Report; + public override XDocument PrimaryVehicleReport => VehicleInformationFile?.Report; #region Overrides of XMLDeclarationReport @@ -29,12 +29,12 @@ namespace TUGraz.VectoCore.OutputData.XML { if (modelData.Exempted) { ManufacturerRpt = new XMLManufacturerReportExeptedPrimaryBus(); CustomerRpt = new XMLCustomerReportExemptedPrimaryBus(); - PrimaryReport = new XMLExemptedPrimaryBusVehicleReport(); + VehicleInformationFile = new XMLExemptedPrimaryBusVehicleReport(); } else { ManufacturerRpt = new XMLManufacturerReportPrimaryBus(); CustomerRpt = new XMLCustomerReport(); - PrimaryReport = new XMLPrimaryBusVehicleReport(); + VehicleInformationFile = new XMLPrimaryBusVehicleReport(); } @@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML { public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { base.InitializeReport(modelData, fuelModes); - PrimaryReport.Initialize(modelData,fuelModes); + VehicleInformationFile.Initialize(modelData,fuelModes); } @@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected override void WriteResult(ResultEntry result) { base.WriteResult(result); - PrimaryReport.WriteResult(result); + VehicleInformationFile.WriteResult(result); } protected override void GenerateReports() @@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.OutputData.XML { ManufacturerRpt.GenerateReport(); var fullReportHash = GetSignature(ManufacturerRpt.Report); CustomerRpt.GenerateReport(fullReportHash); - PrimaryReport.GenerateReport(fullReportHash); + VehicleInformationFile.GenerateReport(fullReportHash); } @@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected override void OutputReports() { Writer.WriteReport(ReportType.DeclarationReportManufacturerXML, ManufacturerRpt.Report); - Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, PrimaryReport.Report); + Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, VehicleInformationFile.Report); } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs new file mode 100644 index 0000000000000000000000000000000000000000..e6946487e5b81f3441a5caa39e36d89be7204f4e --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; + +namespace TUGraz.VectoCore.OutputData.XML +{ + /// <summary> + /// Create MRF and VIF for primary bus + /// </summary> + public class XMLDeclarationReportPrimaryVehicle_09 : XMLDeclarationReportPrimaryVehicle + { + private readonly IManufacturerReportFactory _mrfFactory; + private readonly IVIFReportFactory _vifFactory; + + public XMLDeclarationReportPrimaryVehicle_09(IReportWriter writer, + IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory) : base(writer) + { + _mrfFactory = mrfFactory; + //_cifFactory = cifFactory; + _vifFactory = vifFactory; + } + + + + + protected override void InstantiateReports(VectoRunData modelData) + { + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; + + ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + + VehicleInformationFile = _vifFactory.GetVIFReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + + + } + + } + + // -------------------------------------------------- + + /// <summary> + /// Create VIF of an interim (or the complete(d) step + /// </summary> + public class XMLDeclarationReportInterimVehicle_09 : XMLDeclarationReport + { + protected readonly IVIFReportFactory _vifFactory; + + protected IXMLMultistepIntermediateReport MultistepIntermediateBusReport; + protected readonly IVIFReportInterimFactory _interimFactory; + + public XMLDeclarationReportInterimVehicle_09(IReportWriter writer, + IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory) : base(writer) + { + _vifFactory = vifFactory; + _interimFactory = interimFactory; + } + + #region Overrides of XMLDeclarationReport + + protected override void InstantiateReports(VectoRunData modelData) + { + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; + + MultistepIntermediateBusReport = _interimFactory.GetInterimVIFReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + } + + #endregion + + public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + //_multistageBusReport = + // modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport(); + + InstantiateReports(modelData); + + MultistepIntermediateBusReport.Initialize(modelData); + } + + protected override void GenerateReports() + { + MultistepIntermediateBusReport.GenerateReport(); + } + + protected override void OutputReports() + { + Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, MultistepIntermediateBusReport.Report); + } + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + throw new NotSupportedException(); + } + protected override void WriteResult(ResultEntry result) + { + throw new NotSupportedException(); + } + } + + + // -------------------------------------------------- + + /// <summary> + /// Create MRF and CIF of the complete(d) step + /// </summary> + public class XMLDeclarationReportCompletedVehicle_09 : XMLDeclarationReportCompletedVehicle + { + protected readonly ICustomerInformationFileFactory _cifFactory; + protected readonly IManufacturerReportFactory _mrfFactory; + + public XMLDeclarationReportCompletedVehicle_09(IReportWriter writer, IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory) : base(writer) + { + _cifFactory = cifFactory; + _mrfFactory = mrfFactory; + } + + #region Overrides of XMLDeclarationReportCompletedVehicle + + protected override void InstantiateReports(VectoRunData modelData) + { + var inputData = modelData.InputData as IXMLMultistageInputDataProvider; + var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle; + + var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (primaryVehicle.Components?.IEPC != null); + ManufacturerRpt = _mrfFactory.GetManufacturerReport( + inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + inputData.JobInputData.JobType, + primaryVehicle.ArchitectureID, + primaryVehicle.ExemptedVehicle, + iepc, + ihpc); + + CustomerRpt = _cifFactory.GetCustomerReport( + inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + inputData.JobInputData.JobType, + primaryVehicle.ArchitectureID, + primaryVehicle.ExemptedVehicle, + iepc, + ihpc); + + } + + #endregion + } + // -------------------------------------------------- + + /// <summary> + /// Create MRF and CIF for lorries + /// </summary> + public class XMLDeclarationReport09 : XMLDeclarationReport + { + private readonly IManufacturerReportFactory _mrfFactory; + private readonly ICustomerInformationFileFactory _cifFactory; + + + + public XMLDeclarationReport09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer) + { + _mrfFactory = mrfFactory; + _cifFactory = cifFactory; + } + + protected override void InstantiateReports(VectoRunData modelData) + { + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; + + ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + CustomerRpt = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + } + + + + + + + + } + +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd index 78764b8033a7723f1cbb5e99b45d87d4c52b49bf..a19c7634b62f20bf1f46de5f538d421f901abe8f 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd @@ -10,6 +10,8 @@ Changelog: 03.02.2022: First official version uploaded to CITnet 04.04.2022: Changes in 'TyreDimensionType': remove space between tyre design code and rim diameter (205/70 R15, 205/80 R15) 01.06.2022: Change type of WHTC Correction factors, CFRegPer, BFColdHot: constraint > 0.0 + 23.08.2022: Bugfix IEPC standard values: require gear attribute for power map, allow multiple power maps; + require gear attribute for drac curve, allow multiple drag curves --> <xs:complexType name="AbstractADCDataDeclarationType" abstract="true"> <xs:complexContent> @@ -1267,11 +1269,18 @@ Changelog: </xs:element> <xs:element name="Gears" type="v2.3:AbstractIEPCGearsDeclarationType"/> <xs:element name="VoltageLevel" type="v2.3:IEPCSystemVoltageLevelStandardValuesType"/> - <xs:element name="DragCurve"> + <xs:element name="DragCurve" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Entry" type="v2.3:IEPCSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> </xs:sequence> + <xs:attribute name="gear" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> @@ -1425,11 +1434,18 @@ Changelog: </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="PowerMap"> + <xs:element name="PowerMap" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Entry" type="v2.3:IEPCSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/> </xs:sequence> + <xs:attribute name="gear" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> @@ -1541,7 +1557,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1551,7 +1567,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1561,7 +1577,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1571,7 +1587,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1581,7 +1597,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1595,7 +1611,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1605,7 +1621,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1615,7 +1631,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1625,7 +1641,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> @@ -1635,7 +1651,7 @@ Changelog: </xs:annotation> <xs:simpleType> <xs:restriction base="v1.0:Double4"> - <xs:minExclusive value="0.0"/> + <xs:minExclusive value="0.0000"/> </xs:restriction> </xs:simpleType> </xs:element> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd index 5a3b759a27ffdb905ae0c8267bdb234712c82f01..442ca7176a4c1075b6fd1520c175ba398f66e299 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> @@ -15,7 +15,7 @@ Changelog: 12.04.2022: Remove TorqueLimits element on vehicle level for PEV, HEV-S, HEV-IEPC-S Remove BoostingLimitations for HEV-IEPC-S 14.04.2022: Added new RetarderTypeType definition to cover AxlegearInputRetarder (used only for E3, S3, S-IEPC, E-IEPC) ---> + 17.08.2022 Changed datatype of ChassisConfiguration, AxleConfiguration and LegislativeCategory for Vehicle_Exempted_MediumLorryDeclarationType--> <xs:complexType name="Abstract_ADAS_ConventionalType" abstract="true"> <xs:complexContent> <xs:extension base="v2.1:AbstractAdvancedDriverAssistantSystemsType"/> @@ -405,6 +405,11 @@ Changelog: <xs:sequence> <xs:group ref="v2.4:BusAuxPneumaticSystemGen_Conventional_SequenceGroup"/> <xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/> + <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P316 - bool</xs:documentation> + </xs:annotation> + </xs:element> </xs:sequence> </xs:complexType> </xs:element> @@ -567,6 +572,11 @@ Changelog: <xs:sequence> <xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"/> <xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/> + <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P316 - bool</xs:documentation> + </xs:annotation> + </xs:element> </xs:sequence> </xs:complexType> </xs:element> @@ -728,6 +738,11 @@ Changelog: <xs:sequence> <xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"/> <xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/> + <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P316 - bool</xs:documentation> + </xs:annotation> + </xs:element> </xs:sequence> </xs:complexType> </xs:element> @@ -764,7 +779,7 @@ Changelog: </xs:annotation> <xs:complexType> <xs:simpleContent> - <xs:extension base="v2.4:AuxPSTechnology_PEV_LorryType"> + <xs:extension base="v2.4:AuxSPTechnology_PEV_LorryType"> <xs:attribute name="axleNumber" use="required"> <xs:simpleType> <xs:restriction base="xs:int"> @@ -1791,17 +1806,17 @@ Changelog: <xs:extension base="v2.0:AbstractVehicleDeclarationType"> <xs:sequence> <xs:group ref="v2.4:Vehicle_GeneralParametersSequenceGroup"/> - <xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryHeavyLorryDeclarationType"> + <xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryMediumLorryDeclarationType"> <xs:annotation> <xs:documentation>P251 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationHeavyLorryDeclarationType"> + <xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationMediumLorryDeclarationType"> <xs:annotation> <xs:documentation>P036 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationHeavyLorryDeclarationType"> + <xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationMediumLorryDeclarationType"> <xs:annotation> <xs:documentation>P037 - enum</xs:documentation> </xs:annotation> @@ -1946,7 +1961,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_LorryDeclarationType"/> @@ -1970,7 +1985,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_LorryDeclarationType"/> @@ -2004,7 +2019,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_PrimaryBusDeclarationType"/> @@ -2028,7 +2043,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> @@ -2054,7 +2069,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> @@ -2090,7 +2105,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> @@ -2116,7 +2131,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/> @@ -2140,7 +2155,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/> @@ -2174,7 +2189,7 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> + <xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_PrimaryBusDeclarationType"/> @@ -2235,7 +2250,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/> <xs:element name="Components" type="v2.4:Abstract_Components_IEPC_LorryDeclarationType"/> </xs:sequence> @@ -2253,7 +2267,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/> <xs:element name="Components" type="v2.4:Abstract_Components_IEPC_LorryDeclarationType"/> </xs:sequence> @@ -2281,7 +2294,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/> <xs:element name="Components" type="v2.4:Abstract_Components_IEPC_PrimaryBusDeclarationType"/> </xs:sequence> @@ -2341,7 +2353,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_PEV_LorryDeclarationType"/> @@ -2360,7 +2371,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_PEV_LorryDeclarationType"/> @@ -2389,7 +2399,6 @@ Changelog: <xs:documentation>P400 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/> <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_PEV_PrimaryBusDeclarationType"/> @@ -3202,11 +3211,6 @@ Changelog: </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P316 - bool</xs:documentation> - </xs:annotation> - </xs:element> </xs:sequence> </xs:group> <xs:group name="BusAuxPneumaticSystemGen_Conventional_SequenceGroup"> @@ -3802,7 +3806,7 @@ Changelog: </xs:element> </xs:sequence> </xs:group> - <xs:group name="Vehicle_xEV-Parameters_SequenceGroup"> + <xs:group name="Vehicle_HEV-Parameters_SequenceGroup"> <xs:sequence> <xs:element name="OvcHev" type="xs:boolean"> <xs:annotation> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd new file mode 100644 index 0000000000000000000000000000000000000000..0b375190eb80eda16da43a62bb6e3cdde9141a91 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd @@ -0,0 +1,2070 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" xmlns:dd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaLocation="VectoDeclarationDefinitions.2.0.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> + <xs:complexType name="ConventionalLorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Conventional_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_Px_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="HEV_Px_IHPC_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S2_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="HEV_S2_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S3_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="HEV_S3_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S4_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="HEV_S4_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_IEPC_S_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="HEV_IEPC_S_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E2_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="PEV_E2_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E3_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="PEV_E3_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E4_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="PEV_E4_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_IEPC_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="PEV_IEPC_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Conventional_CompletedBusOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Abstract_Conventional_CompltededBusVehicleType"/> + <xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_CompletedBusOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Abstract_HEV_CompletedBusVehicleType"/> + <xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_CompletedBusOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Abstract_PEV_CompletedBusVehicleType"/> + <xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Exempted_LorryOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Exempted_LorryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Exempted_CompletedBusOutputType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputCustomerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="Exempted_CompletedBusVehicleType"/> + <xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results" type="ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!--Vehicle Types--> + <xs:complexType name="Conventional_LorryVehicleType"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:group ref="LorryGeneralVehicleSequenceGroup"/> + <xs:group ref="WHR_DualFuelSequenceGroup"/> + <xs:element name="ADAS" type="ConventionalADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV_Px_IHPC_LorryVehicleType"> + <xs:sequence> + <xs:group ref="HEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV_S2_LorryVehicleType"> + <xs:sequence> + <xs:group ref="HEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV_S3_LorryVehicleType"> + <xs:sequence> + <xs:group ref="HEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV_S4_LorryVehicleType"> + <xs:sequence> + <xs:group ref="HEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV_IEPC_S_LorryVehicleType"> + <xs:sequence> + <xs:group ref="HEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio" minOccurs="0"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV_E2_LorryVehicleType"> + <xs:sequence> + <xs:group ref="PEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV_E3_LorryVehicleType"> + <xs:sequence> + <xs:group ref="PEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV_E4_LorryVehicleType"> + <xs:sequence> + <xs:group ref="PEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV_IEPC_LorryVehicleType"> + <xs:sequence> + <xs:group ref="PEV_LorryVehicleTypeGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder"/> + <xs:element name="AxleRatio" minOccurs="0"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="LorryAuxGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Conventional_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_Conventional_CompltededBusVehicleType"> + <xs:sequence> + <xs:group ref="ConventionalCompletedBusVehicleTypeGroup"/> + <xs:element name="ADAS" type="ConventionalADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="ConventionalCompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_Px_IHPC_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_HEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="HEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="HEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="HEV_Px_IHPC_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S2_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_HEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="HEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="HEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="HEV_Sx_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S3_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_HEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="HEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="HEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="HEV_Sx_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_S4_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_HEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="HEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="HEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="HEV_Sx_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV_IEPC-S_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_HEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="HEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="HEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="HEVADASType"/> + <xs:group ref="EngineGroup"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="HEV_Sx_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E2_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_PEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="PEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="PEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:group ref="TransmissionGroup"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="PEV_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E3_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_PEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="PEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="PEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="PEV_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_E4_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_PEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="PEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="PEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="PEV_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_IEPC_CompletedBusVehicleType"> + <xs:complexContent> + <xs:extension base="Abstract_PEV_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="PEVCompletedBusVehicleTypeGroup"/> + <xs:group ref="PEV_CompletedBusArchitectureGroup"/> + <xs:element name="ADAS" type="PEVADASType"/> + <xs:group ref="ElectricMachineGroup"/> + <xs:group ref="REESSGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="Retarder" type="xs:boolean"/> + <xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/> + <xs:group ref="AxleWheelsGroup"/> + <xs:group ref="PEV_CompletedBusAuxGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Exempted_LorryVehicleType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"/> + <xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>1.1.2. Vehicle model/Commercial Name</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"> + <xs:annotation> + <xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"/> + <xs:element name="ZeroEmissionVehicle"/> + <xs:element name="VehicleTechnologyExempted"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Exempted_CompletedBusVehicleType"> + <xs:sequence> + <xs:group ref="ExemptedCompletedBusVehicleTypeGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="RatedPowerType"> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:simpleType name="LegislativeCategoryType"> + <xs:union memberTypes="v2.4:LegislativeCategoryHeavyLorryDeclarationType v2.4:LegislativeCategoryMediumLorryDeclarationType v2.4:LegislativeCategoryPrimaryBusDeclarationType"/> + </xs:simpleType> + <xs:group name="GeneralVehicleSequenceGroup"> + <xs:sequence> + <xs:element name="VIN" type="v1.0:VINType"/> + <xs:element name="VehicleCategory" type="LegislativeCategoryType"/> + <xs:element name="AxleConfiguration" type="v1.0:VehicleAxleConfigurationDeclarationType"/> + <xs:element name="TechnicalPermissibleMaximumLadenMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v1.0:VehicleGrossVehicleMassType"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="VehicleGroup" type="xs:string"/> + <xs:element name="VehicleGroupCO2" type="xs:string"/> + </xs:sequence> + </xs:group> + <xs:group name="LorryGeneralVehicleSequenceGroup"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"/> + <xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/> + <xs:element name="Model" type="v1.0:ModelType"/> + <xs:element name="VehicleTypeApprovalNumber" type="v2.4:VehicleTypeApprovalNumberType" minOccurs="0"/> + <xs:element name="CorrectedActualMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v1.0:VehicleCurbMassChassisType"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="VocationalVehicle" type="v1.0:VocationalVehicleType"/> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"/> + <xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType"/> + <xs:element name="HybridElectricHDV" type="v1.0:HybridElectricHDVType"/> + </xs:sequence> + </xs:group> + <xs:group name="WHR_DualFuelSequenceGroup"> + <xs:sequence> + <xs:element name="WasteHeatRecovery" type="xs:boolean"/> + <xs:element name="DualFuelVehicle" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV_VehicleSequenceGroup"> + <xs:sequence> + <xs:group ref="WHR_DualFuelSequenceGroup"/> + <xs:element name="HEVArchitecture" type="xs:string"/> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + <xs:element name="OffVehicleChargingMaxPower" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="PEV_VehicleSequenceGroup"> + <xs:sequence> + <xs:element name="PEVArchitecture" type="xs:string"/> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV_LorryVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:group ref="LorryGeneralVehicleSequenceGroup"/> + <xs:group ref="HEV_VehicleSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="PEV_LorryVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:group ref="LorryGeneralVehicleSequenceGroup"/> + <xs:group ref="PEV_VehicleSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="ConventionalCompletedBusVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer"/> + <xs:element name="ManufacturerAddress"/> + </xs:sequence> + <xs:attribute name="stepCount" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="Model" type="xs:string"/> + <xs:sequence> + <xs:element name="CorrectedActualMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + <xs:group ref="WHR_DualFuelSequenceGroup"/> + <xs:element name="ClassBus" type="xs:string"/> + <xs:element name="TotalNumberOfPassengers" type="xs:int"/> + <xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="HEVCompletedBusVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer"/> + <xs:element name="ManufacturerAddress"/> + </xs:sequence> + <xs:attribute name="stepCount" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="Model" type="xs:string"/> + <xs:sequence> + <xs:element name="CorrectedActualMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + <xs:group ref="WHR_DualFuelSequenceGroup"/> + <xs:element name="ClassBus" type="xs:string"/> + <xs:element name="TotalNumberOfPassengers" type="xs:int"/> + <xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="PEVCompletedBusVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer"/> + <xs:element name="ManufacturerAddress"/> + </xs:sequence> + <xs:attribute name="stepCount" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="Model" type="xs:string"/> + <xs:sequence> + <xs:element name="CorrectedActualMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + <xs:element name="ClassBus" type="xs:string"/> + <xs:element name="TotalNumberOfPassengers" type="xs:int"/> + <xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="ExemptedCompletedBusVehicleTypeGroup"> + <xs:sequence> + <xs:group ref="GeneralVehicleSequenceGroup"/> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer"/> + <xs:element name="ManufacturerAddress"/> + </xs:sequence> + <xs:attribute name="stepCount" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="Model" type="xs:string"/> + <xs:sequence> + <xs:element name="CorrectedActualMass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="ClassBus" type="xs:string"/> + <xs:element name="TotalNumberOfPassengers" type="xs:int"/> + <xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:complexType name="EngineCapacityType"> + <xs:simpleContent> + <xs:extension base="xs:double"/> + </xs:simpleContent> + </xs:complexType> + <xs:group name="EngineGroup"> + <xs:sequence> + <xs:element name="EngineRatedPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v1.0:EngineRatedPower"> + <xs:attribute name="unit" type="out:PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="EngineCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="EngineCapacityType"> + <xs:attribute name="unit" type="out:VolumeUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelTypes"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelType" type="v1.0:FuelTypeType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="TransmissionGroup"> + <xs:sequence> + <xs:element name="TransmissionValues" type="xs:string"/> + <xs:element name="TransmissionType" type="v2.3:GearboxTransmissionTypeType"/> + <xs:element name="NrOfGears" type="xs:int"/> + </xs:sequence> + </xs:group> + <xs:group name="AxleWheelsGroup"> + <xs:sequence> + <xs:element name="AverageRRC" type="v1.0:TyreRRCISOType"/> + <xs:element name="Axle" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="TyreDimension" type="v2.3:TyreDimensionType"/> + <xs:element name="FuelEfficiencyClass" type="xs:string"/> + <xs:element name="TyreCertificationNumber" type="v1.0:CertificationNumberType"/> + </xs:sequence> + <xs:attribute name="axleNumber"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="ElectricMachineGroup"> + <xs:sequence> + <xs:element name="TotalRatedPropulsionPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RatedPowerType"/> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="VoltageLevels"> + <xs:complexType> + <xs:sequence> + <xs:element name="VoltageLevel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="MaxContinuousPropulsionPower" type="RatedPowerType"/> + </xs:sequence> + <xs:attribute name="voltage"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="REESSGroup"> + <xs:sequence> + <xs:element name="TotalStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="UsableStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="LorryAuxGroup"> + <xs:sequence> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/> + </xs:sequence> + </xs:group> + <xs:group name="ConventionalCompletedBusAuxGroup"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ElectricSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="AlternatorTechnology"/> + <xs:sequence minOccurs="0"> + <xs:element name="MaxAlternatorPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ElectricStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="SmartCompressionSystem" type="xs:boolean"/> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="SystemConfiguration" type="xs:int"/> + <xs:element name="AuxiliaryHeaterPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="DoubleGlazing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="HEV_Px_IHPC_CompletedBusAuxGroup"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ElectricSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="AlternatorTechnology"/> + <xs:sequence minOccurs="0"> + <xs:element name="MaxAlternatorPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ElectricStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="SmartCompressionSystem" type="xs:boolean"/> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="SystemConfiguration" type="xs:int"/> + <xs:element name="AuxiliaryHeaterPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="DoubleGlazing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="HEV_Sx_CompletedBusAuxGroup"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ElectricSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="AlternatorTechnology"/> + <xs:sequence minOccurs="0"> + <xs:element name="MaxAlternatorPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ElectricStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="SystemConfiguration" type="xs:int"/> + <xs:element name="AuxiliaryHeaterPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="DoubleGlazing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="PEV_CompletedBusAuxGroup"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="SystemConfiguration" type="xs:int"/> + <xs:element name="AuxiliaryHeaterPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="DoubleGlazing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <!--Results--> + <xs:element name="VectoMockResults"> + <xs:annotation> + <xs:documentation>This element is just for developing the XML Schema of the different types of results - can be removed later on</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Results" type="ResultsType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="ResultsType"> + <xs:sequence> + <xs:element name="Status"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Result" type="AbstractResultType" maxOccurs="unbounded"/> + <xs:element name="Summary" type="AbstractResultSummaryType"/> + </xs:sequence> + <xs:element name="ExemptedVehicle"> + <xs:complexType/> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AbstractResultType" abstract="true"> + <xs:attribute name="status" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ResultSuccessOCVHEVType"> + <xs:complexContent> + <xs:extension base="AbstractResultType"> + <xs:sequence> + <xs:group ref="ResultSuccessSimulationParametersGroup"/> + <xs:element name="OCVMode" minOccurs="2" maxOccurs="2"> + <xs:complexType> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="ElectricEnergyType" minOccurs="0"/> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="charge depleting"/> + <xs:enumeration value="charge sustaining"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="ElectricEnergyType"/> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="ElectricRangeSequenceGroup"/> + <xs:element name="UtilityFactor" type="xs:double"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessPEVType"> + <xs:complexContent> + <xs:extension base="AbstractResultType"> + <xs:sequence> + <xs:group ref="ResultSuccessSimulationParametersGroup"/> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="ElectricEnergyType"/> + <xs:sequence minOccurs="0"> + <xs:element name="FC_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:group ref="ElectricRangeSequenceGroup"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessConventionalType"> + <xs:complexContent> + <xs:extension base="AbstractResultType"> + <xs:sequence> + <xs:group ref="ResultSuccessSimulationParametersGroup"/> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessNonOCVHEVType"> + <xs:complexContent> + <xs:extension base="ResultSuccessConventionalType"/> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultErrorType"> + <xs:complexContent> + <xs:extension base="AbstractResultType"> + <xs:sequence> + <xs:element name="Mission" type="MissionTypeType"> + <xs:annotation> + <xs:documentation>I.2.1.1 / #56</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SimulationParameters" type="SimulationParametersType"/> + <xs:element name="Error" type="xs:string"/> + <xs:element name="ErrorDetails" type="xs:string"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="SimulationParametersType"> + <xs:sequence> + <xs:element name="TotalVehicleMass"> + <xs:annotation> + <xs:documentation>I.2.1.4 / #59</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Payload"> + <xs:annotation> + <xs:documentation>I.2.1.2 / #57</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:sequence> + <xs:element name="MassPassengers"> + <xs:annotation> + <xs:documentation>I.2.1.2 / #57</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="PassengerCount" type="xs:double"/> + </xs:sequence> + </xs:choice> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="CO2UnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="DistanceUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="PowerUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kW"/> + <xs:enumeration value="W"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="EnergyUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kWh"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="EnergyConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kWh/km"/> + <xs:enumeration value="kWh/t-km"/> + <xs:enumeration value="kWh/m³-km"/> + <xs:enumeration value="kWh/p-km"/> + <xs:enumeration value="MJ/km"/> + <xs:enumeration value="MJ/t-km"/> + <xs:enumeration value="MJ/m³-km"/> + <xs:enumeration value="MJ/p-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="FuelConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + <xs:enumeration value="l/100km"/> + <xs:enumeration value="l/t-km"/> + <xs:enumeration value="l/p-km"/> + <xs:enumeration value="l/m³-km"/> + <xs:enumeration value="MJ/km"/> + <xs:enumeration value="MJ/t-km"/> + <xs:enumeration value="MJ/m³-km"/> + <xs:enumeration value="MJ/p-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MassUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="kg"/> + <xs:enumeration value="t"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="PercentType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="%"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="SpeedUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km/h"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MissionTypeType"> + <xs:restriction base="xs:token"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="FuelConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="FuelConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="CO2Type"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="CO2UnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:group name="ResultSuccessSimulationParametersGroup"> + <xs:sequence> + <xs:element name="Mission" type="MissionTypeType"/> + <xs:element name="SimulationParameters" type="SimulationParametersType"/> + </xs:sequence> + </xs:group> + <xs:complexType name="EnergyConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="EnergyConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="FuelType"/> + <xs:complexType name="ElectricEnergyType"> + <xs:sequence> + <xs:element name="EnergyConsumption" type="EnergyConsumptionType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:group name="ElectricRangeSequenceGroup"> + <xs:sequence> + <xs:element name="ActualChargeDepletingRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="EquivalentAllElectricRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroCO2EmissionsRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:complexType name="AbstractResultSummaryType" abstract="true"/> + <xs:complexType name="ResultSummaryConventionalType"> + <xs:complexContent> + <xs:extension base="AbstractResultSummaryType"> + <xs:sequence> + <xs:choice> + <xs:element name="AveragePayload"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AveragePassengerCount" type="xs:double"/> + </xs:choice> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSummaryOCVHEVType"> + <xs:complexContent> + <xs:extension base="AbstractResultSummaryType"> + <xs:sequence> + <xs:choice> + <xs:element name="AveragePayload"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AveragePassengerCount" type="xs:double"/> + </xs:choice> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="ElectricEnergyType"/> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="ElectricRangeSequenceGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSummaryPEVType"> + <xs:complexContent> + <xs:extension base="AbstractResultSummaryType"> + <xs:sequence> + <xs:choice> + <xs:element name="AveragePayload"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AveragePassengerCount" type="xs:double"/> + </xs:choice> + <xs:element name="ElectricEnergy" type="ElectricEnergyType"/> + <xs:sequence minOccurs="0"> + <xs:element name="FC_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:group ref="ElectricRangeSequenceGroup"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSummaryNonOCVHEVType"> + <xs:complexContent> + <xs:extension base="ResultSummaryConventionalType"/> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ConventionalADASType"> + <xs:sequence> + <xs:group ref="ConventionalADASGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEVADASType"> + <xs:sequence> + <xs:group ref="HEVADASGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEVADASType"> + <xs:sequence> + <xs:group ref="PEVADASGroup"/> + </xs:sequence> + </xs:complexType> + <!--ADAS--> + <xs:group name="ConventionalADASGroup"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"/> + <xs:element name="EcoRollWithoutEngineStopStart" type="xs:boolean"/> + <xs:element name="EcoRollWithEngineStopStart" type="xs:boolean"/> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="HEVADASGroup"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"/> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="PEVADASGroup"> + <xs:sequence> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV_CompletedBusArchitectureGroup"> + <xs:sequence> + <xs:element name="HEVArchitecture" type="xs:string"/> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + <xs:element name="OffVehicleChargingMaxPower" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="PEV_CompletedBusArchitectureGroup"> + <xs:sequence> + <xs:element name="PEVArchitecture" type="xs:string"/> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:complexType name="Abstract_Conventional_CompltededBusVehicleType" abstract="true"/> + <xs:complexType name="Abstract_HEV_CompletedBusVehicleType" abstract="true"/> + <xs:complexType name="Abstract_PEV_CompletedBusVehicleType" abstract="true"/> +</xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd index 25f7a38d2d25e2f14a3a19e87d919f60cabfc7d4..fcffb1566a4937edf7e4a89afaa23592b21f5ff7 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd @@ -13,6 +13,7 @@ <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7" schemaLocation="VectoOutputCustomer.0.7.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7.1" schemaLocation="VectoOutputCustomer.0.7.1.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.8" schemaLocation="VectoOutputCustomer.0.8.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" schemaLocation="VectoOutputCustomer.0.9.xsd"/> <xs:element name="VectoCustomerInformation" type="tns:VectoCustomerInformationType"/> <xs:complexType name="VectoCustomerInformationType"> <xs:sequence> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd index 43f695abf03d9dea35bb2ed2c9c895186263f487..21584288ecbbef1532db23e9c177922bb9d50e81 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd @@ -32,4 +32,15 @@ <xs:enumeration value="km/h"/> </xs:restriction> </xs:simpleType> + <xs:simpleType name="VolumeUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="ltr"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="StorageCapacityUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="As"/> + <xs:enumeration value="Ah"/> + </xs:restriction> + </xs:simpleType> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd new file mode 100644 index 0000000000000000000000000000000000000000..df6fdc2b69510778527d2bd1753faad76f7b7a95 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd @@ -0,0 +1,2700 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:dd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <!-- Imports_______________________________________________ --> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaLocation="VectoDeclarationDefinitions.2.0.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> + <!-- End imports___________________________________________ --> + <xs:complexType name="ConventionalLorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Conventional-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>II.2.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>II.2.5</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPCLorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S2_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S2-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S3_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S3-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S4_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S4-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-IEPC-S-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E2_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E2-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E3_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E3-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E4_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E4-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-IEPC_LorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-IEPC-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ConventionalPrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Conventional-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S2_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S2-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S3_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S3-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S4_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-S4-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-IEPC-S-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E2_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E2-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E3_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E3-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-E4_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-E4-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV-IEPC_PrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-IEPC-PrimaryBus-VehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ConventionalCompletedBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Conventional-CompletedBusVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEVCompletedBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:HEV-CompletedBusVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEVCompletedBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:PEV-CompletedBusVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExemptedLorryManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Exempted-LorryVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExemptedPrimaryBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Exempted-PrimaryBusVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExemptedCompletedBusManufacturerOutputDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractVectoOutputManufacturerDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="mrf:Exempted-CompletedBusVehicleOutputType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="mrf:ResultsType"/> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <!--Vehicle--> + <xs:group name="GeneralVehicleOutputGroup"> + <xs:sequence> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>1.1.2. Vehicle model/Commercial Name</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VIN" type="v1.0:VINType"> + <xs:annotation> + <xs:documentation>1.1.3. Vehicle identification number (VIN)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleTypeApprovalNumber" type="v2.4:VehicleTypeApprovalNumberType" minOccurs="0"/> + <xs:element name="VehicleCategory" type="mrf:LegislativeCategoryType"/> + <xs:element name="AxleConfiguration" type="v1.0:VehicleAxleConfigurationDeclarationType"> + <xs:annotation> + <xs:documentation>1.1.5 Axle configuration</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType"> + <xs:annotation> + <xs:documentation>1.1.6. Technical Permissible Maximum Laden Mass [t]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleGroup" type="xs:string"> + <xs:annotation> + <xs:documentation>1.1.7.Vehicle group (Annex 1)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleGroupCO2"> + <xs:annotation> + <xs:documentation>1.1.7a (Sub)group for CO2 standards</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="OffVehicleChargingGroup"> + <xs:annotation> + <xs:documentation> </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + <xs:element name="OffVehicleChargingMaxPower" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="ManufacturerGroup"> + <xs:annotation> + <xs:documentation>1.1.1. Name and address of manufacturer (s) + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"/> + <xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/> + </xs:sequence> + </xs:group> + <xs:group name="CompletedBusGeneralVehicleOutputGroup"> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:attribute name="Count" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:group ref="mrf:CompletedBusSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="LorryGeneralVehicleOutputGroup"> + <xs:sequence> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"> + <xs:annotation> + <xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VocationalVehicle" type="v1.0:VocationalVehicleType"> + <xs:annotation> + <xs:documentation>1.1.9. Vocational Vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType"> + <xs:annotation> + <xs:documentation>1.1.10. Zero emission heavy-duty vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HybridElectricHDV" type="v1.0:HybridElectricHDVType"> + <xs:annotation> + <xs:documentation>1.1.11 Hyprid electric heavy-duty vehicle</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="HEV-LorryVehicleOutputTypeSequenceGroup"> + <xs:sequence> + <xs:element name="DualFuelVehicle" type="v1.0:DualFuelType"> + <xs:annotation> + <xs:documentation>1.1.12. Dual-fuel vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="mrf:HEVVehicleSequenceGroup"/> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"> + <xs:annotation> + <xs:documentation>1.1.13 Sleeper cab</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/> + </xs:sequence> + </xs:group> + <xs:group name="PEV-LorryVehicleOutputTypeSequenceGroup"> + <xs:sequence> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"> + <xs:annotation> + <xs:documentation>1.1.13 Sleeper cab</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="PEVArchitecture" type="xs:string"/> + <xs:group ref="mrf:OffVehicleChargingGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="HEVVehicleSequenceGroup"> + <xs:sequence> + <xs:element name="HEVArchitecture" type="xs:string"/> + <xs:group ref="mrf:OffVehicleChargingGroup"/> + <xs:element name="ADAS" type="mrf:HEVADASType"/> + <xs:element name="BoostingLimitations" type="mrf:BoostingLimitationsType" minOccurs="0"/> + </xs:sequence> + </xs:group> + <xs:group name="PEVVehicleSequenceGroup"> + <xs:sequence> + <xs:element name="PEVArchitecture" type="v2.4:ArchitectureIDType"/> + <xs:element name="OffVehicleChargingCapability" type="xs:boolean"/> + <xs:element name="ADAS" type="mrf:PEVADASType"/> + <xs:element name="BoostingLimitations" type="mrf:BoostingLimitationsType" minOccurs="0"/> + </xs:sequence> + </xs:group> + <xs:complexType name="BoostingLimitationsType"> + <xs:sequence> + <xs:element name="Entry" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="boostingTorque" type="v1.0:Double2" use="required"/> + <xs:attribute name="rotationalSpeed" type="v1.0:Double2" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:group name="CompletedBusSequenceGroup"> + <xs:sequence> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"/> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + <xs:element name="ClassBus" type="v2.4:RegisteredClassType"/> + <xs:element name="NumberPassengersUpperDeck" type="xs:int"/> + <xs:element name="NumberPassengersLowerDeck" type="xs:int"/> + <xs:element name="BodyworkCode" type="v2.4:VehicleCodeType"/> + <xs:element name="LowEntry" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="CompletedBusVehicleDimensionSequenceGroup"> + <xs:sequence> + <xs:element name="HeightIntegratedBody" type="v2.4:VehicleDimensionType"/> + <xs:element name="VehicleLength" type="v2.4:VehicleDimensionType"/> + <xs:element name="VehicleWidth" type="v2.4:VehicleDimensionType"/> + </xs:sequence> + </xs:group> + <xs:complexType name="Conventional-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:Conventional-LorryVehicleOutputTypeGroup"/> + <xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/> + <xs:element name="Components" type="mrf:ConventionalLorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPC-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/> + <xs:element name="Components" type="mrf:HEV-Px_IHPC-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S2-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S2-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S3-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S3-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S4-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S4-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-IEPC-S-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E2-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E2-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E3-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E3-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E4-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E4-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-IEPC-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-IEPC-LorryComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Conventional-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:Conventional-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/> + <xs:element name="Components" type="mrf:Conventional-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPC-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/> + <xs:element name="Components" type="mrf:HEV-Px_IHPC-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S2-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S2-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S3-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S3-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S4-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-S4-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:HEV-IEPC-S-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E2-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E2-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E3-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E3-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E4-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-E4-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-IEPC-PrimaryBus-VehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/> + <xs:element name="Components" type="mrf:PEV-IEPC-PrimaryBusComponentsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Conventional-CompletedBusVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:Conventional-CompletedBusVehicleOutputTypeGroup"/> + <xs:element name="ADAS" type="mrf:ConventionalADASType"/> + <xs:element name="Components"> + <xs:complexType> + <xs:sequence> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + <xs:element name="Auxiliaries" type="mrf:ConventionalCompletedBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-CompletedBusVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:HEV-CompletedBusVehicleOutputTypeGroup"/> + <xs:element name="ADAS" type="mrf:HEVADASType"/> + <xs:element name="Components"> + <xs:complexType> + <xs:sequence> + <xs:element name="AirDrag" type="mrf:AirdragType"/> + <xs:element name="Auxiliaries" type="mrf:HEVCompletedBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-CompletedBusVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:PEV-CompletedBusVehicleOutputTypeGroup"/> + <xs:element name="ADAS" type="mrf:PEVADASType"/> + <xs:element name="Components"> + <xs:complexType> + <xs:sequence> + <xs:element name="AirDrag" type="mrf:AirdragType"/> + <xs:element name="Auxiliaries" type="mrf:PEVCompletedBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Exempted-LorryVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"> + <xs:annotation> + <xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"/> + <xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType"> + <xs:annotation> + <xs:documentation>1.1.10. Zero emission heavy-duty vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleTechnologyExempted"/> + <xs:element name="SumNetPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:PowerUnitType"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Exempted-PrimaryBusVehicleOutputType"> + <xs:sequence> + <xs:group ref="mrf:ExemptedPrimaryBusGeneralVehicleOutputGroup"/> + <xs:element name="VehicleTechnologyExempted" type="xs:string"/> + <xs:element name="SumNetPower"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="out:PowerUnitType"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Exempted-CompletedBusVehicleOutputType"> + <xs:sequence> + <xs:sequence> + <xs:element name="Manufacturers"> + <xs:complexType> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Step"> + <xs:complexType> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:attribute name="Count" type="xs:int"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:sequence> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"/> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="ClassBus" type="v2.4:RegisteredClassType"/> + <xs:element name="NumberPassengersUpperDeck" type="xs:int"/> + <xs:element name="NumberPassengersLowerDeck" type="xs:int"/> + <xs:element name="BodyworkCode" type="v2.4:VehicleCodeType"/> + <xs:element name="LowEntry" type="xs:boolean"/> + </xs:sequence> + </xs:sequence> + </xs:sequence> + </xs:complexType> + <!--Components--> + <xs:complexType name="ConventionalLorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:ConventionalLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPC-LorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S2-LorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S3-LorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S4-LorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S-LorryComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E2-LorryComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E3-LorryComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E4-LorryComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-IEPC-LorryComponentsType"> + <xs:sequence> + <xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/> + <xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Conventional-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:Conventional_HEV_Px_PrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Px_IHPC-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:Conventional_HEV_Px_PrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S2-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S3-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-S4-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-IEPC-S-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="mrf:EngineOutputType"/> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E2-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Transmission" type="mrf:TransmissionType"/> + <xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E3-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-E4-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEV-IEPC-PrimaryBusComponentsType"> + <xs:sequence> + <xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/> + <xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/> + <xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/> + <xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/> + <xs:element name="AxleWheels" type="mrf:AxleWheelsType"/> + <xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/> + </xs:sequence> + </xs:complexType> + <!--ElectricMachine, IEPC, REESS--> + <xs:complexType name="ElectricMachineSystemType"> + <xs:sequence> + <xs:group ref="mrf:ElectricMachineGroup"/> + <xs:group ref="mrf:ElectricMachinePowerGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="xEV-IEPC-Type"> + <xs:sequence> + <xs:group ref="mrf:IEPCGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="xEV-ElectricMachinesType"> + <xs:sequence> + <xs:element name="ElectricMachine" type="mrf:ElectricMachineType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AbstractREESSType" abstract="true"/> + <xs:complexType name="REESSSpecificationsType"> + <xs:sequence> + <xs:choice> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="Battery" type="mrf:BatteryType"/> + </xs:sequence> + <xs:sequence> + <xs:element name="Capacitor" type="mrf:CapacitorType"/> + </xs:sequence> + </xs:choice> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CapacitorType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractREESSType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="Capacitance" type="v2.3:CapacitanceType"/> + <xs:element name="MinVoltage" type="v2.3:CapacitorVoltageType"/> + <xs:element name="MaxVoltage" type="v2.3:CapacitorVoltageType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="BatteryType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractREESSType"> + <xs:sequence> + <xs:group ref="mrf:REESSGroup"/> + </xs:sequence> + <xs:attribute name="stringId" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:group name="REESSGroup"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="NominalVoltage" type="xs:int"/> + <xs:element name="TotalStorageCapacity"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="TotalUsableCapacityInSimulation"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="CertificationMethod" type="xs:string"/> + </xs:sequence> + </xs:group> + <!--Auxiliaries--> + <xs:complexType name="ConventionalLorryAuxOutputType"> + <xs:sequence> + <xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyLorryType"/> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/> + <xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEVLorryAuxOutputType"> + <xs:sequence> + <xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyLorryType"/> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/> + <xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEVLorryAuxOutputType"> + <xs:sequence> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/> + <xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Conventional_HEV_Px_PrimaryBusAuxOutputType"> + <xs:sequence> + <xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyPrimaryBusType"/> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/> + <xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_Conventional_HEV"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_Conventional_HEV_P"/> + <xs:element name="HVACSystem" type="mrf:HVACSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEVPrimaryBusAuxOutputType"> + <xs:sequence> + <xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyPrimaryBusType"/> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/> + <xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_Conventional_HEV"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_HEV_S"/> + <xs:element name="HVACSystem"> + <xs:complexType> + <xs:group ref="mrf:PrimaryBusHVACGroup"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEVPrimaryBusAuxOutputType"> + <xs:sequence> + <xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/> + <xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_PEV"/> + <xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_PEV_IEPC"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ConventionalCompletedBusAuxOutputType"> + <xs:sequence> + <xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/> + <xs:element name="HVACSystem" type="mrf:ConventionalCompletedBusHVACSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEVCompletedBusAuxOutputType"> + <xs:sequence> + <xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/> + <xs:element name="HVACSystem" type="mrf:xEV_CompletedBusHVACSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEVCompletedBusAuxOutputType"> + <xs:sequence> + <xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/> + <xs:element name="HVACSystem" type="mrf:xEV_CompletedBusHVACSystemType"/> + </xs:sequence> + </xs:complexType> + <xs:group name="CompletedBusElectricSystemGroup"> + <xs:sequence> + <xs:element name="DayRunningLightsLED" type="xs:boolean"/> + <xs:element name="HeadLightsLED" type="xs:boolean"/> + <xs:element name="PositionLightsLED" type="xs:boolean"/> + <xs:element name="BrakeLightsLED" type="xs:boolean"/> + <xs:element name="InteriorLightsLED" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="CompletedBus_xEVHVACGroup"> + <xs:sequence> + <xs:element name="WaterElectricHeater" type="xs:boolean"/> + <xs:element name="AirElectricHeater" type="xs:boolean"/> + <xs:element name="OtherHeatingTechnology" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="CompletedBus_HVACSystemGroup"> + <xs:sequence> + <xs:group ref="mrf:BusAuxHVACHeatPumpSequenceGroup"/> + <xs:element name="DoubleGlazing" type="xs:boolean"/> + <xs:element name="AdjustableAuxiliaryHeater" type="xs:boolean"/> + <xs:element name="SeparateAirDistributionDucts" type="xs:boolean"/> + <xs:element name="AuxiliaryHeaterPower" type="xs:int"/> + </xs:sequence> + </xs:group> + <xs:group name="PrimaryBusHVACGroup"> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"/> + <xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:complexType name="ConventionalADASType"> + <xs:sequence> + <xs:group ref="mrf:ConventionalADASGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEVADASType"> + <xs:sequence> + <xs:group ref="mrf:HEVADASGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PEVADASType"> + <xs:sequence> + <xs:group ref="mrf:PEVADASGroup"/> + </xs:sequence> + </xs:complexType> + <!--ADAS--> + <xs:group name="ConventionalADASGroup"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"/> + <xs:element name="EcoRollWithoutEngineStopStart" type="xs:boolean"/> + <xs:element name="EcoRollWithEngineStopStart" type="xs:boolean"/> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="HEVADASGroup"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"/> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:group name="PEVADASGroup"> + <xs:sequence> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <!--ElectricMachine_IEPC--> + <xs:group name="ElectricMachineGroup"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="ElectricMachineType" type="xs:string"/> + <xs:element name="CertificationMethod" type="xs:string"/> + </xs:sequence> + </xs:group> + <xs:group name="ElectricMachinePowerGroup"> + <xs:sequence> + <xs:element name="RatedPower" type="mrf:RatedPowerType"/> + <xs:element name="VoltageLevels"> + <xs:complexType> + <xs:sequence> + <xs:element name="VoltageLevel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="MaxContinuousPower" type="mrf:RatedPowerType"/> + </xs:sequence> + <xs:attribute name="voltage"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="IEPCGroup"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:group ref="mrf:ElectricMachinePowerGroup"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="LowestTotalTransmissionRatio" type="v1.0:Double3"/> + <xs:element name="DifferentialIncluded" type="xs:boolean"/> + <xs:element name="DesignTypeWheelMotor" type="xs:boolean"/> + <xs:element name="CertificationMethod" type="xs:string"/> + </xs:sequence> + </xs:group> + <!--Axles--> + <xs:complexType name="AxleGearType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType"/> + <xs:element name="AxleType" type="v1.0:AxlegearLineTypeType"/> + <xs:element name="Ratio" type="v1.0:AxlegearRatioType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TyresOutputType"> + <xs:sequence> + <xs:element name="TwinTyres" type="xs:boolean" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:group name="TyreGroup"> + <xs:sequence> + <xs:element name="TyreDimension" type="v2.3:TyreDimensionType"/> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"/> + <xs:element name="SpecificRRC" type="v1.0:TyreRRCISOType"/> + <xs:element name="DigestValue" type="xs:token"/> + </xs:sequence> + </xs:group> + <xs:complexType name="AxleWheelsType"> + <xs:sequence> + <xs:element name="Axle" type="mrf:AxleType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxlesType"> + <xs:sequence> + <xs:element name="Axle" type="mrf:AxleType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxleType"> + <xs:sequence> + <xs:element name="TwinTyres" type="xs:boolean" minOccurs="0"/> + <xs:element name="Tyre" type="mrf:TyreType"/> + </xs:sequence> + <xs:attribute name="axleNumber" type="xs:int" use="required"/> + </xs:complexType> + <xs:complexType name="AirdragType"> + <xs:sequence> + <xs:element name="Model" type="v1.0:ModelType"/> + <xs:element name="CertificationMethod"/> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"/> + <xs:element name="CdxA" type="v1.0:AirdragCdxAType"/> + <xs:element name="DigestValue" type="xs:token"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AngledriveType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType"/> + <xs:element name="AngledriveRatio" type="v1.0:AngledriveRatioType"/> + </xs:sequence> + </xs:complexType> + <xs:group name="PrimaryBusGeneralVehicleOutputGroup"> + <xs:sequence> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:sequence> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="ExemptedPrimaryBusGeneralVehicleOutputGroup"> + <xs:sequence> + <xs:group ref="mrf:ManufacturerGroup"/> + <xs:group ref="mrf:GeneralVehicleOutputGroup"/> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + </xs:sequence> + </xs:group> + <xs:complexType name="TorqueConverterType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="CertificationMethod" type="xs:string"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="RetarderType"> + <xs:sequence> + <xs:element name="RetarderType" type="xs:string"/> + <xs:group ref="mrf:ComponentCommonOutputGroup" minOccurs="0"/> + <xs:element name="CertificationMethod" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TransmissionType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="CertificationMethod" type="xs:string"/> + <xs:element name="Type" type="v2.3:GearboxTransmissionTypeType"/> + <xs:element name="NrOfGears" type="xs:int"/> + <xs:element name="FinalGearRatio" type="v1.0:GearboxGearRatioType"/> + <xs:element name="PowerTakeOff" type="xs:boolean" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EngineTorqueLimitsType"> + <xs:sequence> + <xs:element name="EngineTorqueLimit" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:int"> + <xs:attribute name="Gear" type="xs:int" use="required"/> + <xs:attribute name="unit" type="mrf:PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EngineOutputType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="RatedPower" type="v1.0:EngineRatedPower"/> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/> + <xs:element name="RatedSpeed" type="v1.0:EngineDeclaredSpeedType"/> + <xs:element name="Capacity" type="mrf:EngineCapacityType"/> + <xs:element name="FuelTypes"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelType" type="v1.0:FuelTypeType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="WasteHeatRecoverySystem" type="xs:boolean"/> + <xs:element name="WasteHeatRecoverySystemType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:group name="ComponentCommonOutputGroup"> + <xs:sequence> + <xs:element name="Model" type="v1.0:ModelType"/> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"/> + <xs:element name="DigestValue" type="xs:token" minOccurs="0"/> + </xs:sequence> + </xs:group> + <xs:complexType name="EngineCapacityType"> + <xs:simpleContent> + <xs:extension base="xs:double"/> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="AlternatorTechnologyType"/> + <xs:simpleType name="PowerType"> + <xs:restriction base="xs:double"/> + </xs:simpleType> + <xs:simpleType name="StorageCapacityType"> + <xs:restriction base="xs:double"/> + </xs:simpleType> + <xs:group name="Conventional-LorryVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/> + <xs:element name="DualFuelVehicle" type="v1.0:DualFuelType"> + <xs:annotation> + <xs:documentation>1.1.12. Dual-fuel vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"> + <xs:annotation> + <xs:documentation>1.1.13 Sleeper cab</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType" minOccurs="0"/> + <xs:element name="ADAS" type="mrf:ConventionalADASType"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV-LorryVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/> + <xs:group ref="mrf:HEV-LorryVehicleOutputTypeSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="PEV-LorryVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/> + <xs:element name="SleeperCab" type="v1.0:SleeperCabType"> + <xs:annotation> + <xs:documentation>1.1.13 Sleeper cab</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="mrf:PEVVehicleSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="Conventional-PrimaryBus-VehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/> + <xs:element name="DualFuelVehicle" type="xs:boolean"/> + <xs:element name="ADAS" type="mrf:ConventionalADASType"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV-PrimaryBus-VehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/> + <xs:element name="DualFuelVehicle" type="xs:boolean"/> + <xs:group ref="mrf:HEVVehicleSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="PEV-PrimaryBus-VehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/> + <xs:group ref="mrf:PEVVehicleSequenceGroup"/> + </xs:sequence> + </xs:group> + <xs:group name="Conventional-CompletedBusVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/> + <xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/> + <xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/> + <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/> + </xs:sequence> + </xs:group> + <xs:group name="HEV-CompletedBusVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/> + <xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/> + <xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/> + <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/> + </xs:sequence> + </xs:group> + <xs:group name="PEV-CompletedBusVehicleOutputTypeGroup"> + <xs:sequence> + <xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/> + <xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/> + <xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/> + </xs:sequence> + </xs:group> + <xs:complexType name="TyreType"> + <xs:sequence> + <xs:group ref="mrf:TyreGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PrimaryBusElectricSystemType_Conventional_HEV"> + <xs:sequence> + <xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnologyType"/> + <xs:element name="MaxAlternatorPower" type="mrf:PowerType" minOccurs="0"/> + <xs:element name="ElectricStorageCapacity" type="mrf:StorageCapacityType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PrimaryBusElectricSystemType_PEV"> + <xs:sequence> + <xs:element name="ElectricStorageCapacity" type="mrf:StorageCapacityType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PneumaticSystemType_PrimaryBus_Conventional_HEV_P"> + <xs:sequence> + <xs:element name="Technology" type="xs:string"/> + <xs:element name="CompressorRatio" type="v1.0:Double3"/> + <xs:element name="SmartCompressionSystem" type="xs:boolean"/> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + <xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/> + <xs:element name="ReagentDosing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PneumaticSystemType_PrimaryBus_HEV_S"> + <xs:sequence> + <xs:element name="Technology" type="xs:string"/> + <xs:element name="CompressorRatio" type="v1.0:Double3"/> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + <xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/> + <xs:element name="ReagentDosing" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PneumaticSystemType_PrimaryBus_PEV_IEPC"> + <xs:sequence> + <xs:element name="Technology" type="xs:string"/> + <!-- <xs:element name="CompressorRatio" type="v1.0:Double3"/> --> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"/> + <xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HVACSystemType"> + <xs:group ref="mrf:PrimaryBusHVACGroup"/> + </xs:complexType> + <xs:complexType name="LorryElectricSystemType"> + <xs:sequence> + <xs:element name="LEDHeadLights" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="PneumaticSystemType_1"> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxPSTechnologyLorryType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CompletedBusElectricSystemType"> + <xs:group ref="mrf:CompletedBusElectricSystemGroup"/> + </xs:complexType> + <xs:complexType name="ConventionalCompletedBusHVACSystemType"> + <xs:sequence> + <xs:group ref="mrf:CompletedBus_HVACSystemGroup"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="xEV_CompletedBusHVACSystemType"> + <xs:sequence> + <xs:group ref="mrf:CompletedBus_HVACSystemGroup"/> + <xs:group ref="mrf:CompletedBus_xEVHVACGroup"/> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="AirsuspensionControlType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="mechanic"/> + <xs:enumeration value="electric"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="RatedPowerType"> + <xs:restriction base="xs:int"/> + </xs:simpleType> + <xs:simpleType name="LegislativeCategoryType"> + <xs:union memberTypes="v2.4:LegislativeCategoryHeavyLorryDeclarationType v2.4:LegislativeCategoryMediumLorryDeclarationType v2.4:LegislativeCategoryPrimaryBusDeclarationType"/> + </xs:simpleType> + <xs:complexType name="ADCType"> + <xs:sequence> + <xs:group ref="mrf:ComponentCommonOutputGroup"/> + <xs:element name="CertificationMethod" type="xs:string"/> + <xs:element name="Ratio" type="v1.0:AngledriveRatioType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ElectricMachineType"> + <xs:sequence> + <xs:sequence> + <!--xs:element name="CoupledAxleNumber" type="xs:int"/--> + <xs:element name="Position" type="v2.4:PowertrainPositionType"/> + <xs:element name="CountAtPosition" type="xs:int"/> + </xs:sequence> + <xs:element name="ElectricMachineSystem" type="mrf:ElectricMachineSystemType"/> + <xs:element name="ADC" type="mrf:ADCType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:group name="BusAuxHVACHeatPumpSequenceGroup"> + <xs:sequence> + <xs:element name="SystemConfiguration"> + <xs:annotation> + <xs:documentation>P317 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HeatPumpTypeDriverCompartment"> + <xs:complexType> + <xs:sequence> + <xs:element name="Cooling" type="v2.4:HeatPumpTypeDriverCompartmentType"> + <xs:annotation> + <xs:documentation>P318 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Heating" type="v2.4:HeatPumpTypeDriverCompartmentType"> + <xs:annotation> + <xs:documentation>P319 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HeatPumpTypePassengerCompartment"> + <xs:complexType> + <xs:sequence> + <xs:element name="Cooling" type="v2.4:HeatPumpTypePassengerCompartmentType"> + <xs:annotation> + <xs:documentation>P320 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Heating" type="v2.4:HeatPumpTypePassengerCompartmentType"> + <xs:annotation> + <xs:documentation>P321 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:simpleType name="ExemptedTechnologyType"> + <xs:annotation> + <xs:documentation>P332 - enum</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="HEV Article 9 exempted"/> + <xs:enumeration value="PEV Article 9 exempted"/> + <xs:enumeration value="HV Article 9 exempted"/> + <xs:enumeration value="Fuel cell vehicle"/> + <xs:enumeration value="H2 ICE"/> + <xs:enumeration value="Dual fuel vehicle Article 9 exempted"/> + <xs:enumeration value="In-motion charging Article 9 exempted"/> + <xs:enumeration value="Other technology Article 9 exempted"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="SteeringPumpOutput"> + <xs:union memberTypes="v2.4:AuxSPTechnologyLorryType v2.4:AuxSPTechnology_HEV-S_LorryType v2.4:AuxSPTechnology_PEV_LorryType"/> + </xs:simpleType> + <!--Results--> + <xs:element name="VectoMockResults"> + <xs:annotation> + <xs:documentation>This element is just for developing the XML Schema of the different types of results - can be removed later on</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Results" type="mrf:ResultsType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="ResultsType"> + <xs:sequence> + <xs:element name="Status"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Result" type="mrf:AbstractResultType" maxOccurs="unbounded"/> + </xs:sequence> + <xs:element name="ExemptedVehicle"> + <xs:complexType/> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AbstractResultType" abstract="true"> + <xs:attribute name="status" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ResultSuccessOVCHEVType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractResultType"> + <xs:sequence> + <xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/> + <xs:element name="OVCMode" minOccurs="2" maxOccurs="2"> + <xs:complexType> + <xs:sequence> + <xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceType"/> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType" minOccurs="0"/> + <xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="charge depleting"/> + <xs:enumeration value="charge sustaining"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceOCVTotalType"/> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType"/> + <xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="mrf:ElectricRangeSequenceGroup"/> + <xs:element name="UtilityFactor" type="xs:double"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessPEVType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractResultType"> + <xs:sequence> + <xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="VehiclePerformance" type="mrf:VehiclePerformancePEVType"/> + <xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType"/> + <xs:sequence minOccurs="0"> + <xs:element name="FC_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2_ZEV_AuxHeater"> + <xs:complexType> + <xs:sequence> + <xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:group ref="mrf:ElectricRangeSequenceGroup"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessConventionalType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractResultType"> + <xs:sequence> + <xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/> + <xs:element name="Total"> + <xs:complexType> + <xs:sequence> + <xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceType"/> + <xs:element name="Fuel" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultSuccessNonOCVHEVType"> + <xs:complexContent> + <xs:extension base="mrf:ResultSuccessConventionalType"/> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ResultErrorType"> + <xs:complexContent> + <xs:extension base="mrf:AbstractResultType"> + <xs:sequence> + <xs:element name="Mission" type="mrf:MissionTypeType"> + <xs:annotation> + <xs:documentation>I.2.1.1 / #56</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SimulationParameters" type="mrf:SimulationParametersType"/> + <xs:element name="VehicleGroup" type="xs:string"/> + <xs:element name="Error" type="xs:string"/> + <xs:element name="ErrorDetails" type="xs:string"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="SimulationParametersType"> + <xs:sequence> + <xs:element name="TotalVehicleMass"> + <xs:annotation> + <xs:documentation>I.2.1.4 / #59</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Payload"> + <xs:annotation> + <xs:documentation>I.2.1.2 / #57</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="PassengerCount" type="xs:double" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="CO2UnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="DistanceUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="EnergyConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kWh/km"/> + <xs:enumeration value="kWh/t-km"/> + <xs:enumeration value="kWh/m³-km"/> + <xs:enumeration value="kWh/p-km"/> + <xs:enumeration value="MJ/km"/> + <xs:enumeration value="MJ/t-km"/> + <xs:enumeration value="MJ/m³-km"/> + <xs:enumeration value="MJ/p-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="FuelConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + <xs:enumeration value="l/100km"/> + <xs:enumeration value="l/t-km"/> + <xs:enumeration value="l/p-km"/> + <xs:enumeration value="l/m³-km"/> + <xs:enumeration value="MJ/km"/> + <xs:enumeration value="MJ/t-km"/> + <xs:enumeration value="MJ/m³-km"/> + <xs:enumeration value="MJ/p-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MassUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="kg"/> + <xs:enumeration value="t"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="PercentType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="%"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="PowerUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kW"/> + <xs:enumeration value="W"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="EnergyUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="kWh"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="SpeedUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km/h"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="AccelerationUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="m/s²"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="AngularVelocityUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="rpm"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MissionTypeType"> + <xs:restriction base="xs:token"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="VehiclePerformanceType"> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageDrivingSpeed"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MinSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.2 / #61</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.3 / #62</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxDeceleration"> + <xs:annotation> + <xs:documentation>I.2.2.4 / #63</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxAcceleration"> + <xs:annotation> + <xs:documentation>I.2.2.5 / #64</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FullLoadDrivingtimePercentage"> + <xs:annotation> + <xs:documentation>I.2.2.6 / #65</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="GearshiftCount" type="xs:int"> + <xs:annotation> + <xs:documentation>I.2.2.7 / #66</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EngineSpeedDriving" type="mrf:EngineSpeedDrivingType"/> + <xs:element name="AverageGearboxEfficiency" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageAxlegearEfficiency" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="VehiclePerformancePEVType"> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageDrivingSpeed"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MinSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.2 / #61</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.3 / #62</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxDeceleration"> + <xs:annotation> + <xs:documentation>I.2.2.4 / #63</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxAcceleration"> + <xs:annotation> + <xs:documentation>I.2.2.5 / #64</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FullLoadDrivingtimePercentage"> + <xs:annotation> + <xs:documentation>I.2.2.6 / #65</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="GearshiftCount" type="xs:int"> + <xs:annotation> + <xs:documentation>I.2.2.7 / #66</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AverageGearboxEfficiency" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageAxlegearEfficiency" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="VehiclePerformanceOCVTotalType"> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageDrivingSpeed"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="FuelConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:FuelConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="CO2Type"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:CO2UnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="EngineSpeedDrivingType"> + <xs:sequence> + <xs:element name="Min"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Average"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Max"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:group name="ResultSuccessSimulationParametersGroup"> + <xs:sequence> + <xs:element name="Mission" type="mrf:MissionTypeType"/> + <xs:element name="Distance"> + <xs:annotation> + <xs:documentation>I.2.2.8 / #67</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="SimulationParameters" type="mrf:SimulationParametersType"/> + <xs:element name="PrimaryVehicleSubgroup" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:group> + <xs:complexType name="EnergyConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:EnergyConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="FuelType"/> + <xs:complexType name="ElectricEnergyType"> + <xs:sequence> + <xs:element name="EnergyConsumption" type="mrf:EnergyConsumptionType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:group name="ElectricRangeSequenceGroup"> + <xs:sequence> + <xs:element name="ActualChargeDepletingRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="EquivalentAllElectricRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroCO2EmissionsRange"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> +</xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd index be5f35c199845233d0656aa3c6cbfffe0ba0ba83..3113d85b0fc963438773259e8b7e93436e3ecf2b 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput" xmlns:mrf0.5="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:mrf0.6="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" xmlns:mrf0.7="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" xmlns:mrf0.8="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:DEV:v0.9.1" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput" xmlns:mrf0.5="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:mrf0.6="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" xmlns:mrf0.7="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" xmlns:mrf0.8="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:DEV:v0.9.1" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <!-- This is a convienience file that imports the schema for all supported versions of manufacturer records file and all supported declaration definitions @@ -12,6 +12,7 @@ <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" schemaLocation="VectoOutputManufacturer.0.7.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" schemaLocation="VectoOutputManufacturer.0.7.1.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8" schemaLocation="VectoOutputManufacturer.0.8.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" schemaLocation="VectoOutputManufacturer.0.9.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> <xs:element name="VectoOutput" type="mrf:VectoOutputManufacturerType"> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd index eb4db2f62008514f6e38d572078374c2f89a8148..7a631f1390c359da7dbe2d7676e78fe24df67455 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" -xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> @@ -9,28 +8,243 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/> + <xs:complexType name="ElectricMachineSystemMaxTorqueEntryType"> + <xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required"> + <xs:annotation> + <xs:documentation>P468 - [rpm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxTorque" type="v2.3:maxTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P469 - [Nm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="minTorque" type="v2.3:minTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P470 - [Nm]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemPowerMapEntryType"> + <xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required"> + <xs:annotation> + <xs:documentation>P473 - [rpm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="torque" type="v2.3:PowerMapTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P474 - [Nm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="electricPower" type="v2.3:PowerMapElectricPowerType" use="required"> + <xs:annotation> + <xs:documentation>P475 - [W]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:element name="VectoMockResults"> + <xs:complexType> + <xs:sequence> + <xs:element name="Results" type="vif:ResultsPrimaryVehicleType"/> + </xs:sequence> + </xs:complexType> + </xs:element> <xs:element name="VectoOutputMultistep" type="vif:VectoOutputMultistepType"> <xs:annotation> <xs:documentation>Comment describing your root element</xs:documentation> </xs:annotation> </xs:element> - <xs:complexType name="AbstractAngledriveDataPIFType" abstract="true"/> - <xs:complexType name="AbstractAuxiliaryDataPIFType" abstract="true"/> - <xs:complexType name="AbstractAxlegearDataPIFType" abstract="true"/> - <xs:complexType name="AbstractAxleWheelsComponentPIFType" abstract="true"/> - <xs:complexType name="AbstractAxleWheelsDataPIFType" abstract="true"/> - <xs:complexType name="AbstractEngineDataPIFType" abstract="true"/> + <xs:complexType name="Abstract_AUX_HEV-P_PrimaryBusDeclarationType" abstract="true"/> + <xs:complexType name="Abstract_AUX_HEV-S_PrimaryBusDeclarationType" abstract="true"/> + <xs:complexType name="Abstract_AUX_IEPC_PrimaryBusDeclarationType" abstract="true"/> + <xs:complexType name="Abstract_AUX_PEV_PrimaryBusDeclarationType" abstract="true"/> + <xs:group name="BusAuxElectricSystemSupplySequenceGroup"> + <xs:sequence> + <xs:element name="SmartAlternator" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="RatedCurrent"> + <xs:annotation> + <xs:documentation>P295 - [A]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="RatedVoltage"> + <xs:annotation> + <xs:documentation>P296 - [V]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:enumeration value="12"/> + <xs:enumeration value="24"/> + <xs:enumeration value="48"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Battery" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="BatteryTechnology"> + <xs:annotation> + <xs:documentation>P296 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="lead-acid battery – conventional"/> + <xs:enumeration value="lead-acid battery – AGM"/> + <xs:enumeration value="lead-acid battery – gel"/> + <xs:enumeration value="li-ion battery - high power"/> + <xs:enumeration value="li-ion battery - high energy"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="RatedCapacity" type="xs:integer"> + <xs:annotation> + <xs:documentation>P299 - [Ah]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NominalVoltage"> + <xs:annotation> + <xs:documentation>P298 - [V]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:enumeration value="12"/> + <xs:enumeration value="24"/> + <xs:enumeration value="48"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Capacitor" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="CapacitorTechnology"> + <xs:annotation> + <xs:documentation>P300 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="with DCDC converter"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="RatedCapacitance"> + <xs:annotation> + <xs:documentation>P301 - [F]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="RatedVoltage"> + <xs:annotation> + <xs:documentation>P302 - [V]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:complexType name="AbstractADCDataDeclarationType" abstract="true"/> + <xs:complexType name="AbstractAngledriveDataVIFType" abstract="true"/> + <xs:complexType name="AbstractAuxiliaryDataVIFType" abstract="true"/> + <xs:complexType name="AbstractAxlegearDataVIFType" abstract="true"/> + <xs:complexType name="AbstractAxleWheelsComponentVIFType" abstract="true"/> + <xs:complexType name="AbstractAxleWheelsDataVIFType" abstract="true"/> + <xs:complexType name="AbstractBatterySystemDataType" abstract="true"> + <xs:complexContent> + <xs:extension base="vif:AbstractREESSDataType"/> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AbstractCapacitorSystemDataType" abstract="true"/> + <xs:complexType name="AbstractElectricMachineSystemDataType" abstract="true"/> + <xs:complexType name="AbstractElectricMachineSystemVoltageLevelType" abstract="true"/> + <xs:complexType name="AbstractEngineDataVIFType" abstract="true"/> + <xs:complexType name="AbstractIEPCGearsDeclarationType" abstract="true"/> <xs:complexType name="AbstractManufacturingStepDataType" abstract="true"> <xs:attribute name="id" type="xs:NCName" use="required"/> </xs:complexType> <xs:complexType name="AbstractPrimaryVehicleType" abstract="true"/> - <xs:complexType name="AbstractTorqueConverterDataPIFType" abstract="true"/> - <xs:complexType name="AbstractTransmissionDataPIFType" abstract="true"/> - <xs:complexType name="AbstractTransmissionGearsPIFType" abstract="true"/> - <xs:complexType name="AbstractVehicleComponentsPIFType" abstract="true"/> - <xs:complexType name="AngledriveDataPIFType"> + <xs:complexType name="AbstractREESSDataType" abstract="true"/> + <xs:complexType name="AbstractTorqueConverterDataVIFType" abstract="true"/> + <xs:complexType name="AbstractTransmissionDataVIFType" abstract="true"/> + <xs:complexType name="AbstractTransmissionGearsVIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsConventionalVIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsHEV_Px_VIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsHEV_Sx_VIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsIEPC_S_VIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsIEPC_VIFType" abstract="true"/> + <xs:complexType name="AbstractVehicleComponentsPEV_Ex_VIFType" abstract="true"/> + <xs:complexType name="AbstractVIFIEPCDataType" abstract="true"/> + <xs:complexType name="ADCComponentDeclarationType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractADCDataDeclarationType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ADCDataDeclarationType"> + <xs:complexContent> + <xs:extension base="vif:AbstractADCDataDeclarationType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P220 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P221 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"> + <xs:annotation> + <xs:documentation>P265 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P223 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P224 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Ratio" type="v1.0:AngledriveRatioType"> + <xs:annotation> + <xs:documentation>P176 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType"> + <xs:annotation> + <xs:documentation>P258 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AngledriveDataVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractAngledriveDataPIFType"> + <xs:extension base="vif:AbstractAngledriveDataVIFType"> <xs:sequence> <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> <xs:annotation> @@ -62,14 +276,53 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn <xs:documentation>P224</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="Ratio"/> + <xs:element name="Ratio" type="xs:double"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="RetarderDataVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractRetarderVIFDataType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P220</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P221</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType"> + <xs:annotation> + <xs:documentation>P258 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P265</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P223</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P224</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RetarderRatio" type="xs:double"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="AngledrivePIFType"> + <xs:complexType name="AngledriveVIFType"> <xs:sequence> - <xs:element name="Data" type="vif:AbstractAngledriveDataPIFType"/> + <xs:element name="Data" type="vif:AbstractAngledriveDataVIFType"/> </xs:sequence> </xs:complexType> <xs:complexType name="ApplicationInformationPrimaryVehicleType"> @@ -86,14 +339,9 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="AuxiliaryComponentPIFType"> - <xs:sequence> - <xs:element name="Data" type="vif:AbstractAuxiliaryDataPIFType"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="AuxiliaryDataPIFType"> + <xs:complexType name="AUX_Conventional_PrimaryBusType"> <xs:complexContent> - <xs:extension base="vif:AbstractAuxiliaryDataPIFType"> + <xs:extension base="vif:AbstractAuxiliaryDataVIFType"> <xs:sequence> <xs:element name="Fan"> <xs:complexType> @@ -295,66 +543,344 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="AxlegearComponentPIFType"> - <xs:sequence> - <xs:element name="Data" type="vif:AbstractAxlegearDataPIFType"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="AxlegearDataPIFType"> + <xs:complexType name="AUX_HEV-P_PrimaryBusType"> <xs:complexContent> - <xs:extension base="vif:AbstractAxlegearDataPIFType"> + <xs:extension base="vif:Abstract_AUX_HEV-P_PrimaryBusDeclarationType"> <xs:sequence> - <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> - <xs:annotation> - <xs:documentation>P215</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="Model" type="v1.0:ModelType"> - <xs:annotation> - <xs:documentation>P216</xs:documentation> - </xs:annotation> + <xs:element name="Fan"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxFanTechnologyPrimaryBusType"> + <xs:annotation> + <xs:documentation>P181 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> </xs:element> - <xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType"> - <xs:annotation> - <xs:documentation>P256 - [-]</xs:documentation> - </xs:annotation> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" maxOccurs="4"> + <xs:annotation> + <xs:documentation>P182 - enum</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.4:AuxSPTechnologyPrimaryBusType"> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> </xs:element> - <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> - <xs:annotation> - <xs:documentation>P264</xs:documentation> - </xs:annotation> + <xs:element name="ElectricSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnology_HEV_Type"> + <xs:annotation> + <xs:documentation>P294 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:BusAuxElectricSystemSupplySequenceGroup" minOccurs="0"/> + <xs:element name="SupplyFromHEVPossible" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P303 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> </xs:element> - <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> - <xs:annotation> - <xs:documentation>P218</xs:documentation> - </xs:annotation> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:group ref="vif:BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"/> + <xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> + </xs:sequence> + </xs:complexType> </xs:element> - <xs:element name="AppVersion" type="v1.0:AppVersionType"> - <xs:annotation> - <xs:documentation>P219</xs:documentation> - </xs:annotation> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P324 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P326 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> </xs:element> - <xs:element name="LineType"/> - <xs:element name="Ratio"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="AxleWheelsComponentPIFType"> + <xs:complexType name="AUX_HEV-S_PrimaryBusType"> <xs:complexContent> - <xs:extension base="vif:AbstractAxleWheelsComponentPIFType"> + <xs:extension base="vif:Abstract_AUX_HEV-S_PrimaryBusDeclarationType"> <xs:sequence> - <xs:element name="Data" type="vif:AbstractAxleWheelsDataPIFType"/> + <xs:element name="Fan"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" type="v2.4:AuxFanTechnologyPrimaryBusType"> + <xs:annotation> + <xs:documentation>P181 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" maxOccurs="4"> + <xs:annotation> + <xs:documentation>P182 - enum</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.4:AuxSPTechnology_HEV-S_PrimaryBusType"> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ElectricSystem"> + <xs:complexType> + <xs:sequence> + <xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnology_HEV-S_Type"> + <xs:annotation> + <xs:documentation>P294 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SupplyFromHEVPossible" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P303 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:group ref="vif:BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"/> + <xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P324 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P326 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="AxleWheelsDataPIFType"> - <xs:annotation> - <xs:documentation>Axles & Wheels Component</xs:documentation> - </xs:annotation> + <xs:complexType name="AUX_IEPC_PrimaryBusType"> <xs:complexContent> - <xs:extension base="vif:AbstractAxleWheelsDataPIFType"> + <xs:extension base="vif:Abstract_AUX_IEPC_PrimaryBusDeclarationType"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" maxOccurs="4"> + <xs:annotation> + <xs:documentation>P182 - enum</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.4:AuxSPTechnology_PEV_PrimaryBusType"> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:group ref="vif:BusAuxPneumaticSystemGen_IEPC_SequenceGroup"/> + <xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P324 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AUX_PEV_PrimaryBusType"> + <xs:complexContent> + <xs:extension base="vif:Abstract_AUX_PEV_PrimaryBusDeclarationType"> + <xs:sequence> + <xs:element name="SteeringPump"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology" maxOccurs="4"> + <xs:annotation> + <xs:documentation>P182</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.4:AuxSPTechnology_PEV_PrimaryBusType"> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="PneumaticSystem"> + <xs:complexType> + <xs:sequence> + <xs:group ref="vif:BusAuxPneumaticSystemGen_PEV_SequenceGroup"/> + <xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P324 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AuxiliaryComponentVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAuxiliaryDataVIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxlegearComponentVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAxlegearDataVIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxlegearDataVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractAxlegearDataVIFType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P215</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P216</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType"> + <xs:annotation> + <xs:documentation>P256 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P264</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P218</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P219</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LineType"/> + <xs:element name="Ratio"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AxleWheelsComponentVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractAxleWheelsComponentVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAxleWheelsDataVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AxleWheelsDataVIFType"> + <xs:annotation> + <xs:documentation>Axles & Wheels Component</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="vif:AbstractAxleWheelsDataVIFType"> <xs:sequence> <xs:element name="Axles"> <xs:complexType> @@ -367,6 +893,198 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> + <xs:complexType name="BatterySystemCurrentLimitsEntryType"> + <xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required"> + <xs:annotation> + <xs:documentation>P529 - [%]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxChargingCurrent" type="v2.3:BatteryMaxCurrentType" use="required"> + <xs:annotation> + <xs:documentation>P530 - [A]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxDischargingCurrent" type="v2.3:BatteryMaxCurrentType" use="required"> + <xs:annotation> + <xs:documentation>P531 - [A]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="BatterySystemDataType"> + <xs:complexContent> + <xs:extension base="vif:AbstractBatterySystemDataType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <!-- <xs:annotation> + <xs:documentation>P511 - [-]</xs:documentation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">511</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> --> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <!-- <xs:annotation> + <xs:documentation>P512 - [-]</xs:documentation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">512</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> --> + </xs:element> + <xs:element name="CertificationMethod" type="v2.3:CertificationMethodType"> + <xs:annotation> + <xs:documentation>P516 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P513 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">513</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P514 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">514</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P515 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">515</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="BatteryType" type="v2.3:BatteryTypeType"> + <xs:annotation> + <xs:documentation>P517 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedCapacity"> + <xs:annotation> + <xs:documentation>P518 - [Ah]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">518</vectoParam:parameterId> + <vectoParam:unit>Ah</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="v1.0:Double2"> + <xs:minExclusive value="0.00"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="ConnectorsSubsystemsIncluded" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P519 - bool</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">519</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="JunctionboxIncluded" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P520 - bool</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">520</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="TestingTemperature" type="xs:int" minOccurs="0"> + <xs:annotation> + <xs:documentation>P521 - [°C]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="BatterySystem">521</vectoParam:parameterId> + <vectoParam:unit>°C</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="OCV"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:BatterySystemOCVEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="CurrentLimits"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:BatterySystemCurrentLimitsEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="BatterySystemInternalResistanceEntryType"> + <xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required"> + <xs:annotation> + <xs:documentation>P524 - [%]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="R_2" type="v2.3:InternalResistanceType" use="required"> + <xs:annotation> + <xs:documentation>P525 - [mOhm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="R_10" type="v2.3:InternalResistanceType" use="required"> + <xs:annotation> + <xs:documentation>P526 - [mOhm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="R_20" type="v2.3:InternalResistanceType" use="required"> + <xs:annotation> + <xs:documentation>P527 - [mOhm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="R_120" type="v2.3:InternalResistanceType"> + <xs:annotation> + <xs:documentation>P528 - [mOhm]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="BatterySystemOCVEntryType"> + <xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required"> + <xs:annotation> + <xs:documentation>P522 - [%]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="OCV" type="v2.3:BatteryOCVType" use="required"> + <xs:annotation> + <xs:documentation>P523 - [V]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> <xs:complexType name="BusManufacturingStepDataType"> <xs:complexContent> <xs:extension base="vif:AbstractManufacturingStepDataType"> @@ -378,21 +1096,513 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="CO2Type"> + <xs:group name="BusAuxPneumaticSystemConsumerSequenceGroup"> + <xs:sequence> + <xs:element name="SmartRegenerationSystem" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P312 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AirsuspensionControl"> + <xs:annotation> + <xs:documentation>P315 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mechanically"/> + <xs:enumeration value="electronically"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P316 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"> + <xs:sequence> + <xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType"> + <xs:annotation> + <xs:documentation>P309 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CompressorDrive"> + <xs:annotation> + <xs:documentation>P310 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mechanically"/> + <xs:enumeration value="electrically"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Clutch" type="v2.4:PneumaticSystemClutchTypeType"> + <xs:annotation> + <xs:documentation>P311 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CompressorRatio"> + <xs:annotation> + <xs:documentation>P314 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minInclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="SmartCompressionSystem" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P313 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="BusAuxPneumaticSystemGen_IEPC_SequenceGroup"> + <xs:sequence> + <xs:element name="CompressorDrive"> + <xs:annotation> + <xs:documentation>P310 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="electrically"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="BusAuxPneumaticSystemGen_PEV_SequenceGroup"> + <xs:sequence> + <xs:element name="CompressorDrive"> + <xs:annotation> + <xs:documentation>P310 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="electrically"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"> + <xs:sequence> + <xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType"> + <xs:annotation> + <xs:documentation>P309 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CompressorDrive"> + <xs:annotation> + <xs:documentation>P310 - enum</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mechanically"/> + <xs:enumeration value="electrically"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Clutch" type="v2.4:PneumaticSystemClutchTypeType"> + <xs:annotation> + <xs:documentation>P311 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CompressorRatio"> + <xs:annotation> + <xs:documentation>P314 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minInclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:complexType name="CapacitorSystemDataType"> + <xs:complexContent> + <xs:extension base="vif:AbstractCapacitorSystemDataType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P532 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">532</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P533 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">533</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v2.3:CertificationMethodType"> + <xs:annotation> + <xs:documentation>P537 - enum</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">537</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P534 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">534</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P535 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">535</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P536 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">536</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Capacitance" type="v2.3:CapacitanceType"> + <xs:annotation> + <xs:documentation>P538 - [F]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">538</vectoParam:parameterId> + <vectoParam:unit>F</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="InternalResistance" type="v2.3:InternalResistanceType"> + <xs:annotation> + <xs:documentation>P539 - [mOhm]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">539</vectoParam:parameterId> + <vectoParam:unit>mOhm</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="MinVoltage" type="v2.3:CapacitorVoltageType"> + <xs:annotation> + <xs:documentation>P540 - [V]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">540</vectoParam:parameterId> + <vectoParam:unit>V</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="MaxVoltage" type="v2.3:CapacitorVoltageType"> + <xs:annotation> + <xs:documentation>P541 - [V]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxChargingCurrent" type="v2.3:CapacitorMaxCurrentType"> + <xs:annotation> + <xs:documentation>P542 - [A]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxDischargingCurrent" type="v2.3:CapacitorMaxCurrentType"> + <xs:annotation> + <xs:documentation>P543 - [A]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TestingTemperature" type="xs:int" minOccurs="0"> + <xs:annotation> + <xs:documentation>P544 - [°C]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="CapacitorSystem">544</vectoParam:parameterId> + <vectoParam:unit>°C</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CO2Type"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="vif:CO2UnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="ConventionalVehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_ConventionalType"/> + <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsConventionalVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ElectricEnergyStorageType"> + <xs:choice> + <xs:element name="Capacitor" type="vif:REESSCapacitorType"/> + <xs:element name="Battery" type="vif:REESSBatteryType" maxOccurs="unbounded"/> + </xs:choice> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemConditioningEntryType"> + <xs:attribute name="coolantTempInlet" type="v2.3:CoolantTempInletType" use="required"> + <xs:annotation> + <xs:documentation>P476 - [°C]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="coolingPower" type="v2.3:CoolingPowerType" use="required"> + <xs:annotation> + <xs:documentation>P477 - [W]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemDragTorqueEntryType"> + <xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required"> + <xs:annotation> + <xs:documentation>P471 - [rpm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="dragTorque" type="v2.3:DragTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P472 - [Nm]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ElectricMachineGENType"> + <xs:sequence> + <xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionGENType"> + <xs:annotation> + <xs:documentation>P403 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Count"> + <xs:annotation> + <xs:documentation>P404 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="ElectricMachineSystem" type="vif:ElectricMachineSystemComponentDeclarationType"/> + <xs:element name="ADC" type="vif:ADCComponentDeclarationType" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemComponentDeclarationType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemMaxTorqueCurveType"> + <xs:sequence> + <xs:element name="Entry" type="vif:ElectricMachineSystemMaxTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemDataDeclarationType"> + <xs:complexContent> + <xs:extension base="vif:AbstractElectricMachineSystemDataType"> + <xs:sequence> + <xs:group ref="vif:ElectricMachineSystemCommonParametersSequenceGroup"/> + <xs:group ref="vif:ElectricMachineSystemPowerRatingsSequenceGroup"/> + <xs:element name="DcDcConverterIncluded" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P465 - bool</xs:documentation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">465</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="IHPCType" type="v2.3:IHPCTypeType"> + <xs:annotation> + <xs:documentation>P466 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VoltageLevel" type="vif:ElectricMachineSystemVoltageLevelType" maxOccurs="unbounded"/> + <xs:element name="DragCurve"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:ElectricMachineSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Conditioning" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:ElectricMachineSystemConditioningEntryType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemVoltageLevelType"> + <xs:complexContent> + <xs:extension base="v2.3:AbstractElectricMachineSystemVoltageLevelType"> + <xs:sequence> + <xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P467 - [V]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ContinuousTorque" type="v2.3:MaxTorqueType"> + <xs:annotation> + <xs:documentation>P459 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TestSpeedContinuousTorque" type="v2.3:TestSpeedType"> + <xs:annotation> + <xs:documentation>P460 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="OverloadTorque" type="v2.3:MaxTorqueType"> + <xs:annotation> + <xs:documentation>P461 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TestSpeedOverloadTorque" type="v2.3:TestSpeedType"> + <xs:annotation> + <xs:documentation>P462 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="OverloadDuration" type="v2.3:OverloadDurationType"> + <xs:annotation> + <xs:documentation>P463 - [s]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxTorqueCurve" type="vif:ElectricMachineSystemMaxTorqueCurveType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ElectricMachineSystemType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ElectricMachineType"> + <xs:sequence> + <xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionDriveType"> + <xs:annotation> + <xs:documentation>P403 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Count"> + <xs:annotation> + <xs:documentation>P404 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="ElectricMachineSystem" type="vif:ElectricMachineSystemComponentDeclarationType"/> + <xs:element name="ADC" type="vif:ADCComponentDeclarationType" minOccurs="0"/> + <xs:element name="P2.5GearRatios" minOccurs="0"> + <xs:annotation> + <xs:documentation>P407 - [-]</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Ratio" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v1.0:Double3"> + <xs:attribute name="gear" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EnergyConsumptionType"> <xs:simpleContent> <xs:extension base="xs:double"> - <xs:attribute name="unit" type="vif:CO2UnitType" use="required"/> + <xs:attribute name="unit" type="vif:EnergyConsumptionUnitType" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> - <xs:complexType name="EngineComponentPIFType"> + <xs:complexType name="EngineComponentVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractEngineDataVIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="WHRTypeType"> <xs:sequence> - <xs:element name="Data" type="vif:AbstractEngineDataPIFType"/> + <xs:element name="MechanicalOutputICE" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P335 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MechanicalOutputDrivetrain" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P336 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ElectricalOutput" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P337 - bool</xs:documentation> + </xs:annotation> + </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="EngineDataPIFType"> + <xs:complexType name="EngineDataVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractEngineDataPIFType"> + <xs:extension base="vif:AbstractEngineDataVIFType"> <xs:sequence> <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> <xs:annotation> @@ -439,7 +1649,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn <xs:documentation>P259 - [Nm]</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="WHRType" type="v2.3:WHRTypeType"/> + <xs:element name="WHRType" type="vif:WHRTypeType"/> <xs:element name="Mode" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> @@ -465,12 +1675,330 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="FuelConsumptionType"> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="vif:EnergyConsumptionUnitType" use="required"/> + <xs:complexType name="HEV-IEPC-S_VehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P198 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-IEPC-S_Type"> + <xs:annotation> + <xs:documentation>P400 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsIEPC_S_VIFType"/> + </xs:sequence> </xs:extension> - </xs:simpleContent> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-P_PrimaryAuxiliariesVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:Abstract_AUX_HEV-P_PrimaryBusDeclarationType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Px_VehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P198 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-Px_Type"> + <xs:annotation> + <xs:documentation>P400 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> + <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> + <xs:element name="BoostingLimitations" type="v2.4:AbstractBoostingLimitationsDeclarationType" minOccurs="0"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsHEV_Px_VIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HEV-S_PrimaryAuxiliariesVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:Abstract_AUX_HEV-S_PrimaryBusDeclarationType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="HEV-Sx_VehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P198 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-Sx_Type"> + <xs:annotation> + <xs:documentation>P400 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsHEV_Sx_VIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="IEPC_PrimaryAuxiliairesVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:Abstract_AUX_IEPC_PrimaryBusDeclarationType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="IEPC_VehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ArchitectureID" type="v2.4:ArchitectureID_IEPC_Type"> + <xs:annotation> + <xs:documentation>P400 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsIEPC_VIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="IEPCGearDeclarationType"> + <xs:sequence> + <xs:element name="Ratio" type="v1.0:GearboxGearRatioType"> + <xs:annotation> + <xs:documentation>P497 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxOutShaftTorque" minOccurs="0"> + <xs:annotation> + <xs:documentation>P498 - [Nm]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="MaxOutShaftSpeed" minOccurs="0"> + <xs:annotation> + <xs:documentation>P499 - [1/min]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + <xs:attribute name="number" type="v1.0:GearboxGearNumberType" use="required"> + <xs:annotation> + <xs:documentation>P496 - [-]</xs:documentation> + <xs:appinfo> + </xs:appinfo> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="IEPCGearsDeclarationType"> + <xs:complexContent> + <xs:extension base="vif:AbstractIEPCGearsDeclarationType"> + <xs:sequence> + <xs:element name="Gear" type="vif:IEPCGearDeclarationType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="IEPCDataDeclarationType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVIFIEPCDataType"> + <xs:sequence> + <xs:group ref="vif:IEPCCommonParametersSequenceGroup"/> + <xs:element name="CertificationMethod" type="v2.3:IEPCCertificationMethodType"> + <xs:annotation> + <xs:documentation>P484 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:IEPCPowerRatingsSequenceGroup"/> + <xs:element name="DifferentialIncluded" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P493 - bool</xs:documentation> + <!-- <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="IEPC">493</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> --> + </xs:annotation> + </xs:element> + <xs:element name="DesignTypeWheelMotor" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P494 - bool</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">494</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="NrOfDesignTypeWheelMotorMeasured" type="v2.3:NrOfDesignTypeWheelMotorMeasuredType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P495 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Gears" type="vif:AbstractIEPCGearsDeclarationType"/> + <xs:element name="VoltageLevel" type="vif:IEPCSystemVoltageLevelType" maxOccurs="unbounded"/> + <xs:element name="DragCurve" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:IEPCSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="gear" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="Conditioning" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="vif:IEPCSystemConditioningEntryType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="IEPCSystemConditioningEntryType"> + <xs:attribute name="coolantTempInlet" type="v2.3:CoolantTempInletType" use="required"> + <xs:annotation> + <xs:documentation>P509 - [°C]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="coolingPower" type="v2.3:CoolingPowerType" use="required"> + <xs:annotation> + <xs:documentation>P510 - [W]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="IEPCSystemDragTorqueEntryType"> + <xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required"> + <xs:annotation> + <xs:documentation>P504 - [rpm]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="dragTorque" type="v2.3:DragTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P505 - [Nm]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="IEPCSystemVoltageLevelType"> + <xs:complexContent> + <xs:extension base="vif:AbstractElectricMachineSystemVoltageLevelType"> + <xs:sequence> + <xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P500 - [V]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ContinuousTorque" type="v2.3:MaxTorqueType"> + <xs:annotation> + <xs:documentation>P487 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TestSpeedContinuousTorque" type="v2.3:TestSpeedType"> + <xs:annotation> + <xs:documentation>P488 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="OverloadTorque" type="v2.3:MaxTorqueType"> + <xs:annotation> + <xs:documentation>P489 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TestSpeedOverloadTorque" type="v2.3:TestSpeedType"> + <xs:annotation> + <xs:documentation>P490 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="OverloadDuration" type="v2.3:OverloadDurationType"> + <xs:annotation> + <xs:documentation>P491 - [s]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxTorqueCurve" type="v2.3:ElectricMachineSystemMaxTorqueCurveType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="IEPCType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractVIFIEPCDataType"/> + </xs:sequence> </xs:complexType> <xs:complexType name="ManufacturingStepType"> <xs:sequence> @@ -485,6 +2013,57 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:simpleType> </xs:attribute> </xs:complexType> + <xs:complexType name="TorqueConverterCharacteristicsEntryType"> + <xs:attribute name="speedRatio" type="v1.0:TorqueConverterSpeedRatioType" use="required"> + <xs:annotation> + <xs:documentation>P099 - [-]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="torqueRatio" type="v1.0:TorqueConverterTorqueRatioType" use="required"> + <xs:annotation> + <xs:documentation>P100 - [-]</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="inputTorqueRef" type="v1.0:TorqueConverterInputTorqueRefType" use="required"> + <xs:annotation> + <xs:documentation>P101 - [-]</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="PEV_Ex_VehicleVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractPrimaryVehicleType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> + <xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/> + <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> + <xs:annotation> + <xs:documentation>P180 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ArchitectureID" type="v2.4:ArchitectureID_PEV_Type"> + <xs:annotation> + <xs:documentation>P400 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/> + <xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/> + <xs:element name="Components" type="vif:AbstractVehicleComponentsPEV_Ex_VIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PEV_PrimaryAuxiliairesVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:Abstract_AUX_PEV_PrimaryBusDeclarationType"/> + </xs:sequence> + </xs:complexType> <xs:complexType name="PrimaryVehicleDataType"> <xs:complexContent> <xs:extension base="out:AbstractPrimaryVehicleDataPIFType"> @@ -499,15 +2078,65 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="PrimaryVehicleType"> + <xs:complexType name="PrimaryVehicleType"> + <xs:sequence> + <xs:element name="Data" type="vif:PrimaryVehicleDataType"/> + <xs:element name="Signature" type="v1.0:SignatureType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="REESSBatteryType"> + <xs:sequence> + <xs:element name="StringID"> + <xs:annotation> + <xs:documentation>P411 - [-]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="REESS"> + <xs:complexType> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractBatterySystemDataType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="SOCmin"> + <xs:annotation> + <xs:documentation>P413 - [%]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="SOCmax"> + <xs:annotation> + <xs:documentation>P414 - [%]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:complexType> + <xs:complexType name="REESSCapacitorType"> <xs:sequence> - <xs:element name="Data" type="vif:PrimaryVehicleDataType"/> - <xs:element name="Signature" type="v1.0:SignatureType"/> + <xs:element name="Data" type="vif:AbstractCapacitorSystemDataType"/> </xs:sequence> </xs:complexType> <xs:complexType name="ResultPrimaryVehicleType"> <xs:sequence> - <xs:element name="VehicleGroup"> + <xs:element name="PrimaryVehicleSubgroup"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> @@ -521,25 +2150,15 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:element> <xs:element name="SimulationParameters" type="vif:SimulationParametersType"/> <xs:choice> - <xs:sequence> - <xs:element name="Fuel" maxOccurs="unbounded"> - <xs:complexType> - <xs:sequence> - <xs:element name="EnergyConsumption" type="vif:FuelConsumptionType" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - <xs:attribute name="type" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="CO2" type="vif:CO2Type" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> + <xs:group ref="vif:ResultPrimaryVehicleGroup"/> + <xs:element name="OVCMode" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:group ref="vif:ResultPrimaryVehicleGroup"/> + </xs:sequence> + <xs:attribute name="type" use="required"/> + </xs:complexType> + </xs:element> <xs:sequence> <xs:element name="Error" type="xs:string"/> <xs:element name="ErrorDetails" type="xs:string"/> @@ -592,7 +2211,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="FuelMode"> + <xs:element name="FuelMode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="dual fuel mode"/> @@ -602,9 +2221,9 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="TorqueConverterDataPIFType"> + <xs:complexType name="TorqueConverterDataVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractTorqueConverterDataPIFType"> + <xs:extension base="vif:AbstractTorqueConverterDataVIFType"> <xs:sequence> <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> <xs:annotation> @@ -639,7 +2258,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn <xs:element name="Characteristics" minOccurs="0"> <xs:complexType> <xs:sequence> - <xs:element name="Entry" type="v1.0:TorqueConverterCharacteristicsEntryType" minOccurs="2" maxOccurs="unbounded"/> + <xs:element name="Entry" type="vif:TorqueConverterCharacteristicsEntryType" minOccurs="2" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> @@ -647,19 +2266,19 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="TorqueConverterPIFType"> + <xs:complexType name="TorqueConverterVIFType"> <xs:sequence> - <xs:element name="Data" type="vif:AbstractTorqueConverterDataPIFType"/> + <xs:element name="Data" type="vif:AbstractTorqueConverterDataVIFType"/> </xs:sequence> </xs:complexType> - <xs:complexType name="TransmissionComponentPIFType"> + <xs:complexType name="TransmissionComponentVIFType"> <xs:sequence> - <xs:element name="Data" type="vif:AbstractTransmissionDataPIFType"/> + <xs:element name="Data" type="vif:AbstractTransmissionDataVIFType"/> </xs:sequence> </xs:complexType> - <xs:complexType name="TransmissionDataPIFType"> + <xs:complexType name="TransmissionDataVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractTransmissionDataPIFType"> + <xs:extension base="vif:AbstractTransmissionDataVIFType"> <xs:sequence> <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> <xs:annotation> @@ -692,12 +2311,21 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:annotation> </xs:element> <xs:element name="TransmissionType"/> - <xs:element name="Gears" type="vif:AbstractTransmissionGearsPIFType"/> + <xs:element name="Gears" type="vif:AbstractTransmissionGearsVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="TransmissionGearsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractTransmissionGearsVIFType"> + <xs:sequence> + <xs:element name="Gear" type="vif:TransmissionGearVIFType" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="TransmissionGearPIFType"> + <xs:complexType name="TransmissionGearVIFType"> <xs:sequence> <xs:element name="Ratio"/> <xs:element name="MaxTorque" type="v1.0:GearboxGearMaxTorqueType" minOccurs="0"> @@ -713,94 +2341,164 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:sequence> <xs:attribute name="number" use="required"/> </xs:complexType> - <xs:complexType name="TransmissionGearsPIFType"> + <xs:complexType name="VectoOutputMultistepType"> + <xs:sequence> + <xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/> + <xs:element name="ManufacturingStep" type="vif:ManufacturingStepType" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="Vehicle_Conventional_ComponentsVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractTransmissionGearsPIFType"> + <xs:extension base="vif:AbstractVehicleComponentsConventionalVIFType"> <xs:sequence> - <xs:element name="Gear" type="vif:TransmissionGearPIFType" maxOccurs="unbounded"/> + <xs:element name="Engine" type="vif:EngineComponentVIFType"/> + <xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/> + <xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/> + <xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:AuxiliaryComponentVIFType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="VectoOutputMultistepType"> - <xs:sequence> - <xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/> - <xs:element name="ManufacturingStep" type="vif:ManufacturingStepType" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> + <xs:complexType name="Vehicle_HEV-IEPC-S_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsIEPC_S_VIFType"> + <xs:sequence> + <xs:element name="Engine" type="vif:EngineComponentVIFType"/> + <xs:element name="ElectricMachineGEN" type="vif:ElectricMachineGENType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="IEPC" type="vif:IEPCType"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType" minOccurs="0"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_HEV-Px_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsHEV_Px_VIFType"> + <xs:sequence> + <xs:element name="Engine" type="vif:EngineComponentVIFType"/> + <xs:element name="ElectricMachine" type="vif:ElectricMachineType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/> + <xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/> + <xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:HEV-P_PrimaryAuxiliariesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_HEV-S2_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/> + <xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/> + <xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/> + <xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_HEV-S3_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_HEV-S4_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType"> + <xs:sequence> + <xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_PEV-E2_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType"> + <xs:sequence> + <xs:element name="ElectricMachine" type="vif:ElectricMachineType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/> + <xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/> + <xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_PEV-E3_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType"> + <xs:sequence> + <xs:element name="ElectricMachine" type="vif:ElectricMachineType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="Vehicle_PEV-E4_ComponentsVIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType"> + <xs:sequence> + <xs:element name="ElectricMachine" type="vif:ElectricMachineType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> </xs:complexType> - <xs:complexType name="VehicleComponentsPIFType"> + <xs:complexType name="Vehicle_PEV-IEPC_ComponentsVIFType"> <xs:complexContent> - <xs:extension base="vif:AbstractVehicleComponentsPIFType"> + <xs:extension base="vif:AbstractVehicleComponentsIEPC_VIFType"> <xs:sequence> - <xs:element name="Engine" type="vif:EngineComponentPIFType"/> - <xs:element name="Transmission" type="vif:TransmissionComponentPIFType"/> - <xs:element name="TorqueConverter" type="vif:TorqueConverterPIFType" minOccurs="0"/> - <xs:element name="Angledrive" type="vif:AngledrivePIFType" minOccurs="0"/> - <xs:element name="Axlegear" type="vif:AxlegearComponentPIFType"/> - <xs:element name="AxleWheels" type="vif:AxleWheelsComponentPIFType"/> - <xs:element name="Auxiliaries" type="vif:AuxiliaryComponentPIFType"/> + <xs:element name="IEPC" type="vif:IEPCType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/> + <xs:element name="Axlegear" type="vif:AxlegearComponentVIFType" minOccurs="0"/> + <xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/> + <xs:element name="Auxiliaries" type="vif:IEPC_PrimaryAuxiliairesVIFType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="VehicleExemptedPrimaryBusType"> + <xs:complexType name="Exempted_VehicleVIFType"> <xs:complexContent> <xs:extension base="vif:AbstractPrimaryVehicleType"> <xs:sequence> - <xs:element name="ManufacturerPrimaryVehicle" type="v1.0:ManufacturerType"> - <xs:annotation> - <xs:documentation>P235 / I.1.1.1 / #14</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="ManufacturerAddressPrimaryVehicle" type="v1.0:ManufacturerAddressType"> - <xs:annotation> - <xs:documentation>P252 / I.1.1.1 / #14</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="Model" type="v1.0:ModelType"> - <xs:annotation> - <xs:documentation>P236 / I.1.1.2</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="VIN" type="v1.0:VINType"> - <xs:annotation> - <xs:documentation>P238 / I.1.1.3 / #1</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="Date" type="v1.0:DateTimeWithTimezone"/> - <xs:element name="LegislativeCategory"> - <xs:annotation> - <xs:documentation>P251 / I.1.1.4 / #10</xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:minLength value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationPrimaryBusDeclarationType"> - <xs:annotation> - <xs:documentation>P036 - enum</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationPrimaryBusLorryDeclarationType"> - <xs:annotation> - <xs:documentation>P037 - enum</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="Articulated" type="xs:boolean"/> - <xs:element name="TechnicalPermissibleMaximumLadenMass"> - <xs:annotation> - <xs:documentation>P041 / I.1.1.6 / #12</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="out:MassUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> + <xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/> <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> <xs:annotation> <xs:documentation>P269 / I.1.1.10</xs:documentation> @@ -839,44 +2537,6 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="VehiclePIFType"> - <xs:complexContent> - <xs:extension base="vif:AbstractPrimaryVehicleType"> - <xs:sequence> - <xs:element name="ManufacturerPrimaryVehicle" type="v1.0:ManufacturerType"/> - <xs:element name="ManufacturerAddressPrimaryVehicle" type="v1.0:ManufacturerAddressType"/> - <xs:element name="Model" type="v1.0:ModelType"/> - <xs:element name="VIN" type="v1.0:VINType"/> - <xs:element name="Date" type="v1.0:DateTimeWithTimezone"/> - <xs:element name="LegislativeCategory" type="xs:string"> - <xs:annotation> - <xs:documentation>P251 - [-]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationPrimaryBusDeclarationType"/> - <xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationPrimaryBusLorryDeclarationType"/> - <xs:element name="Articulated" type="xs:boolean"/> - <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType"/> - <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/> - <xs:element name="RetarderType" type="v1.0:RetarderTypeType"/> - <xs:element name="RetarderRatio" type="v1.0:RetarderRatioType" minOccurs="0"> - <xs:annotation> - <xs:documentation>P053 - [-]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="AngledriveType" type="v1.0:AngledriveTypeType"> - <xs:annotation> - <xs:documentation>P180 - enum</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> - <xs:element name="ADAS" type="v2.1:AbstractAdvancedDriverAssistantSystemsType"/> - <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> - <xs:element name="Components" type="vif:AbstractVehicleComponentsPIFType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> <xs:simpleType name="CO2UnitType"> <xs:restriction base="xs:string"> <xs:enumeration value="g/km"/> @@ -912,4 +2572,323 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn <xs:enumeration value="Coach"/> </xs:restriction> </xs:simpleType> + <xs:group name="ElectricMachineSystemCommonParametersSequenceGroup"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P450 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">450</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P451 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">451</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v2.3:CertificationMethodType"> + <xs:annotation> + <xs:documentation>P456 - enum</xs:documentation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">456</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P452 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">452</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P453 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">453</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P454 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">454</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="ElectricMachineType" type="v2.3:ElectricMachineTypeType"> + <xs:annotation> + <xs:documentation>P455 - enum</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="ElectricMachine">455</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="ElectricMachineSystemPowerRatingsSequenceGroup"> + <xs:sequence> + <xs:element name="R85RatedPower" type="v2.3:R85RatedPowerType"> + <xs:annotation> + <xs:documentation>P457 - [W]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RotationalInertia" type="v2.3:RotationalInertiaType"> + <xs:annotation> + <xs:documentation>P458 - [kgm²]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="IEPCCommonParametersSequenceGroup"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P478 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">478</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P479 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">479</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"> + <xs:annotation> + <xs:documentation>P480 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">480</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P481 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">481</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P482 - [-]</xs:documentation> + <xs:appinfo> + <!-- <vectoParam:description> + <vectoParam:parameterId component="IEPC">482</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> --> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="ElectricMachineType" type="v2.3:ElectricMachineTypeType"> + <xs:annotation> + <xs:documentation>P483 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="IEPCPowerRatingsSequenceGroup"> + <xs:sequence> + <xs:element name="R85RatedPower" type="v2.3:R85RatedPowerType"> + <xs:annotation> + <xs:documentation>P485 - [W]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RotationalInertia" type="v2.3:RotationalInertiaType"> + <xs:annotation> + <xs:documentation>P486 [ kgm2]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"> + <xs:sequence> + <xs:element name="Engine" type="vif:EngineComponentVIFType"/> + <xs:element name="ElectricMachineGEN" type="vif:ElectricMachineGENType"/> + <xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/> + <xs:element name="ElectricMachine" type="vif:ElectricMachineType"/> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"> + <xs:sequence> + <xs:sequence> + <xs:element name="RetarderType" type="v2.4:RetarderTypeType"> + <xs:annotation> + <xs:documentation>P052 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RetarderRatio" type="v1.0:RetarderRatioType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P053 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"> + <xs:sequence> + <xs:sequence> + <xs:element name="OvcHev" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P401 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxChargingPower" minOccurs="0"> + <xs:annotation> + <xs:documentation>P402 - [W]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_PrimaryBusChassisBusParameters"> + <xs:sequence> + <xs:sequence> + <xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryPrimaryBusDeclarationType"> + <xs:annotation> + <xs:documentation>P251 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationPrimaryBusDeclarationType"> + <xs:annotation> + <xs:documentation>P036 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationPrimaryBusLorryDeclarationType"> + <xs:annotation> + <xs:documentation>P037 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Articulated" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P281 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType"> + <xs:annotation> + <xs:documentation>P041 - [kg]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_PrimaryBusGeneralParametersSequence"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P235 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"> + <xs:annotation> + <xs:documentation>P252 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P236 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VIN" type="v1.0:VINType"> + <xs:annotation> + <xs:documentation>P238 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P239 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="Vehicle_PrimaryBusParametersSequenceGroup"> + <xs:sequence> + <xs:group ref="vif:Vehicle_PrimaryBusGeneralParametersSequence"/> + <xs:group ref="vif:Vehicle_PrimaryBusChassisBusParameters"/> + </xs:sequence> + </xs:group> + <!--Components--> + <!--VehicleVIFType--> + <xs:group name="ResultPrimaryVehicleGroup"> + <xs:sequence> + <xs:element name="Fuel" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="EnergyConsumption" type="vif:EnergyConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ElectricEnergyConsumption" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="EnergyConsumption" type="vif:EnergyConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:complexType name="RetarderVIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractRetarderVIFDataType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AbstractRetarderVIFDataType"/> </xs:schema> diff --git a/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs new file mode 100644 index 0000000000000000000000000000000000000000..99621d556772365707cd8d5ea8616d85c36763f4 --- /dev/null +++ b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Ninject.Extensions.Factory; +using Ninject.Extensions.Factory.Factory; +using Ninject.Parameters; +using TUGraz.VectoCommon.Exceptions; + +namespace TUGraz.VectoCore.Utils.Ninject +{ + internal class CombineArgumentsToNameInstanceProvider : StandardInstanceProvider + { + + public delegate string CombineToName(params object[] arguments); + + private CombineToName _combinationDelegate = null; + private readonly int _skipArgumentsNr; + private readonly int _numberOfArguments; + + private HashSet<MethodInfo> _methodInfos = new HashSet<MethodInfo>(); + /// <summary> + /// Constructor for CombineArgumentsToNameInstanceProvider + /// </summary> + /// <param name="combinationDelegate">this delegate is to combine numberOfArguments arguments to a name</param> + /// <param name="numberOfArguments">the number of arguments that are used to create the name</param> + /// <param name="methods">the name is only resolved with the combinationDelegate if one of these methods was called, otherwise the standard instance provider is used</param> + /// <param name="skipArgumentsNr">defines the number of arguments that are skipped and not passed to the constructor</param> + public CombineArgumentsToNameInstanceProvider(CombineToName combinationDelegate, int numberOfArguments, int skipArgumentsNr, params MethodInfo[] methods) + { + _numberOfArguments = numberOfArguments; + _skipArgumentsNr = skipArgumentsNr; + _combinationDelegate = combinationDelegate; + + if (methods != null) { + foreach (var method in methods) { + _methodInfos.Add(method); + } + } + } + + #region Overrides of StandardInstanceProvider + + public override object GetInstance(IInstanceResolver instanceResolver, MethodInfo methodInfo, object[] arguments) + { + try + { + return base.GetInstance(instanceResolver, methodInfo, arguments); + } + catch (Exception e) + { + throw new VectoException("failed to create instance for '{1}' via '{0}' version '{2}'", e, methodInfo.Name, methodInfo.ReturnType.Name, arguments[0]); + //throw e; + } + } + + protected override string GetName(MethodInfo methodInfo, object[] arguments) + { + if (!_methodInfos.Contains(methodInfo)) { + return base.GetName(methodInfo, arguments); + } + + return _combinationDelegate.Invoke(arguments.Take(_numberOfArguments).ToArray()); + + } + + protected override IConstructorArgument[] GetConstructorArguments(MethodInfo methodInfo, object[] arguments) + { + if (!_methodInfos.Contains(methodInfo)) { + return base.GetConstructorArguments(methodInfo, arguments); + } + return base.GetConstructorArguments(methodInfo, arguments).Skip(_skipArgumentsNr).ToArray(); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs index 573e7a847b7dc44f9b8c1a930723abe3630f87eb..c774e82a75e96ed03a93d36f9d74ca81f17a560d 100644 --- a/VectoCore/VectoCore/Utils/XMLHelper.cs +++ b/VectoCore/VectoCore/Utils/XMLHelper.cs @@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.Utils .Replace(versionPrefix, string.Empty); } - public static object[] ValueAsUnit(Kilogram mass, string unit, uint? decimals = 0) + public static object[] ValueAsUnit(this Kilogram mass, string unit, uint? decimals = 0) { switch (unit) { case "t": return GetValueAsUnit(mass.ConvertToTon(), unit, decimals); @@ -87,7 +87,7 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(Watt power, string unit, uint? decimals = 0) + public static object[] ValueAsUnit(this Watt power, string unit, uint? decimals = 0) { switch (unit) { case "kW": return GetValueAsUnit(power?.ConvertToKiloWatt(), unit, decimals); @@ -97,7 +97,32 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(CubicMeter volume, string unit, uint? decimals = 0) + public static object[] ValueAsUnit(this WattSecond energy, string unit, uint? decimals = 0) + { + switch (unit) { + case "kWh": + return GetValueAsUnit(energy?.ConvertToKiloWattHour(), unit, decimals); + case "Wh": + return GetValueAsUnit(energy?.ConvertToWattHour(), unit, decimals); + } + + throw new NotImplementedException($"unknown unit '{unit}'"); + } + + public static object[] ValueAsUnit(this AmpereSecond capacity, string unit, uint? decimals = 0) + { + switch (unit) + { + case "As": return GetValueAsUnit(capacity.Value(), unit, decimals); + case "Ah": return GetValueAsUnit(capacity?.AsAmpHour, unit, decimals); + } + + throw new NotImplementedException($"unknown unit '{unit}'"); + } + + + + public static object[] ValueAsUnit(this CubicMeter volume, string unit, uint? decimals = 0) { switch (unit) { case "ltr": return GetValueAsUnit(volume.ConvertToCubicDeziMeter(), unit, decimals); @@ -108,7 +133,7 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(PerSecond angSpeed, string unit, uint? decimals = 0) + public static object[] ValueAsUnit(this PerSecond angSpeed, string unit, uint? decimals = 0) { switch (unit) { case "rpm": return GetValueAsUnit(angSpeed.ConvertToRoundsPerMinute(), unit, decimals); @@ -118,7 +143,7 @@ namespace TUGraz.VectoCore.Utils } - public static object[] ValueAsUnit(MeterPerSecond speed, string unit, uint? decimals) + public static object[] ValueAsUnit(this MeterPerSecond speed, string unit, uint? decimals) { switch (unit) { case "km/h": return GetValueAsUnit(speed.ConvertToKiloMeterPerHour(), unit, decimals); @@ -127,7 +152,7 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(MeterPerSquareSecond acc, string unit, uint? decimals) + public static object[] ValueAsUnit(this MeterPerSquareSecond acc, string unit, uint? decimals) { switch (unit) { case "m/s²": return GetValueAsUnit(acc.Value(), unit, decimals); @@ -136,7 +161,7 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(Meter m, string unit, uint? decimals) + public static object[] ValueAsUnit(this Meter m, string unit, uint? decimals) { switch (unit) { case "m": return GetValueAsUnit(m.Value(), unit, decimals); @@ -146,7 +171,7 @@ namespace TUGraz.VectoCore.Utils throw new NotImplementedException($"unknown unit '{unit}'"); } - public static object[] ValueAsUnit(double value, string unit, uint? decimals) + public static object[] ValueAsUnit(this double value, string unit, uint? decimals) { switch (unit) { case "%": return GetValueAsUnit(value * 100, unit, decimals); @@ -154,7 +179,7 @@ namespace TUGraz.VectoCore.Utils } } - private static object[] GetValueAsUnit(double? value, string unit, uint? decimals) + private static object[] GetValueAsUnit(this double? value, string unit, uint? decimals) { if (value == null) { return new object[0]; @@ -329,5 +354,30 @@ namespace TUGraz.VectoCore.Utils xElement.AddIfContentNotNull(element); } } + + public static XElement WithXName(this XElement xElement, XName xName) + { + xElement.Name = xName; + return xElement; + } + + public static XElement GetApplicationInfo(XNamespace ns) + { + var versionNumber = VectoSimulationCore.VersionNumber; +#if CERTIFICATION_RELEASE + // add nothing to version number +#else + versionNumber += " !!NOT FOR CERTIFICATION!!"; +#endif + return new XElement(ns + XMLNames.Report_ApplicationInfo_ApplicationInformation, + new XElement(ns + XMLNames.Report_ApplicationInfo_SimulationToolVersion, versionNumber), + new XElement(ns + XMLNames.Report_ApplicationInfo_Date, + XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc))); + } + + public static string GetGUID() + { + return Guid.NewGuid().ToString("n").Substring(0, 20); + } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index b12fffd2d0d04bfce81c117c2bb58f13e9c90136..03aa0b455d9a33f2519fa07baf44f77e3370af97 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -4,19 +4,69 @@ <AssemblyName>VectoCore</AssemblyName> <TargetFrameworks>net45;net48;net6.0</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> </PropertyGroup> - <ItemGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')"> + <DefineConstants>$(DefineConstants);MOCKUP</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'"> + <DebugType>none</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net48|AnyCPU'"> + <DebugType>none</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'"> + <DebugType>none</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net45|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net48|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net6.0|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + + <Choose> + <When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
 $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))"> + <ItemGroup> + <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute"> + <_Parameter1>VectoMockup</_Parameter1> + </AssemblyAttribute> + </ItemGroup> + <!--<PropertyGroup> + <DefineConstants>MOCKUP</DefineConstants> + </PropertyGroup>--> + </When> + </Choose> + + <ItemGroup> <None Remove="Resources\Declaration\Buses\DefaultActuationsMap.apac" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_1-Cylinder_1-Stage_393ccm.acmp" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_1-Stage_650ccm.acmp" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_2-Stage_398ccm.acmp" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_3-Cylinder_2-Stage_598ccm.acmp" /> + <None Remove="Resources\MockupCIFResults.xml" /> + <None Remove="Resources\MockupMRFResults.xml" /> <None Remove="Resources\XSD\VectoDeclarationDefinitions.2.2.1.xsd" /> <None Remove="Resources\XSD\VectoOutputPrimaryBus.xsd" /> </ItemGroup> <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> + <PackageReference Include="Ninject" Version="3.3.6" /> + <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" /> <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" /> <PackageReference Include="NLog" Version="4.7.13" /> <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" /> diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs index 3030e51b634808bc89fdf9acfa013ee96fcab7a9..89d4ec1ba88ee917619b4da93016e88f5f48ba8b 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs @@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //var jobContainer = new JobContainer(sumContainer); - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); Assert.IsTrue(runs.Count == 8 || runs.Count == 12); var relatedRuns = SetRelatedVehicleParts(runs); @@ -1039,7 +1039,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus // Validate = false //}; - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); return runs; } @@ -1195,14 +1195,14 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); //var inputData = new MockCompletedBusInputData(modified); - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer, validate: false); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null), writer, validate: false); factory.WriteModalResults = true; //var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer) { // WriteModalResults = true, // Validate = false //}; - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); var run = runs[runIdx]; Assert.NotNull(run.VehicleData.PassengerCount); @@ -1239,7 +1239,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus // //ActualModalData = true, // Validate = false //}; - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); var run = runs[runIdx]; Assert.NotNull(run.VehicleData.PassengerCount); diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs index 44c69ecd1e1226ebca538b29c2824194e6f45ab3..23ae50dff9a49887968ceecd4551e61bd024ebf4 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus factory.Validate = false; AssertHelper.Exception<VectoException>(() => { - var runs = factory.DataReader.NextRun().ToList();}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); + var runs = factory.RunDataFactory.NextRun().ToList();}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); } [ @@ -119,11 +119,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus factory.Validate = false; //AssertHelper.Exception<VectoException>(() => { - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); //}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); } - private IMultistageBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts) + private IMultistepBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts) { var vifDataProvider = _xmlInputReader.Create(XmlReader.Create(vifPrimary)); //var completeDataProvider = _xmlInputReader.CreateDeclaration(comple); @@ -132,7 +132,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus completedXML.Load(completedJob); var hvacCfgNode = completedXML.SelectSingleNode("//*[local-name()='SystemConfiguration']"); - hvacCfgNode.InnerText = hvacConfig.GetXmlFormat(); + hvacCfgNode.InnerText = hvacConfig.ToXmlFormat(); var airDuctsNode = completedXML.SelectSingleNode("//*[local-name()='SeparateAirDistributionDucts']"); airDuctsNode.InnerText = XmlConvert.ToString(separateDucts); @@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var completeDataProvider = _xmlInputReader.CreateDeclaration(modified); - var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); + var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); var filename = Guid.NewGuid().ToString().Substring(0, 20); var writer = new FileOutputVIFWriter(filename, 0); @@ -157,13 +157,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var completedVif = _xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(completedVifXML.OuterXml))); File.Delete(writer.XMLMultistageReportFileName); - return completedVif as IMultistageBusInputDataProvider; + return completedVif as IMultistepBusInputDataProvider; } } - public class MockCompletedBusInputData : IInputDataProvider, IMultistageBusInputDataProvider + public class MockCompletedBusInputData : IInputDataProvider, IMultistepBusInputDataProvider { - private IMultistageBusInputDataProvider input; + private IMultistepBusInputDataProvider input; public MockCompletedBusInputData(XmlReader vif) { @@ -171,7 +171,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var _xmlInputReader = kernel.Get<IXMLInputDataReader>(); - input = _xmlInputReader.CreateDeclaration(vif) as IMultistageBusInputDataProvider; + input = _xmlInputReader.CreateDeclaration(vif) as IMultistepBusInputDataProvider; //JobName = Vehicle.VIN; } diff --git a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..e37d8eca9c25ba37303324666e5b3e79cc14640d --- /dev/null +++ b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs @@ -0,0 +1,192 @@ +//using System; +//using System.Collections.Generic; +//using System.IO; +//using System.Linq; +//using System.Runtime.CompilerServices; +//using System.Text; +//using System.Threading.Tasks; +//using System.Xml.Linq; +//using Microsoft.VisualStudio.TestPlatform.Utilities; +//using Ninject; +//using NUnit.Framework; +//using TUGraz.VectoCommon.Models; +//using TUGraz.VectoCommon.OutputData; +//using TUGraz.VectoCore.InputData.FileIO.XML; +//using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; +//using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; +//using TUGraz.VectoCore.InputData.Reader; +//using TUGraz.VectoCore.Models.Simulation; +//using TUGraz.VectoCore.Models.Simulation.Impl; +//using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; +//using TUGraz.VectoCore.OutputData; +//using TUGraz.VectoCore.OutputData.FileIO; +//using TUGraz.VectoCore.Tests.XML.Reports; + +//namespace TUGraz.VectoCore.Tests.Integration +//{ + + + +// [TestFixture] +// public class MockUpVectoTest +// { + + + + +// private IKernel _vectoKernel; +// private ISimulatorFactoryFactory _simFactoryFactory; +// private ISimulatorFactory _simulatorFactory; +// private IXMLInputDataReader _inputDataReader; + +// #region TestFiles +// protected const string ConventionalHeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\Conventional_heavyLorry_AMT.xml"; +// protected const string HEV_Px_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px_IHPC.xml"; +// protected const string HEV_S2_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml"; +// protected const string HEV_S3_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3.xml"; +// protected const string HEV_S3_HeavyLorry_ovc = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml"; +// protected const string HEV_S4_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S4.xml"; +// protected const string HEV_IEPC_S_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml"; +// protected const string PEV_E2_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_AMT_E2.xml"; +// protected const string PEV_E3_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E3.xml"; +// protected const string PEV_E4_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E4.xml"; +// protected const string PEV_IEPC_HeavyLorry = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\IEPC_heavyLorry.xml"; + +// protected const string Conventional_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT.xml"; +// protected const string HEV_Px_IHPC_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV_primaryBus_AMT_Px.xml"; +// protected const string HEV_S2_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_AMT_S2.xml"; +// protected const string HEV_S3_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S3.xml"; +// protected const string HEV_S4_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S4.xml"; +// protected const string HEV_IEPC_S_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_IEPC-S.xml"; +// protected const string PEV_E2_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_AMT_E2.xml"; +// protected const string PEV_E3_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E3.xml"; +// protected const string PEV_E4_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E4.xml"; +// protected const string PEV_IEPC_PrimaryBus = +// @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\IEPC_primaryBus.xml"; + + +// protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml"; + +// #endregion + + +// [OneTimeSetUp] +// public void OneTimeSetup() +// { +// _vectoKernel = new StandardKernel( +// new VectoNinjectModule() +// ); +// _vectoKernel.Unload(typeof(VectoRunDataFactoryNinjectModule).FullName); + +// _simFactoryFactory = _vectoKernel.Get<ISimulatorFactoryFactory>(); +// Assert.NotNull(_simFactoryFactory); +// _inputDataReader = _vectoKernel.Get<IXMLInputDataReader>(); +// Assert.NotNull(_inputDataReader); +// } + +// [SetUp] +// public void Setup() +// { +// SimulatorFactory.MockUpRun = true; + +// } + +// public FileOutputWriter GetOutputFileWriter(string subDirectory, string originalFilePath) +// { +// subDirectory = Path.Combine("MockupReports",subDirectory); +// Directory.CreateDirectory(Path.GetFullPath(subDirectory)); +// var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileName(originalFilePath)); +// return new FileOutputWriter(path); +// } + + + + + +// [TestCase(ConventionalHeavyLorry, TestName="ConventionalHeavyLorry")] +// //[TestCase(ConventionalHeavyLorry, false, TestName = "ConventionalHeavyLorryNoMockup")] +// [TestCase(HEV_S2_HeavyLorry, TestName = "HEV_S2_HeavyLorry")] +// [TestCase(HEV_S3_HeavyLorry, TestName = "HEV_S3_HeavyLorry")] +// [TestCase(HEV_S3_HeavyLorry_ovc, TestName="HEV_S3_HeavyLorry_ovc")] +// [TestCase(HEV_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")] +// [TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")] +// [TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")] +// //[TestCase(PEV_E2_HeavyLorry, false, TestName = "PEV_E2_HeavyLorryNoMockup")] +// [TestCase(PEV_E3_HeavyLorry, TestName = "PEV_E3_HeavyLorry")] +// [TestCase(PEV_E4_HeavyLorry, TestName = "PEV_E4_HeavyLorry")] +// [TestCase(PEV_IEPC_HeavyLorry, TestName = "PEV_IEPC_HeavyLorry")] +// [TestCase(HEV_IEPC_S_HeavyLorry, TestName = "HEV_IEPC_S_HeavyLorry")] +// [NonParallelizable] +// public void HeavyLorryMockupTest(string fileName, bool mockup = true) +// { +// SimulatorFactory.MockUpRun = mockup; +// var inputProvider = _inputDataReader.Create(fileName); +// var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); +// var sumWriter = new SummaryDataContainer(fileWriter); +// var jobContainer = new JobContainer(sumWriter); + +// _simulatorFactory = +// _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + +// jobContainer.AddRuns(_simulatorFactory); +// jobContainer.Execute(false); +// jobContainer.WaitFinished(); + +// CheckFileExists(fileWriter); +// Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName)), "MRF invalid"); +// Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName)), "CIF invalid"); +// } + +// [TestCase(Conventional_PrimaryBus, TestName = "ConventionalPrimaryBus")] +// public void PrimaryBusMockupTest(string fileName, bool mockup = true) +// { +// SimulatorFactory.MockUpRun = mockup; +// var inputProvider = _inputDataReader.Create(fileName); +// var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); +// var sumWriter = new SummaryDataContainer(fileWriter); +// var jobContainer = new JobContainer(sumWriter); + +// _simulatorFactory = +// _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + +// jobContainer.AddRuns(_simulatorFactory); +// jobContainer.Execute(false); +// jobContainer.WaitFinished(); +// CheckFileExists(fileWriter); +// } + + +// private static void CheckFileExists(FileOutputWriter fileWriter) +// { +// if (!File.Exists(fileWriter.XMLCustomerReportName)) { +// TestContext.WriteLine(fileWriter.XMLCustomerReportName); +// Assert.Fail(); +// } +// if (!File.Exists(fileWriter.XMLFullReportName)) +// { +// TestContext.WriteLine(fileWriter.XMLFullReportName); +// Assert.Fail(); +// } +// } +// } +//} diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs index 62a554a0c80717e9e8ac822162bf48bf5d754260..82bd16737465fe493eab7b7fe77a50e78dcbb28e 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs @@ -5,11 +5,13 @@ using System.IO; using System.ServiceModel.Syndication; using System.Threading; using System.Threading.Tasks; +using Ninject; using NUnit.Framework; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; @@ -18,6 +20,7 @@ using TUGraz.VectoCore.OutputData.FileIO; namespace TUGraz.VectoCore.Tests.Integration.Multistage { [TestFixture] + [NonParallelizable] public class MultistageMultipleRunsTest { private const string TestDataDir = "TestData\\Integration\\Multistage\\"; @@ -39,18 +42,21 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage private SummaryDataContainer _sumContainer; private JobContainer _jobContainer; - private FileOutputWriter _fileoutputWriter; - private TempFileOutputWriter _tempFileOutputWriter; private ExecutionMode _mode = ExecutionMode.Declaration; private string _outputDirectory; private Stopwatch _stopWatch; + private IKernel _kernel; + private ISimulatorFactoryFactory _simFactoryFactory; + + [OneTimeSetUp] public void OneTimeSetUp() { Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + } [SetUp] @@ -62,6 +68,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage _sumFileWriter = new FileOutputWriter(_outputDirectory); _sumContainer = new SummaryDataContainer(_sumFileWriter); _jobContainer = new JobContainer(_sumContainer); + _kernel = new StandardKernel(new VectoNinjectModule()); + _simFactoryFactory = _kernel.Get<ISimulatorFactoryFactory>(); } [TearDown] @@ -74,45 +82,49 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage [Test]//, Timeout(3000)] public void ExemptedPrimaryAndCompletedTest() { + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(CompletedExempted, tempFileOutputWriter, fileOutputWriter); - StartSimulation(CompletedExempted); - - var writtenFiles = GetWrittenFiles(); + var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } [Test] public void ExemptedPrimaryAndCompletedWithoutTPMLMTest() { - - StartSimulation(CompletedExemptedWithoutTPMLM); + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(CompletedExemptedWithoutTPMLM, tempFileOutputWriter, fileOutputWriter); var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } [Test]//, Timeout(3000)] public void ExemptedPrimaryAndInterimTest() { - StartSimulation(InterimExempted); + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(InterimExempted, tempFileOutputWriter, fileOutputWriter); var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } @@ -129,17 +141,20 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage //SpecialCase II [Test, Timeout(1000 * 20 * 60)] + [NonParallelizable] public void PrimaryAndCompletedTest() { - StartSimulation(CompletedDiesel); + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(CompletedDiesel, tempFileOutputWriter, fileOutputWriter); var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } @@ -147,51 +162,56 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage [Test] public void PrimaryAndCompletedWithoutADASAndTPMLM() { - StartSimulation(CompletedWithoutADAS); + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(CompletedWithoutADAS, tempFileOutputWriter, fileOutputWriter); - var writtenFiles = GetWrittenFiles(); + var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } //SpecialCase I - [Test, Timeout(1000 * 10 * 60)] + [Test]//, Timeout(1000 * 10 * 60)] public void PrimaryAndInterimTest() { - StartSimulation(InterimDiesel); + + var fileOutputWriter = new FileOutputWriter(_outputDirectory); + var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter); + StartSimulation(InterimDiesel, tempFileOutputWriter, fileOutputWriter); var writtenFiles = GetWrittenFiles(); ShowWrittenFiles(writtenFiles); - - Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName)); - Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName)); - Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName)); - Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName)); + Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName)); + Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLFullReportName)); + Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName)); + Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName)); } - private void StartSimulation(string path) + private void StartSimulation(string path, TempFileOutputWriter tempFileOutputWriter, FileOutputWriter fileOutputWriter, bool multithreaded = true) { var inputFile = Path.GetFullPath(path); var input = JSONInputDataFactory.ReadJsonJob(inputFile); - StartSimulation(input); + StartSimulation(input, tempFileOutputWriter, fileOutputWriter, multithreaded:multithreaded); _jobContainer.WaitFinished(); } - private void StartSimulation(IInputDataProvider input) + private void StartSimulation(IInputDataProvider input, TempFileOutputWriter tempFileOutputWriter, FileOutputWriter fileOutputWriter, bool multithreaded = true) { - _fileoutputWriter = new FileOutputWriter(_outputDirectory); - _tempFileOutputWriter = new TempFileOutputWriter(_fileoutputWriter); - var runsFactory = SimulatorFactory.CreateSimulatorFactory(_mode, input, _fileoutputWriter); + + //var runsFactory = SimulatorFactory.CreateSimulatorFactory(_mode, input, _fileoutputWriter); + var runsFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileOutputWriter, null, null, true); runsFactory.WriteModalResults = true; runsFactory.ModalResults1Hz = true; runsFactory.Validate = true; @@ -202,7 +222,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage _jobContainer.AddRuns(runsFactory); - _jobContainer.Execute(); + _jobContainer.Execute(multithreaded); } private void ShowWrittenFiles(IList<string> writtenFiles) diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs index 205d21d0d2055490f61d03b937268fe307c37588..8c410938eba4b08829322af4171ea3afcc2ce4f5 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs @@ -16,6 +16,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; @@ -57,11 +58,12 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage const string PrimaryBusAdasV23 = PrimaryInputDirPath + "vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml"; - protected IXMLInputDataReader xmlInputReader; - protected IXMLInputDataReader xmlVIFInputReader; + protected IXMLInputDataReader _xmlInputReader; + protected IXMLInputDataReader _xmlVIFInputReader; private IKernel _kernel; private string _generatedVIFFilepath; + private ISimulatorFactoryFactory _simFactoryFactory; [OneTimeSetUp] public void RunBeforeAnyTests() @@ -69,28 +71,29 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); _kernel = new StandardKernel(new VectoNinjectModule()); - xmlInputReader = _kernel.Get<IXMLInputDataReader>(); - xmlVIFInputReader = _kernel.Get<IXMLInputDataReader>(); + _xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + _xmlVIFInputReader = _kernel.Get<IXMLInputDataReader>(); + _simFactoryFactory = _kernel.Get<ISimulatorFactoryFactory>(); } [TestCase(VIFInputFile, InputFilePath, 1)] - public void TestSimulationMultistageVehicle(string vifFilename, string inputFilename, int numRuns) + public void TestSimulationMultistageVehicle(string vifFilename, string stepInput, int numRuns) { //Input files - var inputReader = XmlReader.Create(inputFilename); - var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader); - var vehicle = inputDataProvider.JobInputData.Vehicle; + var _stepInputData = _xmlInputReader.CreateDeclaration(stepInput); + var vehicle = _stepInputData.JobInputData.Vehicle; var vifReader = XmlReader.Create(vifFilename); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0; var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); _generatedVIFFilepath = writer.XMLMultistageReportFileName; var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); - + //var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var factory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, writer, null, null, true); var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToList(); @@ -118,11 +121,11 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage { //Input files var inputReader = XmlReader.Create(inputFilename); - var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader); + var inputDataProvider = _xmlInputReader.CreateDeclaration(inputReader); var vehicle = inputDataProvider.JobInputData.Vehicle; var vifReader = XmlReader.Create(vifFilename); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0; var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); @@ -158,7 +161,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage private void TestNewVifData(string filePath) { var vifReader = XmlReader.Create(filePath); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count()); TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]); @@ -326,7 +329,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage TestSimulationMultistageVehicle(VIFInputFileGroup41, InputFilePathGroup41, 1); var vifReader = XmlReader.Create(_generatedVIFFilepath); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null); var writer = new MockDeclarationWriter("vif_vehicle-sample_test.xml"); @@ -352,7 +355,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage TestSimulationMultistageVehicle(VIFExemptedPrimaryBus, ExepmtedCompletedBusInput, 1); var vifReader = XmlReader.Create(_generatedVIFFilepath); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null); var writer = new FileOutputWriter("vif_vehicle-sample_test.xml"); @@ -378,20 +381,20 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage TestCase(PrimaryBus_SmartES, TestName = "Multistage Write VIF Primary SmartES")] public void TestMultistageWritingVif(string primaryFile) { - var inputData = xmlInputReader.Create(primaryFile); + var inputData = _xmlInputReader.Create(primaryFile); var writer = new MockDeclarationWriter("vif_writing_test.xml"); //var xmlreport = new XMLDeclarationReportMultistageBusVehicle(writer); - var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport); + //var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, null, null, true); factory.WriteModalResults = true; //ActualModalData = true, factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); - xmlreport.DoWriteReport(); + //xmlreport.DoWriteReport(); } @@ -399,7 +402,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage TestCase(PrimaryBus_SmartES, "vif_primary_bus_smart_writing_test.xml", TestName = "Multistage Write VIF Primary SmartES With Simulation")] public void TestMultistageWritingVifWithSimulation(string primaryFile, string outputFile) { - var inputData = xmlInputReader.Create(primaryFile); + var inputData = _xmlInputReader.Create(primaryFile); var writer = new MockDeclarationWriter(outputFile); var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); @@ -420,7 +423,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage [TestCase(PrimaryBusAdasV23, "vif_primary_bus_writing_test_adasv2.3.xml", TestName = "Multistage Write VIF Primary With ADAS v 2.3")] public void TestPrimaryWritingVIF(string primaryFile, string outputFile) { - var inputData = xmlInputReader.Create(primaryFile); + var inputData = _xmlInputReader.Create(primaryFile); var writer = new FileOutputWriter(outputFile); @@ -451,7 +454,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage private void ValidateVIFData(string vifFilePath) { var vifReader = XmlReader.Create(vifFilePath); - var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider; var res = vifDataProvider.JobInputData.PrimaryVehicle; TestVehicleData(res.Vehicle); @@ -767,7 +770,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage results.Add(new XElement(tns + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, "success"), - new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, "P31SD"), + new XElement(tns + XMLNames.Report_Results_PrimaryVehicleSubgroup, "P31SD"), new XElement(tns + XMLNames.Report_Result_Mission, "Heavy Urban"), new XElement(tns + XMLNames.Report_ResultEntry_SimulationParameters, diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs index bc38385e9c6de6d1d69e9a11385d6bc8d2054e6b..247126a115887cccbd01724fed6fceb98a74bbac 100644 --- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Tests.Integration var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_865); var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); - var run = factory.DataReader.NextRun().First(); + var run = factory.RunDataFactory.NextRun().First(); var engineData = run.EngineData; @@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.Integration var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_800); var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); - var run = factory.DataReader.NextRun().First(); + var run = factory.RunDataFactory.NextRun().First(); var engineData = run.EngineData; @@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.Tests.Integration var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_910); var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); - var run = factory.DataReader.NextRun().First(); + var run = factory.RunDataFactory.NextRun().First(); var engineData = run.EngineData; @@ -176,7 +176,7 @@ namespace TUGraz.VectoCore.Tests.Integration var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_850); var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); - var run = factory.DataReader.NextRun().First(); + var run = factory.RunDataFactory.NextRun().First(); var engineData = run.EngineData; diff --git a/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs b/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs index 3f8c30de253899158ad604ba717d9144ce16366f..f1de743fc38633081d4d196ffe867f9ee1aa6491 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs @@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration factory.WriteModalResults = true; factory.Validate = false; - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); Assert.IsTrue(runs.Count > 0); } @@ -89,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration factory.Validate = false; AssertHelper.Exception<VectoException>(() => { - var runs = factory.DataReader.NextRun().ToList(); + var runs = factory.RunDataFactory.NextRun().ToList(); }, messageContains: $"Number of steering pump technologies does not match number of steered axles ({numStreeredAxles}, {steeringPumpTechnologies.Length})"); } diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml index 2abcc0a6799026518aea6383501a518c7a206a5a..8d93aad851c7d29011bf895d226cc7d029f47800 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml @@ -33,7 +33,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml index dbdda181ffeb2f7b0cecb5b5bbd23ae5c7cd8288..6a587688490a2f7a3b6d136bf63e19de42075882 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml @@ -34,7 +34,7 @@ xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" <tcl:Entry gear="6" maxTorque="1800"/> <tcl:Entry gear="1" maxTorque="2500"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml index 65e0097fe1b5ddf4cc66a9dba38794c2838219c9..6705787dfde9bb453036f6c3410b59645f40bc9c 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml @@ -28,7 +28,7 @@ <tcl:Entry gear="6" maxTorque="1800"/> <tcl:Entry gear="1" maxTorque="2500"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml index 7b67c6a129caa3df120c394dc5ac61f15802c808..885a68d120869ff7139f0beb4ce399def5396f12 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml @@ -29,7 +29,7 @@ <Entry gear="1" maxTorque="2500" /> <Entry gear="12" maxTorque="1900" /> </vif0.1:TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml index 5a8bd1363abb59bbf5579a8efcb16eef1d33cbd3..5611315b7bd2bcf95759b92719429c86ece3f0e2 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml @@ -29,7 +29,7 @@ <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto index ea14bcf1913a98eae7327493a4b600d41d4963ca..7d11c94cf606e0289f93183ec9501405a3a15cd2 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto @@ -8,6 +8,7 @@ "Body": { "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-primary_heavyBus-sample.xml", "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-stage_input_full-sample-final.xml", - "Completed": false + "Completed": true, + "RunSimulation": true } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto index a4cb37573f22ab2c77b8479775159010da5a6137..d7c5bb7dfc46ecf1efc8fdf0a0d919484f5c6bb4 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto @@ -8,6 +8,7 @@ "Body": { "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml", "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_completewithoutTMPLM.xml", - "Completed": false + "Completed": false, + "RunSimulation": true } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto index 9decd02ecd28e387f35df396ab55297fa60a322e..ea7d160b3fe6c37336a458b351fc62788be0c4dc 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto @@ -8,6 +8,7 @@ "Body": { "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml", "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_full-sample.xml", - "Completed": false + "Completed": false, + "RunSimulation": true } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto index 815d40babfe59c35a0b26bbb1c6a3af3eb55163c..d4ca29ab4b50283e47076599434b93b63e7a5fda 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto @@ -8,6 +8,7 @@ "Body": { "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml", "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_interim-sample.xml", - "Completed": false + "Completed": false, + "RunSimulation": true } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto index 8c711483841600928f41c4c07854380b23e2dfb7..8707551e872ff93b1506a204572937050a1d1ec9 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto @@ -8,6 +8,7 @@ "Body": { "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-primary_heavyBus-sample.xml", "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-stage_input_full-sample.xml", - "Completed": false + "Completed": false, + "RunSimulation": true } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml index 680b0a9729964208a2d248788de94df695442a7c..6dd0f94b26b578f1388efbd2f54def5cbf8300d2 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml @@ -37,7 +37,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="6" maxTorque="1800" /> <tcl:Entry gear="1" maxTorque="2500" /> </vif0.1:TorqueLimits> - <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <vif0.1:Engine> <vif0.1:Data xsi:type="EngineDataPIFType"> <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml index 469016a09d20af3962140f4534995c68d6920011..750c6d33d684d7a9460f342950eb5f4f4832ef9f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml @@ -75,7 +75,7 @@ <Cooling>non R-744 3-stage</Cooling> <Heating>none</Heating> </HeatPumpTypePassengerCompartment> - <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6bc8ea28a50a808d19b7d1fe78edc8ab93a7a6c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml new file mode 100644 index 0000000000000000000000000000000000000000..63e22a3aec86124179cdc038b6fe7008aff5d15b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <VehicleTypeApprovalNumber>fdsa</VehicleTypeApprovalNumber> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml index 0a35e5eda63337ee20bfeb38454f6571a6addb3e..0a7032c6a0fbf31e5f1a4f09f17b433dd5841b8b 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml @@ -72,7 +72,7 @@ <Cooling>non R-744 3-stage</Cooling> <Heating>none</Heating> </HeatPumpTypePassengerCompartment> - <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e96006be71a54da8cc43006063ebe779b265d46 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml index 656f9a00486293d4c31ed3b81afccb29791cd277..d5fa73aefb12ca2a06a194376549fea7908db846 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml @@ -70,7 +70,7 @@ <Cooling>non R-744 3-stage</Cooling> <Heating>none</Heating> </HeatPumpTypePassengerCompartment> - <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..650c0839f149650a9fd8c88e6b88dcaa969eb865 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_IEPC_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_IEPC_Type"> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml index b6a025e1925bcf5cf7aa8e3e7c504837e0d9866e..f1246dde0c61a32286a6ab79651b517f8fd53ca0 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml @@ -70,7 +70,7 @@ <Cooling>non R-744 3-stage</Cooling> <Heating>none</Heating> </HeatPumpTypePassengerCompartment> - <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..454b7206b1200116eb3f32b167e0da96ee4bcefd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_PEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_PEV_Type"> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml index 3bda4f34ec817645c286343a2026d70e2a930c6e..224e6a5072033c605bc2604112b7ba6edb825c29 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml @@ -9,7 +9,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>IHPC Type 1</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml index e58954177634d38bd199cb204be5bf8a5f07d415..e2af8105f97f3a7358ebdfa0ae662c337ea7ced2 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml @@ -9,7 +9,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml index bdce5bf6b70e349efa0d849543033eac3149ce77..3fb5bc97f1248c1d9d0d002dd3ba3534369093d9 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml @@ -9,7 +9,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Standard values</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml index c2fb24c4787d8fb6e55d84a518c5685c0fd8361a..9ae8cbb21dd592df8749e3365fddf1cdde133f8f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml @@ -9,7 +9,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>true</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml index 82e2b4c3f3a1500c06f73d719ffb0ba61591bb7b..cc3da5ccb458d7255027824efb1143bcb504b2db 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml @@ -9,7 +9,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Standard values for all components</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>true</DesignTypeWheelMotor> @@ -32,14 +32,20 @@ <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> - <PowerMap> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + </PowerMap> + <PowerMap gear="1"> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> </PowerMap> </VoltageLevel> - <DragCurve> + <DragCurve gear="1"> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml index bb45b98a60c7ea3c94f98dd6a1981afbf2519177..fab2cb1d3acff13c908af07838141b0792a65817 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml @@ -8,16 +8,16 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Exempted_MediumLorryDeclarationType"> - <Manufacturer>Some Manufacturer</Manufacturer> - <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> - <VIN>VEH-1234567890</VIN> + <Manufacturer>ML Manufacturer</Manufacturer> + <ManufacturerAddress>ML Street 1</ManufacturerAddress> + <Model>Sample ML Model</Model> + <VIN>VEH-ML34567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <LegislativeCategory>N2</LegislativeCategory> - <ChassisConfiguration>Tractor</ChassisConfiguration> - <AxleConfiguration>6x2</AxleConfiguration> - <CorrectedActualMass>7500</CorrectedActualMass> - <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass> + <ChassisConfiguration>Van</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>3600</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>7300</TechnicalPermissibleMaximumLadenMass> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <SumNetPower>350000</SumNetPower> <Technology>Fuel cell vehicle</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml index 33edc8ed8a3b4ac332a6363a4bb9a88cc29b4f01..65234aac7ceab95a82555d1b93d20dd9fb385e7e 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml @@ -123,7 +123,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -279,7 +279,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml index ef79b03d4a22337d4ab1ac36731ba1e5d80c58b2..ffef3405dafddd34b30b26ba6794648bc24668cf 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml @@ -105,7 +105,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -258,7 +258,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml index f0a5c5083ef91ea4ae1078f37464eec9df95853b..1e4945e5e2f99aed8d340fe0d93a055da824f79c 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml @@ -123,7 +123,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -279,7 +279,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml new file mode 100644 index 0000000000000000000000000000000000000000..1b7aab3bd6f5fe0f6f966af28e92877c8c712233 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml @@ -0,0 +1,507 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Sx_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>S3</ArchitectureID> + <OvcHev>true</OvcHev> + <MaxChargingPower>300</MaxChargingPower> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> + <!-- optional --> + <ElectricMachine> + <Position>3</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + <!-- optional --> + <ElectricMachine> + <Position>GEN</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_HEV-S3_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachineGEN> + <PowertrainPosition>GEN</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + </ElectricMachineGEN> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <ElectricMachine> + <PowertrainPosition>3</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>450</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>650</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-S_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml index 515e3df774d8d908ed1473578e69a0d554219aad..0855371ad80a2dbf83d8552fbd9015f0c4571583 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml @@ -123,7 +123,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -279,7 +279,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml index af0f9cdf8127e38bc84862452f10e3f2ca6473dd..df81c3470f74900153d1f3f7b4dff4ac098a03ae 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <NgTankSystem>Liquefied</NgTankSystem> <!-- optional --> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> <AirDrag> <!-- optional --> <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-03-24T15:00:00Z</Date> <AppVersion>Vecto AirDrag x.y</AppVersion> <CdxA_0>6.31</CdxA_0> <TransferredCdxA>6.32</TransferredCdxA> <DeclaredCdxA>6.34</DeclaredCdxA> </Data> <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <NgTankSystem>Liquefied</NgTankSystem> <!-- optional --> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> <AirDrag> <!-- optional --> <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-03-24T15:00:00Z</Date> <AppVersion>Vecto AirDrag x.y</AppVersion> <CdxA_0>6.31</CdxA_0> <TransferredCdxA>6.32</TransferredCdxA> <DeclaredCdxA>6.34</DeclaredCdxA> </Data> <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml index 77032b8f223533fd4e4ad8d4078d6f10819afbbe..404c4af706a1e93895d0079ce150892d4ca8d731 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <NgTankSystem>Liquefied</NgTankSystem> <!-- optional --> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>IHPC Type 1</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <!-- optional --> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> <AirDrag> <!-- optional --> <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-03-24T15:00:00Z</Date> <AppVersion>Vecto AirDrag x.y</AppVersion> <CdxA_0>6.31</CdxA_0> <TransferredCdxA>6.32</TransferredCdxA> <DeclaredCdxA>6.34</DeclaredCdxA> </Data> <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <NgTankSystem>Liquefied</NgTankSystem> <!-- optional --> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>IHPC Type 1</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <!-- optional --> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> <AirDrag> <!-- optional --> <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-03-24T15:00:00Z</Date> <AppVersion>Vecto AirDrag x.y</AppVersion> <CdxA_0>6.31</CdxA_0> <TransferredCdxA>6.32</TransferredCdxA> <DeclaredCdxA>6.34</DeclaredCdxA> </Data> <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml index 73af50778ddf93519f09c6f6933bb5d22155332a..c6e4dad2f322c31608f1a498e5a4b81c465105c5 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml @@ -17,12 +17,11 @@ <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -36,11 +35,11 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> - <DesignTypeWheelMotor>true</DesignTypeWheelMotor> - <Gears xsi:type="v2.3:IEPCGearsDeclarationType"> + <DesignTypeWheelMotor>false</DesignTypeWheelMotor> + <Gears xsi:type="IEPCGearsDeclarationType"> <Gear number="1"> <Ratio>3.000</Ratio> </Gear> @@ -323,7 +322,7 @@ <Auxiliaries> <Data xsi:type="AUX_IEPC_LorryDataType"> <SteeringPump> - <Technology axleNumber="1">Medium Supply 2-stage + elec. driven</Technology> + <Technology axleNumber="1">Electric driven pump</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml index 93bb15cdca5894fba624da2b62b095c63c66be8d..71d15de1f05689bff60d8bc658028f24cdd6ce39 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml @@ -17,13 +17,12 @@ <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <!-- optional --> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -60,7 +59,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml index cff68f15e5a3ab495be11f006a7ab4b10a210dec..aa4cb6e289584f7de6a60166f5a94d46ae35f9ab 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml @@ -17,12 +17,11 @@ <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="v2.4:ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -59,7 +58,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml index b3566c5c59e551720df5bde51b5b0afa1917a3a7..eb44c82a0be16b34bbd7417d39caf03e73d4d278 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml @@ -17,12 +17,11 @@ <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E3</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -59,7 +58,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml index eb9a1d82ef34c1eb661da00d4186aabaeac98bbe..01b9be64d7f8f28088ec425ef4226237561840f4 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml @@ -17,12 +17,11 @@ <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>false</VocationalVehicle> <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E4</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -59,7 +58,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml index f4058fbb03111959f14b3cae9794c77ed5efe268..8b866a8f4a7d33ba8d6cc335029bb56060e9af54 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml @@ -119,7 +119,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -275,7 +275,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml index 4504a67075fda6615cc32dcf615848e4d8dd9192..9eb1873602c4021f4c50a2b4ee9abb36abd10735 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml @@ -101,7 +101,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -254,7 +254,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml index 12ee94be010eddce289e9ed04e3fc24af6a76534..ed56ab0604d88ce2cb0b7bb4fa1b1549ce8e028c 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml @@ -119,7 +119,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -275,7 +275,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml index ae591fb32125332566374638ee9e4d797ad3e3cd..8b3ad53a3b5426809dcdc15292cace161b87cb4a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml @@ -119,7 +119,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -275,7 +275,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml index db595628401d4799835188071cf075d3d6290f53..498cf7f2f8d041165faa8da5844e444e60f41be6 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml @@ -110,7 +110,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml index 9056cf29a1d9255d5f7b0d268ffc78ca625cbaf9..d76b6b0b5477468dcba39005137b74d972a9639a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml @@ -15,10 +15,9 @@ <!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -32,10 +31,10 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> - <DesignTypeWheelMotor>true</DesignTypeWheelMotor> + <DesignTypeWheelMotor>false</DesignTypeWheelMotor> <Gears xsi:type="v2.3:IEPCGearsDeclarationType"> <Gear number="1"> <Ratio>3.000</Ratio> @@ -319,7 +318,7 @@ <Auxiliaries> <Data xsi:type="AUX_IEPC_LorryDataType"> <SteeringPump> - <Technology axleNumber="1">Vacuum pump + elec. driven</Technology> + <Technology axleNumber="1">Electric driven pump</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml index e27ad1fbdd5d8dcdeb7dd80dc9b2f6f8fd8a82df..a42c09b02ba8d675047664dc2f2fd2dcb8b14ed1 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml @@ -14,10 +14,9 @@ <CargoVolume>20.300</CargoVolume><!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -53,7 +52,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml index 9b045f03fed05f29c0a9415a4ebb282378e992da..23939490bffdc7c9386250fdba0c4d910bc9a23c 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml @@ -10,15 +10,14 @@ <ChassisConfiguration>Van</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> - <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <TechnicalPermissibleMaximumLadenMass>7000</TechnicalPermissibleMaximumLadenMass> <CargoVolume>20.300</CargoVolume> <!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -55,7 +54,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Standard values</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml index 20881f25f147cf915e48bb211e4981d64f9a94ea..cfde7abca26d52b59e9cd22e9fe0ed6254ed23d5 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml @@ -15,10 +15,9 @@ <!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -55,7 +54,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml index 40e01c6255f0dbafaf9dc14510ee2d6568e3495d..67414e7aba7c5c1f31dff77c2ce9ef2c35502cfe 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml @@ -15,10 +15,9 @@ <!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E3</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -55,7 +54,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml index 8ab9994cb1ee0e82bf4fb1bf10110994f8290a36..99f69f5dcfd43ce623acb2a641c5946f133e12d5 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml @@ -15,10 +15,9 @@ <!-- optional --> <RetarderType>None</RetarderType> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E4</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="v2.4:ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -55,7 +54,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml new file mode 100644 index 0000000000000000000000000000000000000000..78174a72be0122ee504233f3ebb3f4d341fa709a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml @@ -0,0 +1,362 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>false</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional --> + <v2.0:Entry gear="6" maxTorque="1800"/> + <v2.0:Entry gear="1" maxTorque="2500"/> + <v2.0:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_PrimaryBusType"> + <Engine xsi:type="v2.0:EngineComponentDeclarationType"> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox xsi:type="v2.0:GearboxComponentDeclarationType"> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter><!-- optional --> + <v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive><!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder><!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </v2.0:Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="3" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <TyreClass>C1</TyreClass> + <FuelEfficiencyClass>A</FuelEfficiencyClass> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </v2.0:Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SmartAlternator><!-- optional --> + <RatedCurrent>100</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <SmartAlternator><!-- optional --> + <RatedCurrent>50</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery><!-- optional --> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor><!-- optional --> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>120</RatedCapacitance> + <RatedVoltage>30</RatedVoltage> + </Capacitor> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>false</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml index 996d8d106993107cc5681e210ed6af802248279b..7d8004b765614468448b68e965c0bf0d3f9aa676 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml @@ -117,7 +117,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -273,7 +273,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml index 7133b50d2b3c2f4345acabe1dc8d3e57460275d8..f61c42c82fb9317fc12a134e509ccf55eaca991b 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml @@ -97,7 +97,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -250,7 +250,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml index bc8398274bd22621c71c30d2b792a4cb1b116855..0724153c376c66b113f50a72db3537c7e95b3d5c 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml @@ -115,7 +115,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -271,7 +271,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml index 738bb5514fb7bbd1c445bb526e34c1428aa69813..ee377c8fe518a0df5d06c6e7942c360981ef7a7f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml @@ -115,7 +115,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -271,7 +271,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml index 04e901f18537ec805fb493a17fd0012b038b1f7f..0e853efeeea18d619c02b22ce87a31894c825439 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_PrimaryBusType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <AlternatorTechnology>conventional</AlternatorTechnology> <SmartAlternator> <!-- optional --> <RatedCurrent>100</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <SmartAlternator> <!-- optional --> <RatedCurrent>50</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <Battery> <!-- optional --> <BatteryTechnology>li-ion battery - high power</BatteryTechnology> <RatedCapacity>50</RatedCapacity> <NominalVoltage>48</NominalVoltage> </Battery> <Capacitor> <!-- optional --> <CapacitorTechnology>with DCDC converter</CapacitorTechnology> <RatedCapacitance>120</RatedCapacitance> <RatedVoltage>30</RatedVoltage> </Capacitor> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </ElectricSystem> <PneumaticSystem> <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> <CompressorDrive>mechanically</CompressorDrive> <Clutch>none</Clutch> <CompressorRatio>1.000</CompressorRatio> <SmartCompressionSystem>true</SmartCompressionSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <ArchitectureID>P2</ArchitectureID> <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType"> <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>2</Position> <VoltageLevel> <Voltage>100</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> <Voltage>500</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> </ElectricMotorTorqueLimits> <BoostingLimitations xsi:type="BoostingLimitationsType"> <!-- optional --> <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> </BoostingLimitations> <Components xsi:type="Components_HEV-Px_PrimaryBusType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#ENG-gooZah3D"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference URI="#EM-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference URI="#BAT-asdf"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#TQ-1234"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <Angledrive> <!-- optional --> <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <Ratio>2.345</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#agl-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Angledrive> <Retarder> <!-- optional --> <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Retarder Manufacturer</Manufacturer> <Model>Generic Retarder</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <RetarderLossMap> <Entry retarderSpeed="0.00" torqueLoss="10.00"/> <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> </RetarderLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#RET-Shai9imi"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> </di:Reference> </v2.0:Signature> </Retarder> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <AlternatorTechnology>conventional</AlternatorTechnology> <SmartAlternator> <!-- optional --> <RatedCurrent>100</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <SmartAlternator> <!-- optional --> <RatedCurrent>50</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <Battery> <!-- optional --> <BatteryTechnology>li-ion battery - high power</BatteryTechnology> <RatedCapacity>50</RatedCapacity> <NominalVoltage>48</NominalVoltage> </Battery> <Capacitor> <!-- optional --> <CapacitorTechnology>with DCDC converter</CapacitorTechnology> <RatedCapacitance>120</RatedCapacitance> <RatedVoltage>30</RatedVoltage> </Capacitor> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </ElectricSystem> <PneumaticSystem> <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> <CompressorDrive>mechanically</CompressorDrive> <Clutch>none</Clutch> <CompressorRatio>1.000</CompressorRatio> <SmartCompressionSystem>true</SmartCompressionSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml index 505f21f52e0e7ee126503dc69d4a486c0025b729..7266037d79372ef268781e43df3a61cdd88231b0 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml @@ -11,12 +11,11 @@ <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> - <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderType>Axlegear Input Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -30,10 +29,10 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> - <DesignTypeWheelMotor>true</DesignTypeWheelMotor> + <DesignTypeWheelMotor>false</DesignTypeWheelMotor> <Gears xsi:type="v2.3:IEPCGearsDeclarationType"> <Gear number="1"> <Ratio>3.000</Ratio> @@ -323,7 +322,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml index c98f9a0346a0deab31cf4dc0a490cd24b7777959..b6ce3f2429c423189221290295f612d20c3fef23 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml @@ -14,9 +14,8 @@ <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -53,7 +52,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -431,7 +430,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml index 5080b4738feac15547954578d2aabdc6908a75c2..9779f578ec4cf6c61eadf20c192f02f7ce9c05a9 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml @@ -14,9 +14,8 @@ <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E3</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -52,7 +51,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -323,7 +322,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml index 732be3806ec94193d41516f2213cf7bda6b8f350..d140a360be02439f4742d2cb8cf0092cf4124023 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml @@ -14,9 +14,8 @@ <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E4</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -53,7 +52,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -296,7 +295,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml index 3c74a0f74e59e34a68aba279f2b5532cad63ccb4..7fcde6ad7ebc8130612ac3da9c98a55fb9794529 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml @@ -118,7 +118,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -286,7 +286,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml index 317875ab41ae9f1a05faedad8892f2edfa35513a..1793b234182fc6e3e6b04599581ff93b853e112e 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml @@ -110,7 +110,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml new file mode 100644 index 0000000000000000000000000000000000000000..1b7adcd58d4603dd76791fd551f50b4cfd133b49 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <VehicleDeclarationType>interim</VehicleDeclarationType> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml new file mode 100644 index 0000000000000000000000000000000000000000..3995f1c65774f214fd9f3c16f8b9819842adb594 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml new file mode 100644 index 0000000000000000000000000000000000000000..3f9e7ef9f25d1ac2b95e86523da493b5a117ba03 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml new file mode 100644 index 0000000000000000000000000000000000000000..829a7f768ce6ec02d0fb17e7f956245aca3ef24d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml new file mode 100644 index 0000000000000000000000000000000000000000..595eee5993b0f0d54f2e46a908fd694774487f0f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ace6090f35fe2ec4eba4cf1c047a15de1b2f69b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <VehicleDeclarationType>interim</VehicleDeclarationType> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml new file mode 100644 index 0000000000000000000000000000000000000000..2038c283cbc78558b52a3df8a25051dc860f4c21 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_IEPC_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <VehicleDeclarationType>interim</VehicleDeclarationType> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml new file mode 100644 index 0000000000000000000000000000000000000000..827e44ea1e3765c9847404d4008ce5707aea4226 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_PEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <VehicleDeclarationType>interim</VehicleDeclarationType> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml new file mode 100644 index 0000000000000000000000000000000000000000..a18531f009caabeaf196eba6df9619d9f49e562f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml @@ -0,0 +1,367 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>true</EcoRollWithEngineStop> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_LorryType"> + <Engine> + <v2.0:Data xsi:type="EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <!----> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>560</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + <Fuel type="NG PI"> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + </Fuel> + <Fuel type="Diesel CI"> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="1286.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="5063.00"/> + </FuelConsumptionMap> + </Fuel> + </Mode> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml new file mode 100644 index 0000000000000000000000000000000000000000..84dda376d9d166c46ffedccf4c9cef20f202a134 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml @@ -0,0 +1,367 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>6x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>30000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem><!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>true</EcoRollWithEngineStop> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter><!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive><!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder><!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </v2.0:Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="3" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <TyreClass>C1</TyreClass> + <FuelEfficiencyClass>C</FuelEfficiencyClass> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </v2.0:Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag><!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml new file mode 100644 index 0000000000000000000000000000000000000000..38d064a48b2fcd6386b52ee9f70ae9860a9b9ad0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml @@ -0,0 +1,351 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>Separate Angledrive</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem><!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>true</EcoRollWithEngineStop> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>APT-S</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="3"> + <Ratio>9.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder><!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag><!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml new file mode 100644 index 0000000000000000000000000000000000000000..38b6e9be9feaf3f38ae8a4b844c1ccbc1c4f0eaf --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml @@ -0,0 +1,552 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Sx_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>S3</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> + <!-- optional --> + <ElectricMachine> + <Position>3</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + <!-- optional --> + <ElectricMachine> + <Position>GEN</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_HEV-S3_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachineGEN> + <PowertrainPosition>GEN</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <ADC> + <v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533"> + <v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer> + <v2.3:Model>Some ADC Model</v2.3:Model> + <v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber> + <v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date> + <v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion> + <v2.3:Ratio>1.234</v2.3:Ratio> + <v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod> + <v2.3:TorqueLossMap> + <v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/> + </v2.3:TorqueLossMap> + </v2.3:Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""/> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ADC> + </ElectricMachineGEN> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <ElectricMachine> + <PowertrainPosition>3</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <ADC> + <v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533"> + <v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer> + <v2.3:Model>Some ADC Model</v2.3:Model> + <v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber> + <v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date> + <v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion> + <v2.3:Ratio>1.234</v2.3:Ratio> + <v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod> + <v2.3:TorqueLossMap> + <v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/> + </v2.3:TorqueLossMap> + </v2.3:Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""/> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ADC> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-S_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml new file mode 100644 index 0000000000000000000000000000000000000000..8282c9af09f01463e95f5dee28eec546d59f9351 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml @@ -0,0 +1,517 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>IHPC Type 1</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> + <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/> + <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <!-- optional --> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>tokena</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>b</Manufacturer> + <Model>b</Model> + <CertificationNumber>tokenb</CertificationNumber> + <Date>2017-02-02T00:00:00Z</Date> + <AppVersion>bbbbb</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>73.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="621.00"/> + <Entry SoC="100" OCV="641.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>IHPC Type 1</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <v2.3:Gears xsi:type="GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </v2.3:Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml new file mode 100644 index 0000000000000000000000000000000000000000..6a3348f7bbdf9e016a6aaf3cbb5b7b87ef53f300 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml @@ -0,0 +1,556 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <!-- optional --> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <ADC> + <v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533"> + <v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer> + <v2.3:Model>Some ADC Model</v2.3:Model> + <v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber> + <v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date> + <v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion> + <v2.3:Ratio>1.234</v2.3:Ratio> + <v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod> + <v2.3:TorqueLossMap> + <v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/> + </v2.3:TorqueLossMap> + </v2.3:Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ADC> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>tokena</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>b</Manufacturer> + <Model>b</Model> + <CertificationNumber>tokenb</CertificationNumber> + <Date>2017-02-02T00:00:00Z</Date> + <AppVersion>bbbbb</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>73.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="621.00"/> + <Entry SoC="100" OCV="641.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml new file mode 100644 index 0000000000000000000000000000000000000000..46d6d7a40da5d96e10880555170f11c01aa19d16 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml @@ -0,0 +1,496 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <!-- optional --> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <ADC> + <v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533"> + <v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer> + <v2.3:Model>Some ADC Model</v2.3:Model> + <v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber> + <v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date> + <v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion> + <v2.3:Ratio>1.234</v2.3:Ratio> + <v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod> + <v2.3:TorqueLossMap> + <v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/> + <v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/> + </v2.3:TorqueLossMap> + </v2.3:Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ADC> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Capacitor> + <Data xsi:type="v2.3:CapacitorSystemDataType" id="SuperCap-1234"> + <v2.3:Manufacturer>SuperCapManufacturer</v2.3:Manufacturer> + <v2.3:Model>MySuperSupercap</v2.3:Model> + <v2.3:CertificationNumber>C123987765</v2.3:CertificationNumber> + <v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date> + <v2.3:AppVersion>SuperCapMeasurementApp</v2.3:AppVersion> + <v2.3:CertificationMethod>Measured</v2.3:CertificationMethod> + <v2.3:Capacitance>53.00</v2.3:Capacitance> + <v2.3:InternalResistance>300.00</v2.3:InternalResistance> + <v2.3:MinVoltage>30.00</v2.3:MinVoltage> + <v2.3:MaxVoltage>180.00</v2.3:MaxVoltage> + <v2.3:MaxChargingCurrent>210.00</v2.3:MaxChargingCurrent> + <v2.3:MaxDischargingCurrent>220.00</v2.3:MaxDischargingCurrent> + </Data> + <Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </Signature> + </Capacitor> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml new file mode 100644 index 0000000000000000000000000000000000000000..e09a8667c587edcdf64fc3d8b8c0f7064dfc3d17 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml @@ -0,0 +1,540 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_MediumLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N2</LegislativeCategory> + <ChassisConfiguration>Van</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>3500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <CargoVolume>20.300</CargoVolume> + <!-- optional --> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>IHPC Type 1</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <!-- optional --> + <SOCmax>80</SOCmax> + <!-- optional --> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>IHPC Type 1</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <v2.3:Gears xsi:type="GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </v2.3:Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml new file mode 100644 index 0000000000000000000000000000000000000000..8bd33f3cc5bbb77133293c231e5c67fc85bb794f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml @@ -0,0 +1,466 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_MediumLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N2</LegislativeCategory> + <ChassisConfiguration>Van</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>3500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <CargoVolume>20.300</CargoVolume> + <!-- optional --> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Capacitor> + <v2.4:Data xsi:type="CapacitorSystemDataType" id="SuperCap-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>SuperCap Manufacturer</Manufacturer> + <Model>TheBestSuperCap</Model> + <CertificationNumber>CertNbr1234</CertificationNumber> + <Date>2022-01-01T00:00:00Z</Date> + <AppVersion>SuperCap Preprocessing App 1.0</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <Capacitance>25.00</Capacitance> + <InternalResistance>400.00</InternalResistance> + <MinVoltage>60.00</MinVoltage> + <MaxVoltage>180.00</MaxVoltage> + <MaxChargingCurrent>200.00</MaxChargingCurrent> + <MaxDischargingCurrent>200.00</MaxDischargingCurrent> + </v2.4:Data> + <Signature> + <di:Reference> + <di:DigestMethod Algorithm=""/> + <di:DigestValue>DummyDigestValue</di:DigestValue> + </di:Reference> + </Signature> + </Capacitor> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f48330ad6c609bf86f74f3d2abea819b9100d1f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml @@ -0,0 +1,459 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_PEV_MediumLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N2</LegislativeCategory> + <ChassisConfiguration>Van</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>3500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass> + <CargoVolume>20.300</CargoVolume><!-- optional --> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>E2</ArchitectureID> + <ADAS xsi:type="ADAS_PEV_Type"> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"><!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_PEV-E2_LorryType"> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios><!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter><!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive><!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder><!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_PEV_LorryDataType"> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage + elec. driven</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag><!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9a5d66aff37a2acccc87b0e3ae52b8e2cc8bd5a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml @@ -0,0 +1,363 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>false</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="6" maxTorque="1800"/> + <v2.0:Entry gear="1" maxTorque="2500"/> + <v2.0:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_PrimaryBusType"> + <Engine xsi:type="v2.0:EngineComponentDeclarationType"> + <v2.0:Data xsi:type="EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>560</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + <Fuel type="NG CI"> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + </Fuel> + <Fuel type="Diesel CI"> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="1286.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="5063.00"/> + </FuelConsumptionMap> + </Fuel> + </Mode> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox xsi:type="v2.0:GearboxComponentDeclarationType"> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>100</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>50</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <!-- optional --> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor> + <!-- optional --> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>120</RatedCapacitance> + <RatedVoltage>30</RatedVoltage> + </Capacitor> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>false</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml new file mode 100644 index 0000000000000000000000000000000000000000..2dca27c32d715acaf6da7e8373e0ad487b5dbe14 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml @@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>Separate Angledrive</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>false</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>false</APTEcoRollReleaseLockupClutch> + </ADAS> + <TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional --> + <v2.0:Entry gear="6" maxTorque="1800"/> + <v2.0:Entry gear="1" maxTorque="2500"/> + <v2.0:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="Components_Conventional_PrimaryBusType"> + <Engine xsi:type="v2.0:EngineComponentDeclarationType"> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <Gearbox xsi:type="v2.0:GearboxComponentDeclarationType"> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>APT-S</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="3"> + <Ratio>9.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder><!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SmartAlternator><!-- optional --> + <RatedCurrent>100</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <SmartAlternator><!-- optional --> + <RatedCurrent>50</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery><!-- optional --> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor><!-- optional --> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>120</RatedCapacitance> + <RatedVoltage>30</RatedVoltage> + </Capacitor> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>false</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml new file mode 100644 index 0000000000000000000000000000000000000000..04e7ae54f47425350d220559feef73958aad1ca3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml @@ -0,0 +1,609 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV-Sx_PrimaryBusDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ArchitectureID>S2</ArchitectureID> + <OvcHev>false</OvcHev> + <MaxChargingPower>1</MaxChargingPower> + <!-- optional --> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>false</EngineStopStart> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + <!-- optional --> + <ElectricMachine> + <Position>GEN</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_HEV-S2_PrimaryBusType"> + <Engine xsi:type="v2.0:EngineComponentDeclarationType"> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachineGEN> + <PowertrainPosition>GEN</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + </ElectricMachineGEN> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> +<ADC> + <Data xsi:type="ADCDataDeclarationType" id="ADC-123498" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>ADC MAnufacturer</Manufacturer> + <Model>Some ADC Model</Model> + <CertificationNumber>CertNbr 1234987</CertificationNumber> + <Date>2022-01-01T00:00:00Z</Date> + <AppVersion>ADC PreProcessing 1.0</AppVersion> + <Ratio>1.000</Ratio> + <CertificationMethod>Option 2</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/> + <Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/> + </TorqueLossMap> + </Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </v2.3:Signature> +</ADC> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <Gearbox xsi:type="v2.0:GearboxComponentDeclarationType"> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-S_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml new file mode 100644 index 0000000000000000000000000000000000000000..c1a62d5661a12b22c488371826ca103faf1c8dc4 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml @@ -0,0 +1,609 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV-Sx_PrimaryBusDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ArchitectureID>S2</ArchitectureID> + <OvcHev>false</OvcHev> + <MaxChargingPower>1</MaxChargingPower> + <!-- optional --> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>false</EngineStopStart> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + <!-- optional --> + <ElectricMachine> + <Position>GEN</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_HEV-S2_PrimaryBusType"> + <Engine xsi:type="v2.0:EngineComponentDeclarationType"> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachineGEN> + <PowertrainPosition>GEN</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <ADC> + <Data xsi:type="ADCDataDeclarationType" id="ADCGen-123" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>ADC Manufaturer</Manufacturer> + <Model>GenSetADC</Model> + <CertificationNumber>CertNbr345</CertificationNumber> + <Date>2022-01-01T00:00:00Z</Date> + <AppVersion>ADC Evaluation App</AppVersion> + <Ratio>1.000</Ratio> + <CertificationMethod>Option 2</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> + <Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/> + <Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/> + </TorqueLossMap> + </Data> + <v2.3:Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ADC> + </ElectricMachineGEN> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <Gearbox xsi:type="v2.0:GearboxComponentDeclarationType"> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-S_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml new file mode 100644 index 0000000000000000000000000000000000000000..b6f0d78f58a3c4cd3bb907f8fb545588b1e29862 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml @@ -0,0 +1,542 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_PrimaryBusType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>IHPC Type 1</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>IHPC Type 1</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <v2.3:Gears xsi:type="GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </v2.3:Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>100</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>50</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <!-- optional --> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor> + <!-- optional --> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>120</RatedCapacitance> + <RatedVoltage>30</RatedVoltage> + </Capacitor> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>true</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml new file mode 100644 index 0000000000000000000000000000000000000000..42cbc5389c405c106848c1de7d440206868e02b4 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml @@ -0,0 +1,470 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ArchitectureID>P2</ArchitectureID> + <OvcHev>false</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType"> + <!-- optional --> + <v2.0:Entry gear="9" maxTorque="2000"/> + </TorqueLimits> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <BoostingLimitations xsi:type="BoostingLimitationsType"> + <!-- optional --> + <Entry rotationalSpeed="0.00" boostingTorque="0.00"/> + <Entry rotationalSpeed="1000.00" boostingTorque="0.00"/> + </BoostingLimitations> + <Components xsi:type="Components_HEV-Px_PrimaryBusType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> +<Capacitor> + <v2.4:Data xsi:type="CapacitorSystemDataType" id="SuperCap-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>SuperCap Manufacturer</Manufacturer> + <Model>TheBestSuperCap</Model> + <CertificationNumber>CertNbr1234</CertificationNumber> + <Date>2022-01-01T00:00:00Z</Date> + <AppVersion>SuperCap Preprocessing App 1.0</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <Capacitance>25.00</Capacitance> + <InternalResistance>400.00</InternalResistance> + <MinVoltage>60.00</MinVoltage> + <MaxVoltage>180.00</MaxVoltage> + <MaxChargingCurrent>200.00</MaxChargingCurrent> + <MaxDischargingCurrent>200.00</MaxDischargingCurrent> + </v2.4:Data> + <Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </Signature> +</Capacitor> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-P_PrimaryBusType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>100</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <SmartAlternator> + <!-- optional --> + <RatedCurrent>50</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <!-- optional --> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor> + <!-- optional --> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>120</RatedCapacitance> + <RatedVoltage>30</RatedVoltage> + </Capacitor> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>mechanically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>true</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb5382344bb8e5ecd1b5d658a75ef2062fafcd96 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml @@ -0,0 +1,305 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_IEPC_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <RetarderType>Axlegear Input Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <ArchitectureID>E-IEPC</ArchitectureID> + <ADAS xsi:type="ADAS_IEPC_Type"> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_IEPC_PrimaryBusType"> + <IEPC> + <v2.3:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="IEPCStandardValuesDataDeclarationType" id="IEPC-asdf"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Standard values for all components</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DifferentialIncluded>false</DifferentialIncluded> + <DesignTypeWheelMotor>false</DesignTypeWheelMotor> + <Gears xsi:type="v2.3:IEPCGearsDeclarationType"> + <Gear number="1"> + <Ratio>3.000</Ratio> + </Gear> + <Gear number="2"> + <Ratio>1.000</Ratio> + <MaxOutShaftTorque>2000</MaxOutShaftTorque> + </Gear> + </Gears> + <VoltageLevel> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap gear="1"> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + <PowerMap gear="2"> + <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1500.00"/> + <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1500.00"/> + <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="25000.00"/> + <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-25000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve gear="1"> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <DragCurve gear="2"> + <Entry outShaftSpeed="0.00" dragTorque="15.00"/> + <Entry outShaftSpeed="4500.00" dragTorque="35.00"/> + </DragCurve> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#IEPC-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/+OkpqMJNrSUR2r8zwuvw+IJOEP3c9lDM+Buo32YxO0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </IEPC> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <!-- optional --> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_IEPC_PrimaryBusType"> + <SteeringPump> + <Technology axleNumber="1">Electric driven pump</Technology> + </SteeringPump> + <PneumaticSystem> + <CompressorDrive>electrically</CompressorDrive> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml new file mode 100644 index 0000000000000000000000000000000000000000..34c83a3d9d8f5da541f50b70a6ee4b97026c8324 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml @@ -0,0 +1,440 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_PEV_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <ArchitectureID>E2</ArchitectureID> + <ADAS xsi:type="ADAS_PEV_Type"> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_PEV-E2_PrimaryBusType"> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_PEV_PrimaryBusType"> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <PneumaticSystem> + <CompressorDrive>electrically</CompressorDrive> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml new file mode 100644 index 0000000000000000000000000000000000000000..33fd4feb24461abb14ebacae00cdf7233541a4f8 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml @@ -0,0 +1,419 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_PEV_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <ArchitectureID>E2</ArchitectureID> + <ADAS xsi:type="ADAS_PEV_Type"> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>100</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>500</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_PEV-E2_PrimaryBusType"> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemStandardValuesDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Standard values</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_PEV_PrimaryBusType"> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <PneumaticSystem> + <CompressorDrive>electrically</CompressorDrive> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml index 615c385e6ca20dd62eb39d25cedf1ab7d66930ef..0a41c27700f4ea079b18ecdc314d513f0de64c99 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml @@ -81,7 +81,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -225,7 +225,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml index 984c847dfb4b2904808b7ac3bea5839c301b570f..9a7551d2fac0e1cb40136a750586b641b8fd3dc9 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml @@ -101,7 +101,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -242,7 +242,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml index 404d1791f790583353225415b95bf6d5a9834eb8..28caaf1d3216655a2a55b7ba37984391a85821a7 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml @@ -81,7 +81,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -225,7 +225,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml index 2172cd84cc98f4140f33467b9175c4e297ace98a..574f1573096ca5136cc5902aa1cd2031d48d22c7 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml @@ -81,7 +81,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -225,7 +225,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml index 84849e92792e8e8c014754d6d1d0745df9b3ff66..1a7b7f6f640a0c4ce4c46772a3d053582b741af2 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml @@ -75,7 +75,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -219,7 +219,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml index 3655abed882ed2d5fb654b8fdaed29e822a04232..81efe8a405148ab409f15590493201513cda93ee 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml @@ -95,7 +95,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -236,7 +236,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml index 01bdc223301d9b76f4648a4266793f5131ce4a8f..10618e5fbe380fb142d6acee5e39ee0b49984c3f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml @@ -75,7 +75,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -219,7 +219,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml index 166a929a4e7dbb624bfb320b605f87190411a360..667fe3bd11f80260c62fe3abf88e297b140c2115 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml @@ -75,7 +75,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -219,7 +219,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml index 97b4f3895bb56b4dd86cfb2eaf23784c7fa8e38b..66e6678fc43732c14c28e46370d0112aaf748328 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml @@ -78,7 +78,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -222,7 +222,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml index 8e2a63396255527bfe1902416f0e17e8a0608721..a6e3e8e82a59a8ac35a06b8c20b61816017d569f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml @@ -94,7 +94,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -235,7 +235,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>false</DesignTypeWheelMotor> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml index 5e6fd226e7a8f427307cb49d4d20683203521775..34d18d16240c6c48755592edb1c64f02701087ce 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml @@ -74,7 +74,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -218,7 +218,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml index 38d89ce490086bfd5b2ba0e38072dd986d1c687f..9cb1c0ddc13b58f954ef41dd27597124dff1dff0 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml @@ -74,7 +74,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -218,7 +218,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml index 733c8d8ca876a7e7d0106de5155f9522f7a7b57a..329423213ab9af172658325ec391ad01906a5453 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>true</VocationalVehicle> <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2.5</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> </v2.3:Data> <v2.3:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="asf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="bsf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </TorqueConverter> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a"> <Manufacturer>TU Graz</Manufacturer> <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> <Model>HEV Heavy Lorry Px</Model> <VIN>1234</VIN> <Date>2017-01-01T00:00:00Z</Date> <LegislativeCategory>N3</LegislativeCategory> <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <CorrectedActualMass>6000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>650</IdlingSpeed> <RetarderType>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <PTO xsi:type="PTOType"> <PTOShaftsGearWheels>none</PTOShaftsGearWheels> <PTOOtherElements>none</PTOOtherElements> </PTO> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>true</VocationalVehicle> <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2.5</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_LorryType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> </v2.3:Data> <v2.3:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="asf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="bsf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </TorqueConverter> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> </ElectricSystem> <PneumaticSystem> <Technology>Medium Supply 2-stage</Technology> </PneumaticSystem> <HVAC> <Technology>Default</Technology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml index 68ba28d5ebcec8b75db415dcfcd749d509a4a176..0cfd8f16e69ed26e7bc1e0536340ef8faa87cea2 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml @@ -75,7 +75,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml index ced7dfb8fbfba31f46148dcf8f966f6158104f24..5324763cc63744d092a0d965ffc2f67eafc0a84a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>P2</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_PrimaryBusType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </TorqueConverter> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <AlternatorTechnology>conventional</AlternatorTechnology> <SmartAlternator> <!-- optional --> <RatedCurrent>100</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <SmartAlternator> <!-- optional --> <RatedCurrent>50</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <Battery> <!-- optional --> <BatteryTechnology>li-ion battery - high power</BatteryTechnology> <RatedCapacity>50</RatedCapacity> <NominalVoltage>48</NominalVoltage> </Battery> <Capacitor> <!-- optional --> <CapacitorTechnology>with DCDC converter</CapacitorTechnology> <RatedCapacitance>120</RatedCapacitance> <RatedVoltage>30</RatedVoltage> </Capacitor> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </ElectricSystem> <PneumaticSystem> <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> <CompressorDrive>mechanically</CompressorDrive> <Clutch>none</Clutch> <CompressorRatio>1.000</CompressorRatio> <SmartCompressionSystem>true</SmartCompressionSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>P2</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <EngineStopStart>true</EngineStopStart> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_PrimaryBusType"> <Engine> <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> <Displacement>12730</Displacement> <IdlingSpeed>560</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> <RatedPower>380000</RatedPower> <MaxEngineTorque>2300</MaxEngineTorque> <WHTCUrban>1.0097</WHTCUrban> <WHTCRural>1.0035</WHTCRural> <WHTCMotorway>1.0200</WHTCMotorway> <BFColdHot>1.0000</BFColdHot> <CFRegPer>1.0000</CFRegPer> <CFNCV>1.0000</CFNCV> <FuelType>NG</FuelType> <FuelConsumptionMap> <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> </FuelConsumptionMap> <FullLoadAndDragCurve> <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> </FullLoadAndDragCurve> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap> <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> <Conditioning> <Entry coolantTempInlet="30" coolingPower="5000"/> </Conditioning> </v2.3:Data> <v2.3:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.3:Signature> </ElectricMachineSystem> <P2.5GearRatios> <!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>token</CertificationNumber> <Date>2017-01-01T00:00:00Z</Date> <AppVersion>aaaaa</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>72.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="620.00"/> <Entry SoC="100" OCV="640.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.4:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <Gearbox> <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <MainCertificationMethod>Standard values</MainCertificationMethod> <Gears xsi:type="GearsDeclarationType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> <Gear number="2"> <Ratio>11.640</Ratio> <MaxTorque>1900</MaxTorque> <MaxSpeed>2000</MaxSpeed> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> </TorqueLossMap> </Gear> </Gears> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#gbx-vi2Oak2N"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue> </di:Reference> </v2.0:Signature> </Gearbox> <TorqueConverter> <!-- optional --> <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> <Manufacturer>Some Manufacturer</Manufacturer> <Model>Some Model</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>TC CalcApp 123</AppVersion> <CertificationMethod>Standard values</CertificationMethod> <Characteristics> <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> </Characteristics> </v2.0:Data> <v2.0:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </TorqueConverter> <Axlegear> <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <LineType>Single portal axle</LineType> <Ratio>2.590</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> </TorqueLossMap> </v2.0:Data> <v2.0:Signature> <di:Reference URI="#AXL-EC3ohnoh"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue> </di:Reference> </v2.0:Signature> </Axlegear> <AxleWheels> <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Axles> <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0055</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> <Tyre> <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> <Manufacturer>Generic Wheels Manufacturer</Manufacturer> <Model>Generic Wheel</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-01-11T14:00:00Z</Date> <AppVersion>Tyre Generation App 1.0</AppVersion> <Dimension>315/70 R22.5</Dimension> <RRCDeclared>0.0063</RRCDeclared> <FzISO>31300</FzISO> </Data> <Signature> <di:Reference URI="#WHL-5432198760-315-70-R22.5"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <AlternatorTechnology>conventional</AlternatorTechnology> <SmartAlternator> <!-- optional --> <RatedCurrent>100</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <SmartAlternator> <!-- optional --> <RatedCurrent>50</RatedCurrent> <RatedVoltage>48</RatedVoltage> </SmartAlternator> <Battery> <!-- optional --> <BatteryTechnology>li-ion battery - high power</BatteryTechnology> <RatedCapacity>50</RatedCapacity> <NominalVoltage>48</NominalVoltage> </Battery> <Capacitor> <!-- optional --> <CapacitorTechnology>with DCDC converter</CapacitorTechnology> <RatedCapacitance>120</RatedCapacitance> <RatedVoltage>30</RatedVoltage> </Capacitor> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </ElectricSystem> <PneumaticSystem> <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> <CompressorDrive>mechanically</CompressorDrive> <Clutch>none</Clutch> <CompressorRatio>1.000</CompressorRatio> <SmartCompressionSystem>true</SmartCompressionSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml index bd8d18634fd9b7ca451fbfac33843b56f4f77641..9152cedae3433e213d71aaf5797a9155d1bcb22f 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml @@ -23,8 +23,6 @@ <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -38,7 +36,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>true</DesignTypeWheelMotor> @@ -257,7 +255,7 @@ <Auxiliaries> <Data xsi:type="AUX_IEPC_LorryDataType"> <SteeringPump> - <Technology axleNumber="1">Medium Supply 2-stage + elec. driven</Technology> + <Technology axleNumber="1">Full electric steering gear</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml index 8e668fe88df09311314a0cd3542d12e3945c7351..882659b4e968850ba2f937943184a70f745034a4 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml @@ -18,8 +18,6 @@ <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -33,7 +31,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>true</DesignTypeWheelMotor> @@ -252,7 +250,7 @@ <Auxiliaries> <Data xsi:type="AUX_IEPC_LorryDataType"> <SteeringPump> - <Technology axleNumber="1">Vacuum pump + elec. driven</Technology> + <Technology axleNumber="1">Full electric steering gear</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml index d74b5bbcd386cfbdb1dba5f6bd35bd03427c3239..1f113942672b03a85595de9828dff0f96918d1ea 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml @@ -16,8 +16,6 @@ <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E-IEPC</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_IEPC_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -31,7 +29,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured for complete component</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DifferentialIncluded>false</DifferentialIncluded> <DesignTypeWheelMotor>true</DesignTypeWheelMotor> @@ -256,7 +254,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml index 9faf3142103ec3a886468987f295643c9e57864a..8dc0b991998924977e131ad97ff6f5daa0840033 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml @@ -24,8 +24,6 @@ <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -42,7 +40,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml index e55067566a7eb5923821fcdae20df3edd822e484..f03c2223ff9a13e5899b5a92fda5461bbb2263e7 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml @@ -22,7 +22,6 @@ <SleeperCab>false</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="v2.4:ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -39,7 +38,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml index 5c9988dfddfb27cb9631dfaee5eee3f708b9771d..fbb049d5eaf0f0ea0478f2fbca4c6e55e36326b9 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml @@ -23,8 +23,6 @@ <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E3</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -41,7 +39,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml index 5a5b30ef66a385aae1f80580e481ca6f8cb677bf..25808af2d1ac6ee4223b28c293a781d676cd2b88 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml @@ -23,8 +23,6 @@ <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E4</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -41,7 +39,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml index 79173c8f65be96d7962850377b5d02d18d580f1a..afdfbcddfe3e8b120d9894634083325405ba7fae 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml @@ -17,8 +17,6 @@ <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -35,7 +33,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml index 9bd1d71faa2817a7fe65617ab64701965d8915d2..4afad7609191aab1afeb2370e15d5d9d0c60a0b6 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml @@ -17,7 +17,6 @@ <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E2</ArchitectureID> - <OvcHev>false</OvcHev> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -34,7 +33,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml index e9fa92d0e202c2561f84dd1cc25ae08a35a9601f..100ba06c35e7e0c57dd88358686da224356f16d3 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml @@ -17,8 +17,6 @@ <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E3</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -35,7 +33,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml index 3b1ce96b31290cecbda13d26fa32e38bd64a291b..5d4b14ebacd9380db15fba0c04c1102265b0c2c4 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml @@ -17,8 +17,6 @@ <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>E4</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="v2.4:ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -35,7 +33,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml index c30eba3db3eb2a79bcfa98098cc51025079e1d9f..4452420c14a47ecad525083541b0e92a2a338602 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml @@ -16,8 +16,6 @@ <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E2</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -34,7 +32,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -341,7 +339,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml index 13dab62ca8a07af7e6e930c9f16cecb9fdf6d3a6..34074e65a66a36bc9ab43fd30a8a6f1a2532d03a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml @@ -16,8 +16,6 @@ <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E3</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -34,7 +32,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -270,7 +268,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml index bd887885c2f607420a45e82e4996f674703fe3eb..67cadc3b5714c94ef463cd7c06281fe454177d9a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml @@ -16,8 +16,6 @@ <AngledriveType>Separate Angledrive</AngledriveType> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <ArchitectureID>E4</ArchitectureID> - <OvcHev>true</OvcHev> - <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_PEV_Type"> <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> </ADAS> @@ -34,7 +32,7 @@ <AppVersion>aaaaa</AppVersion> <ElectricMachineType>ASM</ElectricMachineType> <CertificationMethod>Measured</CertificationMethod> - <R85RatedPower>1</R85RatedPower> + <R85RatedPower>50000</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> @@ -240,7 +238,6 @@ <CompressorDrive>electrically</CompressorDrive> <SmartRegenerationSystem>false</SmartRegenerationSystem> <AirsuspensionControl>electronically</AirsuspensionControl> - <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..779001dfcd5680126a28528c21d4ec5c5afea9dc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml @@ -0,0 +1,702 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoOutputMultistage xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <tns:PrimaryVehicle> + <Data id="VEH-287da6b1275749ac832d" xsi:type="PrimaryVehicleDataType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <tns:ADAS xsi:type="ADAS_Conventional_Type" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2"> + <EngineStopStart>false</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </tns:ADAS> + <tns:TorqueLimits xsi:type="TorqueLimitsType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.0:Entry gear="6" maxTorque="1800" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" /> + <v2.0:Entry gear="1" maxTorque="2500" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" /> + <v2.0:Entry gear="12" maxTorque="1900" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" /> + </tns:TorqueLimits> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> + <Engine> + <Data xsi:type="EngineDataVIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2400</MaxEngineTorque> + <WHRType> + <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> + <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> + <v2.3:ElectricalOutput>false</v2.3:ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>560</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00" /> + <Entry engineSpeed="600.00" maxTorque="1282.00" dragTorque="-148.00" /> + <Entry engineSpeed="800.00" maxTorque="1791.00" dragTorque="-149.00" /> + <Entry engineSpeed="1000.00" maxTorque="2300.00" dragTorque="-160.00" /> + <Entry engineSpeed="1200.00" maxTorque="2300.00" dragTorque="-179.00" /> + <Entry engineSpeed="1400.00" maxTorque="2300.00" dragTorque="-203.00" /> + <Entry engineSpeed="1600.00" maxTorque="2079.00" dragTorque="-235.00" /> + <Entry engineSpeed="1800.00" maxTorque="1857.00" dragTorque="-264.00" /> + <Entry engineSpeed="2000.00" maxTorque="1352.00" dragTorque="-301.00" /> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>NG CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataVIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsVIFType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>9.020</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>7.040</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>5.640</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>4.400</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="7"> + <Ratio>3.390</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="8"> + <Ratio>2.650</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="9"> + <Ratio>2.050</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="10"> + <Ratio>1.600</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="11"> + <Ratio>1.280</Ratio> + <MaxSpeed>2000</MaxSpeed> + </Gear> + <Gear number="12"> + <Ratio>1.000</Ratio> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataVIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataVIFType"> + <Axles> + <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> + <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> + <v2.0:TwinTyres>false</v2.0:TwinTyres> + <v2.0:Steered>true</v2.0:Steered> + <v2.0:Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="v2.0:TyreDataDeclarationType"> + <v2.0:Manufacturer>Generic Wheels Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Wheel</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-01-11T14:00:00Z</v2.0:Date> + <v2.0:AppVersion>Tyre Generation App 1.0</v2.0:AppVersion> + <v2.0:Dimension>315/70 R22.5</v2.0:Dimension> + <v2.0:RRCDeclared>0.0055</v2.0:RRCDeclared> + <v2.0:FzISO>31300</v2.0:FzISO> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5" xmlns:di="http://www.w3.org/2000/09/xmldsig#"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.0:Tyre> + </Axle> + <Axle axleNumber="2" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> + <v2.0:AxleType>VehicleDriven</v2.0:AxleType> + <v2.0:TwinTyres>true</v2.0:TwinTyres> + <v2.0:Steered>false</v2.0:Steered> + <v2.0:Tyre> + <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="v2.0:TyreDataDeclarationType"> + <v2.0:Manufacturer>Generic Wheels Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Wheel</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-01-11T14:00:00Z</v2.0:Date> + <v2.0:AppVersion>Tyre Generation App 1.0</v2.0:AppVersion> + <v2.0:Dimension>315/70 R22.5</v2.0:Dimension> + <v2.0:RRCDeclared>0.0063</v2.0:RRCDeclared> + <v2.0:FzISO>31300</v2.0:FzISO> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5" xmlns:di="http://www.w3.org/2000/09/xmldsig#"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.0:Tyre> + </Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataVIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</CompressorDrive> + <Clutch>none</Clutch> + <CompressorRatio>1.000</CompressorRatio> + <SmartCompressionSystem>false</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-1234567890"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>8uY4dWDsEyozlZhzV8X7Fq1tavvoBIXiCn8oAUcsjVw=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-4b16ccbbf7954e00b62f"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>a/pzFL7U/6tarrWBJcjp09y/FrZjBpUDX/uDhMTOoM4=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> + <Payload unit="kg">1123.63</Payload> + <PassengerCount>16.52</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">19.71467</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1104.84</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> + <Payload unit="kg">5618.16</Payload> + <PassengerCount>82.62</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">23.22512</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1301.57</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> + <Payload unit="kg">1123.63</Payload> + <PassengerCount>16.52</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">15.45965</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">866.38</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> + <Payload unit="kg">5618.16</Payload> + <PassengerCount>82.62</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">18.39275</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1030.76</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> + <Payload unit="kg">1123.63</Payload> + <PassengerCount>16.52</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">13.17582</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">738.40</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> + <Payload unit="kg">5618.16</Payload> + <PassengerCount>82.62</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">16.00192</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">896.77</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13050.44</TotalVehicleMass> + <Payload unit="kg">1075.44</Payload> + <PassengerCount>15.15</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">11.11672</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">623.00</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass> + <Payload unit="kg">3519.61</Payload> + <PassengerCount>49.57</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">12.34809</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">692.01</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> + <Payload unit="kg">1193.34</Payload> + <PassengerCount>17.55</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1160.65</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> + <Payload unit="kg">5966.69</Payload> + <PassengerCount>87.75</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">24.68655</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1383.48</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> + <Payload unit="kg">1193.34</Payload> + <PassengerCount>17.55</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">16.25928</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">911.20</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> + <Payload unit="kg">5966.69</Payload> + <PassengerCount>87.75</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">19.58479</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1097.56</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> + <Payload unit="kg">1193.34</Payload> + <PassengerCount>17.55</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">13.83088</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">775.11</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31DD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> + <Payload unit="kg">5966.69</Payload> + <PassengerCount>87.75</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">17.02489</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">954.10</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass> + <Payload unit="kg">1075.44</Payload> + <PassengerCount>15.15</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">11.30640</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">633.63</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass> + <Payload unit="kg">3519.61</Payload> + <PassengerCount>49.57</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">12.56427</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">704.12</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32SD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass> + <Payload unit="kg">1094.99</Payload> + <PassengerCount>15.42</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">8.73159</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">489.33</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32SD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass> + <Payload unit="kg">2737.48</Payload> + <PassengerCount>38.56</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">9.18847</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">514.94</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass> + <Payload unit="kg">1262.82</Payload> + <PassengerCount>17.79</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">11.67569</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">654.33</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass> + <Payload unit="kg">4209.41</Payload> + <PassengerCount>59.29</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">13.23582</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">741.76</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32DD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass> + <Payload unit="kg">1347.01</Payload> + <PassengerCount>18.97</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">9.18672</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">514.84</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32DD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass> + <Payload unit="kg">3367.53</Payload> + <PassengerCount>47.43</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">9.74629</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">546.20</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.7.5.2380-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2022-01-19T08:51:05.447084Z</Date> + </ApplicationInformation> + </Data> + <tns:Signature> + <di:Reference URI="#VEH-287da6b1275749ac832d"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>pw5MvbQPD1gZvBmbrCkia7fU0KNCs2mDRf0iMJ2ozT4=</di:DigestValue> + </di:Reference> + </tns:Signature> + </tns:PrimaryVehicle> + <tns:ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-31c5c8eee8384019b5c6" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <HashPreviousStage> + <di:Reference URI="#VEH-287da6b1275749ac832d"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>pw5MvbQPD1gZvBmbrCkia7fU0KNCs2mDRf0iMJ2ozT4=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <tns:Vehicle xsi:type="Vehicle_Conventional_CompletedBusDeclarationType" id="VEH-48bd60d263ab40b19387" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2"> + <Manufacturer>aaa</Manufacturer> + <ManufacturerAddress>aaaa</ManufacturerAddress> + <VIN>123456789</VIN> + <Date>2022-01-18T23:00:00Z</Date> + <Model>Model1</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>3500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Liquefied</NgTankSystem> + <NumberPassengerSeatsLowerDeck>14</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CC</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>1560</HeightIntegratedBody> + <VehicleLength>3000</VehicleLength> + <VehicleWidth>2000</VehicleWidth> + <EntranceHeight>100</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <VehicleTypeApprovalNumber>12345678</VehicleTypeApprovalNumber> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>false</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>false</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>false</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>false</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>2</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>non R-744 2-stage</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>non R-744 3-stage</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>1000</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </tns:Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion> + <Date>2022-01-19T08:55:47.1061162Z</Date> + </ApplicationInformation> + </Data> + <tns:Signature> + <di:Reference URI="#MST-31c5c8eee8384019b5c6"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>YaObqSLKRyG/xDvQ0DvUWMLurVr7gxObFw5TZ95J71o=</di:DigestValue> + </di:Reference> + </tns:Signature> + </tns:ManufacturingStage> + <tns:ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-66a6244b593b4b73ba45" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <HashPreviousStage> + <di:Reference URI="#MST-31c5c8eee8384019b5c6"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>YaObqSLKRyG/xDvQ0DvUWMLurVr7gxObFw5TZ95J71o=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <tns:Vehicle xsi:type="Vehicle_Conventional_CompletedBusDeclarationType" id="VEH-afaecc21a42f4cc79d58" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2"> + <Manufacturer>bbbb</Manufacturer> + <ManufacturerAddress>bbb</ManufacturerAddress> + <VIN>assssss</VIN> + <Date>2022-01-18T23:00:00Z</Date> + <VehicleDeclarationType>final</VehicleDeclarationType> + </tns:Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion> + <Date>2022-01-19T08:56:27.8435294Z</Date> + </ApplicationInformation> + </Data> + <tns:Signature> + <di:Reference URI="#MST-66a6244b593b4b73ba45"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>XkonpptkzWTFQbkkKkmNawd6zl/iPUaJfhzUDlvrNiE=</di:DigestValue> + </di:Reference> + </tns:Signature> + </tns:ManufacturingStage> +</tns:VectoOutputMultistage> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml index ac99245ae39617d7a7b4a484fb46ca6005a85cdd..92d4f08f771fa79867d549118cdadb4e9c5563e0 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml @@ -2,17 +2,17 @@ <vif0.1:VectoOutputMultistep xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> <Data id="VEH-4cb168560c0d4b3d886d" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehicleExemptedPrimaryBusType"> - <ManufacturerPrimaryVehicle>Some Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Infinite Loop 1</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="Exempted_VehicleVIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> - <LegislativeCategory>N2</LegislativeCategory> + <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass unit="kg">15400.0</TechnicalPermissibleMaximumLadenMass> + <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <SumNetPower unit="W">350000</SumNetPower> <Technology>Fuel cell vehicle</Technology> @@ -86,7 +86,7 @@ <BodyworkCode>CE</BodyworkCode> <LowEntry>true</LowEntry> <HeightIntegratedBody>2000</HeightIntegratedBody> - </vif0.1:Vehicle> + </vif0.1:Vehicle> <ApplicationInformation> <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion> <Date>2021-08-24T09:29:02.5917498Z</Date> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml index a1dfe0305c17985906b8e3e908c524cd595ac0ce..3be573c3c80288278704c87d796c1db14fb65e85 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml @@ -9,17 +9,17 @@ xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> <Data id="VEH-4cb168560c0d4b3d886d" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehicleExemptedPrimaryBusType"> - <ManufacturerPrimaryVehicle>Some Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Infinite Loop 1</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="Exempted_VehicleVIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> - <LegislativeCategory>N2</LegislativeCategory> + <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass unit="kg">15400.0</TechnicalPermissibleMaximumLadenMass> + <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <SumNetPower unit="W">350000</SumNetPower> <Technology>Fuel cell vehicle</Technology> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml index c05751b10f15f84dea6532b141d717b2ff5ff9cf..03a7ba470d4845c7a936b8606794c981b02e3cc6 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml index 8c6780476508c0f76b89a2e62393c83ef4de4dd5..da9f3c666adc260d549935a7f87d7f40095e310b 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -78,7 +78,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -86,7 +86,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -140,7 +140,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -155,7 +155,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -166,7 +166,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -178,7 +178,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -265,7 +265,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -317,7 +317,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -328,10 +328,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -342,10 +341,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -356,10 +354,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -370,10 +367,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -384,10 +380,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -398,10 +393,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -412,10 +406,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -426,10 +419,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -440,10 +432,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -454,10 +445,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -468,10 +458,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -482,10 +471,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -496,10 +484,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -510,10 +497,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -524,10 +510,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -538,10 +523,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -552,10 +536,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -566,10 +549,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -580,10 +562,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -594,10 +575,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -608,10 +588,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -622,7 +601,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -631,7 +609,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -644,7 +622,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml index 558a14bba8d743e37f34a892a94fdda477847069..7a5e4c74001178c92f737ae70cb27ece6947e123 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml index d2173a5bc555e4de2827baa3faf7846cb2124cdc..bf29b3f750dd84fade436eae75488f8d47777942 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml index 3cd8d425981460fc1397bc5ecb452f45ba95ce34..e25c4ac5ecfa29afe750a0c3dd4a85dd6bd51514 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml index cc86208f242838f8e4feb89f6cb8528cd9f2a2f1..01aece6ca7db482c73c394147c344a1bcd95c9d9 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml index bc03e50212bc45a042ed350c8635eca6d5660368..ee349909db66391ee95f497152561b5a666fc59a 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels > - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml index a0f342417a135fab931debfea70a34f36f004f4b..c45a370997de9a7bacbf8dca78ea15c3acab4ca5 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml index 841720ef6ac519c3a045f5b27c454b876cf682a4..2776075bc28f99828e8f0450da7a4e7c95f15d13 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml @@ -8,9 +8,9 @@ xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> <PrimaryVehicle> <Data id="VEH-622a60d3b3cf4340a362" xsi:type="PrimaryVehicleDataType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -35,9 +35,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <v2.0:Entry gear="1" maxTorque="2500" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" /> <v2.0:Entry gear="12" maxTorque="1900" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" /> </vif0.1:TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -48,9 +48,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>380000</RatedPower> <MaxEngineTorque>2400</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>false</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>false</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>560</IdlingSpeed> @@ -73,14 +73,14 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -134,7 +134,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -145,7 +145,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -205,7 +205,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -256,7 +256,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -267,10 +267,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">19.71467</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1104.84</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -281,10 +280,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">23.22512</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1301.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -295,10 +293,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">15.45965</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.38</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -309,10 +306,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">18.39275</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1030.76</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -323,10 +319,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">13.17582</EnergyConsumption> </Fuel> - <CO2 unit="g/km">738.40</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -337,10 +332,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">16.00192</EnergyConsumption> </Fuel> - <CO2 unit="g/km">896.77</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13050.44</TotalVehicleMass> @@ -351,10 +345,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">11.11672</EnergyConsumption> </Fuel> - <CO2 unit="g/km">623.00</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass> @@ -365,10 +358,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">12.34809</EnergyConsumption> </Fuel> - <CO2 unit="g/km">692.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -379,10 +371,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1160.65</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -393,10 +384,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">24.68655</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1383.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -407,10 +397,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">16.25928</EnergyConsumption> </Fuel> - <CO2 unit="g/km">911.20</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -421,10 +410,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">19.58479</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1097.56</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -435,10 +423,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">13.83088</EnergyConsumption> </Fuel> - <CO2 unit="g/km">775.11</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -449,10 +436,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">17.02489</EnergyConsumption> </Fuel> - <CO2 unit="g/km">954.10</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass> @@ -463,10 +449,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">11.30640</EnergyConsumption> </Fuel> - <CO2 unit="g/km">633.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass> @@ -477,10 +462,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">12.56427</EnergyConsumption> </Fuel> - <CO2 unit="g/km">704.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass> @@ -491,10 +475,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">8.73159</EnergyConsumption> </Fuel> - <CO2 unit="g/km">489.33</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass> @@ -505,10 +488,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">9.18847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">514.94</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass> @@ -519,10 +501,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">11.67569</EnergyConsumption> </Fuel> - <CO2 unit="g/km">654.33</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass> @@ -533,10 +514,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">13.23582</EnergyConsumption> </Fuel> - <CO2 unit="g/km">741.76</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass> @@ -547,10 +527,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">9.18672</EnergyConsumption> </Fuel> - <CO2 unit="g/km">514.84</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass> @@ -561,7 +540,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="NG CI"> <EnergyConsumption unit="MJ/km">9.74629</EnergyConsumption> </Fuel> - <CO2 unit="g/km">546.20</CO2> </Result> </Results> <ApplicationInformation> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml index 7aa3d38fbe6ce4acce962eb218d79a371baa8214..1f414754425db20bbb8efe1ba985a16cd986e8e2 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -330,7 +330,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -341,10 +341,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -355,10 +354,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -369,10 +367,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -383,10 +380,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -397,10 +393,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -411,10 +406,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -425,10 +419,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -439,10 +432,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -453,10 +445,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -467,10 +458,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -481,10 +471,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -495,10 +484,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -509,10 +497,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -523,10 +510,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -537,10 +523,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -551,10 +536,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -565,10 +549,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -579,10 +562,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -593,10 +575,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -607,10 +588,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -621,10 +601,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -635,7 +614,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -644,7 +622,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml index 22f99e3cd63fed7b699ae186af47573cc3bca2cf..d34bfcf00384e5d81586bc65709d98361b4b099e 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml @@ -10,9 +10,9 @@ xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -38,9 +38,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -51,9 +51,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -76,7 +76,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -84,7 +84,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -138,7 +138,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -153,7 +153,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -164,7 +164,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -176,7 +176,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -263,7 +263,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -315,7 +315,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -326,10 +326,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -340,10 +339,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -354,10 +352,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -368,10 +365,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -382,10 +378,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -396,10 +391,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -410,10 +404,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -424,10 +417,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -438,10 +430,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -452,10 +443,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -466,10 +456,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -480,10 +469,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -494,10 +482,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -508,10 +495,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -522,10 +508,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -536,10 +521,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -550,10 +534,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -564,10 +547,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -578,10 +560,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -592,10 +573,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -606,10 +586,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -620,7 +599,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -629,7 +607,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -642,7 +620,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml index 53e56e8b8f3823973131160dd4869fb092641255..6f9fd5e8818736df9c407402c4bc1ca44a7ad4ec 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -38,9 +38,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="6" maxTorque="1800"/> <tcl:Entry gear="1" maxTorque="2500"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Generic primary bus 41 Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -51,9 +51,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>220000</RatedPower> <MaxEngineTorque>1100</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>false</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>false</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>700</IdlingSpeed> @@ -78,14 +78,14 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>AT 6 Gear</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>APT-S</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>3.364</Ratio> <MaxTorque>1900</MaxTorque> @@ -116,7 +116,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic primary bus 41 AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -127,7 +127,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -187,7 +187,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -250,7 +250,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -261,10 +261,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1520.18</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -275,10 +274,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1828.60</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -289,10 +287,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1241.44</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -303,10 +300,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1493.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass> @@ -317,10 +313,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1102.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass> @@ -331,10 +326,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1330.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> @@ -345,10 +339,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">12.90679</EnergyConsumption> </Fuel> - <CO2 unit="g/km">946.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> + <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass> @@ -359,10 +352,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.61</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -373,10 +365,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1599.38</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -387,10 +378,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1949.71</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -401,10 +391,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1306.47</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -415,10 +404,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1590.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass> @@ -429,10 +417,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1154.46</CO2> </Result> <Result status="success"> - <VehicleGroup>P31DD</VehicleGroup> + <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass> @@ -443,10 +430,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1405.77</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass> @@ -457,10 +443,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> </Fuel> - <CO2 unit="g/km">967.41</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass> @@ -471,10 +456,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1066.11</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass> @@ -485,10 +469,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> </Fuel> - <CO2 unit="g/km">816.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> + <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass> @@ -499,10 +482,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> </Fuel> - <CO2 unit="g/km">849.31</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass> @@ -513,10 +495,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> </Fuel> - <CO2 unit="g/km">998.54</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass> @@ -527,10 +508,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1115.67</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass> @@ -541,10 +521,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> </Fuel> - <CO2 unit="g/km">851.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> + <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass> @@ -555,7 +534,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> </Fuel> - <CO2 unit="g/km">890.63</CO2> </Result> </Results> <ApplicationInformation> @@ -564,7 +542,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -577,7 +555,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml index 586c608eb4d46140fe6ad025fb6556f327cc33fb..f6f605cabb6941f10b77e5f3e55d13fbd209db68 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels> - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d11aff76c5d149948046"> + <di:Reference URI="#VIF-d11aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml index 092cda1172d7539b1006774b00db7c48380b08d5..bdfe494846eeac09700d147f84b6757967d23586 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml @@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Vehicle xsi:type="ConventionalVehicleVIFType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> @@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <tcl:Entry gear="1" maxTorque="2500"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> + <Components xsi:type="Vehicle_Conventional_ComponentsVIFType"> <Engine> - <Data xsi:type="EngineDataPIFType"> + <Data xsi:type="EngineDataVIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> @@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <RatedPower>325032</RatedPower> <MaxEngineTorque>2134</MaxEngineTorque> <WHRType> - <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE> - <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain> - <v2.3:ElectricalOutput>true</v2.3:ElectricalOutput> + <MechanicalOutputICE>false</MechanicalOutputICE> + <MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain> + <ElectricalOutput>true</ElectricalOutput> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> @@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Engine> <Transmission> - <Data xsi:type="TransmissionDataPIFType"> + <Data xsi:type="TransmissionDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> @@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> + <Gears xsi:type="TransmissionGearsVIFType"> <Gear number="1"> <Ratio>14.930</Ratio> <MaxTorque>1900</MaxTorque> @@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Transmission> <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> + <Data xsi:type="TorqueConverterDataVIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </TorqueConverter> <Angledrive> - <Data xsi:type="AngledriveDataPIFType"> + <Data xsi:type="AngledriveDataVIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Angledrive> <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> + <Data xsi:type="AxlegearDataVIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> @@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </Axlegear> <AxleWheels > - <Data xsi:type="AxleWheelsDataPIFType"> + <Data xsi:type="AxleWheelsDataVIFType"> <Axles> <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType"> <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType> @@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </Data> </AxleWheels> <Auxiliaries> - <Data xsi:type="AuxiliaryDataPIFType"> + <Data xsi:type="AUX_Conventional_PrimaryBusType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> @@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Results> <Status>success</Status> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1555.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1862.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1227.15</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1483.80</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> @@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1051.58</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> @@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1290.13</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> @@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption> </Fuel> - <CO2 unit="g/km">866.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> + <PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> @@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption> </Fuel> - <CO2 unit="g/km">970.73</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1665.49</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption> </Fuel> - <CO2 unit="g/km">2049.48</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1312.66</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1630.09</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> @@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1120.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P33DD</VehicleGroup> + <PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> @@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1411.95</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> @@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> @@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption> </Fuel> - <CO2 unit="g/km">976.63</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> @@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption> </Fuel> - <CO2 unit="g/km">639.08</CO2> </Result> <Result status="success"> - <VehicleGroup>P34SD</VehicleGroup> + <PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> @@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption> </Fuel> - <CO2 unit="g/km">674.57</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> @@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> @@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption> </Fuel> - <CO2 unit="g/km">1141.12</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> @@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption> </Fuel> - <CO2 unit="g/km">720.51</CO2> </Result> <Result status="success"> - <VehicleGroup>P34DD</VehicleGroup> + <PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> @@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> - <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> @@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </ApplicationInformation> </Data> <Signature> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> @@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <ManufacturingStep stepCount="2"> <Data xsi:type="BusManufacturingStepDataType" id="MSTG-1"> <HashPreviousStep> - <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Reference URI="#VIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> diff --git a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs index cad4740bce7fa4013c6d113f12092b17a5cd1271..091e324a1e09109e93265558ebe4281de85a5613 100644 --- a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs +++ b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs @@ -22,7 +22,7 @@ namespace TUGraz.VectoCore.Tests.Utils var vifDataProvider = xmlInputReader.Create(completedJson.PrimaryInputDataFile); var completeDataProvider = xmlInputReader.CreateDeclaration(completedJson.CompletedInputDataFile); var inputDataAsm = new XMLDeclarationVIFInputData( - vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); + vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); var filename = Guid.NewGuid().ToString().Substring(0, 20); var writerAsm = new FileOutputVIFWriter(filename, 0); @@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Tests.Utils var completedVif = xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(CreateCompletedVifXML(completedJson, xmlInputReader)))); - return new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null); + return new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null); } } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs index 8179c07f6e34a3bd7334bb93c7df0674c1a88428..6c78f97dc72c0cacf8cce1d10b1d18945c09dfdc 100644 --- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs +++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs @@ -72,6 +72,7 @@ namespace TUGraz.VectoCore.Tests.Utils public ArchitectureID ArchitectureID { get; } public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } #endregion diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs index 89cb4aa357f7538fa59d723c3af9793f7f735d98..171980a2aa031c888d275bcabce7b982b339b86d 100644 --- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs +++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs @@ -301,6 +301,7 @@ namespace TUGraz.VectoCore.Tests.Utils public ArchitectureID ArchitectureID { get; } public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } public IVehicleComponentsDeclaration Components { get; set; } public XmlNode XMLSource { get; } } diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs index d5502a5023b79e6cc793b1c65d518ef7cb6c6bef..632be8b00f0bd4acae6ccb16ad0da3e95c8512bc 100644 --- a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs +++ b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs @@ -117,5 +117,6 @@ namespace TUGraz.VectoCore.Tests.Utils public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 7a061b24fd070044491f1af68d5cef93bdc5f7e8..46de90a322530f97057969368805da66f716eed6 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -4,14 +4,20 @@ <AssemblyName>VectoCoreTest</AssemblyName> <TargetFrameworks>net6.0</TargetFrameworks> <DefineConstants /> + <Configurations>Debug;Release;MockupDebug</Configurations> </PropertyGroup> - + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')"> + <DefineConstants>$(DefineConstants);MOCKUP</DefineConstants> + </PropertyGroup> <ItemGroup> <PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> - <PackageReference Include="Ninject" Version="3.3.3" /> + <PackageReference Include="Ninject" Version="3.3.6" /> <PackageReference Include="NLog" Version="4.7.13" /> </ItemGroup> @@ -25,10 +31,19 @@ </ItemGroup> <ItemGroup> - <Reference Include="System.Windows.Forms"> - <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Windows.Forms.dll</HintPath> - </Reference> - <Reference Include="System.Windows.Forms.DataVisualization" /> + <None Update="TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> </ItemGroup> + <Choose> + <When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
 $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))"> + <ItemGroup> + <ProjectReference Include="$(SolutionDir)\VectoMockup\VectoMockup\VectoMockup.csproj" /> + </ItemGroup> + <!--<PropertyGroup> + <DefineConstants>MOCKUP</DefineConstants> + </PropertyGroup>--> + </When> + </Choose> </Project> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..b0f4fb20ad0b2c6b832339cb4ee7d739b8eb719e --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Tests.XML.Reports +{ + [TestFixture] + internal class CustomerInformationFileWriterTest : MRF_CIF_WriterTestBase + { + private IXMLCustomerReport GetCustomerReport(string fileName, + out IDeclarationInputDataProvider dataProvider) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + dataProvider = _xmlReader.CreateDeclaration(fileName); + + var arch = dataProvider.JobInputData.Vehicle.ArchitectureID; + + dataProvider.JobInputData.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px + var ihpc = (dataProvider.JobInputData.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric => + electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (dataProvider.JobInputData.Vehicle.Components?.IEPC != null); + var report = _cifFactory.GetCustomerReport( + dataProvider.JobInputData.Vehicle.VehicleCategory, + dataProvider.JobInputData.JobType, + dataProvider.JobInputData.Vehicle.ArchitectureID, + dataProvider.JobInputData.Vehicle.ExemptedVehicle, + iepc, + ihpc); + return report; + } + + private IXMLCustomerReport GetCompletedBusCustomerReport(string fileName, + out IMultistepBusInputDataProvider dataProvider) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + var tmp = _xmlReader.CreateDeclaration(fileName); + dataProvider = tmp as IMultistepBusInputDataProvider; + + var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID; + + dataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px + var ihpc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric => + electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components?.IEPC != null); + var report = _cifFactory.GetCustomerReport( + dataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + dataProvider.JobInputData.JobType, + arch, + dataProvider.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle, + iepc, + ihpc); + return report; + } + + + [TestCase(ConventionalHeavyLorry)] + public void ConventionalLorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as ConventionalLorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_Px_HeavyLorry)] + public void HEV_Px_IHPC_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as HEV_PxLorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_S2_HeavyLorry)] + public void HEV_S2_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S2_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + [TestCase(HEV_S3_HeavyLorry)] + public void HEV_S3_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S3_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + + [TestCase(HEV_S4_HeavyLorry)] + public void HEV_S4_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S4_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_IEPC_S_HeavyLorry)] + public void HEV_IEPC_S_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as HEV_IEPC_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E2_HeavyLorry)] + public void PEV_E2_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E2_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E3_HeavyLorry)] + public void PEV_E3_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E3_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + [TestCase(PEV_E4_HeavyLorry)] + public void PEV_E4_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E4_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + [TestCase(PEV_IEPC_HeavyLorry)] + public void PEV_IEPC_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as PEV_IEPC_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(Exempted_HeavyLorry)] + public void Exempted_LorryCIFTest(string fileName) + { + var report = GetCustomerReport(fileName, out var dataProvider) as Exempted_Lorry_CIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + + [TestCase(Conventional_CompletedBus)] + public void Conventional_CompletedBus_CIFTest(string fileName) + { + var report = GetCompletedBusCustomerReport(fileName, out var dataProvider) as Conventional_CompletedBusCIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + + [TestCase(Exempted_CompletedBus)] + public void Exempted_CompletedBus_CIFTest(string fileName) + { + var report = GetCompletedBusCustomerReport(fileName, out var dataProvider) as Exempted_CompletedBusCIF; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"))); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + } +} diff --git a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..ffa9c7cd011b51c1342a6854f21d8d224f829061 --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs @@ -0,0 +1,550 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Schema; +using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.DataCollection; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Tests.Integration.CompletedBus; +using TUGraz.VectoCore.Tests.Models.Simulation; +using TUGraz.VectoCore.Utils; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace TUGraz.VectoCore.Tests.XML.Reports +{ + + + public class MRF_CIF_WriterTestBase + { + protected string outputBasePath; //@"C:\Users\Harry\source\vecto\mrf_report_0_9"; + protected ISimulatorFactory _simulatorFactory; + protected IOutputDataWriter _outputWriter; + protected StandardKernel _kernel; + protected IXMLInputDataReader _xmlReader; + protected IManufacturerReportFactory _mrfFactory; + protected ICustomerInformationFileFactory _cifFactory; + + protected const string ConventionalHeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\Conventional_heavyLorry_AMT.xml"; + protected const string HEV_Px_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px_IHPC.xml"; + protected const string HEV_S2_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml"; + protected const string HEV_S3_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3.xml"; + protected const string HEV_S4_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S4.xml"; + protected const string HEV_IEPC_S_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml"; + protected const string PEV_E2_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_AMT_E2.xml"; + protected const string PEV_E3_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E3.xml"; + protected const string PEV_E4_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E4.xml"; + protected const string PEV_IEPC_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\IEPC_heavyLorry.xml"; + + protected const string Exempted_HeavyLorry = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_heavyLorry.xml"; + + protected const string Conventional_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT.xml"; + protected const string HEV_Px_IHPC_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV_primaryBus_AMT_Px.xml"; + protected const string HEV_S2_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_AMT_S2.xml"; + protected const string HEV_S3_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S3.xml"; + protected const string HEV_S4_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S4.xml"; + protected const string HEV_IEPC_S_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_IEPC-S.xml"; + protected const string PEV_E2_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_AMT_E2.xml"; + protected const string PEV_E3_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E3.xml"; + protected const string PEV_E4_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E4.xml"; + protected const string PEV_IEPC_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\IEPC_primaryBus.xml"; + + protected const string Exempted_PrimaryBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_primaryBus.xml"; + + + protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml"; + + protected const string Exempted_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\exempted_completed.VIF_Report_2.xml"; + //@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_completedBus_input_full.xml"; + + public static bool ValidateAndPrint(XDocument document, XmlDocumentType documentType) + { + var error = false; + + try { + var stream = new MemoryStream(); + var writer = new XmlTextWriter(stream, Encoding.UTF8); + document.WriteTo(writer); + writer.Flush(); + stream.Flush(); + stream.Seek(0, SeekOrigin.Begin); + var validator = new XMLValidator(new XmlTextReader(stream)); + error = !validator.ValidateXML(documentType); + if (error) { + TestContext.WriteLine(validator.ValidationError); + } + } finally { + TestContext.WriteLine(document); + } + return !error; + } + + public static void Validate(XDocument document, XmlDocumentType documentType) + { + var error = false; + + var stream = new MemoryStream(); + var writer = new XmlTextWriter(stream, Encoding.UTF8); + document.WriteTo(writer); + writer.Flush(); + stream.Flush(); + stream.Seek(0, SeekOrigin.Begin); + var validator = new XMLValidator(new XmlTextReader(stream)); + error = !validator.ValidateXML(documentType); + if (error) { + TestContext.WriteLine(validator.ValidationError); + Assert.Fail($"XML Validation failed {documentType}"); + } + } + + + protected bool WriteToDisk(string basePath, string fileName, XDocument xDocument) + { + TestContext.WriteLine($"{basePath},{fileName}"); + if (!fileName.EndsWith(".xml")) + { + fileName = fileName + ".xml"; + } + + if (!Directory.Exists(basePath)) { + Directory.CreateDirectory(basePath); + } + var destPath = Path.Combine(basePath, fileName); + using (var writer = new XmlTextWriter(destPath, Encoding.UTF8) { Formatting = Formatting.Indented }) + { + try + { + xDocument.WriteTo(writer); + } + catch (Exception ex) + { + TestContext.WriteLine(ex); + return false; + } + } + + return true; + } + + [OneTimeSetUp] + public void OneTimeSetup() + { + _kernel = new StandardKernel( + new VectoNinjectModule() + ); + outputBasePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "XMLReports_0.9"); + } + + [SetUp] + public void SetUp() + { + //_outputWriter = new FileOutputWriter() + _xmlReader = _kernel.Get<IXMLInputDataReader>(); + _mrfFactory = _kernel.Get<IManufacturerReportFactory>(); + _cifFactory = _kernel.Get<ICustomerInformationFileFactory>(); + } + } + + + [TestFixture] + public class ManufacturerReportWriterTest : MRF_CIF_WriterTestBase + { + + + private IXMLManufacturerReport GetReport(string fileName, + out IDeclarationInputDataProvider dataProvider) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + dataProvider = _xmlReader.CreateDeclaration(fileName); + + + dataProvider.JobInputData.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px + var ihpc = (dataProvider.JobInputData.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric => + electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (dataProvider.JobInputData.Vehicle.Components?.IEPC != null); + var report = _mrfFactory.GetManufacturerReport( + dataProvider.JobInputData.Vehicle.VehicleCategory, + dataProvider.JobInputData.JobType, + dataProvider.JobInputData.Vehicle.ArchitectureID, + dataProvider.JobInputData.Vehicle.ExemptedVehicle, + iepc, + ihpc); + return report; + } + + private IXMLManufacturerReport GetCompletedBusReport(string fileName, + out IMultistepBusInputDataProvider dataProvider) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + dataProvider = _xmlReader.CreateDeclaration(fileName) as IMultistepBusInputDataProvider; + Assert.NotNull(dataProvider); + var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID; + + dataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleCategory.GetVehicleType();// HEV/PEV - Sx/Px + + + var ihpc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.IEPC != null); + var report = _mrfFactory.GetManufacturerReport( + dataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + dataProvider.JobInputData.JobType, + dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID, + dataProvider.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle, + iepc, + ihpc); + return report; + } + + + + [TestCase(ConventionalHeavyLorry)] + public async Task ConventionalLorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as ConventionalLorryManufacturerReport; + + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_Px_HeavyLorry)] + public async Task HEV_Px_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_Px_IHPC_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_S2_HeavyLorry)] + public async Task HEV_S2_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S2_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_S3_HeavyLorry)] + public async Task HEV_S3_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S3_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_S4_HeavyLorry)] + public async Task HEV_S4_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S4_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_IEPC_S_HeavyLorry)] + public async Task HEV_IEPC_S_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_IEPC_S_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E2_HeavyLorry)] + public async Task PEV_E2_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_E2_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E3_HeavyLorry)] + public async Task PEV_E3_LorryMRFTest(string fileName) + { + + var report = GetReport(fileName, out var dataProvider) as PEV_E3_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E4_HeavyLorry)] + public async Task PEV_E4_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_E4_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_IEPC_HeavyLorry)] + public async Task PEV_IEPC_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_IEPC_LorryManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(Exempted_HeavyLorry, TestName="ExemptedHeavyLorry_MRF")] + public void Exempted_LorryMRFTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider); + Assert.NotNull(report as Exempted_LorryManufacturerReport); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + [TestCase(Conventional_PrimaryBus)] + public void ConventionalPrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as Conventional_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_Px_IHPC_PrimaryBus)] + public void HEV_Px_IHPC_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_Px_IHPC_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + + + [TestCase(HEV_S2_PrimaryBus)] + public void HEV_S2_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S2_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + [TestCase(HEV_S3_PrimaryBus)] + public void HEV_S3_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S3_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_S4_PrimaryBus)] + public void HEV_S4_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_S4_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(HEV_IEPC_S_PrimaryBus)] + public void HEV_IEPC_S_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as HEV_IEPC_S_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + + [TestCase(PEV_E2_PrimaryBus)] + public void PEV_E2_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_E2_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + [TestCase(PEV_E3_PrimaryBus)] + public void PEV_E3_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_E3_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(PEV_E4_PrimaryBus)] + public void PEV_E4_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_E4_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + + [TestCase(PEV_IEPC_PrimaryBus)] + public void PEV_IEPC_PrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as PEV_IEPC_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(Exempted_PrimaryBus)] + public void ExemptedPrimaryBusTest(string fileName) + { + var report = GetReport(fileName, out var dataProvider) as Exempted_PrimaryBus_ManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [TestCase(Conventional_CompletedBus)] + public void Conventional_CompletedBusTest(string fileName) + { + var report = GetCompletedBusReport(fileName, out var dataProvider) as Conventional_CompletedBusManufacturerReport; + Assert.NotNull(report); + report.InitializeVehicleData(dataProvider); + report.GenerateReport(); + + Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport)); + Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report)); + } + + [Ignore("No testfile")] + [TestCase("")] + public void HEV_CompletedBusTest(string fileName) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + + } + [Ignore("No testfile")] + [TestCase("")] + public void PEV_CompletedBusTest(string fileName) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + } + + [Ignore("No testfile")] + [TestCase("")] + public void Exempted_CompletedBusTest(string fileName) + { + Assert.IsFalse(string.IsNullOrEmpty(fileName)); + } + + } +} diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs index cdc154af1079b570121439b6310a50f9c5ed26d6..5943588c1f1922db0a42874bdf3e052f8ed02c04 100644 --- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs @@ -692,7 +692,7 @@ namespace TUGraz.VectoCore.Tests.XML //angledrivelosses.ReplaceSelf(new XElement(XMLNames.AngleDrive_Efficiency, "0.9124").ToString()); aux.InnerXml = new XElement(XMLNames.Auxiliaries_Auxiliary, new XAttribute(XMLNames.Auxiliaries_Auxiliary_ID_Attr, "const"), - new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "type", "AuxiliaryEntryEngineeringType"), + new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + XMLNames.XSIType, "AuxiliaryEntryEngineeringType"), new XElement(XMLNames.Auxiliaries_Auxiliary_ConstantAuxLoad, "5000")).ToString(); //var modified = XmlReader.Create(new StringReader(nav.OuterXml)); diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs index e0c0068ab735dfe618f1eb956f8fb43a9f20696d..65d45abfca0c2c90dfdd174cdf5aa0dc8e15cba9 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs @@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestConsolidateMultistageVehicle() { var reader = XmlReader.Create(_consolidatedInputData); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); TestConsolidateManufacturingStage(inputDataProvider.JobInputData.ConsolidateManufacturingStage); } @@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestPrimaryOnlyConsolidateMultistageVehicle() { var reader = XmlReader.Create(_primaryOnlyInputData); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages); //The consolidated ManufacturingStage is now always created, and can hold some values from the primary vehicle (i.e. TPMLM) @@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestOneStageConsolidateMultistageVehicle() { var reader = XmlReader.Create(_oneStageInputData); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); @@ -161,7 +161,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestTwoStagesConsolidateMultistageVehicle() { var reader = XmlReader.Create(_twoStagesInputData); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle; @@ -202,7 +202,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestConsolidateMultistageAirdrag() { var reader = XmlReader.Create(_consolidatedInputDataAirdrag); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; Assert.NotNull(hvaux); @@ -221,7 +221,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestConsolidateMultistageHeatPump() { var reader = XmlReader.Create(_consolidatedInputDataHeatPump); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; Assert.NotNull(hvaux); @@ -238,7 +238,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestConsolidateMultistageHeatHev() { var reader = XmlReader.Create(_consolidatedInputDataHeatHev); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; Assert.NotNull(hvaux); @@ -255,7 +255,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestConsolidateMultistageHeatNgTankSystem() { var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; Assert.NotNull(hvaux); diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs index e6f64bb85b0d4ca7add6630ec87f1193ace9140e..1207efe1f950bf47a86536db865420232bdd454d 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs @@ -42,7 +42,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestVehicleMultistageBusInput01() { var reader = XmlReader.Create(VIF01); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle); TestManufacturingStages(inputDataProvider.JobInputData.ManufacturingStages); } @@ -508,7 +508,7 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(totalMass.SI<Kilogram>(), result.SimulationParameter.TotalVehicleMass); Assert.AreEqual(payload.SI<Kilogram>(), result.SimulationParameter.Payload); Assert.AreEqual(passenger, result.SimulationParameter.PassengerCount); - Assert.AreEqual(fuelMode, result.SimulationParameter.FuelMode); + //Assert.AreEqual(fuelMode, result.SimulationParameter.FuelMode); index++; } @@ -670,7 +670,7 @@ namespace TUGraz.VectoCore.Tests.XML public void TestVehicleMultistageBusInput02() { var reader = XmlReader.Create(VIF02); - var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider; TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle); TestManufacturingStageVIF02(inputDataProvider.JobInputData.ManufacturingStages); } diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp index 2e53f15050d98a712aeca380bbe208a6e7e2cdb9..a58a883006e9defa8c30efc46df520bbb5d0768d 100644 --- a/VectoCore/VectoXML.spp +++ b/VectoCore/VectoXML.spp @@ -154,6 +154,29 @@ <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_full.xml" HomeFolder="Yes"/> <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_mandatory.xml" HomeFolder="Yes"/> </Folder> + <Folder FolderName="MockupResults"> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_Conv_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_PEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Conv_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Error.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_PEV_Lorry.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/> + <File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/> + </Folder> </Folder> <Folder FolderName="XML Files Vecto Testcases"> <Folder FolderName="SchemaVersion2.4" ExtStr=".xml"> @@ -551,6 +574,7 @@ <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.8.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputDefinitions.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.5.xsd" HomeFolder="Yes"/> @@ -558,6 +582,7 @@ <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.8.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VTPReport.0.1.xsd" HomeFolder="Yes"/> diff --git a/VectoMockup/VectoMockup/MockupModalDataContainer.cs b/VectoMockup/VectoMockup/MockupModalDataContainer.cs new file mode 100644 index 0000000000000000000000000000000000000000..c5ddedd060b2972d1097bbf27746368bb0c35f82 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupModalDataContainer.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections.Generic; +using System.Data; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoMockup +{ + + //public void Run() + //{ + // if (!FoundPreviousResults) + // { + // (GetContainer().ModalData as ModalDataContainer).ModalDataContainerFinished += DummyRun_ModalDataContainerFinished; + // _run.Run(); + // } + // else + // { + // //TODO HM + // Log.Warn($"[DEV ONLY!] Using mod data: {_dummyFilePath}"); + + // var modDataContainer = GetContainer().ModalData as ModalDataContainer; + // modDataContainer.ReadDataFromXml(_dummyFilePath); + // modDataContainer.Finish(VectoRun.Status.Success); + // } + + + //} + + //private void DummyRun_ModalDataContainerFinished(object sender, ModalDataContainer.ModalDataContainerFinishedEventArgs e) + //{ + // if (FinishedWithoutErrors) + // { + // e.DataOnFinish.WriteXml(_dummyFilePath, false); + // Log.Warn($"[DEV ONLY!] Data written to {_dummyFilePath}:"); + // } + //} + internal class MockupModalDataContainer : IModalDataContainer + { + private IModalDataContainer _modalDataContainerImplementation; + private readonly Action<IModalDataContainer> _addReportResult; + + public MockupModalDataContainer(IModalDataContainer modalDataContainer, + Action<IModalDataContainer> addReportResult) + { + _modalDataContainerImplementation = modalDataContainer; + _addReportResult = addReportResult; + + } + + #region MockupImplementation + + public Second Duration => 1.SI(Unit.SI.Hour).Cast<Second>(); + public Meter Distance => 100.SI(Unit.SI.Kilo.Meter).Cast<Meter>(); + + + #endregion + + + #region Implementation of IModalDataContainer + + public object this[ModalResultField key] + { + get => _modalDataContainerImplementation[key]; + set => _modalDataContainerImplementation[key] = value; + } + + public object this[ModalResultField key, IFuelProperties fuel] + { + get => _modalDataContainerImplementation[key, fuel]; + set => _modalDataContainerImplementation[key, fuel] = value; + } + + public object this[ModalResultField key, PowertrainPosition pos] + { + get => _modalDataContainerImplementation[key, pos]; + set => _modalDataContainerImplementation[key, pos] = value; + } + + public object this[ModalResultField key, int? pos] + { + get => _modalDataContainerImplementation[key, pos]; + set => _modalDataContainerImplementation[key, pos] = value; + } + + public object this[string auxId] + { + get => _modalDataContainerImplementation[auxId]; + set => _modalDataContainerImplementation[auxId] = value; + } + + public void CommitSimulationStep() + { + _modalDataContainerImplementation.CommitSimulationStep(); + } + + public IList<IFuelProperties> FuelData => _modalDataContainerImplementation.FuelData; + + public VectoRun.Status RunStatus => _modalDataContainerImplementation.RunStatus; + + public string Error => _modalDataContainerImplementation.Error; + + public string StackTrace => _modalDataContainerImplementation.StackTrace; + + public IEnumerable<T> GetValues<T>(ModalResultField key) + { + return _modalDataContainerImplementation.GetValues<T>(key); + } + + public IEnumerable<T> GetValues<T>(DataColumn col) + { + return _modalDataContainerImplementation.GetValues<T>(col); + } + + public IEnumerable<T> GetValues<T>(Func<DataRow, T> selectorFunc) + { + return _modalDataContainerImplementation.GetValues(selectorFunc); + } + + public Dictionary<string, DataColumn> Auxiliaries => _modalDataContainerImplementation.Auxiliaries; + + public T TimeIntegral<T>(ModalResultField field, Func<SI, bool> filter = null) where T : SIBase<T> + { + return _modalDataContainerImplementation.TimeIntegral<T>(field, filter); + } + + public T TimeIntegral<T>(string field, Func<SI, bool> filter = null) where T : SIBase<T> + { + return _modalDataContainerImplementation.TimeIntegral<T>(field, filter); + } + + public void SetDataValue(string fieldName, object value) + { + _modalDataContainerImplementation.SetDataValue(fieldName, value); + } + + public void AddAuxiliary(string id, string columnName = null) + { + _modalDataContainerImplementation.AddAuxiliary(id, columnName); + } + + public void Finish(VectoRun.Status runStatus, Exception exception = null) + { + _modalDataContainerImplementation.Finish(runStatus, exception); + if (_addReportResult != null) { + _addReportResult(this); + } + + } + + public void FinishSimulation() + { + _modalDataContainerImplementation.FinishSimulation(); + } + + public string GetColumnName(IFuelProperties fuelData, ModalResultField mrf) + { + return _modalDataContainerImplementation.GetColumnName(fuelData, mrf); + } + + public void Reset() + { + _modalDataContainerImplementation.Reset(); + } + + + + public Func<Second, Joule, Joule> AuxHeaterDemandCalc + { + get => _modalDataContainerImplementation.AuxHeaterDemandCalc; + set => _modalDataContainerImplementation.AuxHeaterDemandCalc = value; + } + + public KilogramPerWattSecond EngineLineCorrectionFactor(IFuelProperties fuel) + { + return _modalDataContainerImplementation.EngineLineCorrectionFactor(fuel); + } + + public void CalculateAggregateValues() + { + _modalDataContainerImplementation.CalculateAggregateValues(); + } + + public void AddElectricMotor(PowertrainPosition pos) + { + _modalDataContainerImplementation.AddElectricMotor(pos); + } + + public KilogramPerWattSecond VehicleLineSlope(IFuelProperties fuel) + { + return _modalDataContainerImplementation.VehicleLineSlope(fuel); + } + + public bool HasCombustionEngine => _modalDataContainerImplementation.HasCombustionEngine; + + public WattSecond TotalElectricMotorWorkDrive(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.TotalElectricMotorWorkDrive(emPos); + } + + public WattSecond TotalElectricMotorWorkRecuperate(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.TotalElectricMotorWorkRecuperate(emPos); + } + + public WattSecond TotalElectricMotorMotWorkDrive(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.TotalElectricMotorMotWorkDrive(emPos); + } + + public WattSecond TotalElectricMotorMotWorkRecuperate(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.TotalElectricMotorMotWorkRecuperate(emPos); + } + + public PerSecond ElectricMotorAverageSpeed(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorAverageSpeed(emPos); + } + + public double ElectricMotorEfficiencyDrive(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorEfficiencyDrive(emPos); + } + + public double ElectricMotorEfficiencyGenerate(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorEfficiencyGenerate(emPos); + } + + public double ElectricMotorMotEfficiencyDrive(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorMotEfficiencyDrive(emPos); + } + + public double ElectricMotorMotEfficiencyGenerate(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorMotEfficiencyGenerate(emPos); + } + + public WattSecond ElectricMotorOffLosses(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorOffLosses(emPos); + } + + public WattSecond ElectricMotorLosses(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorLosses(emPos); + } + + public WattSecond ElectricMotorMotLosses(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorMotLosses(emPos); + } + + public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos) + { + return _modalDataContainerImplementation.ElectricMotorTransmissionLosses(emPos); + } + + public double REESSStartSoC() + { + return _modalDataContainerImplementation.REESSStartSoC(); + } + + public double REESSEndSoC() + { + return _modalDataContainerImplementation.REESSEndSoC(); + } + + public WattSecond REESSLoss() + { + return _modalDataContainerImplementation.REESSLoss(); + } + + public ICorrectedModalData CorrectedModalData => _modalDataContainerImplementation.CorrectedModalData; + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/MockupResultReader.cs b/VectoMockup/VectoMockup/MockupResultReader.cs new file mode 100644 index 0000000000000000000000000000000000000000..4d235350a16ece3472c173742ea53a6fb6ecbd78 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResultReader.cs @@ -0,0 +1,306 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoMockup +{ + + + internal static class MockupResultReader + { + private enum ResultType + { + CIF, + MRF, + VIF + } + private static class MockupResultHelper + { + private static string _convArch = "Conv"; + private const string mockupResourcePrefix = "TUGraz.VectoMockup.MockupResults"; + + + private static HashSet<string> conventional = new HashSet<string>() { + //MRF + XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType, + + //CIF + XMLNames.CIF_OutputDataType_ConventionalLorryOutputType, + + + //VIF //TODO: seperate namespaces + "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1", + }; + + private static HashSet<string> hev = new HashSet<string>() { + //MRF + XMLNames.MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType, + //CIF + XMLNames.CIF_OutputDataType_HEV_S2_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_S3_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_S4_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_IEPC_S_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_Px_LorryOutputType, + }; + private static HashSet<string> pev = new HashSet<string>() { + //MRF + XMLNames.MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType, + + //CIF + XMLNames.CIF_OutputDataType_PEV_E2_LorryOutputType, + XMLNames.CIF_OutputDataType_PEV_E3_LorryOutputType, + XMLNames.CIF_OutputDataType_PEV_E4_LorryOutputType, + XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType + + }; + + public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type, VectoRunData runData) + { + + var resNames = Assembly.GetAssembly(typeof(MockupResultReader)).GetManifestResourceNames(); + //if (result.Status == VectoRun.Status.Success) { + var arch = GetArch(xmlName, runData); + var reportType = GetReportType(type); + var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry"; + return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml"; + //} + + throw new NotImplementedException("Error result not implemented\n"); + } + + private static object GetReportType(ResultType type) + { + switch (type) { + case ResultType.CIF: + return "CIF"; + case ResultType.MRF: + return "MRF"; + case ResultType.VIF: + return "VIF"; + default: + throw new ArgumentOutOfRangeException(nameof(type), type, null); + } + } + + private static string GetArch(string xmlName, VectoRunData runData) + { + bool ovc = false; + var jobType = VectoSimulationJobType.ConventionalVehicle; + if (runData.InputData is IXMLMultistageInputDataProvider mst) { + ovc = false; //TODO implement + jobType = mst.JobInputData.JobType; //runData.InputData.JobInputData.JobType; + } else { + ovc = runData.InputData.JobInputData.Vehicle.OvcHev; + jobType = runData.InputData.JobInputData.JobType; + } + + + if (jobType == VectoSimulationJobType.ConventionalVehicle) { + return "Conv"; + } + + if (jobType.IsOneOf(VectoSimulationJobType.ParallelHybridVehicle, VectoSimulationJobType.SerialHybridVehicle)) { + return ovc ? "OVC-HEV" : "non-OVC-HEV"; + } + + if (jobType.IsOneOf(VectoSimulationJobType.BatteryElectricVehicle)) { + return "PEV"; + } + + throw new VectoException($"{xmlName} not mapped to Architecture (Conv/HEV/PEV)"); + } + + + } + + public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData) + { + var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF, runData)); + ReplaceMission(result, resultElement); + ReplaceGroup(result, resultElement); + ReplacePayload(result, resultElement); + ReplaceFuelMode(result, resultElement); + SetFuels(result, resultElement); + ClearGearboxAndAxleGearEntries(result, resultElement, runData); + + return resultElement; + } + + + + public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData) + { + var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF, runData)); + resultElement.DescendantNodes().OfType<XComment>().Remove(); + ReplaceMission(result, resultElement); + SetFuels(result, resultElement); + + return resultElement; + } + + public static XElement GetVIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData) + { + var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.VIF, runData)); + resultElement.DescendantNodes().OfType<XComment>().Remove(); + ReplaceMission(result, resultElement); + ReplaceGroup(result, resultElement); + ReplacePayload(result, resultElement); + ReplaceFuelMode(result,resultElement); + SetFuels(result, resultElement); + + return resultElement; + } + + + + private static void ReplacePayload(XMLDeclarationReport.ResultEntry result, XElement resultElement) + { + if (result.Payload == null) { + return; + } + var payload = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_ResultEntry_Payload}']").ToList(); + if (!payload.Any()) { + return; + } + payload.ForEach(x => x.Value = result.Payload.ToXMLFormat()); + } + + private static void ReplaceGroup(XMLDeclarationReport.ResultEntry result, XElement resultElement) + { + var groupElement = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results_PrimaryVehicleSubgroup}']").ToList(); + if (!groupElement.Any()) { + return; + } + groupElement.ForEach(x => x.Value = result.VehicleClass.GetClassNumber()); + } + + private static void ReplaceFuelMode(XMLDeclarationReport.ResultEntry result, XElement resultElement) + { + var fuelMode = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Result_FuelMode}']"); + var fuelModeElement = fuelMode.FirstOrDefault(); + if (fuelModeElement != null) { + fuelModeElement.Value = result.FuelData.Count > 1 + ? XMLNames.Report_Result_FuelMode_Val_Dual + : XMLNames.Report_Result_FuelMode_Val_Single; + } + } + + + private static XElement GetResultElement(XName resultElementName, string resourceName) + { + var xDoc = XDocument.Load(ReadStream(resourceName)); + + var results = xDoc.XPathSelectElements($"//*[local-name()='{resultElementName.LocalName}']"); + var resultElement = results.First(); + resultElement.DescendantNodes().OfType<XComment>().Remove(); + return resultElement; + } + public static Stream ReadStream(string resourceName) + { + var assembly = Assembly.GetAssembly(typeof(MockupResultReader)); + var resource = assembly.GetManifestResourceStream(resourceName); + if (resource == null) + { + throw new VectoException("Resource file not found: " + resourceName); + } + return resource; + } + + + private static void ReplaceMission(XMLDeclarationReport.ResultEntry result, XElement resultElement) + { + var mission = resultElement.Elements() + .FirstOrDefault(x => x.Name.LocalName == XMLNames.Report_Result_Mission); + if (mission != null) { + mission.Value = result.Mission.ToXMLFormat(); + } + + } + + private static void SetFuels(XMLDeclarationReport.ResultEntry result, XElement resultElement) + { + //var tmpResultElement = new XElement(resultElement); + var fuelElements = resultElement.XPathSelectElements("//*[local-name()='Fuel']").ToList(); + foreach (var fuelElement in fuelElements) { + var insertPos = fuelElement.NextNode as XElement; + ; + foreach (var fuelProperties in result.FuelData) + { + var fuelElementToAdd = new XElement(fuelElement); //deep copy of fuel element; + fuelElementToAdd.SetAttributeValue(XMLNames.Report_Results_Fuel_Type_Attr, fuelProperties.FuelType.ToXMLFormat()); + ClearFuelConsumptionEntries(fuelProperties, fuelElementToAdd, result.VehicleClass); + if (insertPos == null) { + resultElement.Add(fuelElementToAdd); + } else { + insertPos.AddBeforeSelf(fuelElementToAdd); + } + } + fuelElement.Remove(); + } + } + + private static void ClearGearboxAndAxleGearEntries(XMLDeclarationReport.ResultEntry result, + XElement resultElement, VectoRunData runData) + { + var elementsToRemove = new List<XElement>(); + if (runData.GearboxData == null) { + //elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='GearshiftCount']")); + var gearshiftCount = resultElement.XPathSelectElement("//*[name()='GearshiftCount']"); + gearshiftCount.Value = "1"; + elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='AverageGearboxEfficiency']")); + } + + if (runData.AxleGearData == null) { + elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='AverageAxlegearEfficiency']")); + } + foreach (var xElement in elementsToRemove) { + xElement.Remove(); + } + } + + /// <summary> + /// Clears fuel consumption entries that are not used for a specified fueltype and vehicle class + /// </summary> + private static void ClearFuelConsumptionEntries(IFuelProperties fuelProperties, XElement fuelElement, + VehicleClass vehicleClass) + { + if(!(vehicleClass.IsHeavyLorry() || vehicleClass.IsMediumLorry())) + { + fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove(); + } + + if (fuelProperties.FuelDensity == null) { + //var test = fuelElement.XPathSelectElements("//*[@unit='l/m³-km']"); + fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove(); + fuelElement.XPathSelectElements("//*[@unit='l/t-km']").FirstOrDefault()?.Remove(); + fuelElement.XPathSelectElements("//*[@unit='l/100km']").FirstOrDefault()?.Remove(); + fuelElement.XPathSelectElements("//*[@unit='l/p-km']").FirstOrDefault()?.Remove(); + } + } + + + } +} diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..7d57378d89b10ea655c328c080fd9458989ab2d4 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- Conventional Bus --> + <Result status="success" xsi:type="ResultSuccessConventionalType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <MassPassengers unit="kg">2600</MassPassengers> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Total> + </Result> + <!-- Conventional Bus --> + <Summary xsi:type="ResultSummaryConventionalType"> + <AveragePassengerCount>3.141</AveragePassengerCount> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..f4a4d304c91d16afde3f5d261e69d240a615b05b --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- Conventional Lorry --> + <Result status="success" xsi:type="ResultSuccessConventionalType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Total> + </Result> + <!-- END Conventional Lorry --> + <Summary xsi:type="ResultSummaryConventionalType"> + <AveragePayload unit="t">3.141</AveragePayload> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b91ea62812809430c94fc095215ced25373a2fa --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- OCV HEV (and OCV FCV in future) Bus --> + <Result status="success" xsi:type="ResultSuccessOCVHEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <MassPassengers unit="kg">2600</MassPassengers> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <OCVMode type="charge depleting"> + <AverageSpeed unit="km/h">1.0</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">3.1</FuelConsumption> + <FuelConsumption unit="g/p-km">3.21</FuelConsumption> + <FuelConsumption unit="MJ/km">3.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">3.222</FuelConsumption> + <FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">3.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">4.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">4.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">5.1</CO2> + <CO2 unit="g/p-km">5.2</CO2> + </OCVMode> + <OCVMode type="charge sustaining"> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </OCVMode> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + <UtilityFactor>0.345</UtilityFactor> + </Total> + </Result> + <!-- END OCV HEV (and OCV FCV in future) Bus --> + <Summary xsi:type="ResultSummaryOCVHEVType"> + <AveragePassengerCount>3.141</AveragePassengerCount> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..db265ed79273d2cee5d05e5105c94799edce0264 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- OCV HEV (and OCV FCV in future) Lorry --> + <Result status="success" xsi:type="ResultSuccessOCVHEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <OCVMode type="charge depleting"> + <AverageSpeed unit="km/h">1.0</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">3.1</FuelConsumption> + <FuelConsumption unit="g/t-km">3.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">3.220</FuelConsumption> + <FuelConsumption unit="MJ/km">3.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">3.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">3.224</FuelConsumption> + <FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">3.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">3.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">4.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">4.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">5.1</CO2> + <CO2 unit="g/t-km">5.3</CO2> + <CO2 unit="g/m³-km">5.4</CO2> + </OCVMode> + <OCVMode type="charge sustaining"> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </OCVMode> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + <UtilityFactor>0.345</UtilityFactor> + </Total> + </Result> + <!-- END OCV HEV (and OCV FCV in future) Lorry --> + <Summary xsi:type="ResultSummaryOCVHEVType"> + <AveragePayload unit="t">3.141</AveragePayload> + <!-- repeat for every fuel used --> + <Fuel type="Diesel CI"> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0e57d9cbf8b2fc4ee2bfea4f3a305fadbcfba80 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- PEV Bus --> + <Result status="success" xsi:type="ResultSuccessPEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <MassPassengers unit="kg">2600</MassPassengers> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption> + </FC_ZEV_AuxHeater> + <CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 --> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </CO2_ZEV_AuxHeater><ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Total> + </Result> + <!-- END PEV Bus --> + <Summary xsi:type="ResultSummaryPEVType"> + <AveragePassengerCount>3.141</AveragePassengerCount> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption> + </FC_ZEV_AuxHeater> + <CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 --> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </CO2_ZEV_AuxHeater> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..f4a92ac09c793592149ab66be057dccacf50507a --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- PEV Lorry --> + <Result status="success" xsi:type="ResultSuccessPEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Total> + </Result> + <!-- END PEV Lorry --> + <Summary xsi:type="ResultSummaryPEVType"> + <AveragePayload unit="t">3.141</AveragePayload> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..337f5ef774c228c0217b3821988fb325e11c14cd --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- non-OCV HEV Bus --> + <Result status="success" xsi:type="ResultSuccessNonOCVHEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <MassPassengers unit="kg">2600</MassPassengers> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Total> + </Result> + <!-- END non-OCV HEV Bus --> + <Summary xsi:type="ResultSummaryNonOCVHEVType"> + <AveragePassengerCount>3.141</AveragePassengerCount> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b6c0a8ffbb92c40a9ef28fc3db700f07c587123 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- non-OCV HEV Lorry --> + <Result status="success" xsi:type="ResultSuccessNonOCVHEVType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Total> + </Result> + <!-- END non-OCV HEV Lorry --> + <Summary xsi:type="ResultSummaryNonOCVHEVType"> + <AveragePayload unit="t">3.141</AveragePayload> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Summary> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..89a9d9c2b623e46eef334767474337013e9a7095 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Bus --> + <Result status="success" xsi:type="ResultSuccessConventionalType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <PrimaryVehicleSubgroup>Pxx</PrimaryVehicleSubgroup> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Total> + </Result> + <!-- END ICE only, non-OCV HEV (and H2 only ICE in future) Bus --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..8cbd3114a6e2e1a75b6013804bdcfc7b0823e289 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry --> + <Result status="success" xsi:type="ResultSuccessConventionalType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- only for lorries--><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Total> + </Result> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml new file mode 100644 index 0000000000000000000000000000000000000000..8674b89b0326c30cd27b0ac8ffc019546ff0d955 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- All powertrain architectures and vehicle types --> + <Result status="error" xsi:type="ResultErrorType"> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <VehicleGroup>Pxx</VehicleGroup> + <Error>7 (LongHaul LowLoading) - absTime: 45.8061 [s], distance: 575.8976 [m], dt: 0.4990 [s], v: 23.6111 [m/s], Gear: 8 | AxleGear LossMap data was extrapolated in Declaration Mode: range for loss map is not sufficient: n:568.520042003599, torque:983.0149 [Nm]</Error> + <ErrorDetails> at TUGraz.VectoCore.Models.SimulationComponent.Impl.TransmissionComponent.DoCommitSimulationStep() in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\SimulationComponent\Impl\TransmissionComponent.cs:line 118 + at TUGraz.VectoCore.Models.SimulationComponent.VectoSimulationComponent.CommitSimulationStep(IModalDataContainer container) in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\SimulationComponent\VectoSimulationComponent.cs:line 67 + at TUGraz.VectoCore.Models.Simulation.Impl.VehicleContainer.CommitSimulationStep(Second time, Second simulationInterval) in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\Simulation\Impl\VehicleContainer.cs:line 331 + at TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run() in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\Simulation\Impl\VectoRun.cs:line 120</ErrorDetails> + </Result> + <!-- END All powertrain architectures and vehicle types --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..0b8151ad2b9eaf1341b8dd3db5d14a4130d7ef40 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- OCV HEV (and OCV FCV in future) Bus --> + <Result status="success" xsi:type="ResultSuccessOVCHEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <PrimaryVehicleSubgroup>Pxx</PrimaryVehicleSubgroup> + <OVCMode type="charge depleting"> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.0</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.1</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">3.1</FuelConsumption> + <FuelConsumption unit="g/p-km">3.21</FuelConsumption> + <FuelConsumption unit="MJ/km">3.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">3.222</FuelConsumption> + <FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">3.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">4.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">4.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">5.1</CO2> + <CO2 unit="g/p-km">5.2</CO2> + </OVCMode> + <OVCMode type="charge sustaining"> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.1</MaxSpeed> + <MaxDeceleration unit="m/s²">1.03</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.04</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.81</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.1</Min> + <Average unit="rpm">1000.1</Average> + <Max unit="rpm">2000.1</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.97</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.96</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </OVCMode> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + <UtilityFactor>0.345</UtilityFactor> + </Total> + </Result> + <!-- END OCV HEV (and OCV FCV in future) Bus --> + </Results> +</VectoMockResults> + diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..e3f1c79e9d37a53ab0faebdf701badf5f6a5ef9a --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- OCV HEV (and OCV FCV in future) Lorry --> + <Result status="success" xsi:type="ResultSuccessOVCHEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <OVCMode type="charge depleting"> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.0</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.1</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">3.1</FuelConsumption> + <FuelConsumption unit="g/t-km">3.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">3.220</FuelConsumption> + <FuelConsumption unit="MJ/km">3.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">3.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">3.224</FuelConsumption> + <FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">3.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">3.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">4.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">4.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">5.1</CO2> + <CO2 unit="g/t-km">5.3</CO2> + <CO2 unit="g/m³-km">5.4</CO2> + </OVCMode> + <OVCMode type="charge sustaining"> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.1</MaxSpeed> + <MaxDeceleration unit="m/s²">1.03</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.04</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.81</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.1</Min> + <Average unit="rpm">1000.1</Average> + <Max unit="rpm">2000.1</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.97</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.96</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </OVCMode> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption> + </ElectricEnergy> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + <UtilityFactor>0.345</UtilityFactor> + </Total> + </Result> + <!-- END OCV HEV (and OCV FCV in future) Lorry --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..fc1db115aed7bde74c3c0627a5f174aa8ac68721 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- PEV Bus --> + <Result status="success" xsi:type="ResultSuccessPEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <PrimaryVehicleSubgroup></PrimaryVehicleSubgroup> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount><!-- only if gearbox is present --> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency><!-- only if gearbox is present --> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency><!-- only if axlegear is present --> + </VehiclePerformance> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption> + </ElectricEnergy> + <FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption> + </FC_ZEV_AuxHeater> + <CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 --> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </CO2_ZEV_AuxHeater> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Total> + </Result> + <!-- END PEV Bus --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..7468105446333de20000758b526bf19df72b978c --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- PEV Lorry --> + <Result status="success" xsi:type="ResultSuccessPEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount><!-- only if gearbox is present --> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency><!-- only if gearbox is present --> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency><!-- only if axlegear is present --> + </VehiclePerformance> + <ElectricEnergy> + <EnergyConsumption unit="kWh/km">7.101</EnergyConsumption> + <EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption><!-- only for lorries --> + <EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption><!-- only for lorries --> + <EnergyConsumption unit="MJ/km">4.101</EnergyConsumption> + <EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption><!-- only for lorries --> + <EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption><!-- only for lorries --> + </ElectricEnergy> + <ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange> + <EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange> + <ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange> + </Total> + </Result> + <!-- END PEV Lorry --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..44dba2fad0d19dc8ee45e70b1fe4a80fce89c58c --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Bus --> + <Result status="success" xsi:type="ResultSuccessNonOCVHEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + <PassengerCount>13.75</PassengerCount> + </SimulationParameters> + <PrimaryVehicleSubgroup>Pxxx</PrimaryVehicleSubgroup> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/p-km">6.21</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/p-km">6.222</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/p-km">8.2</CO2> + </Total> + </Result> + <!-- END ICE only, non-OCV HEV (and H2 only ICE in future) Bus --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml new file mode 100644 index 0000000000000000000000000000000000000000..3294c2ec5e8ca2ab2a55a1e3bad65f81cf57c669 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd"> + <Results> + <Status>success</Status> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry --> + <Result status="success" xsi:type="ResultSuccessNonOCVHEVType"> + <Mission>Long Haul</Mission> + <Distance unit="km">100.185</Distance> + <SimulationParameters> + <TotalVehicleMass unit="kg">17200</TotalVehicleMass> + <Payload unit="kg">2600</Payload> + </SimulationParameters> + <Total> + <VehiclePerformance> + <AverageSpeed unit="km/h">1.2</AverageSpeed> + <AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed> + <MinSpeed unit="km/h">0.0</MinSpeed> + <MaxSpeed unit="km/h">100.0</MaxSpeed> + <MaxDeceleration unit="m/s²">1.01</MaxDeceleration> + <MaxAcceleration unit="m/s²">1.02</MaxAcceleration> + <FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage> + <GearshiftCount>42</GearshiftCount> + <EngineSpeedDriving> + <Min unit="rpm">600.0</Min> + <Average unit="rpm">1000.0</Average> + <Max unit="rpm">2000.0</Max> + </EngineSpeedDriving> + <AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency> + <AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency> + </VehiclePerformance> + <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <FuelConsumption unit="g/km">6.1</FuelConsumption> + <FuelConsumption unit="g/t-km">6.20</FuelConsumption> + <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> + <FuelConsumption unit="MJ/km">6.221</FuelConsumption> + <FuelConsumption unit="MJ/t-km">6.223</FuelConsumption> + <FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption> + <FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels --> + <FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- only for lorries--><!-- NOT for gaseous fuels --> + </Fuel> + <CO2 unit="g/km">8.1</CO2> + <CO2 unit="g/t-km">8.3</CO2> + <CO2 unit="g/m³-km">8.4</CO2> + </Total> + </Result> + <!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry --> + </Results> +</VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..afd621f890f029d84a17fab9d304234e7faa6d88 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" ?> +<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd"> + <Results> + <Status>success</Status> + <Result status="success"> + <PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15000</TotalVehicleMass> + <Payload unit="kg">15000</Payload> + <PassengerCount>2</PassengerCount> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </Fuel> + </Result> + </Results> +</vif:VectoMockResults> + + diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..6a33e6ef4186b047b65e48713a927e9cc9af3a81 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8" ?> +<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd"> + <Results> + <Status>success</Status> + <Result status="success"> + <PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15000</TotalVehicleMass> + <Payload unit="kg">15000</Payload> + <PassengerCount>2</PassengerCount> + </SimulationParameters> + <OVCMode type="charge depleting"> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </Fuel> + <ElectricEnergyConsumption> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </ElectricEnergyConsumption> + </OVCMode> + <OVCMode type="charge sustaining"> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </Fuel> + <ElectricEnergyConsumption> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </ElectricEnergyConsumption> + </OVCMode> + </Result> + </Results> +</vif:VectoMockResults> diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..c9ef9ec854f41ac123dafb336a18d33702157539 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd"> + <Results> + <Status>success</Status> + <Result status="success"> + <PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15000</TotalVehicleMass> + <Payload unit="kg">15000</Payload> + <PassengerCount>2</PassengerCount> + </SimulationParameters> + <ElectricEnergyConsumption> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </ElectricEnergyConsumption> + </Result> + </Results> +</vif:VectoMockResults> \ No newline at end of file diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml new file mode 100644 index 0000000000000000000000000000000000000000..998432fee874796d221fe50f8f0fcffb9f241ea5 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" ?> +<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd"> + <Results> + <Status>success</Status> + <Result status="success"> + <PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup> + <Mission>Long Haul</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15000</TotalVehicleMass> + <Payload unit="kg">15000</Payload> + <PassengerCount>2</PassengerCount> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </Fuel> + <ElectricEnergyConsumption> + <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption> + </ElectricEnergyConsumption> + </Result> + </Results> +</vif:VectoMockResults> diff --git a/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..4313770419fe3e795f334b74d8a3fc2a2181d004 --- /dev/null +++ b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace TUGraz.VectoMockup +{ + internal class MockupXMLInputDataFactory : XMLInputDataFactory + { + private const string prefix = "urn:tugraz:ivt:VectoAPI:"; + private readonly HashSet<string> _supportedNamespaces = new HashSet<string>() { + prefix + "DeclarationDefinitions:v2.4", + prefix + "VectoOutputMultistep:v0.1", + + }; + + #region Overrides of XMLInputDataFactory + + + protected override IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source) + { + var ret = base.ReadMultistageDeclarationJob(xmlDoc, source); + + return ret; + } + + protected override IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source) + { + throw new VectoException("Engineering Mode is not supported in Mockup Vecto"); + } + + protected override IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source) + { + var ret = base.ReadDeclarationJob(xmlDoc, source); + NamespaceSupported(ret.JobInputData.Vehicle.XMLSource.SchemaInfo.SchemaType.QualifiedName.Namespace); + return ret; + } + + private void NamespaceSupported(string ns) + { + if (!_supportedNamespaces.Contains(ns)) { + throw new VectoException($"Namespace {ns} not supported in Mockup Vecto!"); + } + } + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..80dc0573315abdb38d7c46e0f7c9b8963e40b676 --- /dev/null +++ b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs @@ -0,0 +1,309 @@ +using Ninject; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoMockup.Reports; + +namespace TUGraz.VectoMockup.Ninject +{ + // ReSharper disable once InconsistentNaming + public class CIFMockupModule : AbstractNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Kernel.Bind<ICustomerInformationFileFactory>().To<MockupCustomerInformationFileFactory>() + .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope(); + + } + + #endregion + } + + public class MockupCustomerInformationFileFactory : ICustomerInformationFileFactory + { + private readonly ICustomerInformationFileFactory _cifFactory; + + public MockupCustomerInformationFileFactory(ICustomerInformationFileFactory cifFactory) + { + _cifFactory = cifFactory; + } + + #region Implementation of ICustomerInformationFileFactory + + public IXMLCustomerReport GetCustomerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc) + { + return new MockupCustomerReport(_cifFactory.GetCustomerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted); + } + + public IXmlTypeWriter GetConventionalLorryVehicleType() + { + return _cifFactory.GetConventionalLorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_PxLorryVehicleType() + { + return _cifFactory.GetHEV_PxLorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S2_LorryVehicleType() + { + return _cifFactory.GetHEV_S2_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S3_LorryVehicleType() + { + return _cifFactory.GetHEV_S3_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S4_LorryVehicleType() + { + return _cifFactory.GetHEV_S4_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_IEPC_LorryVehicleType() + { + return _cifFactory.GetHEV_IEPC_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E2_LorryVehicleType() + { + return _cifFactory.GetPEV_E2_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E3_LorryVehicleType() + { + return _cifFactory.GetPEV_E3_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E4_LorryVehicleType() + { + return _cifFactory.GetPEV_E4_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_IEPC_LorryVehicleType() + { + return _cifFactory.GetPEV_IEPC_LorryVehicleType(); + } + + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _cifFactory.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + { + return _cifFactory.GetConventional_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_Px_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_Px_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_IHPC_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_IHPC_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S2_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_S2_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S3_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_S3_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S4_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_S4_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_IEPC_S_CompletedBusVehicleType() + { + return _cifFactory.GetHEV_IEPC_S_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E2_CompletedBusVehicleType() + { + return _cifFactory.GetPEV_E2_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E3_CompletedBusVehicleType() + { + return _cifFactory.GetPEV_E3_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E4_CompletedBusVehicleType() + { + return _cifFactory.GetPEV_E4_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_IEPC_CompletedBusVehicleType() + { + return _cifFactory.GetPEV_IEPC_CompletedBusVehicleType(); + } + + + public IXmlTypeWriter GetExemptedCompletedBusVehicleType() + { + return _cifFactory.GetExemptedCompletedBusVehicleType(); + } + + public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter() + { + return _cifFactory.GetGeneralVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter() + { + return _cifFactory.GetLorryGeneralVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter() + { + return _cifFactory.GetConventionalLorryVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetConventionalCompletedBusVehicleSequenceGroupWriter() + { + return _cifFactory.GetConventionalCompletedBusVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetEngineGroup() + { + return _cifFactory.GetEngineGroup(); + } + + public IReportOutputGroup GetTransmissionGroup() + { + return _cifFactory.GetTransmissionGroup(); + } + + public IReportOutputGroup GetTransmissionGroupNoGearbox() + { + return _cifFactory.GetTransmissionGroupNoGearbox(); + } + + public IReportOutputGroup GetAxleWheelsGroup() + { + return _cifFactory.GetAxleWheelsGroup(); + } + + public IReportOutputGroup GetLorryAuxGroup() + { + return _cifFactory.GetLorryAuxGroup(); + } + + public IReportOutputGroup GetConventionalCompletedBusAuxGroup() + { + return _cifFactory.GetConventionalCompletedBusAuxGroup(); + } + + public IReportOutputGroup GetHEV_Px_IHPC_CompletedBusAuxGroup() + { + return _cifFactory.GetHEV_Px_IHPC_CompletedBusAuxGroup(); + } + + public IReportOutputGroup GetHEV_Sx_CompletedBusAuxGroup() + { + return _cifFactory.GetHEV_Sx_CompletedBusAuxGroup(); + } + + public IReportOutputGroup GetPEV_CompletedBusAuxGroup() + { + return _cifFactory.GetPEV_CompletedBusAuxGroup(); + } + + public IReportOutputGroup GetHEV_LorryVehicleSequenceGroupWriter() + { + return _cifFactory.GetHEV_LorryVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetHEV_CompletedBusVehicleSequenceGroupWriter() + { + return _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetHEV_LorryVehicleTypeGroup() + { + return _cifFactory.GetHEV_LorryVehicleTypeGroup(); + } + + public IReportOutputGroup GetElectricMachineGroup() + { + return _cifFactory.GetElectricMachineGroup(); + } + + public IReportOutputGroup GetREESSGroup() + { + return _cifFactory.GetREESSGroup(); + } + + public IReportOutputGroup GetPEV_LorryVehicleTypeGroup() + { + return _cifFactory.GetPEV_LorryVehicleTypeGroup(); + } + + public IReportOutputGroup GetPEV_LorryVehicleSequenceGroupWriter() + { + return _cifFactory.GetPEV_LorryVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetPEV_CompletedBusVehicleSequenceGroupWriter() + { + return _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter(); + } + + public IReportOutputGroup GetCompletedBusVehicleTypeGroup() + { + return _cifFactory.GetCompletedBusVehicleTypeGroup(); + } + + public IReportOutputGroup GetExemptedCompletedBusVehicleTypeGroup() + { + return _cifFactory.GetExemptedCompletedBusVehicleTypeGroup(); + } + + public IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus() + { + return _cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus(); + } + + public ICIFAdasType GetConventionalADASType() + { + return _cifFactory.GetConventionalADASType(); + } + + public ICIFAdasType GetHEVADASType() + { + return _cifFactory.GetHEVADASType(); + } + + public ICIFAdasType GetPEVADASType() + { + return _cifFactory.GetPEVADASType(); + } + + public IReportOutputGroup GetPEVCompletedBusVehicleTypeGroup() + { + return _cifFactory.GetPEVCompletedBusVehicleTypeGroup(); + } + + public IReportOutputGroup GetIEPCTransmissionGroup() + { + return _cifFactory.GetIEPCTransmissionGroup(); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..6b51536cf11d869d421e0a2113249bbfac07b1ca --- /dev/null +++ b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs @@ -0,0 +1,587 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoMockup.Reports; + +namespace TUGraz.VectoMockup.Ninject +{ + // ReSharper disable once InconsistentNaming + public class MRFMockupModule : AbstractNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Kernel.Bind<IManufacturerReportFactory>().To<MockupManufacturerReportFactory>() + .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope(); + } + + #endregion + } + + + public class MockupManufacturerReportFactory : IManufacturerReportFactory + { + private IManufacturerReportFactory _manufacturerReportFactoryImplementation; + + #region Implementation of IManufacturerReportFactory + + public MockupManufacturerReportFactory(IManufacturerReportFactory mrfFactory) + { + _manufacturerReportFactoryImplementation = mrfFactory; + } + public IXMLManufacturerReport GetConventionalLorryManufacturerReport() + { + return _manufacturerReportFactoryImplementation.GetConventionalLorryManufacturerReport(); + } + + public IXMLManufacturerReport GetManufacturerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc) + { + return new MockupManufacturerReport(_manufacturerReportFactoryImplementation.GetManufacturerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted); + } + + public IXmlTypeWriter GetConventionalLorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetConventionalLorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_Px_IHCP_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_Px_IHCP_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S2_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S2_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S3_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S3_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_S4_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S4_LorryVehicleType(); + } + + public IXmlTypeWriter GetHEV_IEPC_S_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E2_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E2_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E3_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E3_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_E4_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E4_LorryVehicleType(); + } + + public IXmlTypeWriter GetPEV_IEPC_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_IEPC_LorryVehicleType(); + } + + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_Px_IHPC_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S2_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S2_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S3_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S3_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_S4_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S4_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E2_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E2_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E3_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E3_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E4_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetExempted_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetHEV_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetHEV_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetPEV_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetExempted_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetConventionalLorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetConventionalLorryComponentsType(); + } + + public IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_Px_IHCP_LorryComponentsType(); + } + + public IXmlTypeWriter GetHEV_S2_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S2_LorryComponentsType(); + } + + public IXmlTypeWriter GetHEV_S3_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S3_LorryComponentsType(); + } + + public IXmlTypeWriter GetHEV_S4_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S4_LorryComponentsType(); + } + + public IXmlTypeWriter GetHEV_IEPC_S_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_LorryComponentsType(); + } + + public IXmlTypeWriter GetPEV_E2_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E2_LorryComponentsType(); + } + + public IXmlTypeWriter GetPEV_E3_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E3_LorryComponentsType(); + } + + public IXmlTypeWriter GetPEV_E4_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E4_LorryComponentsType(); + } + + public IXmlTypeWriter GetPEV_IEPC_S_LorryComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_IEPC_S_LorryComponentsType(); + } + + public IXmlTypeWriter GetConventional_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_Px_IHPC_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_S2_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S2_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_S3_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S3_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_S4_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_S4_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetPEV_E2_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E2_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetPEV_E3_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E3_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetPEV_E4_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_E4_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetPEV_IEPC_PrimaryBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusComponentsType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusComponentsType(); + } + + public IXmlTypeWriter GetHEV_CompletedBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetHEV_CompletedBusComponentsType(); + } + + public IXmlTypeWriter GetPEV_CompletedBusComponentsType() + { + return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusComponentsType(); + } + + public IReportVehicleOutputGroup GetGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetGeneralVehicleOutputGroup(); + } + + public IReportOutputGroup GetGeneralLorryVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetGeneralLorryVehicleOutputGroup(); + } + + public IReportOutputGroup GetHEV_VehicleSequenceGroup() + { + return _manufacturerReportFactoryImplementation.GetHEV_VehicleSequenceGroup(); + } + + public IReportOutputGroup GetPEV_VehicleSequenceGroup() + { + return _manufacturerReportFactoryImplementation.GetPEV_VehicleSequenceGroup(); + } + + public IReportOutputGroup GetConventionalLorryVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetConventionalLorryVehicleOutputGroup(); + } + + public IReportOutputGroup GetHEV_lorryVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetHEV_lorryVehicleOutputGroup(); + } + + public IReportOutputGroup GetPEV_lorryVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetPEV_lorryVehicleOutputGroup(); + } + + public IReportOutputGroup GetHEV_lorryVehicleOutputSequenceGroup() + { + return _manufacturerReportFactoryImplementation.GetHEV_lorryVehicleOutputSequenceGroup(); + } + + public IReportOutputGroup GetPrimaryBusGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusGeneralVehicleOutputGroup(); + } + + public IReportOutputGroup GetExemptedPrimaryBusGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetExemptedPrimaryBusGeneralVehicleOutputGroup(); + } + + public IReportOutputGroup GetHEV_PrimaryBusVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetHEV_PrimaryBusVehicleOutputGroup(); + } + + public IXmlTypeWriter GetEngineTorqueLimitationsType() + { + return _manufacturerReportFactoryImplementation.GetEngineTorqueLimitationsType(); + } + + public IXmlTypeWriter GetEngineType() + { + return _manufacturerReportFactoryImplementation.GetEngineType(); + } + + public IXmlTypeWriter GetRetarderType() + { + return _manufacturerReportFactoryImplementation.GetRetarderType(); + } + + public IXmlTypeWriter GetTorqueConverterType() + { + return _manufacturerReportFactoryImplementation.GetTorqueConverterType(); + } + + public IXmlTypeWriter GetAngleDriveType() + { + return _manufacturerReportFactoryImplementation.GetAngleDriveType(); + } + + public IXmlTypeWriter GetTransmissionType() + { + return _manufacturerReportFactoryImplementation.GetTransmissionType(); + } + + public IXmlTypeWriter GetElectricMachinesType() + { + return _manufacturerReportFactoryImplementation.GetElectricMachinesType(); + } + + public IXmlTypeWriter GetAxleGearType() + { + return _manufacturerReportFactoryImplementation.GetAxleGearType(); + } + + public IXmlTypeWriter GetAxleWheelsType() + { + return _manufacturerReportFactoryImplementation.GetAxleWheelsType(); + } + + public IMRFAdasType GetConventionalADASType() + { + return _manufacturerReportFactoryImplementation.GetConventionalADASType(); + } + + public IMRFAdasType GetHEVADASType() + { + return _manufacturerReportFactoryImplementation.GetHEVADASType(); + } + + public IMRFAdasType GetPEVADASType() + { + return _manufacturerReportFactoryImplementation.GetPEVADASType(); + } + + public IXmlTypeWriter GetIEPCSpecifications() + { + return _manufacturerReportFactoryImplementation.GetIEPCSpecifications(); + } + + public IXmlTypeWriter GetREESSSpecificationsType() + { + return _manufacturerReportFactoryImplementation.GetREESSSpecificationsType(); + } + + public IMrfAirdragType GetAirdragType() + { + return _manufacturerReportFactoryImplementation.GetAirdragType(); + } + + public IMRFLorryAuxiliariesType GetConventionalLorryAuxType() + { + return _manufacturerReportFactoryImplementation.GetConventionalLorryAuxType(); + } + + public IMRFLorryAuxiliariesType GetHEV_LorryAuxiliariesType() + { + return _manufacturerReportFactoryImplementation.GetHEV_LorryAuxiliariesType(); + } + + public IMRFLorryAuxiliariesType GetPEV_LorryAuxiliariesType() + { + return _manufacturerReportFactoryImplementation.GetPEV_LorryAuxiliariesType(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusAuxType_Conventional() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_Conventional(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_P() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_HEV_P(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_S() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_HEV_S(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusAuxType_PEV() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_PEV(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_HEV_S() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_HEV_S(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_PEV_IEPC() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_PEV_IEPC(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_Conventional_HEV() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusElectricSystemType_Conventional_HEV(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_PEV() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusElectricSystemType_PEV(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_Conventional_HEV() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusHVACSystemType_Conventional_HEV(); + } + + public IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_PEV() + { + return _manufacturerReportFactoryImplementation.GetPrimaryBusHVACSystemType_PEV(); + } + + public IMRFBusAuxiliariesType GetConventionalCompletedBusAuxType() + { + return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusAuxType(); + } + + public IMRFBusAuxiliariesType GetConventionalCompletedBus_HVACSystemType() + { + return _manufacturerReportFactoryImplementation.GetConventionalCompletedBus_HVACSystemType(); + } + + public IMRFBusAuxiliariesType GetConventionalCompletedBusElectricSystemType() + { + return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusElectricSystemType(); + } + + public IMRFBusAuxiliariesType GetHEVCompletedBusAuxType() + { + return _manufacturerReportFactoryImplementation.GetHEVCompletedBusAuxType(); + } + + public IMRFBusAuxiliariesType GetHEVCompletedBus_HVACSystemType() + { + return _manufacturerReportFactoryImplementation.GetHEVCompletedBus_HVACSystemType(); + } + + public IMRFBusAuxiliariesType GetHEVCompletedBusElectricSystemType() + { + return _manufacturerReportFactoryImplementation.GetHEVCompletedBusElectricSystemType(); + } + + public IMRFBusAuxiliariesType GetPEVCompletedBusAuxType() + { + return _manufacturerReportFactoryImplementation.GetPEVCompletedBusAuxType(); + } + + public IMRFBusAuxiliariesType GetPEVCompletedBus_HVACSystemType() + { + return _manufacturerReportFactoryImplementation.GetPEVCompletedBus_HVACSystemType(); + } + + public IMRFBusAuxiliariesType GetPEVCompletedBusElectricSystemType() + { + return _manufacturerReportFactoryImplementation.GetPEVCompletedBusElectricSystemType(); + } + + public IReportOutputGroup GetPEV_PrimaryBusVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetPEV_PrimaryBusVehicleOutputGroup(); + } + + public IReportOutputGroup GetConventionalCompletedBusGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusGeneralVehicleOutputGroup(); + } + + public IReportOutputGroup GetHEVCompletedBusGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetHEVCompletedBusGeneralVehicleOutputGroup(); + } + + public IReportOutputGroup GetPEVCompletedBusGeneralVehicleOutputGroup() + { + return _manufacturerReportFactoryImplementation.GetPEVCompletedBusGeneralVehicleOutputGroup(); + } + + public IReportVehicleOutputGroup GetCompletedBusSequenceGroup() + { + return _manufacturerReportFactoryImplementation.GetCompletedBusSequenceGroup(); + } + + public IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup() + { + return _manufacturerReportFactoryImplementation.GetCompletedBusDimensionSequenceGroup(); + } + + public IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup() + { + return _manufacturerReportFactoryImplementation.GetCompletedBus_HVACSystemGroup(); + } + + public IMrfBusAuxGroup GetCompletedBus_xEVHVACSystemGroup() + { + return _manufacturerReportFactoryImplementation.GetCompletedBus_xEVHVACSystemGroup(); + } + + public IMrfVehicleType GetBoostingLimitationsType() + { + return _manufacturerReportFactoryImplementation.GetBoostingLimitationsType(); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Ninject/MockupModule.cs b/VectoMockup/VectoMockup/Ninject/MockupModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..cbc57cb97423faeaf92992ae5b6d106e4bd71cc1 --- /dev/null +++ b/VectoMockup/VectoMockup/Ninject/MockupModule.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ninject.Modules; +using TUGraz.VectoCore; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoMockup.Reports; +using TUGraz.VectoMockup.Simulation.RundataFactories; + +namespace TUGraz.VectoMockup.Ninject +{ + public class MockupModule : AbstractNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Rebind<IVectoRunDataFactoryFactory>().To<VectoMockUpRunDataFactoryFactory>(); + Rebind<IXMLDeclarationReportFactory>().To<MockupReportFactory>(); + Rebind<IXMLInputDataReader>().To<MockupXMLInputDataFactory>(); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..b930fad6120400ee8df515d36dd518c4278a13f2 --- /dev/null +++ b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; +using TUGraz.VectoMockup.Simulation.SimulatorFactory; + +namespace TUGraz.VectoMockup.Ninject +{ + public class SimulatorFactoryModule : AbstractNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Kernel.Rebind<ISimulatorFactory>().To<MockupDeclarationSimulatorFactory>().Named(ExecutionMode.Declaration.ToString()); + //Rebind clears all bindings for ISimulatorFactory + Kernel.Bind<ISimulatorFactory>().To<MockupEngineeringSimulatorFactory>().Named(ExecutionMode.Engineering.ToString()); + //Bind<ISimulatorFactory>().To<SimulatorFactoryEngineering>().Named(ExecutionMode.Engineering.ToString()); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..0eb7a2f9ad9d42de4353a530b2a41d8b82a1952e --- /dev/null +++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs @@ -0,0 +1,453 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; +using TUGraz.VectoMockup.Reports; + +namespace TUGraz.VectoMockup.Ninject +{ + public class VIFMockupModule : AbstractNinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Kernel.Bind<IVIFReportFactory>().To<MockupVIFReportFactory>() + .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope(); + + Kernel.Bind<IVIFReportInterimFactory>().To<MockupVIFReportFactory>() + .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope(); + } + + #endregion + + public class MockupVIFReportFactory : IVIFReportFactory, IVIFReportInterimFactory + { + private IVIFReportFactory _vifReportFactoryImplementation; + private readonly IVIFReportInterimFactory _interimFactory; + + + public MockupVIFReportFactory(IVIFReportFactory vifReportFactoryImplementation, IVIFReportInterimFactory interimFactory) + { + _vifReportFactoryImplementation = vifReportFactoryImplementation; + _interimFactory = interimFactory; + } + + + #region Implementation of IVIFReportFactory + + public IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc) + { + return new MockupPrimaryVehicleInformationFile( + _vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc, + ihpc)); + } + + public IXMLMultistepIntermediateReport GetInterimVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc) + { + return new MockupInterimVehicleInformationFile( + _interimFactory.GetInterimVIFReport(vehicleType, jobType, archId, exempted, + iepc, ihpc)); + } + + IXmlMultistepTypeWriter IVIFReportInterimFactory.GetConventionalVehicleType() + { + return _interimFactory.GetConventionalVehicleType(); + } + + public IXmlMultistepTypeWriter GetHEVVehicleType() + { + return _interimFactory.GetHEVVehicleType(); + } + + public IXmlMultistepTypeWriter GetPEVVehicleType() + { + return _interimFactory.GetPEVVehicleType(); + } + + public IXmlMultistepTypeWriter GetIEPCVehicleType() + { + return _interimFactory.GetIEPCVehicleType(); + } + + IXmlMultistepTypeWriter IVIFReportInterimFactory.GetExemptedVehicleType() + { + return _interimFactory.GetExemptedVehicleType(); + } + + public IReportMultistepCompletedBusOutputGroup GetCompletedBusGeneralParametersGroup() + { + return _interimFactory.GetCompletedBusGeneralParametersGroup(); + } + + public IReportMultistepCompletedBusOutputGroup GetCompletedBusParametersGroup() + { + return _interimFactory.GetCompletedBusParametersGroup(); + } + + public IReportMultistepCompletedBusOutputGroup GetCompletedBusPassengerCountGroup() + { + return _interimFactory.GetCompletedBusPassengerCountGroup(); + } + + public IReportMultistepCompletedBusOutputGroup GetCompletedBusDimensionsGroup() + { + return _interimFactory.GetCompletedBusDimensionsGroup(); + } + + public IReportMultistepCompletedBusTypeWriter GetInterimConventionalAuxiliariesType() + { + return _interimFactory.GetInterimConventionalAuxiliariesType(); + } + + public IReportMultistepCompletedBusTypeWriter GetInterimxEVAuxiliariesType() + { + return _interimFactory.GetInterimxEVAuxiliariesType(); + } + + public IVIFFAdasType GetConventionalInterimADASType() + { + return _interimFactory.GetConventionalInterimADASType(); + } + + public IVIFFAdasType GetHEVInterimADASType() + { + return _interimFactory.GetHEVInterimADASType(); + } + + public IVIFFAdasType GetPEVInterimADASType() + { + return _interimFactory.GetPEVInterimADASType(); + } + + public IVIFFAdasType GetIEPCInterimADASType() + { + return _interimFactory.GetIEPCInterimADASType(); + } + + public IReportMultistepCompletedBusTypeWriter GetConventionalInterimComponentsType() + { + return _interimFactory.GetConventionalInterimComponentsType(); + } + + public IReportMultistepCompletedBusTypeWriter GetxEVInterimComponentsType() + { + return _interimFactory.GetxEVInterimComponentsType(); + } + + public IReportMultistepCompletedBusTypeWriter GetInterimAirdragType() + { + return _interimFactory.GetInterimAirdragType(); + } + + public IXmlTypeWriter GetConventionalVehicleType() + { + return _vifReportFactoryImplementation.GetConventionalVehicleType(); + } + + public IXmlTypeWriter GetHevIepcSVehicleType() + { + return _vifReportFactoryImplementation.GetHevIepcSVehicleType(); + } + + public IXmlTypeWriter GetHevPxVehicleType() + { + return _vifReportFactoryImplementation.GetHevPxVehicleType(); + } + + public IXmlTypeWriter GetHevS2VehicleType() + { + return _vifReportFactoryImplementation.GetHevS2VehicleType(); + } + + public IXmlTypeWriter GetHevS3VehicleType() + { + return _vifReportFactoryImplementation.GetHevS3VehicleType(); + } + + public IXmlTypeWriter GetHevS4VehicleType() + { + return _vifReportFactoryImplementation.GetHevS4VehicleType(); + } + + public IXmlTypeWriter GetIepcVehicleType() + { + return _vifReportFactoryImplementation.GetIepcVehicleType(); + } + + public IXmlTypeWriter GetPevE2VehicleType() + { + return _vifReportFactoryImplementation.GetPevE2VehicleType(); + } + + public IXmlTypeWriter GetPevE3VehicleType() + { + return _vifReportFactoryImplementation.GetPevE3VehicleType(); + } + + public IXmlTypeWriter GetPevE4VehicleType() + { + return _vifReportFactoryImplementation.GetPevE4VehicleType(); + } + + public IXmlTypeWriter GetPevIEPCVehicleType() + { + return _vifReportFactoryImplementation.GetPevIEPCVehicleType(); + } + + public IXmlTypeWriter GetExemptedVehicleType() + { + return _vifReportFactoryImplementation.GetExemptedVehicleType(); + } + + public IXmlTypeWriter GetConventionalComponentType() + { + return _vifReportFactoryImplementation.GetConventionalComponentType(); + } + + public IXmlTypeWriter GetHevIepcSComponentVIFType() + { + return _vifReportFactoryImplementation.GetHevIepcSComponentVIFType(); + } + + public IXmlTypeWriter GetHevPxComponentVIFType() + { + return _vifReportFactoryImplementation.GetHevPxComponentVIFType(); + } + + public IXmlTypeWriter GetHevS2ComponentVIFType() + { + return _vifReportFactoryImplementation.GetHevS2ComponentVIFType(); + } + + public IXmlTypeWriter GetHevS3ComponentVIFType() + { + return _vifReportFactoryImplementation.GetHevS3ComponentVIFType(); + } + + public IXmlTypeWriter GetHevS4ComponentVIFType() + { + return _vifReportFactoryImplementation.GetHevS4ComponentVIFType(); + } + + public IXmlTypeWriter GetPevE2ComponentVIFType() + { + return _vifReportFactoryImplementation.GetPevE2ComponentVIFType(); + } + + public IXmlTypeWriter GetPevE3ComponentVIFType() + { + return _vifReportFactoryImplementation.GetPevE3ComponentVIFType(); + } + + public IXmlTypeWriter GetPevE4ComponentVIFType() + { + return _vifReportFactoryImplementation.GetPevE4ComponentVIFType(); + } + + public IXmlTypeWriter GetPevIEPCComponentVIFType() + { + return _vifReportFactoryImplementation.GetPevIEPCComponentVIFType(); + } + + public IVIFFAdasType GetConventionalADASType() + { + return _vifReportFactoryImplementation.GetConventionalADASType(); + } + + public IVIFFAdasType GetHEVADASType() + { + return _vifReportFactoryImplementation.GetHEVADASType(); + } + + public IVIFFAdasType GetPEVADASType() + { + return _vifReportFactoryImplementation.GetPEVADASType(); + } + + public IVIFFAdasType GetIEPCADASType() + { + return _vifReportFactoryImplementation.GetIEPCADASType(); + } + + public IXmlTypeWriter GetTorqueConvertType() + { + return _vifReportFactoryImplementation.GetTorqueConvertType(); + } + + public IXmlTypeWriter GetIepcType() + { + return _vifReportFactoryImplementation.GetIepcType(); + } + + public IXmlTypeWriter GetTorqueLimitsType() + { + return _vifReportFactoryImplementation.GetTorqueLimitsType(); + } + + public IXmlTypeWriter GetTransmissionType() + { + return _vifReportFactoryImplementation.GetTransmissionType(); + } + + public IReportOutputGroup GetConventionalVehicleGroup() + { + return _vifReportFactoryImplementation.GetConventionalVehicleGroup(); + } + + public IReportOutputGroup GetPrimaryBusGeneralParameterGroup() + { + return _vifReportFactoryImplementation.GetPrimaryBusGeneralParameterGroup(); + } + + public IReportOutputGroup GetPrimaryBusChassisParameterGroup() + { + throw new NotImplementedException(); + } + + public IReportOutputGroup GetPrimaryBusRetarderParameterGroup() + { + return _vifReportFactoryImplementation.GetPrimaryBusRetarderParameterGroup(); + } + + public IReportOutputGroup GetPrimaryBusXevParameterGroup() + { + return _vifReportFactoryImplementation.GetPrimaryBusXevParameterGroup(); + } + + public IReportOutputGroup GetHevIepcSVehicleParameterGroup() + { + return _vifReportFactoryImplementation.GetHevIepcSVehicleParameterGroup(); + } + + public IReportOutputGroup GetHevSxVehicleParameterGroup() + { + return _vifReportFactoryImplementation.GetHevSxVehicleParameterGroup(); + } + + public IReportOutputGroup GetIepcVehicleParameterGroup() + { + return _vifReportFactoryImplementation.GetIepcVehicleParameterGroup(); + } + + public IReportOutputGroup GetPevExVehicleParmeterGroup() + { + return _vifReportFactoryImplementation.GetPevExVehicleParmeterGroup(); + } + + public IReportOutputGroup GetPevIEPCVehicleParmeterGroup() + { + return _vifReportFactoryImplementation.GetPevIEPCVehicleParmeterGroup(); + } + + public IReportOutputGroup GetHevPxVehicleParameterGroup() + { + return _vifReportFactoryImplementation.GetHevPxVehicleParameterGroup(); + } + + public IReportOutputGroup GetExemptedVehicleParameterGroup() + { + return _vifReportFactoryImplementation.GetExemptedVehicleParameterGroup(); + } + + public IXmlTypeWriter GetAngelDriveType() + { + return _vifReportFactoryImplementation.GetAngelDriveType(); + } + + public IXmlTypeWriter GetRetarderType() + { + return _vifReportFactoryImplementation.GetRetarderType(); + } + + public IXmlTypeWriter GetAuxiliaryType() + { + return _vifReportFactoryImplementation.GetAuxiliaryType(); + } + + public IXmlTypeWriter GetAuxiliaryHevSType() + { + return _vifReportFactoryImplementation.GetAuxiliaryHevSType(); + } + + public IXmlTypeWriter GetAuxiliaryIEPC_SType() + { + return _vifReportFactoryImplementation.GetAuxiliaryIEPC_SType(); + } + + public IXmlTypeWriter GetAuxiliaryHevPType() + { + return _vifReportFactoryImplementation.GetAuxiliaryHevPType(); + } + + public IXmlTypeWriter GetAuxiliaryIEPCType() + { + return _vifReportFactoryImplementation.GetAuxiliaryIEPCType(); + } + + public IXmlTypeWriter GetAuxiliaryPEVType() + { + return _vifReportFactoryImplementation.GetAuxiliaryPEVType(); + } + + public IXmlTypeWriter GetAxlegearType() + { + return _vifReportFactoryImplementation.GetAxlegearType(); + } + + public IXmlTypeWriter GetAxleWheelsType() + { + return _vifReportFactoryImplementation.GetAxleWheelsType(); + } + + public IXmlTypeWriter GetBoostingLimitationsType() + { + return _vifReportFactoryImplementation.GetBoostingLimitationsType(); + } + + public IXmlTypeWriter GetElectricEnergyStorageType() + { + return _vifReportFactoryImplementation.GetElectricEnergyStorageType(); + } + + public IXmlTypeWriter GetElectricMachineGENType() + { + return _vifReportFactoryImplementation.GetElectricMachineGENType(); + } + + public IXmlElectricMachineSystemType GetElectricMachineSystemType() + { + return _vifReportFactoryImplementation.GetElectricMachineSystemType(); + } + + public IXmlTypeWriter GetElectricMachineType() + { + return _vifReportFactoryImplementation.GetElectricMachineType(); + } + + public IXmlTypeWriter GetElectricMotorTorqueLimitsType() + { + return _vifReportFactoryImplementation.GetElectricMotorTorqueLimitsType(); + } + + public IXmlTypeWriter GetEngineType() + { + return _vifReportFactoryImplementation.GetEngineType(); + } + + #endregion + } + + } +} diff --git a/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs b/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..f5d43b36739186c405bb1df3108dae11455f7ec4 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs @@ -0,0 +1,11 @@ +using TUGraz.VectoCore.OutputData.XML; + +namespace TUGraz.VectoMockup.Reports +{ + internal interface IXMLMockupReport + { + void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue); + void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue); + void WriteExemptedResults(); + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs b/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..01e0401739d9829d804fec28e58c2377a2fcfdf0 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs @@ -0,0 +1,87 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; + +namespace TUGraz.VectoMockup.Reports +{ + public class MockupCustomerReport : IXMLCustomerReport, IXMLMockupReport + { + private readonly bool _exempted; + private readonly AbstractCustomerReport _originalCustomerReport; + private XNamespace Cif = AbstractCustomerReport.Cif_0_9; + public MockupCustomerReport(IXMLCustomerReport originalReport, bool exempted) + { + _exempted = exempted; + _originalCustomerReport = originalReport as AbstractCustomerReport; + _outputDataType = _originalCustomerReport.OutputDataType; + Results = new XElement(Cif + XMLNames.Report_Results); + } + + private XElement Results; + private readonly string _outputDataType; + private VectoRunData _modelData; + + #region Implementation of IXMLCustomerReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + _modelData = modelData; + _originalCustomerReport.Initialize(modelData, fuelModes); + } + + public XDocument Report + { + get + { + var report = _originalCustomerReport.Report; + report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results); + + return report; + + + } + } + + public void WriteResult(XMLDeclarationReport.ResultEntry resultValue) + { + _originalCustomerReport.WriteResult(resultValue); + } + + public void GenerateReport(XElement resultSignature) + { + _originalCustomerReport.GenerateReport(resultSignature); + } + + #endregion + + #region Implementation of IXMLMockupReport + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Result", _modelData)); + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + Results.AddFirst(new XElement(Cif + "Status", "success")); + Results.AddFirst(new XComment("Always prints success at the moment")); + Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Summary", _modelData)); + } + + public void WriteExemptedResults() + { + Results.Add(new XElement(Cif + "Status", "success")); + Results.Add(new XElement(Cif + "ExemptedVehicle")); + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs b/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..59a519252b73dc6dc0c79611ef018c4dad6c51d2 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs @@ -0,0 +1,95 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; + +namespace TUGraz.VectoMockup.Reports +{ + public class MockupManufacturerReport : IXMLManufacturerReport, IXMLMockupReport + { + private readonly bool _exempted; + private AbstractManufacturerReport _ixmlManufacturerReportImplementation; + private VectoRunData _modelData; + + private XNamespace Mrf = AbstractManufacturerReport.Mrf_0_9; + private readonly string _outputData; + private XElement Results { get; set; } + public MockupManufacturerReport(IXMLManufacturerReport originalManufacturerReport, bool exempted) + { + _exempted = exempted; + _ixmlManufacturerReportImplementation = originalManufacturerReport as AbstractManufacturerReport; + _outputData = _ixmlManufacturerReportImplementation.OutputDataType; + + Results = new XElement(Mrf + XMLNames.Report_Results); + } + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + + Results.Add(MockupResultReader.GetMRFMockupResult(_outputData, resultValue, Mrf + "Result", _modelData)); + + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + Results.AddFirst(new XElement(Mrf + "Status", "success")); + Results.AddFirst(new XComment("Always prints success at the moment")); + //Results.Add(MockupResultReader.GetMRFMockupResult(OutputDataType, resultValue, Mrf + "Summary", _ovc)); + } + + public void WriteExemptedResults() + { + Results.Add(new XElement(Mrf + "Status", "success")); + Results.Add(new XElement(Mrf + "ExemptedVehicle")); + } + + + #region Implementation of IXMLManufacturerReport + + + public void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + _ixmlManufacturerReportImplementation.InitializeVehicleData(inputData); + } + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + _modelData = modelData; + _ixmlManufacturerReportImplementation.Initialize(modelData, fuelModes); + } + + public XDocument Report + { + get + { + var report = _ixmlManufacturerReportImplementation.Report; + report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results); + + return report; + } + } + + public void WriteResult(XMLDeclarationReport.ResultEntry resultValue) + { + _ixmlManufacturerReportImplementation.WriteResult(resultValue); + } + + public void GenerateReport() + { + _ixmlManufacturerReportImplementation.GenerateReport(); + } + + #endregion + + + + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..7d35d9451f2a52e0e790076380920d5526e2f7fd --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs @@ -0,0 +1,151 @@ +using System; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; + + +namespace TUGraz.VectoMockup.Reports +{ + class MockupReportFactory : IXMLDeclarationReportFactory, IMockupDeclarationReportFactory + { + + private readonly IManufacturerReportFactory _mrfFactory; + private readonly ICustomerInformationFileFactory _cifFactory; + private readonly IVIFReportFactory _vifFactory; + private readonly IVIFReportInterimFactory _interimFactory; + + + #region Implementation of IXMLDeclarationReportFactory + + + public MockupReportFactory(IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory) + { + _mrfFactory = mrfFactory; + _cifFactory = cifFactory; + _vifFactory = vifFactory; + _interimFactory = interimFactory; + } + + + + public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter) + { + switch (input) + { + case IMultistepBusInputDataProvider multistageBusInputDataProvider: + break; + case ISingleBusInputDataProvider singleBusInputDataProvider: + return new XMLDeclarationReport(outputWriter); + case IDeclarationInputDataProvider declarationInputDataProvider: + return CreateDeclarationReport(declarationInputDataProvider, outputWriter); + case IMultiStageTypeInputData multiStageTypeInputData: + break; + case IMultistageVIFInputData multistageVifInputData: + return CreateDeclarationReport(multistageVifInputData, outputWriter); + case IPrimaryVehicleInformationInputDataProvider primaryVehicleInformationInputDataProvider: + break; + case IVTPDeclarationInputDataProvider vtpProvider: + { + return null; + } + case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputData: + { + return null; //No Report for this type (handled in two simulation steps) + } + default: + break; + + } + throw new VectoException($"Could not create Declaration Report for {input.GetType()}"); + } + + public IVTPReport CreateVTPReport(IInputDataProvider input, IOutputDataWriter outputWriter) + { + return input is IVTPDeclarationInputDataProvider + ? new XMLVTPReport(outputWriter) + : null; + } + + private IDeclarationReport CreateDeclarationReport(IMultistageVIFInputData multistageVifInputData, IOutputDataWriter outputDataWriter) + { + if (multistageVifInputData.VehicleInputData == null) + { + var reportCompleted = new XMLDeclarationMockupReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, + multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle) + { + PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle, + }; + return reportCompleted; + } + else { + + var report = new XMLDeclarationMockupReportInterimVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _interimFactory, + multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle); + return report; + } + } + + private IDeclarationReport CreateDeclarationReport(IDeclarationInputDataProvider declarationInputDataProvider, + IOutputDataWriter outputDataWriter) + { + var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory; + if (vehicleCategory.IsLorry()) + { + return new XMLDeclarationMockupReport(outputDataWriter, _mrfFactory, _cifFactory, declarationInputDataProvider.JobInputData.Vehicle.ExemptedVehicle); + } + + if (vehicleCategory.IsBus()) + { + switch (declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory) + { + case VehicleCategory.HeavyBusCompletedVehicle: + throw new NotImplementedException(); + return new XMLDeclarationReportCompletedVehicle(outputDataWriter) + { + PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData, + }; + case VehicleCategory.HeavyBusPrimaryVehicle: + return new XMLDeclarationMockupPrimaryReport(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, + declarationInputDataProvider.JobInputData.Vehicle.ExemptedVehicle); + + default: + break; + } + } + + throw new Exception( + $"Could not create DeclarationReport for Vehicle Category{vehicleCategory}"); + } + + public IVTPReport CreateVTPReport(IVTPDeclarationInputDataProvider input, IOutputDataWriter outputWriter) + { + throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMockupDeclarationReportFactory + + public IManufacturerReportFactory MrfFactory => _mrfFactory; + public ICustomerInformationFileFactory CifFactory => _cifFactory; + + public IVIFReportFactory VifFactory => _vifFactory; + + #endregion + } + + internal interface IMockupDeclarationReportFactory + { + IManufacturerReportFactory MrfFactory { get; } + + ICustomerInformationFileFactory CifFactory { get; } + + IVIFReportFactory VifFactory { get; } + } +} diff --git a/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..2c244ecb98da19152005ec297a597928e5cac9d6 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; + +namespace TUGraz.VectoMockup.Reports +{ + public class MockupVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport + { + private XDocument _report; + private XNamespace _tns; + + + public MockupVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFile) + { + + } + + + + //private XDocument _report; + //private VectoRunData _modelData; + + + //#region Implementation of IXMLMockupReport + + //public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + //{ + // throw new NotImplementedException(); + //} + + //public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + //{ + // throw new NotImplementedException(); + //} + + //#endregion + + //#region Implementation of IXMLMultistageReport + + //public void Initialize(VectoRunData modelData) + //{ + // _modelData = modelData; + //} + + //public XDocument Report => _report; + + //public void GenerateReport() + //{ + // throw new NotImplementedException(); + //} + + //#endregion + + #region Implementation of IXMLPrimaryVehicleReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + throw new NotImplementedException(); + } + + public void WriteResult(XMLDeclarationReport.ResultEntry result) + { + throw new NotImplementedException(); + } + + public void GenerateReport(XElement fullReportHash) + { + throw new NotImplementedException(); + } + + public XDocument Report => _report; + + public XNamespace Tns => _tns; + + #endregion + + #region Implementation of IXMLMockupReport + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + } + + public void WriteExemptedResults() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs new file mode 100644 index 0000000000000000000000000000000000000000..a56c59829de05227ce8012621a1a42a221f1e85a --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using System.Xml.XPath; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; + +namespace TUGraz.VectoMockup.Reports +{ + internal class MockupInterimVehicleInformationFile : IXMLMultistepIntermediateReport, IXMLMockupReport + { + private readonly IXMLMultistepIntermediateReport _intermediateVifImplementation; + + public MockupInterimVehicleInformationFile(IXMLMultistepIntermediateReport vifImplementation) + { + _intermediateVifImplementation = vifImplementation; + } + + #region Implementation of IXMLMultistepIntermediateReport + + public void Initialize(VectoRunData modelData) + { + _intermediateVifImplementation.Initialize(modelData); + } + + public XDocument Report => _intermediateVifImplementation.Report; + + public void GenerateReport() + { + _intermediateVifImplementation.GenerateReport(); + } + + #endregion + + #region Implementation of IXMLMockupReport + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + + } + + public void WriteExemptedResults() + { + + } + + #endregion + } + + + internal class MockupPrimaryVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport + { + + private readonly IXMLVehicleInformationFile _vehicleInformationFileImplementation; + private VectoRunData _modelData; + + private XElement Results; + public MockupPrimaryVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFileImplementation) + { + _vehicleInformationFileImplementation = vehicleInformationFileImplementation; + Results = new XElement(_vehicleInformationFileImplementation.Tns + XMLNames.Report_Results); + } + + + #region Implementation of IXMLPrimaryVehicleReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + _vehicleInformationFileImplementation.Initialize(modelData, fuelModes); + _modelData = modelData; + } + + public void WriteResult(XMLDeclarationReport.ResultEntry result) + { + _vehicleInformationFileImplementation.WriteResult(result); + } + + public XNamespace Tns => _vehicleInformationFileImplementation.Tns; + + #endregion + + #region Implementation of IXMLMockupReport + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + var xElement = MockupResultReader.GetVIFMockupResult(Tns.NamespaceName, resultValue, Tns + "Result", _modelData); + Results.Add(xElement); + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + Results.AddFirst(new XElement(Tns + "Status", "success")); + Results.AddFirst(new XComment("Always prints success at the moment")); + } + + public void WriteExemptedResults() + { + Results.Add(new XElement(Tns + "Status", "success")); + Results.Add(new XElement(Tns + "ExemptedVehicle")); + } + + + public void GenerateReport(XElement fullReportHash) + { + _vehicleInformationFileImplementation.GenerateReport(fullReportHash); + } + + public XDocument Report + { + get + { + var report = _vehicleInformationFileImplementation.Report; + var resultsElement = report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']"); + resultsElement.First().ReplaceWith(Results); + return report; + } + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..be9a19230fac2c216501ae1ee1f2f120676780e5 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs @@ -0,0 +1,67 @@ +using System.Linq; +using System.Xml.Linq; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; + +namespace TUGraz.VectoMockup.Reports +{ + + /// <summary> + /// Create MRF and VIF for primary bus + /// </summary> + public class XMLDeclarationMockupPrimaryReport : XMLDeclarationReportPrimaryVehicle_09 + { + private readonly bool _exempted; + + public XMLDeclarationMockupPrimaryReport(IReportWriter writer, + IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, + bool exempted) : base(writer, + mrfFactory, + cifFactory, + vifFactory) + { + _exempted = exempted; + } + + #region Overrides of XMLDeclarationReportPrimaryVehicle_09 + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + //Do nothing + } + + protected override void WriteResult(ResultEntry result) + { + (ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result); + (VehicleInformationFile as IXMLMockupReport).WriteMockupResult(result); + } + + #endregion + + + protected override void GenerateReports() + { + if (!_exempted) { + (ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); + (VehicleInformationFile as IXMLMockupReport).WriteMockupSummary(Results.First()); + } else { + (ManufacturerRpt as IXMLMockupReport).WriteExemptedResults(); + (VehicleInformationFile as IXMLMockupReport).WriteExemptedResults(); + } + + ManufacturerRpt.GenerateReport(); + var fullReportHash = GetSignature(ManufacturerRpt.Report); + VehicleInformationFile.GenerateReport(fullReportHash); + } + + } + +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..8625f3474be64a73d13de775ecfbf07e5022e97b --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoMockup.Reports +{ + /// <summary> + /// Create MRF and CIF for lorries + /// </summary> + internal class XMLDeclarationMockupReport : XMLDeclarationReport09 + { + private readonly bool _exempted; + + public XMLDeclarationMockupReport(IReportWriter writer, IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, bool exempted) : + base(writer, mrfFactory, cifFactory) + { + _exempted = exempted; + } + + #region Overrides of XMLDeclarationReport09 + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + //Do nothing; + } + + protected override void WriteResult(ResultEntry result) + { + (ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result); + (CustomerRpt as IXMLMockupReport).WriteMockupResult(result); + } + + protected override void GenerateReports() + { + if (!_exempted) { + (ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); + (CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); + } else { + (ManufacturerRpt as IXMLMockupReport).WriteExemptedResults(); + (CustomerRpt as IXMLMockupReport).WriteExemptedResults(); + } + + + + base.GenerateReports(); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs new file mode 100644 index 0000000000000000000000000000000000000000..1e7169b8ad82b4cc41fa7dee3ea1431088c1a1f0 --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; + +namespace TUGraz.VectoMockup.Reports +{ + + /// <summary> + /// Create VIF of an interim (or the complete(d) step + /// </summary> + public class XMLDeclarationMockupReportInterimVehicle : XMLDeclarationReportInterimVehicle_09 + { + private readonly bool _exempted; + + public XMLDeclarationMockupReportInterimVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory, bool exempted) : base(writer, + mrfFactory, + cifFactory, vifFactory, interimFactory) + { + _exempted = exempted; + } + } + + + /// <summary> + /// Create MRF and CIF of the complete(d) step + /// </summary> + public class XMLDeclarationMockupReportCompletedVehicle : XMLDeclarationReportCompletedVehicle_09 + { + //private readonly IManufacturerReportFactory _mrfFactory; + //private readonly ICustomerInformationFileFactory _cifFactory; + private readonly bool _exempted; + private VectoRunData _modelData; + + public XMLDeclarationMockupReportCompletedVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, bool exempted) : base(writer, mrfFactory, cifFactory, vifFactory) + { + //_mrfFactory = mrfFactory; + //_cifFactory = cifFactory; + + _exempted = exempted; + } + + #region Overrides of XMLDeclarationReportCompletedVehicle + + //protected override void InstantiateReports(VectoRunData modelData) + //{ + // var inputData = modelData.InputData as IXMLMultistageInputDataProvider; + // var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle; + + // var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; + // var iepc = (primaryVehicle.Components?.IEPC != null); + // ManufacturerRpt = _mrfFactory.GetManufacturerReport( + // inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + // inputData.JobInputData.JobType, + // primaryVehicle.ArchitectureID, + // primaryVehicle.ExemptedVehicle, + // iepc, + // ihpc); + + // CustomerRpt = _cifFactory.GetCustomerReport( + // inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + // inputData.JobInputData.JobType, + // primaryVehicle.ArchitectureID, + // primaryVehicle.ExemptedVehicle, + // iepc, + // ihpc); + + //} + + #endregion + + #region Overrides of XMLDeclarationReportCompletedVehicle + + public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + base.InitializeReport(modelData, fuelModes); + _modelData = modelData; + } + + #endregion + + protected internal override void DoWriteReport() + { + foreach (var result in OrderedResults) { + WriteResult(result); + } + + GenerateReports(); + + if (Writer != null) { + OutputReports(); + } + } + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + + } + + protected override void WriteResult(ResultEntry result) + { + if (_modelData.InputData is IMultistepBusInputDataProvider multistageInput) { + var primaryResult = multistageInput.JobInputData.PrimaryVehicle.ResultsInputData.Results.FirstOrDefault(); + var tankSystem = multistageInput.JobInputData.ConsolidateManufacturingStage.Vehicle.TankSystem; + result.FuelData = primaryResult.EnergyConsumption.Keys + .Select(x => DeclarationData.FuelData.Lookup(x, tankSystem)).Cast<IFuelProperties>().ToList(); + } + (ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result); + (CustomerRpt as IXMLMockupReport).WriteMockupResult(result); + } + + protected override void GenerateReports() + { + if (!_exempted) { + (ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); + (CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); + } else { + (ManufacturerRpt as IXMLMockupReport).WriteExemptedResults(); + (CustomerRpt as IXMLMockupReport).WriteExemptedResults(); + } + + + + base.GenerateReports(); + } + + } +} diff --git a/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs b/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs new file mode 100644 index 0000000000000000000000000000000000000000..d6bc297a366616a9a99a5d871ef643221c54828c --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs @@ -0,0 +1,20 @@ +using System; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoMockup.Simulation +{ + internal class MockupExemptedRun : ExemptedRun + { + public MockupExemptedRun(VehicleContainer data, Action<ModalDataContainer> writeSumData) : base(data, writeSumData) { } + + #region Overrides of ExemptedRun + + protected override void CheckValidInput() + { + return; + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Simulation/MockupRun.cs b/VectoMockup/VectoMockup/Simulation/MockupRun.cs new file mode 100644 index 0000000000000000000000000000000000000000..e349b22deaf53b7c474c41d14b5019f3453f388a --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/MockupRun.cs @@ -0,0 +1,46 @@ +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl; + +namespace TUGraz.VectoMockup.Simulation +{ + public class MockupRun : VectoRun + { + private IVehicleContainer _vehicleContainer; + public MockupRun(IVehicleContainer container) : base(container) + { + _vehicleContainer = container; + + + } + + + #region Overrides of VectoRun + public override double Progress => 1; + + protected override IResponse DoSimulationStep() + { + FinishedWithoutErrors = true; + + return new ResponseCycleFinished(this); + } + + public override bool CalculateAggregateValues() + { + return false; + } + + protected override bool CheckCyclePortProgress() + { + return false; + } + + protected override IResponse Initialize() + { + return new ResponseSuccess(this); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..7161fc9579b3d10c2cb120312dec81554615c79d --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoMockup.Simulation.RundataFactories +{ + internal class MockupMultistageCompletedBusRunDataFactory : DeclarationModeCompletedMultistageBusVectoRunDataFactory + { + public MockupMultistageCompletedBusRunDataFactory(IMultistepBusInputDataProvider dataProvider, + IDeclarationReport report) : base(dataProvider, report) + { + + } + + + #region Overrides of DeclarationModeCompletedMultistageBusVectoRunDataFactory + + protected override void Initialize() + { + + _segmentCompletedBus = GetCompletedSegment(CompletedVehicle, PrimaryVehicle.AxleConfiguration); + + //base.Initialize(); + } + + protected override IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted() + { + + return base.VectoRunDataHeavyBusCompleted(); + } + + protected override VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) + { + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + + var simulationRunData = new VectoRunData + { + Loading = loading.Key, + VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segmentCompletedBus, + mission, loading), + Retarder = PrimaryBusMockupRunDataFactory.CreateMockupRetarder(PrimaryVehicle), + AirdragData = PrimaryBusMockupRunDataFactory.CreateMockupAirdragData(CompletedVehicle), + EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem), + //ElectricMachinesData = PrimaryBusMockupRunDataFactory.CreateMockupElectricMachineData() + AngledriveData = PrimaryBusMockupRunDataFactory.CreateMockupAngleDriveData(PrimaryVehicle), + AxleGearData = PrimaryBusMockupRunDataFactory.CreateMockupAxleGearData(PrimaryVehicle), + Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + Mission = mission, + GearboxData = PrimaryBusMockupRunDataFactory.CreateMockupGearboxData(PrimaryVehicle), + InputData = InputDataProvider, + SimulationType = SimulationType.DistanceCycle, + ExecutionMode = ExecutionMode.Declaration, + JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier, + Report = Report, + //Aux = PrimaryBusMockupRunDataFactory.CreateMockupBusAux(CompletedVehicle), + + // //AirdragData = DataAdapterSpecific.CreateAirdragData(CompletedVehicle, mission), + // //EngineData = DataAdapterSpecific.CreateEngineData(PrimaryVehicle, modeIdx, mission), + // //ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(), + // //GearboxData = _gearboxData, + // //AxleGearData = _axlegearData, + // //AngledriveData = _angledriveData, + // Aux = DataAdapterSpecific.CreateAuxiliaryData(PrimaryVehicle.Components.AuxiliaryInputData, + // PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segmentCompletedBus.VehicleClass, CompletedVehicle.Length, + // PrimaryVehicle.Components.AxleWheels.NumSteeredAxles), + //Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + //Retarder = _retarderData, + ////DriverData = _driverData, + //ExecutionMode = ExecutionMode.Declaration, + //JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,//?!? Jobname + ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Specific_{loading.Key}", + //Report = Report, + //Mission = mission, + //InputDataHash = InputDataProvider.XMLHash,// right hash?!? + //SimulationType = SimulationType.DistanceCycle, + //VehicleDesignSpeed = _segmentCompletedBus.DesignSpeed, + //GearshiftParameters = _gearshiftData, + }; + if (simulationRunData.EngineData != null) { + simulationRunData.EngineData.FuelMode = 0; + } + simulationRunData.VehicleData.VehicleClass = _segmentCompletedBus.VehicleClass; + simulationRunData.BusAuxiliaries = DataAdapterSpecific.CreateBusAuxiliariesData(mission, PrimaryVehicle, CompletedVehicle, simulationRunData); + + return simulationRunData; + + //return base.CreateVectoRunDataSpecific(mission, loading, modeIdx); + } + + protected override VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) + { + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + return new VectoRunData() { + Mission = mission, + Loading = loading.Key, + VehicleData = new VehicleData() { + Loading = loading.Value.Item1, + + }, + EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem), + JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier, + ExecutionMode = ExecutionMode.Declaration, + SimulationType = SimulationType.DistanceCycle, + Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + Report = Report, + ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Generic_{loading.Key}", + }; + return base.CreateVectoRunDataGeneric(mission, loading, primarySegment, modeIdx); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..92205fc2343e1bd111d1c109884edb6a0ce72eb5 --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.BusAuxiliaries; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; + +namespace TUGraz.VectoMockup.Simulation.RundataFactories +{ + public class MockupLorryVectoRunDataFactory : DeclarationModeTruckVectoRunDataFactory + { + public MockupLorryVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, + IDeclarationReport report) : base(dataProvider, report, false) + { + + } + + #region Overrides of AbstractDeclarationVectoRunDataFactory + + protected override IDeclarationDataAdapter DataAdapter { get; } + protected override IEnumerable<VectoRunData> GetNextRun() + { + var nextRun = base.GetNextRun(); + + + return nextRun; + } + + protected override void InitializeReport() + { + if (InputDataProvider.JobInputData.JobType == VectoSimulationJobType.ConventionalVehicle) + { + base.InitializeReport(); + return; + } + VectoRunData powertrainConfig; + List<List<FuelData.Entry>> fuels; + var vehicle = InputDataProvider.JobInputData.Vehicle; + if (vehicle.ExemptedVehicle) + { + powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); + fuels = new List<List<FuelData.Entry>>(); + } + else + { + powertrainConfig = _segment.Missions.Select( + mission => CreateVectoRunData( + vehicle, 0, mission, mission.Loadings.First())) + .FirstOrDefault(x => x != null); + fuels = null; + } + Report.InitializeReport(powertrainConfig, fuels); + } + + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + { + VectoRunData runData; + if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) + { + runData = new VectoRunData + { + Exempted = true, + Report = Report, + Mission = new Mission() { MissionType = MissionType.ExemptedMission }, + VehicleData = CreateMockupVehicleData(vehicle), + InputDataHash = InputDataProvider.XMLHash + }; + runData.VehicleData.InputData = vehicle; + } + else + { + + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => + { + return DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", + false); + }); + runData = new VectoRunData() + { + Loading = loading.Key, + Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + ExecutionMode = ExecutionMode.Declaration, + Report = Report, + Mission = mission, + SimulationType = SimulationType.DistanceCycle, + VehicleData = CreateMockupVehicleData(vehicle), + EngineData = CreateMockupEngineData(vehicle, modeIdx), + GearboxData = CreateMockupGearboxData(vehicle), + AxleGearData = CreateMockupAxleGearData(vehicle), + + JobType = InputDataProvider.JobInputData.JobType, + + }; + } + + runData.InputData = InputDataProvider; + + + return runData; + + + + } + + + + + protected override void Initialize() + { + _segment = GetSegment(InputDataProvider.JobInputData.Vehicle); + + } + + #endregion + + private AxleGearData CreateMockupAxleGearData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.AxleGearInputData == null) + { + return null; + } + + return new AxleGearData() + { + InputData = vehicle.Components.AxleGearInputData, + }; + } + + private GearboxData CreateMockupGearboxData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.GearboxInputData == null) + { + return null; + } + + return new GearboxData() + { + InputData = vehicle.Components.GearboxInputData, + }; + } + + + private CombustionEngineData CreateMockupEngineData(IVehicleDeclarationInputData vehicleData, int modeIdx) + { + + var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; + if (engine == null) + { + return null; + } + var engineModes = engine.EngineModes; + var engineMode = engineModes[modeIdx]; + var fuels = new List<CombustionEngineFuelData>(); + foreach (var fuel in engineMode.Fuels) + { + fuels.Add(new CombustionEngineFuelData() + { + FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicleData.TankSystem) + }); + } + + return new CombustionEngineData() + { + Fuels = fuels, + RatedPowerDeclared = vehicleData.Components.EngineInputData.RatedPowerDeclared + }; + } + + + private VehicleData CreateMockupVehicleData(IVehicleDeclarationInputData vehicleData) + { + return new VehicleData() + { + InputData = vehicleData, + SleeperCab = vehicleData.SleeperCab, + VehicleClass = _segment.VehicleClass, + Ocv = vehicleData.OvcHev, + + }; + } + } +} diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..d95245224de65e40ab8950e7d09052fcd64f1970 --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs @@ -0,0 +1,337 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.BusAuxiliaries; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoMockup.Simulation.RundataFactories +{ + public class PrimaryBusMockupRunDataFactory : DeclarationModePrimaryBusVectoRunDataFactory + { + public PrimaryBusMockupRunDataFactory(IDeclarationInputDataProvider dataProvider, + IDeclarationReport report) : + base(dataProvider, report, false) + { } + + #region Overrides of AbstractDeclarationVectoRunDataFactory + + protected override void Initialize() + { + _segment = GetSegment(InputDataProvider.JobInputData.Vehicle); + } + + protected override void InitializeReport() + { + if (InputDataProvider.JobInputData.JobType == VectoSimulationJobType.ConventionalVehicle) + { + base.InitializeReport(); + return; + } + + VectoRunData powertrainConfig; + List<List<FuelData.Entry>> fuels; + var vehicle = InputDataProvider.JobInputData.Vehicle; + if (vehicle.ExemptedVehicle) + { + powertrainConfig = CreateVectoRunData(vehicle, 0, null, + new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); + fuels = new List<List<FuelData.Entry>>(); + } + else + { + powertrainConfig = _segment.Missions.Select( + mission => CreateVectoRunData( + vehicle, 0, mission, mission.Loadings.First())) + .FirstOrDefault(x => x != null); + fuels = null; + } + + Report.InitializeReport(powertrainConfig, fuels); + } + + #region Overrides of DeclarationModePrimaryBusVectoRunDataFactory + + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + { + + VectoRunData runData; + if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) + { + runData = new VectoRunData + { + Exempted = true, + Report = Report, + Mission = new Mission() { MissionType = MissionType.ExemptedMission }, + VehicleData = CreateExemptedMockupVehicleData(vehicle, _segment), + InputDataHash = InputDataProvider.XMLHash + }; + runData.VehicleData.InputData = vehicle; + } + else + { + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, + _ => + { + return DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", + false); + }); + + + runData = new VectoRunData() + { + Loading = loading.Key, + Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + ExecutionMode = ExecutionMode.Declaration, + Report = Report, + Mission = mission, + SimulationType = SimulationType.DistanceCycle, + VehicleData = CreateMockupVehicleData(vehicle, _segment, loading), + Retarder = CreateMockupRetarder(vehicle), + AxleGearData = CreateMockupAxleGearData(vehicle), + GearboxData = CreateMockupGearboxData(vehicle), + AngledriveData = CreateMockupAngleDriveData(vehicle), + EngineData = CreateMockupEngineData(vehicle, modeIdx), + BusAuxiliaries = CreateMockupBusAux(vehicle), + InputDataHash = InputDataProvider.XMLHash, + }; + } + + runData.InputData = InputDataProvider; + + return runData; + } + + + #endregion + + #endregion + public static IAuxiliaryConfig CreateMockupBusAux(IVehicleDeclarationInputData vehicle) + { + return new AuxiliaryConfig() + { + InputData = vehicle.Components.BusAuxiliaries, + + }; + } + + public static AirdragData CreateMockupAirdragData(IVehicleDeclarationInputData vehicle) + { + var airdrag = vehicle.Components.AirdragInputData; + return new AirdragData() { + CertificationMethod = airdrag.CertificationMethod, + CertificationNumber = airdrag.CertificationNumber, + DeclaredAirdragAreaInput = airdrag.AirDragArea, + }; + } + public static RetarderData CreateMockupRetarder(IVehicleDeclarationInputData vehicle) + { + var xmlVehicle = vehicle as IXMLDeclarationVehicleData; + return new RetarderData() + { + Type = xmlVehicle.RetarderType, + + Ratio = xmlVehicle.RetarderType.IsDedicatedComponent() ? xmlVehicle.RetarderRatio : 0, + }; + } + + public static AngledriveData CreateMockupAngleDriveData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.AngledriveInputData == null || vehicle.Components.AngledriveInputData.Type != AngledriveType.SeparateAngledrive) + { + return null; + } + + var componentData = vehicle.Components.AngledriveInputData; + var angleDriveData = new AngledriveData { + InputData = vehicle.Components.AngledriveInputData, + Type = componentData.Type, + }; + + if (componentData.Type == AngledriveType.SeparateAngledrive) { + + angleDriveData.Angledrive = new TransmissionData() { + Ratio = componentData.Ratio, + }; + + angleDriveData.Manufacturer = componentData.Manufacturer; + angleDriveData.ModelName = componentData.Model; + angleDriveData.CertificationNumber = componentData.CertificationNumber; + angleDriveData.Date = componentData.Date; + } + + return angleDriveData; + } + + public static AxleGearData CreateMockupAxleGearData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.AxleGearInputData == null) + { + return null; + } + + var componentData = vehicle.Components.AxleGearInputData; + return new AxleGearData() + { + InputData = vehicle.Components.AxleGearInputData, + + Manufacturer = componentData.Manufacturer, + ModelName = componentData.Model, + CertificationNumber = componentData.CertificationNumber, + Date = componentData.Date, + LineType = componentData.LineType, + AxleGear = new TransmissionData() + { + Ratio = vehicle.Components.AxleGearInputData.Ratio, + + } + }; + } + + public static GearboxData CreateMockupGearboxData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.GearboxInputData == null) + { + return null; + } + + var componentData = vehicle.Components.GearboxInputData; + var gears = new Dictionary<uint, GearData>(); + foreach (var gearInputData in componentData.Gears) { + gears.Add((uint)gearInputData.Gear, new GearData() { + Ratio = gearInputData.Ratio, + MaxTorque = gearInputData.MaxTorque, + MaxSpeed = gearInputData.MaxInputSpeed, + }); + } + + + return new GearboxData() + { + InputData = vehicle.Components.GearboxInputData, + Type = vehicle.Components.GearboxInputData.Type, + Manufacturer = componentData.Manufacturer, + ModelName = componentData.Model, + CertificationNumber = componentData.CertificationNumber, + Date = componentData.Date, + Gears = gears, + + }; + } + + + public static CombustionEngineData CreateMockupEngineData(IVehicleDeclarationInputData vehicleData, int modeIdx, TankSystem? tankSystem = null) + { + + var engine = vehicleData.Components.EngineInputData; + if (engine == null) + { + return null; + } + + var engineModes = engine.EngineModes; + var engineMode = engineModes[modeIdx]; + var fuels = new List<CombustionEngineFuelData>(); + foreach (var fuel in engineMode.Fuels) + { + fuels.Add(new CombustionEngineFuelData() + { + FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, tankSystem ?? vehicleData.TankSystem) + }); + } + + var componentData = vehicleData.Components.EngineInputData; + return new CombustionEngineData() + { + Fuels = fuels, + RatedPowerDeclared = vehicleData.Components.EngineInputData.RatedPowerDeclared, + IdleSpeed = vehicleData.EngineIdleSpeed, + InputData = vehicleData.Components.EngineInputData, + WHRType = vehicleData.Components.EngineInputData.WHRType, + RatedSpeedDeclared = engine.RatedSpeedDeclared, + Displacement = engine.Displacement, + + Manufacturer = componentData.Manufacturer, + ModelName = componentData.Model, + CertificationNumber = componentData.CertificationNumber, + Date = componentData.Date, + + + }; + } + + private VehicleData CreateExemptedMockupVehicleData(IVehicleDeclarationInputData vehicleData, Segment segment) + { + return new VehicleData() { + InputData = vehicleData, + SleeperCab = vehicleData.SleeperCab, + //Loading = loading.Value.Item1, + VehicleClass = segment.VehicleClass, + Ocv = vehicleData.OvcHev, + VehicleCategory = vehicleData.VehicleCategory, + ZeroEmissionVehicle = vehicleData.ZeroEmissionVehicle, + //ADAS = CreateMockupAdasData(vehicleData), + + Manufacturer = vehicleData.Manufacturer, + ManufacturerAddress = vehicleData.ManufacturerAddress, + ModelName = vehicleData.Model, + VIN = vehicleData.VIN, + LegislativeClass = vehicleData.LegislativeClass, + AxleConfiguration = vehicleData.AxleConfiguration, + Date = vehicleData.Date, + + }; + } + + public static VehicleData CreateMockupVehicleData(IVehicleDeclarationInputData vehicleData, Segment segment, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + { + return new VehicleData() + { + + InputData = vehicleData, + SleeperCab = vehicleData.SleeperCab, + Loading = loading.Value.Item1, + VehicleClass = segment.VehicleClass, + Ocv = vehicleData.OvcHev, + VehicleCategory = vehicleData.VehicleCategory, + ZeroEmissionVehicle = vehicleData.ZeroEmissionVehicle, + ADAS = CreateMockupAdasData(vehicleData), + + Manufacturer = vehicleData.Manufacturer, + ManufacturerAddress = vehicleData.ManufacturerAddress, + ModelName = vehicleData.Model, + VIN = vehicleData.VIN, + LegislativeClass = vehicleData.LegislativeClass, + AxleConfiguration = vehicleData.AxleConfiguration, + Date = vehicleData.Date, + }; + } + + public static VehicleData.ADASData CreateMockupAdasData(IVehicleDeclarationInputData vehicleData) + { + var adas = vehicleData.ADAS; + return new VehicleData.ADASData() + { + EcoRoll = adas.EcoRoll, + EngineStopStart = adas.EngineStopStart, + InputData = adas, + PredictiveCruiseControl = adas.PredictiveCruiseControl, + }; + } + } +} diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..571f038ca5101d9842df4735df59858ec5b79ae1 --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.OutputData; + + +namespace TUGraz.VectoMockup.Simulation.RundataFactories +{ + public class VectoMockUpRunDataFactoryFactory : IVectoRunDataFactoryFactory + { + #region Implementation of IVectoRunDataFactoryFactory + + + + public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, + IVTPReport vtpReport) + { + if (inputDataProvider == null) + throw new ArgumentNullException(nameof(inputDataProvider)); + + switch (inputDataProvider) + { + case IVTPDeclarationInputDataProvider vtpProvider: + return CreateRunDataReader(vtpProvider, vtpReport); + case ISingleBusInputDataProvider singleBusProvider: + return CreateRunDataReader(singleBusProvider, report); + case IDeclarationInputDataProvider declDataProvider: + return CreateRunDataReader(declDataProvider, report); + case IMultistageVIFInputData multistageVifInputData: + return CreateRunDataReader(multistageVifInputData, report); + default: + break; + } + throw new VectoException("Unknown InputData for Declaration Mode!"); + } + + private IVectoRunDataFactory CreateRunDataReader(IMultistageVIFInputData multistageVifInputData, IDeclarationReport report) + { + if (multistageVifInputData.VehicleInputData == null) + { + return new MockupMultistageCompletedBusRunDataFactory( + multistageVifInputData.MultistageJobInputData, + report); + } + else { + return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); + } + } + + private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report) + { + var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory; + if (vehicleCategory.IsLorry()) + { + return new MockupLorryVectoRunDataFactory(declDataProvider, report); + } + + if (vehicleCategory.IsBus()) + + switch (declDataProvider.JobInputData.Vehicle.VehicleCategory) + { + case VehicleCategory.HeavyBusCompletedVehicle: + throw new NotImplementedException(); + return new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, report); + case VehicleCategory.HeavyBusPrimaryVehicle: + return new PrimaryBusMockupRunDataFactory(declDataProvider, report); + default: + break; + } + + throw new Exception( + $"Could not create RunDataFactory for Vehicle Category{vehicleCategory}"); + } + + private IVectoRunDataFactory CreateRunDataReader(ISingleBusInputDataProvider singleBusProvider, IDeclarationReport report) + { + throw new NotImplementedException(); + } + + private IVectoRunDataFactory CreateRunDataReader(IVTPDeclarationInputDataProvider vtpProvider, IVTPReport vtpReport) + { + throw new NotImplementedException(); + } + + public IVectoRunDataFactory CreateEngineeringRunDataFactory(IEngineeringInputDataProvider inputDataProvider) + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs new file mode 100644 index 0000000000000000000000000000000000000000..e391adfd712cf147a8bc4496d6f8e08eb9842637 --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs @@ -0,0 +1,70 @@ +using System; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; +using TUGraz.VectoMockup.Reports; + +namespace TUGraz.VectoMockup.Simulation.SimulatorFactory +{ + public class MockupInterimAfterPrimaryFactoryCreator : InterimAfterPrimaryFactoryCreator + { + public MockupInterimAfterPrimaryFactoryCreator( + IMultistagePrimaryAndStageInputDataProvider originalStageInputData, IOutputDataWriter originalReportWriter, + IDeclarationReport originalDeclarationReport, + ISimulatorFactoryFactory simFactoryFactory, + IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, + IXMLInputDataReader inputDataReader, bool validate) : + base(originalStageInputData, originalReportWriter, originalDeclarationReport, simFactoryFactory, + inputDataReader, validate) + { + _currentStageDeclarationReport = + new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, vifFactory, originalStageInputData.StageInputData.ExemptedVehicle); + } + + #region Overrides of InterimAfterPrimaryFactoryCreator + + public override ISimulatorFactory GetNextFactory() + { + //throw new NotImplementedException(); + return base.GetNextFactory(); + } + + #endregion + } + + public class MockupCompletedAfterPrimaryFactoryCreator : CompletedAfterInterimPrimaryFactoryCreator + { + public MockupCompletedAfterPrimaryFactoryCreator(IMultistageVIFInputData originalInputData, + IOutputDataWriter originalOutputDataWriter, + IDeclarationReport originalDeclarationReport, + IXMLInputDataReader inputDataReader, + ISimulatorFactoryFactory simulatorFactoryFactory, + bool validate) : + base(originalInputData, + originalOutputDataWriter, + originalDeclarationReport, + inputDataReader, + simulatorFactoryFactory, + validate) + { + + } + + #region Overrides of CompletedAfterInterimPrimaryFactoryCreator + + public override ISimulatorFactory GetNextFactory() + { + return base.GetNextFactory(); + } + + #endregion + } + +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs new file mode 100644 index 0000000000000000000000000000000000000000..90fb473ab9f05bfa336bcb2670d8c783fd8ec312 --- /dev/null +++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoMockup.Reports; + +namespace TUGraz.VectoMockup.Simulation.SimulatorFactory +{ + internal class MockupEngineeringSimulatorFactory : SimulatorFactoryEngineering + { + public MockupEngineeringSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer, + bool validate) : base(dataProvider, writer, validate) + { + throw new VectoException("Engineering mode is not supported in Mockup Vecto"); + } + } + + + internal class MockupDeclarationSimulatorFactory : SimulatorFactoryDeclaration + { + private void CheckInputData(IInputDataProvider dataProvider) + { + if (dataProvider is JSONFile json && !(dataProvider is JSONInputDataV10_PrimaryAndStageInputBus || dataProvider is JSONInputDataCompletedBusFactorMethodV7)) { + throw new VectoException($"JSON input data is not supported in Mockup Vecto"); + } + } + + public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer, + IDeclarationReport declarationReport, IVTPReport vtpReport, bool validate, + IXMLInputDataReader xmlInputDataReader, ISimulatorFactoryFactory simulatorFactoryFactory, + IXMLDeclarationReportFactory xmlDeclarationReportFactory, IVectoRunDataFactoryFactory runDataFactoryFactory) + : base(dataProvider, writer, declarationReport, vtpReport, validate, xmlInputDataReader, + simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory) + { + CheckInputData(dataProvider); + } + + public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider, + IOutputDataWriter writer, bool validate, + IXMLInputDataReader xmlInputDataReader, + ISimulatorFactoryFactory simulatorFactoryFactory, + IXMLDeclarationReportFactory xmlDeclarationReportFactory, + IVectoRunDataFactoryFactory runDataFactoryFactory) : base(dataProvider, writer, validate, + xmlInputDataReader, simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory) + { + CheckInputData(dataProvider); + } + + #region Overrides of SimulatorFactory + + + protected override IVectoRun GetExemptedRun(VectoRunData data) + { + + if (data.Report != null) + { + data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); + } + return new MockupExemptedRun(new ExemptedRunContainer(data.ExecutionMode) { RunData = data }, modData => { + if (data.Report != null) + { + data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); + } + }); + } + + protected override IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz) + { + var addReportResult = PrepareReport(data); + return new MockupRun(new VehicleContainer(ExecutionMode.Declaration, + new MockupModalDataContainer(new ModalDataContainer(data, ReportWriter, null), addReportResult)) + { RunData = data }); + + } + protected new static Action<IModalDataContainer> PrepareReport(VectoRunData data) + { + if (data.Report != null) + { + data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); + } + Action<IModalDataContainer> addReportResult = modData => { + if (modData is MockupModalDataContainer && data.Report != null) { + data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); + } + + return; + //if (data.Report != null) + //{ + // data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); + //} + }; + + return addReportResult; + } + + #region Overrides of SimulatorFactoryDeclaration + + protected override IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData, + IDeclarationReport currentStageDeclarationReport) + { + switch (currentStageInputData) + { + case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputDataProvider: + return new MockupInterimAfterPrimaryFactoryCreator( + multistagePrimaryAndStageInputDataProvider, + ReportWriter, + currentStageDeclarationReport, + _simFactoryFactory, + ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).MrfFactory, + ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).CifFactory, + ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).VifFactory, + _xmlInputDataReader, + Validate); + case IMultistageVIFInputData multistageVifInputData: + if (multistageVifInputData.VehicleInputData != null) + { + return new MockupCompletedAfterPrimaryFactoryCreator( + multistageVifInputData, + ReportWriter, + currentStageDeclarationReport, + _xmlInputDataReader, + _simFactoryFactory, Validate); + } + break; + default: + return null; + } + return null; + } + + #endregion + + #endregion + } +} diff --git a/VectoMockup/VectoMockup/VectoMockup.cs b/VectoMockup/VectoMockup/VectoMockup.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0d6722085278539be2be0a29632ba681b6af5d8 --- /dev/null +++ b/VectoMockup/VectoMockup/VectoMockup.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Linq; +using Ninject; +using Ninject.Modules; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.Reader; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.ComponentWriter; +using TUGraz.VectoCore.OutputData.XML.Engineering; +using TUGraz.VectoCore.OutputData.XML.GroupWriter; + +namespace VectoMockup +{ + public class VectoMockup + { + + } +} \ No newline at end of file diff --git a/VectoMockup/VectoMockup/VectoMockup.csproj b/VectoMockup/VectoMockup/VectoMockup.csproj new file mode 100644 index 0000000000000000000000000000000000000000..63872dc5dadd1cc244f23f091d55d07d58643997 --- /dev/null +++ b/VectoMockup/VectoMockup/VectoMockup.csproj @@ -0,0 +1,82 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <RootNamespace>TUGraz.VectoMockup</RootNamespace> + <AssemblyName>VectoMockup</AssemblyName> + <TargetFrameworks>net45;net48;net6.0</TargetFrameworks> + <DefineConstants Condition="'$(Configuration)' == 'MockupDebug'">Debug</DefineConstants> + <Configurations>Debug;Release;MockupDebug</Configurations> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'"> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'"> + <DebugType>embedded</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net48|AnyCPU'"> + <DebugType>embedded</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'"> + <DebugType>embedded</DebugType> + </PropertyGroup> + <ItemGroup> + <None Remove="MockupResults\CIF_MockupResults_Conv_Bus.xml" /> + <None Remove="MockupResults\CIF_MockupResults_Conv_Lorry.xml" /> + <None Remove="MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" /> + <None Remove="MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" /> + <None Remove="MockupResults\CIF_MockupResults_PEV_Bus.xml" /> + <None Remove="MockupResults\CIF_MockupResults_PEV_Lorry.xml" /> + <None Remove="MockupResults\MRF_MockupResults_Conv_Bus.xml" /> + <None Remove="MockupResults\MRF_MockupResults_Conv_Lorry.xml" /> + <None Remove="MockupResults\MRF_MockupResults_Error.xml" /> + <None Remove="MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" /> + <None Remove="MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" /> + <None Remove="MockupResults\MRF_MockupResults_PEV_Bus.xml" /> + <None Remove="MockupResults\MRF_MockupResults_PEV_Lorry.xml" /> + <None Remove="MockupResults\VIF_MockupResults_Conv_Bus.xml" /> + <None Remove="MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" /> + <None Remove="MockupResults\VIF_MockupResults_PEV_Bus.xml" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_Conv_Bus.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_Conv_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_PEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\CIF_MockupResults_PEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_Conv_Bus.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_Conv_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_Error.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_PEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\MRF_MockupResults_PEV_Lorry.xml" /> + <EmbeddedResource Include="MockupResults\VIF_MockupResults_Conv_Bus.xml" /> + <EmbeddedResource Include="MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" /> + <EmbeddedResource Include="MockupResults\VIF_MockupResults_PEV_Bus.xml" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Ninject" Version="3.3.6" /> + <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" /> + <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\VectoCore\VectoCore\VectoCore.csproj" /> + </ItemGroup> + +</Project> diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..0b49c3fd17cf844b16df17a42527b14afda11185 --- /dev/null +++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs @@ -0,0 +1,1109 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using Newtonsoft.Json; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.XML.Reports; +using TUGraz.VectoCore.Utils; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace VectoMockupTest +{ + + + + [TestFixture] + public class MockUpVectoTest + { + + private const string BasePath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\"; + + private const string BasePathMockup = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\MockupBusTest\"; + + private const string XsdPath = @".. /../../../../VectoCore/VectoCore/Resources/XSD"; + + private IKernel _vectoKernel; + private ISimulatorFactoryFactory _simFactoryFactory; + //private ISimulatorFactory _simulatorFactory; + private IXMLInputDataReader _inputDataReader; + + #region Heavy Lorry Testfiles + protected const string ConventionalHeavyLorry = BasePath + @"HeavyLorry\Conventional_heavyLorry_AMT.xml"; + protected const string ConventionalHeavyLorry_DifferentTyres = BasePathMockup + @"HeavyLorry\Conventional_heavyLorry_AMT_DifferentTyres.xml"; + protected const string ConventionalHeavyLorry_AT_Angledrive = BasePathMockup + @"HeavyLorry\Conventional_heavyLorry_AT_Angledrive.xml"; + protected const string HEV_Px_HeavyLorry = BasePath + @"HeavyLorry\HEV_heavyLorry_AMT_Px_IHPC.xml"; + protected const string HEV_S2_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml"; + protected const string HEV_S3_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S3.xml"; + protected const string HEV_S3_HeavyLorry_ovc = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml"; + protected const string HEV_S4_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S4.xml"; + protected const string HEV_IEPC_S_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml"; + protected const string PEV_E2_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_AMT_E2.xml"; + protected const string PEV_E3_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_E3.xml"; + protected const string PEV_E4_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_E4.xml"; + protected const string PEV_IEPC_HeavyLorry = BasePath + @"HeavyLorry\IEPC_heavyLorry.xml"; + + protected const string HEV_IHPC_HeavyLorry = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_IHPC.xml"; + protected const string HEV_Px_HeavyLorry_ADC = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_Px_ADC.xml"; + protected const string HEV_S3_HeavyLorry_ADC = BasePathMockup + @"HeavyLorry\HEV-S_heavyLorry_S3_ADC_GenSetADC.xml"; + protected const string HEV_Px_HeavyLorry_SuperCap = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_Px_SuperCap.xml"; + + #endregion + + #region Medium Lorry Testfiles + + protected const string Conventional_mediumLorry_AMT = BasePath + @"MediumLorry/Conventional_mediumLorry_AMT.xml"; + protected const string HEV_S_mediumLorry_AMT_S2 = BasePath + @"MediumLorry/HEV-S_mediumLorry_AMT_S2.xml"; + protected const string HEV_S_mediumLorry_IEPC_S = BasePath + @"MediumLorry/HEV-S_mediumLorry_IEPC-S.xml"; + protected const string HEV_S_mediumLorry_S3 = BasePath + @"MediumLorry/HEV-S_mediumLorry_S3.xml"; + protected const string HEV_S_mediumLorry_S4 = BasePath + @"MediumLorry/HEV-S_mediumLorry_S4.xml"; + protected const string HEV_mediumLorry_AMT_Px = BasePath + @"MediumLorry/HEV_mediumLorry_AMT_Px.xml"; + protected const string IEPC_mediumLorry = BasePath + @"MediumLorry/IEPC_mediumLorry.xml"; + protected const string PEV_mediumLorry_AMT_E2 = BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2.xml"; + protected const string PEV_mediumLorry_AMT_E2_EM_Std = BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml"; + protected const string PEV_mediumLorry_APT_N_E2 = BasePath + @"MediumLorry/PEV_mediumLorry_APT-N_E2.xml"; + protected const string PEV_mediumLorry_E3 = BasePath + @"MediumLorry/PEV_mediumLorry_E3.xml"; + protected const string PEV_mediumLorry_E4 = BasePath + @"MediumLorry/PEV_mediumLorry_E4.xml"; + + protected const string HEV_mediumLorry_IHPC = BasePathMockup + @"MediumLorry/HEV_mediumLorry_IHPC.xml"; + protected const string HEV_mediumLorry_Px_SuperCap = BasePathMockup + @"MediumLorry/HEV_mediumLorry_Px_SuperCap.xml"; + protected const string PEV_mediumLorry_AMT_E2_BatStd = BasePathMockup + @"MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml"; + //protected const string HEV_mediumLorry_Px_ADC = BasePathMockup + @"MediumLorry/HEV_heavyLorry_IHPC.xml"; + //protected const string HEV_mediumLorry_S3_ADC_GenSetADC = BasePathMockup + @"MediumLorry/HEV_heavyLorry_IHPC.xml"; + #endregion + + #region PrimaryBus + + protected const string Conventional_PrimaryBus = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT.xml"; + protected const string Conventional_PrimaryBus_AT_Angledrive = BasePathMockup + @"PrimaryBus\Conventional_primaryBus_AT_Angledrive.xml"; + protected const string Conventional_PrimaryBus_Tyres = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT_DifferentTyres.xml"; + protected const string HEV_Px_PrimaryBus = BasePath + @"PrimaryBus\HEV_primaryBus_AMT_Px.xml"; + protected const string HEV_IHPC_PrimaryBus = BasePathMockup + @"PrimaryBus\HEV_primaryBus_AMT_IHPC.xml"; + protected const string HEV_Px_PrimaryBus_SuperCap = BasePathMockup + @"PrimaryBus\HEV_primaryBus_AMT_Px_SuperCap.xml"; + protected const string HEV_S2_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_AMT_S2.xml"; + protected const string HEV_S2_PrimaryBus_GenSetADC = BasePathMockup + @"PrimaryBus\HEV-S_primaryBus_AMT_S2_GenSetADC.xml"; + protected const string HEV_S2_PrimaryBus_ADC = BasePathMockup + @"PrimaryBus\HEV-S_primaryBus_AMT_S2_ADC.xml"; + protected const string HEV_S3_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_S3.xml"; + protected const string HEV_S4_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_S4.xml"; + protected const string HEV_IEPC_S_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_IEPC-S.xml"; + protected const string PEV_E2_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_AMT_E2.xml"; + protected const string PEV_E3_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E3.xml"; + protected const string PEV_E4_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E4.xml"; + protected const string PEV_IEPC_PrimaryBus = BasePath + @"PrimaryBus\IEPC_primaryBus.xml"; + protected const string PEV_IEPC_std_PrimaryBus = BasePathMockup + @"PrimaryBus\IEPC_primaryBus_StdValues.xml"; + + protected const string PEV_E2_PrimaryBus_StdEM = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_EMStd.xml"; + protected const string PEV_E2_PrimaryBus_StdBat = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_BatteryStd.xml"; + protected const string Conventional_PrimaryBus_DF = BasePathMockup + @"PrimaryBus\Conventional_primaryBus_AMT_DF.xml"; + + #endregion + + #region Complete(d) Bus Input + + protected const string Conventional_CompletedBusInput = BasePath + @"CompletedBus\Conventional_completedBus_2.xml"; + protected const string Conventional_CompletedBusInput_TypeApproval = BasePath + @"CompletedBus\Conventional_completedBus_2_TypeApprovalNumber.xml"; + protected const string Conventional_CompletedBusInput_AirdragV10 = BasePathMockup + @"CompletedBus\Conventional_completedBus_AirdragV10.xml"; + protected const string Conventional_CompletedBusInput_AirdragV20 = BasePathMockup + @"CompletedBus\Conventional_completedBus_AirdragV20.xml"; + protected const string HEV_CompletedBusInput = BasePath + @"CompletedBus\HEV_completedBus_2.xml"; + protected const string PEV_CompletedBusInput = BasePath + @"CompletedBus\PEV_completedBus_2.xml"; + protected const string PEV_IEPC_CompletedBusInput = BasePath + @"CompletedBus\IEPC_completedBus_2.xml"; + + + #endregion + + #region Interim Bus Input + + protected const string Conventional_InterimBusInput = BasePathMockup + @"CompletedBus\Conventional_InterimBus_Min.xml"; + protected const string Conventional_InterimBusInput_AirdragV10 = BasePathMockup + @"CompletedBus\Conventional_interimBus_AirdragV10.xml"; + protected const string Conventional_InterimBusInput_AirdragV20 = BasePathMockup + @"CompletedBus\Conventional_interimBus_AirdragV20.xml"; + protected const string HEV_InterimBusInput = BasePathMockup + @"CompletedBus\HEV_InterimBus_Min.xml"; + protected const string PEV_InterimBusInput = BasePathMockup + @"CompletedBus\PEV_InterimBus_Min.xml"; + protected const string PEV_IEPC_InterimBusInput = BasePathMockup + @"CompletedBus\IEPC_InterimBus_Min.xml"; + + + #endregion + + #region interim bus + + protected const string Conventional_InterimBus = + @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml"; + + protected const string Conventional_StageInput = + @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\vecto_vehicle-stage_input_full-sample.xml"; +#endregion + +#region completed bus + + protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml"; +#endregion + +#region special cases multistage + + private const string TestDataDir = "TestData\\"; + + private const string CompleteDiesel = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional.vecto"; + private const string CompleteExempted = TestDataDir + "Integration\\Multistage\\newVifExempted.vecto"; + private const string CompleteExemptedWithoutTPMLM = TestDataDir + "Integration\\Multistage\\newVifExempted-noTPMLM.vecto"; + private string CompletedWithoutADAS = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional-noADAS.vecto"; + + + + + private const string InterimExempted = TestDataDir + "Integration\\Multistage\\newVifExemptedIncomplete.vecto"; + private const string InterimDiesel = TestDataDir + "Integration\\Multistage\\newVifInterimDiesel.vecto"; + + +#endregion + +#region GroupTest + + private const string GroupTestDir = @"TestData\XML\XMLReaderDeclaration\GroupTest\"; + + + +#endregion + + + + [OneTimeSetUp] + public void OneTimeSetup() + { + _vectoKernel = new StandardKernel( + new VectoNinjectModule() + ); + + _simFactoryFactory = _vectoKernel.Get<ISimulatorFactoryFactory>(); + Assert.NotNull(_simFactoryFactory); + _inputDataReader = _vectoKernel.Get<IXMLInputDataReader>(); + Assert.NotNull(_inputDataReader); + } + + [SetUp] + public void Setup() + { + //SimulatorFactory.MockUpRun = true; + + } + + private void Clearfiles(FileOutputWriter fileWriter) + { + IList<string> filesToBeCleared = new List<string>() { + fileWriter.XMLPrimaryVehicleReportName, + fileWriter.XMLFullReportName, + fileWriter.XMLCustomerReportName + }; + foreach (var fileName in filesToBeCleared) { + if (File.Exists(fileName)) { + File.Delete(fileName); + } + } + } + + private string[] CopyInputFile(params string[] fileNames) + { + var subDirectory = Path.Combine( "MockupReports", TestContext.CurrentContext.Test.Name, "Input"); + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var retVal = new List<string>(); + foreach (var file in fileNames) { + var output = Path.Combine(subDirectory, Path.GetFileName(file)); + File.Copy(file, output, true); + retVal.Add(output); + } + + return retVal.ToArray(); + } + + + public FileOutputWriter GetOutputFileWriter(string subDirectory, string originalFilePath) + { + subDirectory = Path.Combine("MockupReports",subDirectory); + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileName(originalFilePath)); + return new FileOutputWriter(path); + } + + + + + + [TestCase(ConventionalHeavyLorry, TestName = "ConventionalHeavyLorry")] + [TestCase(ConventionalHeavyLorry_DifferentTyres, TestName = "ConventionalHeavyLorry_DifferentTyres")] + [TestCase(ConventionalHeavyLorry_AT_Angledrive, TestName = "ConventionalHeavyLorry_AT_Angledrive")] + //[TestCase(ConventionalHeavyLorry, false, TestName = "ConventionalHeavyLorryNoMockup")] + [TestCase(HEV_S2_HeavyLorry, TestName = "HEV_S2_HeavyLorry")] + [TestCase(HEV_S3_HeavyLorry, TestName = "HEV_S3_HeavyLorry")] + [TestCase(HEV_S3_HeavyLorry_ovc, TestName = "HEV_S3_HeavyLorry_ovc")] + [TestCase(HEV_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")] + [TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")] + [TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")] + //[TestCase(PEV_E2_HeavyLorry, false, TestName = "PEV_E2_HeavyLorryNoMockup")] + [TestCase(PEV_E3_HeavyLorry, TestName = "PEV_E3_HeavyLorry")] + [TestCase(PEV_E4_HeavyLorry, TestName = "PEV_E4_HeavyLorry")] + [TestCase(PEV_IEPC_HeavyLorry, TestName = "PEV_IEPC_HeavyLorry")] + [TestCase(HEV_IEPC_S_HeavyLorry, TestName = "HEV_IEPC_S_HeavyLorry")] + [TestCase(HEV_IHPC_HeavyLorry, TestName = "HEV_IHPC_HeavyLorry")] + [TestCase(HEV_Px_HeavyLorry_ADC, TestName = "HEV_Px_HeavyLorry_ADC")] + [TestCase(HEV_S3_HeavyLorry_ADC, TestName = "HEV_S3_HeavyLorry_ADC")] + [TestCase(HEV_Px_HeavyLorry_SuperCap, TestName = "HEV_Px_HeavyLorry_SuperCap")] + + //[NonParallelizable] + [TestCase(Conventional_mediumLorry_AMT, TestName = "Conventional_Medium_Lorry")] + [TestCase(HEV_S_mediumLorry_AMT_S2, TestName = "HEV_S2_Medium_Lorry")] + [TestCase(HEV_S_mediumLorry_IEPC_S, TestName = "HEV_IEPC_Medium_Lorry")] + [TestCase(HEV_S_mediumLorry_S3, TestName = "HEV_S3_Medium_Lorry")] + [TestCase(HEV_S_mediumLorry_S4, TestName = "HEV_S4_Medium_Lorry")] + [TestCase(HEV_mediumLorry_AMT_Px, TestName = "HEV_Px_Medium_Lorry")] + [TestCase(IEPC_mediumLorry, TestName = "PEV_IEPC_Medium_Lorry")] + [TestCase(PEV_mediumLorry_AMT_E2, TestName = "PEV_E2_Medium_Lorry")] + [TestCase(PEV_mediumLorry_AMT_E2_EM_Std, TestName = "PEV_E2_std_Medium_Lorry")] + [TestCase(PEV_mediumLorry_APT_N_E2, TestName = "PEV_E2_Medium_Lorry_2")] + [TestCase(PEV_mediumLorry_E3, TestName = "PEV_E3_Medium_Lorry")] + [TestCase(PEV_mediumLorry_E4, TestName = "PEV_E4_Medium_Lorry")] + [TestCase(HEV_mediumLorry_IHPC, TestName = "HEV_IHPC_MediumLorry")] + [TestCase(HEV_mediumLorry_Px_SuperCap, TestName = "HEV_Px_Medium_Lorry_SuperCap")] + [TestCase(PEV_mediumLorry_AMT_E2_BatStd, TestName = "PEV_E2_Medium_Lorry_BatteryStd")] + public void LorryMockupTest(string fileName, bool mockup = true) + { + CopyInputFile(fileName); + var inputProvider = _inputDataReader.Create(fileName); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + + + [TestCase(Conventional_PrimaryBus, TestName = "ConventionalPrimaryBus")] + [TestCase(Conventional_PrimaryBus_AT_Angledrive, TestName = "ConventionalPrimaryBus_AT_Angledrive")] + [TestCase(Conventional_PrimaryBus_Tyres, TestName = "ConventionalPrimaryBus Tyres")] + [TestCase(HEV_IEPC_S_PrimaryBus, TestName="HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_PrimaryBus, TestName="HEV_Px_PrimaryBus")] + [TestCase(HEV_IHPC_PrimaryBus, TestName = "HEV_IHPC_PrimaryBus")] + [TestCase(HEV_Px_PrimaryBus_SuperCap, TestName = "HEV_Px_PrimaryBus_SuperCap")] + [TestCase(HEV_S2_PrimaryBus, TestName="HEV_S2_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus_GenSetADC, TestName = "HEV_S2_PrimaryBus_GenSetADC")] + [TestCase(HEV_S2_PrimaryBus_ADC, TestName = "HEV_S2_PrimaryBus_ADC")] + [TestCase(HEV_S3_PrimaryBus, TestName = "HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, TestName = "HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, TestName="PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, TestName = "PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, TestName = "PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, TestName="PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, TestName = "PEV_IEPC-std_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus_StdEM, TestName = "PEV_E2_PrimaryBus_EM-Std")] + [TestCase(PEV_E2_PrimaryBus_StdBat, TestName = "PEV_E2_PrimaryBus_Battery-Std")] + [TestCase(Conventional_PrimaryBus_DF, TestName = "ConventionalPrimaryBus_DualFuel")] + public void PrimaryBusMockupTest(string fileName, bool mockup = true) + { + CopyInputFile(fileName); + var inputProvider = _inputDataReader.Create(fileName); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + CheckFileExists(fileWriter, CifShouldExist:false, PrimaryReportShouldExist:true); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), XmlDocumentType.MultistepOutputData), "VIF invalid" ); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + } + + + //[TestCase(Conventional_InterimBus, Conventional_StageInput, TestName = "ConventionalInterimBus")] + //public void InterimBusMockupTest(string vifInput, string stageInputFile) + //{ + // CopyInputFile(vifInput); + // //SimulatorFactory.MockUpRun = mockup; + // var multistageBusInput = _inputDataReader.Create(vifInput) as IMultistepBusInputDataProvider; + // Assert.NotNull(multistageBusInput); + + // var stageInput = _inputDataReader.CreateDeclaration(stageInputFile); + // var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, vifInput); + // var sumWriter = new SummaryDataContainer(null); + // var jobContainer = new JobContainer(sumWriter); + + // var inputData = new XMLDeclarationVIFInputData(multistageBusInput, stageInput.JobInputData.Vehicle); + + // var _simulatorFactory = + // _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, fileWriter, null, null, true); + // Clearfiles(fileWriter); + // jobContainer.AddRuns(_simulatorFactory); + // jobContainer.Execute(false); + // jobContainer.WaitFinished(); + // CheckFileExists(fileWriter, checkMrf:false, checkCif: false, checkVif: true); + + + //} + + + //[TestCase(Conventional_CompletedBus, TestName = "ConventionalCompletedBus")] + //public void CompletedBusMockupTest(string fileName) + //{ + // CopyInputFile(fileName); + // //SimulatorFactory.MockUpRun = mockup; + // XMLDeclarationVIFInputData input = null!; + // var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + // using (var reader = XmlReader.Create(fileName)) + // { + // input = new XMLDeclarationVIFInputData(_inputDataReader.Create(fileName) as IMultistepBusInputDataProvider, null); + // fileWriter = new FileOutputVIFWriter(fileName, input.MultistageJobInputData.JobInputData.ManufacturingStages.Count); + // } + // var sumWriter = new SummaryDataContainer(null); + // var jobContainer = new JobContainer(sumWriter); + + // var _simulatorFactory = + // _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); + // Clearfiles(fileWriter); + // jobContainer.AddRuns(_simulatorFactory); + // jobContainer.Execute(false); + // jobContainer.WaitFinished(); + // CheckFileExists(fileWriter, checkCif: true, checkVif: false); + //} + + //[TestCase(CompleteDiesel, TestName="CompleteDiesel")] + // [TestCase(CompleteExempted, TestName = "CompleteExempted Bus")] + // [TestCase(CompleteExemptedWithoutTPMLM, TestName = "CompleteExempted No TPMLM")] + //public void PrimaryAndCompletedTest(string fileName) + //{ + + // var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + // var sumWriter = new SummaryDataContainer(null); + // var jobContainer = new JobContainer(sumWriter); + // var input = JSONInputDataFactory.ReadJsonJob(fileName); + // var _simulatorFactory = + // _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); + // Clearfiles(fileWriter); + // jobContainer.AddRuns(_simulatorFactory); + // jobContainer.Execute(false); + // jobContainer.WaitFinished(); + // CheckFileExists(fileWriter, checkCif: true, checkVif: true, checkMrf: true, checkPrimaryMrf: true); + //} + + + //[TestCase(InterimDiesel, TestName = "PrimaryAndInterim")] + //public void PrimaryAndInterim(string fileName) + //{ + + // var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + // var sumWriter = new SummaryDataContainer(null); + // var jobContainer = new JobContainer(sumWriter); + // var input = JSONInputDataFactory.ReadJsonJob(fileName); + // var _simulatorFactory = + // _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); + // Clearfiles(fileWriter); + // jobContainer.AddRuns(_simulatorFactory); + // jobContainer.Execute(false); + // jobContainer.WaitFinished(); + // CheckFileExists(fileWriter, checkCif: false, checkVif: true, checkMrf:false, checkPrimaryMrf:true); + + //} + + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_InterimBusInput, "Conventional", TestName = "Interim_Conventional_Bus_DifferentTyres")] + [TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_InterimBusInput, "Conventional", TestName = "Interim_Conventional_Bus_AT_Angledrive")] + [TestCase(Conventional_PrimaryBus, Conventional_InterimBusInput_AirdragV10, "Conventional", TestName = "InterimConventionalBusAirdrag_v1_0")] + [TestCase(Conventional_PrimaryBus, Conventional_InterimBusInput_AirdragV20, "Conventional", TestName = "InterimConventionalBusAirdrag_v2_0")] + [TestCase(Conventional_PrimaryBus_DF, Conventional_InterimBusInput, "Conventional", TestName = "Interim_ConventionalPrimaryBus_DualFuel")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_InterimBusInput, "IEPC-S", "HEV", TestName = "Interim HEV_IEPC_S_Bus")] + [TestCase(HEV_Px_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "Interim HEV_Px_Bus")] + [TestCase(HEV_IHPC_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "Interim HEV_IHPC_Bus")] + [TestCase(HEV_S2_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S2_Bus")] + [TestCase(HEV_S3_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S3_Bus")] + [TestCase(HEV_S4_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S4_Bus")] + [TestCase(PEV_E2_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E2_Bus")] + [TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E3_Bus")] + [TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E4_Bus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC_Bus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC-std_Bus")] + [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E2_Bus_EM-Std")] + public void InterimTest(string primaryBusInput, string interimBusInput, params string[] expectedType) + { + var interimCopy = CopyInputFile(interimBusInput)[0]; + // VIF + interim input => VIF + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + // setting up testcase + // run primary simulation + var inputProvider = _inputDataReader.Create(primaryBusInput); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true); + File.Delete(fileWriter.XMLFullReportName); + var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0]; + // done preparing testcase... + + // this is the actual test: run completed simulation + + var interimJob = GenerateJsonJobCompletedBus(primaryVif, interimCopy, TestContext.CurrentContext.Test.Name); + var interimInputData = JSONInputDataFactory.ReadJsonJob(interimJob); + var interimFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, interimBusInput); + + var interimSumWriter = new SummaryDataContainer(null); + var interimJobContainer = new JobContainer(interimSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, interimInputData, interimFileWriter, null, null, true); + + Clearfiles(interimFileWriter); //remove files from previous test runs + interimJobContainer.AddRuns(completedSimulatorFactory); + interimJobContainer.Execute(false); + interimJobContainer.WaitFinished(); + + // assertions + File.Delete(fileWriter.XMLPrimaryVehicleReportName); + + CheckFileExists(interimFileWriter, VifShouldExist: true, MrfShouldExist: false, CifShouldExist: false); + + CheckElementTypeNameContains(interimFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + } + + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim Conventional Bus Different Tyres")] + [TestCase(Conventional_PrimaryBus_DF, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim ConventionalPrimaryBus_DualFuel")] + [TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim ConventionalPrimaryBus_AT_Angledrive")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_InterimBusInput, "IEPC-S", "HEV", TestName = "PrimaryAndInterim HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "PrimaryAndInterim HEV_Px_PrimaryBus")] + [TestCase(HEV_IHPC_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "PrimaryAndInterim HEV_IHPC_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S2_PrimaryBus")] + [TestCase(HEV_S3_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC-std_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E2_PrimaryBus_EM-Std")] + public void PrimaryWithInterimTest(string primaryBusInput, string interimInput, params string[] expectedType) + { + var copied = CopyInputFile(primaryBusInput, interimInput); + // complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + + var job = GenerateJsonJobCompleteBus(copied[0], copied[1], TestContext.CurrentContext.Test.Name); + var input = JSONInputDataFactory.ReadJsonJob(job); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, interimInput); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(completedSimulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + // assertions + + CheckFileExists(fileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: false, MrfShouldExist: false); + + CheckElementTypeNameContains(fileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + } + + + + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, "Conventional", TestName = "Complete Conventional Bus Different Tyres")] + [TestCase(Conventional_PrimaryBus_DF, Conventional_CompletedBusInput, "Conventional", TestName = "Complete ConventionalPrimaryBus_DualFuel")] + [TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_CompletedBusInput, "Conventional", TestName = "Complete ConventionalPrimaryBus_AT_Angledrive")] + [TestCase(Conventional_PrimaryBus, Conventional_CompletedBusInput_TypeApproval, "Conventional", TestName = "Complete Conventional Bus Type Approval")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, "IEPC-S", "HEV", TestName = "Complete HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Complete HEV_Px_PrimaryBus")] + [TestCase(HEV_IHPC_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Complete HEV_IHPC_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, "S2", "HEV", TestName = "Complete HEV_S2_PrimaryBus")] + [TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, "S3", "HEV", TestName = "Complete HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, "S4", "HEV", TestName = "Complete HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, "E2", "PEV", TestName = "Complete PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "E3", "PEV", TestName = "Complete PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "E4", "PEV", TestName = "Complete PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC-std_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "E2", "PEV", TestName = "Complete PEV_E2_PrimaryBus_EM-Std")] + public void CompleteTest(string primaryBusInput, string completeBusInput, params string[] expectedType) + { + var copied = CopyInputFile(primaryBusInput, completeBusInput); + // complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + + var completeJob = GenerateJsonJobCompleteBus(copied[0], copied[1], TestContext.CurrentContext.Test.Name); + var completeBusinput = JSONInputDataFactory.ReadJsonJob(completeJob); + var completeFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput); + var completeSumWriter = new SummaryDataContainer(null); + var completeJobContainer = new JobContainer(completeSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completeBusinput, completeFileWriter, null, null, true); + + Clearfiles(completeFileWriter); //remove files from previous test runs + completeJobContainer.AddRuns(completedSimulatorFactory); + completeJobContainer.Execute(false); + completeJobContainer.WaitFinished(); + + // assertions + + CheckFileExists(completeFileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: true, MrfShouldExist: true); + + CheckElementTypeNameContains(completeFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + + //var xmlComparer = new XMLElementComparer(); + //xmlComparer.AddDocument(primaryBusInput, XmlDocumentType.DeclarationJobData); + //xmlComparer.AddDocument(completeFileWriter.XMLFullReportName, XmlDocumentType.ManufacturerReport); + //Assert.IsTrue(xmlComparer.AreEqual(primaryBusInput, "/tns:VectoInputDeclaration/v2.0:Vehicle/ZeroEmissionVehicle", + // completeFileWriter.XMLFullReportName, "/mrf:VectoOutput/mrf:Data/Vehicle/ZeroEmissionHDV")); + + + } + + + + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, "Conventional", TestName = "Completed Conventional Bus Different Tyres")] + [TestCase(Conventional_PrimaryBus_DF, Conventional_CompletedBusInput, "Conventional", TestName = "Completed ConventionalPrimaryBus_DualFuel")] + [TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_CompletedBusInput, "Conventional", TestName = "Completed Conventional Bus_AT_Angledrive")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, "IEPC-S", "HEV", TestName = "Completed HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Completed HEV_Px_PrimaryBus")] + [TestCase(HEV_IHPC_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Completed HEV_IHPC_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S2_PrimaryBus")] + [TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC-std_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E2_PrimaryBus_EM-Std")] + public void CompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType) + { + var completeCopy = CopyInputFile(completeBusInput)[0]; + CopyInputFile(primaryBusInput); + // completed: VIF + complete input (full) => VIF , MRF Completed, CIF Completed + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + // setting up testcase + // run primary simulation + var inputProvider = _inputDataReader.Create(primaryBusInput); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true); + //File.Delete(fileWriter.XMLFullReportName); + var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0]; + // done preparing testcase... + + // this is the actual test: run completed simulation + + var completedJob = GenerateJsonJobCompletedBus(primaryVif, completeCopy, TestContext.CurrentContext.Test.Name); + var completedInputData = JSONInputDataFactory.ReadJsonJob(completedJob); + var completedFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput); + var completedSumWriter = new SummaryDataContainer(null); + var completedJobContainer = new JobContainer(completedSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completedInputData, completedFileWriter, null, null, true); + + Clearfiles(completedFileWriter); //remove files from previous test runs + completedJobContainer.AddRuns(completedSimulatorFactory); + completedJobContainer.Execute(false); + completedJobContainer.WaitFinished(); + + // assertions + //File.Delete(fileWriter.XMLPrimaryVehicleReportName); + + CheckFileExists(completedFileWriter, CifShouldExist: true, MrfShouldExist: true, VifShouldExist:true); + + CheckElementTypeNameContains(completedFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + } + + + private static void CheckElementTypeNameContains(string fileName, string elementName, params string[] expectedType) + { + var xmlDoc = new XmlDocument(); + xmlDoc.Load(XmlReader.Create(fileName)); + var validator = new XMLValidator(xmlDoc); + validator.ValidateXML(XmlDocumentType.MultistepOutputData); + + var vehicleNodes = xmlDoc.SelectNodes($"//*[local-name()='{elementName}']"); + foreach (XmlNode vehicleNode in vehicleNodes) { + var typeName = vehicleNode?.SchemaInfo?.SchemaType?.Name ?? ""; + var contains = expectedType.Select(x => typeName.Contains(x, StringComparison.InvariantCultureIgnoreCase)); + Assert.IsTrue(contains.Any(x => x), $"{typeName} -- {expectedType.Join()}"); + } + } + + private string GenerateJsonJobCompletedBus(string vif, string completeBusInput, string subDirectory) + { + subDirectory = Path.Combine("MockupReports", subDirectory, "Input"); + + var header = new Dictionary<string, object>() { + { "FileVersion", 7 } + }; + var body = new Dictionary<string, object>() { + { "PrimaryVehicleResults", Path.GetRelativePath(subDirectory, Path.GetFullPath(vif)) }, + { "CompletedVehicle", Path.GetRelativePath(subDirectory, Path.GetFullPath(completeBusInput)) }, + { "RunSimulation", true} + }; + var json = new Dictionary<string, object>() { + {"Header", header}, + {"Body", body} + }; + + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completedJob.vecto"); + var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(path, str); + return path; + } + private string GenerateJsonJobCompleteBus(string primaryBusInput, string completeBusInput, string subDirectory) + { + subDirectory = Path.Combine("MockupReports", subDirectory, "Input"); + + var header = new Dictionary<string, object>() { + { "FileVersion", 10 } + }; + var body = new Dictionary<string, object>() { + { "PrimaryVehicle", Path.GetRelativePath(subDirectory, Path.GetFullPath(primaryBusInput)) }, + { "InterimStep", Path.GetRelativePath(subDirectory, Path.GetFullPath(completeBusInput)) }, + { "RunSimulation", true} + }; + var json = new Dictionary<string, object>() { + {"Header", header}, + {"Body", body} + }; + + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completeJob.vecto"); + var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(path, str); + return path; + } + + private static void CheckFileExists(FileOutputWriter fileWriter, + bool MrfShouldExist = true, + bool CifShouldExist = true, + bool VifShouldExist = false, + bool PrimaryMrfShouldExist = false, + bool PrimaryReportShouldExist = false) + { + var fail = false; + if (CifShouldExist) { + if (File.Exists(fileWriter.XMLCustomerReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLCustomerReportName), + XmlDocumentType.CustomerReport); + } else { + TestContext.WriteLine(fileWriter.XMLCustomerReportName + " Missing\n"); + fail = true; + } + } else { + var fileName = fileWriter.XMLCustomerReportName; + if (File.Exists(fileName)) { + fail = true; + TestContext.WriteLine($"{fileName} should not exist"); + } + } + + if (MrfShouldExist) { + if (File.Exists(fileWriter.XMLFullReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLFullReportName), + XmlDocumentType.ManufacturerReport); + } else { + TestContext.WriteLine(fileWriter.XMLFullReportName + " Missing\n"); + fail = true; + } + } else { + var fileName = fileWriter.XMLFullReportName; + if (File.Exists(fileName)) + { + fail = true; + TestContext.WriteLine($"{fileName} should not exist"); + } + } + + var primaryMrfPath = fileWriter.XMLFullReportName.Replace("RSLT_MANUFACTURER", "RSLT_MANUFACTURER_PRIMARY"); + if (PrimaryMrfShouldExist) { + if (File.Exists(primaryMrfPath)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(primaryMrfPath), XmlDocumentType.ManufacturerReport); + } else { + TestContext.WriteLine(primaryMrfPath + " Missing\n"); + fail = true; + } + } else { + var fileName = primaryMrfPath; + if (File.Exists(fileName)) + { + fail = true; + TestContext.WriteLine($"{fileName} should not exist"); + } + } + + + if (PrimaryReportShouldExist) { + if (File.Exists(fileWriter.XMLPrimaryVehicleReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), + XmlDocumentType.MultistepOutputData); + } else { + TestContext.WriteLine(fileWriter.XMLPrimaryVehicleReportName + " Missing\n"); + fail = true; + } + } else { + var fileName = fileWriter.XMLPrimaryVehicleReportName; + if (File.Exists(fileName)) + { + fail = true; + TestContext.WriteLine($"{fileName} should not exist"); + } + } + + if (VifShouldExist) { + if (File.Exists(fileWriter.XMLMultistageReportFileName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLMultistageReportFileName), + XmlDocumentType.MultistepOutputData); + } else { + TestContext.WriteLine(fileWriter.XMLMultistageReportFileName + " Missing\n"); + fail = true; + } + } else { + var fileName = fileWriter.XMLMultistageReportFileName; + if (File.Exists(fileName)) + { + fail = true; + TestContext.WriteLine($"{fileName} should not exist"); + } + } + + if (fail) { + Assert.Fail(); + } + + } + + [TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Rigid Truck_4x2_vehicle-class-1_EURO6_2018.xml", TestName="GroupClass1")] + [TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Rigid Truck_6x2_vehicle-class-9_EURO6_2018.xml",TestName="GroupClass9")] + [TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Tractor_4x2_vehicle-class-5_EURO6_2018.xml", TestName="GroupClass5")] + [TestCase(@"TestData/XML/XMLReaderDeclaration/GroupTest/Rigid Truck_8x4_vehicle-class-16_EURO6_2018.xml", TestName="GroupClass16")] + public void GroupTestFail(string fileName, bool mockup = true) + { + + + IInputDataProvider inputProvider = null; + Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName)); + if (inputProvider == null) { + Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions"); + } + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + [Ignore("1.0 Schema ignored")] + [TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/Tractor_4x2_vehicle-class-5_5_t_0.xml", TestName="Schema10Test1")] + [TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/vecto_vehicle-new_parameters-sample.xml",TestName="Schema10_new_parameters", Ignore = "Invalid combination for ecoroll")] + [TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/vecto_vehicle-sample_LNG.xml", TestName="Schema10_vehicle_sample_lng")] + public void Schema1_0_Test(string fileName, bool mockup = true) + { + + IInputDataProvider inputProvider = null!; + Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName)); + if (inputProvider == null) + { + Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions"); + } + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + [Ignore("Schema 2_0 not supported in MockupVecto")] + [TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/Tractor_4x2_vehicle-class-5_5_t_0.xml", TestName="Schema20Test1")] + public void Schema2_0_Test(string fileName, bool mockup = true) + { + + IInputDataProvider inputProvider = null!; + Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName)); + // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract + if (inputProvider == null) + { + Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions"); + } + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + [Ignore("Json not supported in Mockup vecto")] + [TestCase("TestData/Generic Vehicles/Declaration Mode/40t Long Haul Truck/40t_Long_Haul_Truck.vecto", TestName="JSON_40TLonghaul")] + [TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigidTruckClass9")] + [NonParallelizable] + public void JSONTest(string fileName, bool mockup = true) + { + + var inputProvider = JSONInputDataFactory.ReadJsonJob(fileName); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + ISimulatorFactory _simulatorFactory = null!; + Assert.Throws(typeof(VectoException), () => { + _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + }); + // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract + if (_simulatorFactory == null) { + Assert.Pass("Test cancelled! SimulatorFactory could not be created, this is expected on JSON jobs"); + } + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + private const string BasePathExempted = "TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/"; + + // [TestCase(BasePathExempted + "exempted_completedBus_input_full.xml", + // true, + // true, + // false, + // false, + // true, + // TestName = "ExemptedCompletedBus1")] + // [TestCase(BasePathExempted + "exempted_completedBus_input_only_mandatory_entries.xml", + //true, + //true, + //false, + //false, + //false, + //TestName="ExemptedCompletedBus2")] + [TestCase(BasePathExempted + "exempted_heavyLorry.xml", + false, + true, + true, + false, + false, + TestName="ExemptedHeavyLorry")] + [TestCase(BasePathExempted + "exempted_mediumLorry.xml", + false, + true, + true, + false, + false, + TestName="ExemptedMediumLorry")] + [TestCase(BasePathExempted + "exempted_primaryBus.xml", + false, + false, + true, + false, + true, + TestName="ExemptedPrimaryBus")] + public void ExemptedTest(string fileName, bool checkVif, bool checkCif, bool checkMrf, bool checkPrimaryMrf, + bool checkPrimaryReport) + { + CopyInputFile(fileName); + var inputProvider = _inputDataReader.Create(fileName); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + Clearfiles(fileWriter); + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter, + VifShouldExist:checkVif, + CifShouldExist:checkCif, + MrfShouldExist:checkMrf, + PrimaryMrfShouldExist:checkPrimaryMrf, + PrimaryReportShouldExist:checkPrimaryReport); + if (checkMrf) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid"); + if (checkPrimaryReport) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), XmlDocumentType.MultistepOutputData), "VIF invalid"); + if (checkCif) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid"); + } + + [TestCase(BasePathExempted + "exempted_primaryBus.xml", + BasePathExempted + "exempted_completedBus_input_full.xml", + "Exempted", + TestName="ExemptedCompleteBus")] + public void ExemptedCompleteBusTest(string primaryInput, string completeInput, params string[] expectedType) + { + var copied = CopyInputFile(primaryInput, completeInput); + var completeCopy = copied[1]; + + + + // complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + + var completeJob = GenerateJsonJobCompleteBus(primaryInput, completeCopy, TestContext.CurrentContext.Test.Name); + var completeBusinput = JSONInputDataFactory.ReadJsonJob(completeJob); + var completeFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeInput); + var completeSumWriter = new SummaryDataContainer(null); + var completeJobContainer = new JobContainer(completeSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completeBusinput, completeFileWriter, null, null, true); + + Clearfiles(completeFileWriter); //remove files from previous test runs + completeJobContainer.AddRuns(completedSimulatorFactory); + completeJobContainer.Execute(false); + completeJobContainer.WaitFinished(); + + // assertions + + CheckFileExists(completeFileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: true, MrfShouldExist: true); + + //CheckElementTypeNameContains(completeFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + + } + + + [TestCase(BasePathExempted + "exempted_primaryBus.xml", + BasePathExempted + "exempted_completedBus_input_full.xml", + "Exempted", + TestName = "ExemptedCompletedBus")] + public void ExemptedCompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType) + { + var copied = CopyInputFile(primaryBusInput, completeBusInput); + var completeCopy = copied[1]; + // completed: VIF + complete input (full) => VIF , MRF Completed, CIF Completed + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + // setting up testcase + // run primary simulation + var inputProvider = _inputDataReader.Create(primaryBusInput); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput); + var sumWriter = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true); + //File.Delete(fileWriter.XMLFullReportName); + var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0]; + // done preparing testcase... + + // this is the actual test: run completed simulation + + var completedJob = GenerateJsonJobCompletedBus(primaryVif, completeCopy, TestContext.CurrentContext.Test.Name); + var completedInputData = JSONInputDataFactory.ReadJsonJob(completedJob); + var completedFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput); + var completedSumWriter = new SummaryDataContainer(null); + var completedJobContainer = new JobContainer(completedSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completedInputData, completedFileWriter, null, null, true); + + Clearfiles(completedFileWriter); //remove files from previous test runs + completedJobContainer.AddRuns(completedSimulatorFactory); + completedJobContainer.Execute(false); + completedJobContainer.WaitFinished(); + + // assertions + //File.Delete(fileWriter.XMLPrimaryVehicleReportName); + + CheckFileExists(completedFileWriter, CifShouldExist: true, MrfShouldExist: true, VifShouldExist: true); + + CheckElementTypeNameContains(completedFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType); + } + + + + } +} diff --git a/VectoMockup/VectoMockupTest/VectoMockupTest.csproj b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj new file mode 100644 index 0000000000000000000000000000000000000000..63a43fb3a2f8a5c2632eb177dd12a2addf312aee --- /dev/null +++ b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj @@ -0,0 +1,61 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + + <PropertyGroup> + <TargetFrameworks>net6.0</TargetFrameworks> + <Nullable>enable</Nullable> + + <IsPackable>false</IsPackable> + + <Configurations>Debug;Release;MockupDebug</Configurations> + </PropertyGroup> + + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> + <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants> + <DebugType>embedded</DebugType> + </PropertyGroup> + + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MockupDebug|AnyCPU'"> + <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants> + <DebugType>embedded</DebugType> + </PropertyGroup> + + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> + <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants> + </PropertyGroup> + + <ItemGroup> + <Compile Remove="TestData\**" /> + <EmbeddedResource Remove="TestData\**" /> + <None Remove="TestData\**" /> + </ItemGroup> + + <ItemGroup> + <Content Include="..\..\VectoCore\VectoCoreTest\TestData\**\*.*"> + + <Link>TestData\%(RecursiveDir)%(FileName).%(Extension)</Link> + + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + + </Content> + </ItemGroup> + + <ItemGroup> + <Content Remove="..\..\VectoCore\VectoCoreTest\TestData\Components\**" /> + </ItemGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> + <PackageReference Include="NUnit" Version="3.13.3" /> + <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> + <PackageReference Include="NUnit.Analyzers" Version="3.3.0" /> + <PackageReference Include="coverlet.collector" Version="3.1.2" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\..\VectoCore\VectoCoreTest\VectoCoreTest.csproj" /> + <ProjectReference Include="..\..\VectoCore\VectoCore\VectoCore.csproj" /> + <ProjectReference Include="..\VectoMockup\VectoMockup.csproj" /> + </ItemGroup> + +</Project> diff --git a/XMLDeclarationReport.cs b/XMLDeclarationReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..d555ecb0741fbfa8bd94ffcd3f3930cdd1949874 --- /dev/null +++ b/XMLDeclarationReport.cs @@ -0,0 +1,8 @@ +using System; + +public class Class1 +{ + public Class1() + { + } +}