diff --git a/.gitignore b/.gitignore index 70da7d2b0b929a39aac5a70d55e9a84771fb89a7..0f6e6ab57cf9b8b246b9e2d1b043dc98c6921f85 100644 --- a/.gitignore +++ b/.gitignore @@ -212,3 +212,10 @@ Documentation/VehiclesReleaseComparisonDeclarationMode/tmp/ .vs/ **/dev/*.vmod **/dev/*.vsum +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/testVif.VIF_Report_5.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/final.VIF_Report_5.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/test+.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/test.VIF_Report_5.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/tests.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/finalGroup41.VIF_Report_4.xml +/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/output diff --git a/Build/Packaging.targets b/Build/Packaging.targets index 738041cddbf0c009fc6e5e36be5434b6d4022ce2..5cb39676bbc51eb3e0ed9ad56014f177edabc06f 100644 --- a/Build/Packaging.targets +++ b/Build/Packaging.targets @@ -86,19 +86,13 @@ <VectoConfigurationSample Include="$(SolutionDir)VECTO\install.ini"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\VECTO3.exe*"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\System.Windows.Interactivity.dll"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\Microsoft.WindowsAPICodePack*.dll"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\Microsoft.WindowsAPICodePack*.dll"/> - <!-- <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\Microsoft.Expression.Interactions.dll"/> --> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\MahApps.*.dll"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\ICSharpCode.AvalonEdit.dll"/> - <Vecto3GUI Include="$(SolutionDir)VECTO3GUI\bin\Release\ControlzEx.dll"/> + <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\VECTOMultistage.exe*"/> + <VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\*.dll"/> </ItemGroup> <Message Text="@(VectoCommandLine)"/> <Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(OutputPath)"/> - <Copy SourceFiles="@(Vecto3GUI)" DestinationFolder="$(OutputPath)"/> + <Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(OutputPath)"/> <Copy SourceFiles="@(HashingTool)" DestinationFolder="$(OutputPath)"/> <Copy SourceFiles="@(GenericVehicles)" DestinationFiles="@(GenericVehicles->'$(OutputPath)\Generic Vehicles\%(RecursiveDir)%(Filename)%(Extension)')" /> <Copy SourceFiles="@(DeclarationData)" DestinationFolder="$(OutputPath)\Declaration" /> @@ -125,6 +119,7 @@ <ZipFiles Include="$(OutputPath)*.dll" /> <ZipFiles Include="$(OutputPath)*.ini" /> <ZipFiles Include="$(OutputPath)VECTO.exe*" /> + <ZipFiles Include="$(OutputPath)VECTOMultistage.exe*" /> <ZipFiles Include="$(OutputPath)vectocmd.exe*"/> <ZipFiles Include="$(OutputPath)VECTO3.exe*" /> <ZipFiles Include="$(OutputPath)HashingTool.exe*"/> diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx index b79c5b08654ccd73b0a372060e7bf0e04de844c0..9d3740f89f5c8f213dad13e6cf6e5e0886cbac40 100644 Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx and b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx differ diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/CompletedBus_31b.vecto b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/CompletedBus_31b.vecto deleted file mode 100644 index 8f0b059224c23b0a3e8c9b89211b67e63f60bbab..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/CompletedBus_31b.vecto +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Header": { - "CreatedBy": "Markus Quaritsch, IVT, Graz University of Technology", - "Date": "2020-02-07T15:06:30.9725917Z", - "AppVersion": "2.2", - "FileVersion": 7 - }, - "Body": { - "CompletedVehicle": "vecto_vehicle-completed_heavyBus_31b.xml", - "PrimaryVehicleResults": "primary_heavyBus group_P31_32_Smart_ES.PIF.xml" - } -} \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/airdrag.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/airdrag.xml new file mode 100644 index 0000000000000000000000000000000000000000..68b28667f25ce5cb4e58318e70a96ffcdc8f9df4 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/airdrag.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3_DF" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd"> + <tns:AirDrag> + <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>4.90</CdxA_0> + <TransferredCdxA>4.90</TransferredCdxA> + <DeclaredCdxA>4.90</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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </tns:AirDrag> +</tns:VectoInputDeclaration> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/completed_heavyBus_31b.VIF_Report_2.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/completed_heavyBus_31b.VIF_Report_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..2c0c3b8ebb62078bf234e4039f9beaeee270217e --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/completed_heavyBus_31b.VIF_Report_2.xml @@ -0,0 +1,673 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.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> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + </Data> + </TorqueConverter> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <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="AuxiliaryDataPIFType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </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-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Z4frlN/8ioSA2aLbZJXxA9KFpZc+K8LhrmLwah9iQT4=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-60d49d82f57045a08a3b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>TV0NKLdUGs3PIv1mOYSjH5AU/VfV6sajVEjYO0VUSIM=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.23442</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1409.92</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.33702</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1710.65</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.80994</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1158.90</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.20267</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1407.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.19937</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1040.84</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.27415</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1266.23</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.65024</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">927.29</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.97487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1024.39</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.30637</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1488.50</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.96878</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1830.26</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.70173</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1224.27</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.52533</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1504.55</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.81161</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1085.72</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.21263</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1335.02</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.83860</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">941.10</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.16752</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1038.51</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.07040</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">811.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.52049</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">844.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.24338</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">970.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.85369</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1088.81</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.54684</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">846.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.09233</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">886.39</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-06-08T18:59:03.7698542Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#VEH-88dcf76d37a64b5eaf70"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4MFxDdYDnYyRrUdyIPFhEYwbyqqJl3MlYtXMaB/RQis=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-aec22451f48f47c484ac"> + <HashPreviousStage> + <di:Reference URI="#VEH-88dcf76d37a64b5eaf70"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4MFxDdYDnYyRrUdyIPFhEYwbyqqJl3MlYtXMaB/RQis=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-273285e977014470902e"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>10680</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>18000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>86</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>0</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>0</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CE</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>10633</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>270</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <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>4.90</CdxA_0> + <TransferredCdxA>4.90</TransferredCdxA> + <DeclaredCdxA>4.90</DeclaredCdxA> + </Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>6</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>none</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>N.A.</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>15000</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>false</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV</SimulationToolVersion> + <Date>2021-06-08T19:22:47.3132288Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MST-aec22451f48f47c484ac"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>aVAzUfhrvuQA2Q7Yb8IBOuVuRp0QVgDRI2NX5BiZZgI=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_airdragonly.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_airdragonly.xml new file mode 100644 index 0000000000000000000000000000000000000000..94d999194e4620ca1be529ecbd7fdcc68b1bd7f1 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_airdragonly.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" 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="TODO_ADDIDENTIFIER" xsi:type="InterimStageInputType"> + <Manufacturer>TUG</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <VIN>VIN-1234</VIN> + <Date>2021-06-06T22:00:00Z</Date> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>12000</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>250</EntranceHeight> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <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>4.90</v2.0:CdxA_0> + <v2.0:TransferredCdxA>4.90</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>4.90</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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_aux.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_aux.xml new file mode 100644 index 0000000000000000000000000000000000000000..74713967028ad6245256d4ade6af36569360607d --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/input_aux.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="TODO_ADDIDENTIFIER" xsi:type="InterimStageInputType"> + <Manufacturer>IVT</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <VIN>VIN-1234</VIN> + <Date>2021-06-06T22:00:00Z</Date> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Positionlights>false</Positionlights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>0</SystemConfiguration> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 4-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF.xml deleted file mode 100644 index 5fe21e26b24f4ce37f4664c9790078f532f4f510..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF.xml +++ /dev/null @@ -1,554 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-0cfb413a8bf1457a8dcd"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>700</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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> - <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"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Generic primary bus 41 Engine</Model> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>VectoEngine x.y</AppVersion> - <Displacement>7700</Displacement> - <RatedSpeed>2200</RatedSpeed> - <RatedPower>200000</RatedPower> - <MaxEngineTorque>1100</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>700</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> - <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> - <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> - <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> - <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> - <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> - <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> - <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> - <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> - <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> - <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <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"> - <Gear number="1"> - <Ratio>3.364</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="2"> - <Ratio>1.909</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="3"> - <Ratio>1.421</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="4"> - <Ratio>1.000</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="5"> - <Ratio>0.720</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="6"> - <Ratio>0.615</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - </Gears> - </Data> - </Transmission> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic primary bus 41 AxleGear</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>6.500</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>true</aux:SmartElectrics> - <aux:MaxAlternatorPower>15000</aux:MaxAlternatorPower> - <aux:ElectricStorageCapacity>50</aux:ElectricStorageCapacity> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>W1n8NZVFsw4QrL7Dy/rJ1J02Xk4UvfMfBfZ+lO5x2i4=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-0f8290ebb0b8446c9841"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>vo6X6Me6wrxqosr7cAnrliB6kTd8RVmvw5AJ86ezzD4=</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.26127</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1411.89</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">23.36173</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1712.46</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.79525</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1157.82</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.17590</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1405.63</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.24764</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1044.38</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">17.32635</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1270.06</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.66038</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">928.03</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.98543</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1025.16</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.31731</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1489.30</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">24.95584</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1829.32</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">16.66413</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1221.52</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.46277</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1499.96</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.85984</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1089.26</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.25391</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1338.05</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.84841</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">941.82</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.17565</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1039.10</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.06324</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">810.96</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.51205</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">843.86</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.25759</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">971.81</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.86026</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1089.29</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.54039</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">845.93</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.07723</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">885.29</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.2050-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-08-12T12:05:05.0183214Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-0cfb413a8bf1457a8dcd"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>W7emEpfo1jlRFXGEtgmzLL1NyY0CLxWmWXeEAPjXpks=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF_incl TC.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF_incl TC.xml deleted file mode 100644 index 58e993b82f7c4ca4497b1b87d435f1fd47823951..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.PIF_incl TC.xml +++ /dev/null @@ -1,571 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-031eec78fb1746d280d9"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>700</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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> - <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"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Generic primary bus 41 Engine</Model> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>VectoEngine x.y</AppVersion> - <Displacement>7700</Displacement> - <RatedSpeed>2200</RatedSpeed> - <RatedPower>220000</RatedPower> - <MaxEngineTorque>1100</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>700</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> - <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> - <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> - <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> - <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> - <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> - <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> - <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> - <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> - <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> - <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <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"> - <Gear number="1"> - <Ratio>3.364</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="2"> - <Ratio>1.909</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="3"> - <Ratio>1.421</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="4"> - <Ratio>1.000</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="5"> - <Ratio>0.720</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="6"> - <Ratio>0.615</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - </Gears> - </Data> - </Transmission> - <TorqueConverter> - <Data xsi:type="TorqueConverterDataPIFType"> - <Manufacturer>Some Manufacturer</Manufacturer> - <Model>Some Model</Model> - <CertificationMethod>Standard values</CertificationMethod> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>TC CalcApp 123</AppVersion> - <Characteristics> - <Entry speedRatio='0.0000' torqueRatio='1.80' inputTorqueRef='368.37'/> - <Entry speedRatio='0.6000' torqueRatio='1.23' inputTorqueRef='294.70'/> - <Entry speedRatio='0.9000' torqueRatio='0.95' inputTorqueRef='184.18'/> - <Entry speedRatio='1.0000' torqueRatio='0.94' inputTorqueRef='0.00'/> - <Entry speedRatio='5.0000' torqueRatio='0.90' inputTorqueRef='-1473.48'/> - </Characteristics> - </Data> - </TorqueConverter> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic primary bus 41 AxleGear</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>6.500</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>true</aux:SmartElectrics> - <aux:MaxAlternatorPower>15000</aux:MaxAlternatorPower> - <aux:ElectricStorageCapacity>50</aux:ElectricStorageCapacity> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>qbkrFYROE5tA+8PnYHcW9bd65Z8HWn1fCwMHHrtSqKY=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-6c34e6e3c0654ca2b66d"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>5tgyq+cWmJLc6jGrNL+vrTKwUvPfffC9L2KQNsN5me0=</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.26127</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1411.89</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">23.36173</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1712.46</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.79525</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1157.82</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.17590</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1405.63</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.24764</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1044.38</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">17.32635</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1270.06</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> - <Payload unit="kg">879.90</Payload> - <PassengerCount>12.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.56175</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">920.80</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.98543</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1025.16</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.31731</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1489.30</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">24.95584</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1829.32</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">16.66413</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1221.52</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.46277</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1499.96</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.85984</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1089.26</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.25391</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1338.05</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.84841</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">941.82</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.17565</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1039.10</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.06324</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">810.96</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.51205</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">843.86</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.25759</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">971.81</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.86026</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1089.29</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.54039</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">845.93</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.07723</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">885.29</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-05-11T12:53:35.5309828Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-031eec78fb1746d280d9"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>abc/t5+cWFTVDs6Mg9DmP5sj7khuShNbWtU6Zxi9MGw=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..3e73ce67f8242f68ccadbdeeb742c1a64c755b69 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml @@ -0,0 +1,574 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.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> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + </Data> + </TorqueConverter> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <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="AuxiliaryDataPIFType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </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-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Z4frlN/8ioSA2aLbZJXxA9KFpZc+K8LhrmLwah9iQT4=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-60d49d82f57045a08a3b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>TV0NKLdUGs3PIv1mOYSjH5AU/VfV6sajVEjYO0VUSIM=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.23442</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1409.92</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.33702</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1710.65</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.80994</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1158.90</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.20267</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1407.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.19937</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1040.84</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.27415</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1266.23</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.65024</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">927.29</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.97487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1024.39</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.30637</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1488.50</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.96878</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1830.26</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.70173</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1224.27</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.52533</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1504.55</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.81161</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1085.72</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.21263</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1335.02</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.83860</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">941.10</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.16752</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1038.51</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.07040</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">811.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.52049</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">844.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.24338</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">970.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.85369</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1088.81</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.54684</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">846.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.09233</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">886.39</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-06-08T18:59:03.7698542Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#VEH-88dcf76d37a64b5eaf70"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4MFxDdYDnYyRrUdyIPFhEYwbyqqJl3MlYtXMaB/RQis=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF_incl TC.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF_incl TC.xml new file mode 100644 index 0000000000000000000000000000000000000000..5e21f4db5a69ea83fdb5759aa0b7572a71853223 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF_incl TC.xml @@ -0,0 +1,582 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/DEV/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-031eec78fb1746d280d9"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>220000</RatedPower> + <MaxEngineTorque>1100</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66"/> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83"/> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44"/> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29"/> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58"/> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88"/> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11"/> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76"/> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36"/> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60"/> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66"/> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <Characteristics> + <Entry speedRatio='0.0000' torqueRatio='1.80' inputTorqueRef='368.37'/> + <Entry speedRatio='0.6000' torqueRatio='1.23' inputTorqueRef='294.70'/> + <Entry speedRatio='0.9000' torqueRatio='0.95' inputTorqueRef='184.18'/> + <Entry speedRatio='1.0000' torqueRatio='0.94' inputTorqueRef='0.00'/> + <Entry speedRatio='5.0000' torqueRatio='0.90' inputTorqueRef='-1473.48'/> + </Characteristics> + </Data> + </TorqueConverter> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>qbkrFYROE5tA+8PnYHcW9bd65Z8HWn1fCwMHHrtSqKY=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-6c34e6e3c0654ca2b66d"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>5tgyq+cWmJLc6jGrNL+vrTKwUvPfffC9L2KQNsN5me0=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.26127</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1411.89</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.36173</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1712.46</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.79525</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1157.82</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.17590</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1405.63</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.24764</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1044.38</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.32635</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1270.06</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> + <Payload unit="kg">879.90</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.56175</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">920.80</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.98543</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1025.16</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.31731</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1489.30</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.95584</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1829.32</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.66413</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1221.52</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.46277</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1499.96</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.85984</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1089.26</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.25391</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1338.05</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.84841</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">941.82</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.17565</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1039.10</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.06324</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">810.96</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.51205</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">843.86</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.25759</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">971.81</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.86026</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1089.29</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.54039</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">845.93</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.07723</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">885.29</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-11T12:53:35.5309828Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-031eec78fb1746d280d9"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>abc/t5+cWFTVDs6Mg9DmP5sj7khuShNbWtU6Zxi9MGw=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml index ee9ea1cb21ec5fd0f5346a08f67cee76ad87c654..f617c5c3545e266d7e7cbfae03eb933abcb5199a 100644 --- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml +++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml @@ -1,29 +1,32 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II</ClassBus> - <VehicleCode>CE</VehicleCode> - <CurbMassChassis>10680</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>10680</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>86</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II</ClassBus> + <NumberPassengerSeatsLowerDeck>86</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CE</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>10.633</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.270</EntranceHeight> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>10633</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>270</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> - <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> + <AirDrag> + <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> @@ -33,7 +36,7 @@ <TransferredCdxA>4.90</TransferredCdxA> <DeclaredCdxA>4.90</DeclaredCdxA> </Data> - <Signature> + <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> @@ -42,29 +45,27 @@ <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> - </Signature> - </v2.6:AirDrag> + </v2.0:Signature> + </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>true</Interiorlights> <Dayrunninglights>true</Dayrunninglights> - <Headlights>true</Headlights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> - <Interiorlights>true</Interiorlights> + <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>6</SystemConfiguration> - <CompressorType> - <DriverAC>none</DriverAC> - <PassengerAC>2-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>N.A.</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>15000</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> </HVAC> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/CompletedBus_34f.vecto b/Generic Vehicles/Declaration Mode/CompletedBus 34f/CompletedBus_34f.vecto deleted file mode 100644 index 806bdc989383c55949d82be7dc4a94e192d59512..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 34f/CompletedBus_34f.vecto +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Header": { - "CreatedBy": "Markus Quaritsch, IVT, Graz University of Technology", - "Date": "2020-02-07T15:06:30.9725917Z", - "AppVersion": "2.2", - "FileVersion": 7 - }, - "Body": { - "CompletedVehicle": "vecto_vehicle-completed_heavyBus_34f.xml", - "PrimaryVehicleResults": "primary_heavyBus group_P33_34_SmartPS.PIF.xml" - } -} \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/completed_heavyBus_34f.VIF_Report_2.xml b/Generic Vehicles/Declaration Mode/CompletedBus 34f/completed_heavyBus_34f.VIF_Report_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d97ebe414e74f65662ce38c744971464a45fc969 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 34f/completed_heavyBus_34f.VIF_Report_2.xml @@ -0,0 +1,682 @@ +<?xml version="1.0" encoding="utf-8"?> +<vif0.1:VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <vif0.1:PrimaryVehicle> + <vif0.1:Data xsi:type="PrimaryVehicleDataType" id="PIF-7f30aafa027a41a1864b"> + <vif0.1:Vehicle xsi:type="VehiclePIFType"> + <vif0.1:ManufacturerPrimaryVehicle>Generic Bus Manufacturer</vif0.1:ManufacturerPrimaryVehicle> + <vif0.1:ManufacturerAddressPrimaryVehicle>Street, ZIP City</vif0.1:ManufacturerAddressPrimaryVehicle> + <vif0.1:Model>Generic Model</vif0.1:Model> + <vif0.1:VIN>VEH-1234567890_SmartPS</vif0.1:VIN> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:LegislativeCategory>M3</vif0.1:LegislativeCategory> + <vif0.1:ChassisConfiguration>Bus</vif0.1:ChassisConfiguration> + <vif0.1:AxleConfiguration>6x2</vif0.1:AxleConfiguration> + <vif0.1:Articulated>false</vif0.1:Articulated> + <vif0.1:TechnicalPermissibleMaximumLadenMass>25000</vif0.1:TechnicalPermissibleMaximumLadenMass> + <vif0.1:IdlingSpeed>600</vif0.1:IdlingSpeed> + <vif0.1:RetarderType>Transmission Output Retarder</vif0.1:RetarderType> + <vif0.1:RetarderRatio>1.000</vif0.1:RetarderRatio> + <vif0.1:AngledriveType>None</vif0.1:AngledriveType> + <vif0.1:ZeroEmissionVehicle>false</vif0.1:ZeroEmissionVehicle> + <vif0.1: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> + </vif0.1:ADAS> + <vif0.1: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" /> + <tcl:Entry gear="12" maxTorque="1900" /> + </vif0.1:TorqueLimits> + <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Engine> + <vif0.1:Data xsi:type="EngineDataPIFType"> + <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Bus 6x2</vif0.1:Model> + <vif0.1:CertificationNumber>e12*0815/8051*2017/05E0000*00</vif0.1:CertificationNumber> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>VectoEngine x.y</vif0.1:AppVersion> + <vif0.1:Displacement>12730</vif0.1:Displacement> + <vif0.1:RatedSpeed>1800</vif0.1:RatedSpeed> + <vif0.1:RatedPower>325032</vif0.1:RatedPower> + <vif0.1:MaxEngineTorque>2134</vif0.1:MaxEngineTorque> + <vif0.1:WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </vif0.1:WHRType> + <vif0.1:Mode> + <vif0.1:IdlingSpeed>600</vif0.1:IdlingSpeed> + <vif0.1:FullLoadAndDragCurve> + <vif0.1:Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00" /> + <vif0.1:Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00" /> + <vif0.1:Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00" /> + <vif0.1:Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00" /> + <vif0.1:Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00" /> + <vif0.1:Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00" /> + <vif0.1:Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00" /> + <vif0.1:Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00" /> + <vif0.1:Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00" /> + <vif0.1:Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00" /> + </vif0.1:FullLoadAndDragCurve> + <vif0.1:Fuels> + <vif0.1:FuelType>Diesel CI</vif0.1:FuelType> + </vif0.1:Fuels> + </vif0.1:Mode> + </vif0.1:Data> + </vif0.1:Engine> + <vif0.1:Transmission> + <vif0.1:Data xsi:type="TransmissionDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic 40t Long Haul Truck Gearbox</vif0.1:Model> + <vif0.1:MainCertificationMethod>Standard values</vif0.1:MainCertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:TransmissionType>AMT</vif0.1:TransmissionType> + <vif0.1:Gears xsi:type="TransmissionGearsPIFType"> + <vif0.1:Gear number="1"> + <vif0.1:Ratio>14.930</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="2"> + <vif0.1:Ratio>11.640</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="3"> + <vif0.1:Ratio>9.020</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="4"> + <vif0.1:Ratio>7.040</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="5"> + <vif0.1:Ratio>5.640</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="6"> + <vif0.1:Ratio>4.400</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="7"> + <vif0.1:Ratio>3.390</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="8"> + <vif0.1:Ratio>2.650</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="9"> + <vif0.1:Ratio>2.050</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="10"> + <vif0.1:Ratio>1.600</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="11"> + <vif0.1:Ratio>1.280</vif0.1:Ratio> + <vif0.1:MaxSpeed>2000</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="12"> + <vif0.1:Ratio>1.000</vif0.1:Ratio> + </vif0.1:Gear> + </vif0.1:Gears> + </vif0.1:Data> + </vif0.1:Transmission> + <vif0.1:Axlegear> + <vif0.1:Data xsi:type="AxlegearDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic 40t Long Haul Truck AxleGear</vif0.1:Model> + <vif0.1:CertificationMethod>Standard values</vif0.1:CertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:LineType>Single portal axle</vif0.1:LineType> + <vif0.1:Ratio>2.590</vif0.1:Ratio> + </vif0.1:Data> + </vif0.1:Axlegear> + <vif0.1:AxleWheels> + <vif0.1:Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </vif0.1:Data> + </vif0.1:AxleWheels> + <vif0.1:Auxiliaries> + <vif0.1:Data xsi:type="AuxiliaryDataPIFType"> + <vif0.1:Fan> + <vif0.1:Technology>Hydraulic driven - Constant displacement pump</vif0.1:Technology> + </vif0.1:Fan> + <vif0.1:SteeringPump> + <vif0.1:Technology axleNumber="1">Variable displacement elec. controlled</vif0.1:Technology> + </vif0.1:SteeringPump> + <vif0.1:ElectricSystem> + <vif0.1:AlternatorTechnology>conventional</vif0.1:AlternatorTechnology> + <vif0.1:SupplyFromHEVPossible>false</vif0.1:SupplyFromHEVPossible> + </vif0.1:ElectricSystem> + <vif0.1:PneumaticSystem> + <vif0.1:SizeOfAirSupply>Large Supply 2-stage</vif0.1:SizeOfAirSupply> + <vif0.1:CompressorDrive>mechanically</vif0.1:CompressorDrive> + <vif0.1:Clutch>none</vif0.1:Clutch> + <vif0.1:CompressorRatio>1.000</vif0.1:CompressorRatio> + <vif0.1:SmartCompressionSystem>true</vif0.1:SmartCompressionSystem> + <vif0.1:SmartRegenerationSystem>false</vif0.1:SmartRegenerationSystem> + <vif0.1:AirsuspensionControl>electronically</vif0.1:AirsuspensionControl> + <vif0.1:PneumaticSCRReagentDosing>true</vif0.1:PneumaticSCRReagentDosing> + </vif0.1:PneumaticSystem> + <vif0.1:HVAC> + <vif0.1:AdjustableCoolantThermostat>true</vif0.1:AdjustableCoolantThermostat> + <vif0.1:EngineWasteGasHeatExchanger>true</vif0.1:EngineWasteGasHeatExchanger> + </vif0.1:HVAC> + </vif0.1:Data> + </vif0.1:Auxiliaries> + </vif0.1:Components> + </vif0.1:Vehicle> + <vif0.1:InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </vif0.1:InputDataSignature> + <vif0.1:ManufacturerRecordSignature> + <di:Reference URI="#RESULT-7a8d7d4a9dbf4eb895f1"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>+PTOULR+qwZkYaGik0otzNDA8i3Gy4tvXQeORxqNXG0=</di:DigestValue> + </di:Reference> + </vif0.1:ManufacturerRecordSignature> + <vif0.1:Results> + <vif0.1:Status>success</vif0.1:Status> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15527.52</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1352.52</vif0.1:Payload> + <vif0.1:PassengerCount>19.89</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">21.22359</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1555.73</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">20937.60</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">6762.60</vif0.1:Payload> + <vif0.1:PassengerCount>99.45</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">25.40945</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1862.57</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15527.52</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1352.52</vif0.1:Payload> + <vif0.1:PassengerCount>19.89</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">16.74101</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1227.15</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">20937.60</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">6762.60</vif0.1:Payload> + <vif0.1:PassengerCount>99.45</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.24221</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1483.80</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15527.52</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1352.52</vif0.1:Payload> + <vif0.1:PassengerCount>19.89</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.34578</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1051.58</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">20937.60</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">6762.60</vif0.1:Payload> + <vif0.1:PassengerCount>99.45</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">17.60016</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1290.13</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15469.51</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1294.51</vif0.1:Payload> + <vif0.1:PassengerCount>18.23</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.82313</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">866.66</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18411.57</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4236.57</vif0.1:Payload> + <vif0.1:PassengerCount>59.67</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.24283</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">970.73</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16303.29</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1578.29</vif0.1:Payload> + <vif0.1:PassengerCount>23.21</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">22.72091</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1665.49</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22616.43</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">7891.43</vif0.1:Payload> + <vif0.1:PassengerCount>116.05</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">27.95930</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2049.48</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16303.29</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1578.29</vif0.1:Payload> + <vif0.1:PassengerCount>23.21</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">17.90756</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1312.66</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22616.43</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">7891.43</vif0.1:Payload> + <vif0.1:PassengerCount>116.05</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">22.23796</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1630.09</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16303.29</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1578.29</vif0.1:Payload> + <vif0.1:PassengerCount>23.21</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.28035</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1120.08</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P33DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22616.43</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">7891.43</vif0.1:Payload> + <vif0.1:PassengerCount>116.05</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.26201</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1411.95</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16467.68</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1254.68</vif0.1:Payload> + <vif0.1:PassengerCount>17.67</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.93701</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">875.01</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">19319.21</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4106.21</vif0.1:Payload> + <vif0.1:PassengerCount>57.83</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.32341</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">976.63</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16490.49</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1277.49</vif0.1:Payload> + <vif0.1:PassengerCount>17.99</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">8.71847</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">639.08</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18406.72</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3193.72</vif0.1:Payload> + <vif0.1:PassengerCount>44.98</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">9.20255</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">674.57</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">19588.08</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1738.08</vif0.1:Payload> + <vif0.1:PassengerCount>24.48</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.58335</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">995.69</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">23643.60</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5793.60</vif0.1:Payload> + <vif0.1:PassengerCount>81.60</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.56740</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1141.12</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">19703.95</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1853.95</vif0.1:Payload> + <vif0.1:PassengerCount>26.11</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">9.82937</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">720.51</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P34DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22484.88</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4634.88</vif0.1:Payload> + <vif0.1:PassengerCount>65.28</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">10.56728</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">774.60</vif0.1:CO2> + </vif0.1:Result> + </vif0.1:Results> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.6.2.2058-DEV !!NOT FOR CERTIFICATION!!</vif0.1:SimulationToolVersion> + <vif0.1:Date>2020-08-20T12:17:31.4151388Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#PIF-7f30aafa027a41a1864b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>a3ai89pd92w4O1za7mc+ut712QqNJqAfX0FeeZdfrFk=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:PrimaryVehicle> + <vif0.1:ManufacturingStage stageCount="2"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-607e449d2b0e45228b69"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#PIF-7f30aafa027a41a1864b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>a3ai89pd92w4O1za7mc+ut712QqNJqAfX0FeeZdfrFk=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-684dbf252718426b9fde"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>19400</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>25000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II+III</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>16</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>0</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>56</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>4000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>13890</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>300</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>6</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>none</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>N.A.</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>30000</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>true</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-08T19:23:22.0886281Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-607e449d2b0e45228b69"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>D1pKqglxP9ST/vCUSHkr8y4L7miQhPPPywLTCCOIPZk=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> +</vif0.1:VectoOutputMultistage> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.VIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.VIF.xml new file mode 100644 index 0000000000000000000000000000000000000000..0254cb35dd72f2b937656e003bb1bed4eb405ee5 --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.VIF.xml @@ -0,0 +1,605 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-7f30aafa027a41a1864b"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_SmartPS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>6x2</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 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> + <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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <RatedPower>325032</RatedPower> + <MaxEngineTorque>2134</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <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="AxlegearDataPIFType"> + <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="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</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-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-7a8d7d4a9dbf4eb895f1"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>+PTOULR+qwZkYaGik0otzNDA8i3Gy4tvXQeORxqNXG0=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.2.2058-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-08-20T12:17:31.4151388Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-7f30aafa027a41a1864b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>a3ai89pd92w4O1za7mc+ut712QqNJqAfX0FeeZdfrFk=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml b/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml index 263d916f179b9c37a3894c1ce933b0a3211d4104..e44502a740c47d7f4ebb9b93a76b15b10af2553d 100644 --- a/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml +++ b/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml @@ -1,28 +1,31 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II+III</ClassBus> - <VehicleCode>CB</VehicleCode> - <CurbMassChassis>19400</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>19400</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>16</LowerDeck> - <UpperDeck>56</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>16</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>56</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>4.000</HeightIntegratedBody> - <VehicleLength>13.890</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.300</EntranceHeight> + <HeightIntegratedBody>4000</HeightIntegratedBody> + <VehicleLength>13890</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>300</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -43,28 +46,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>true</Interiorlights> <Dayrunninglights>true</Dayrunninglights> - <Headlights>true</Headlights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> - <Interiorlights>true</Interiorlights> + <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>6</SystemConfiguration> - <CompressorType> - <DriverAC>none</DriverAC> - <PassengerAC>2-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>N.A.</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>30000</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/CompletedBus_39a.vecto b/Generic Vehicles/Declaration Mode/CompletedBus 39a/CompletedBus_39a.vecto deleted file mode 100644 index 15aa214b0055d2b517ecb46394bc5810ac988fd5..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 39a/CompletedBus_39a.vecto +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Header": { - "CreatedBy": "Markus Quaritsch, IVT, Graz University of Technology", - "Date": "2020-02-07T15:06:30.9725917Z", - "AppVersion": "2.2", - "FileVersion": 7 - }, - "Body": { - "CompletedVehicle": "vecto_vehicle-completed_heavyBus_39a.xml", - "PrimaryVehicleResults": "primary_heavyBus group P39_40_nonSmart_ESS_PIF.xml" - } -} \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/completed_heavyBus_39a.VIF_Report_2.xml b/Generic Vehicles/Declaration Mode/CompletedBus 39a/completed_heavyBus_39a.VIF_Report_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..b9fbad0730b636deda824d49ba8b646c9837b5cd --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 39a/completed_heavyBus_39a.VIF_Report_2.xml @@ -0,0 +1,678 @@ +<?xml version="1.0" encoding="utf-8"?> +<vif0.1:VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/DEV/VectoOutputMultistage.0.1.xsd"> + <vif0.1:PrimaryVehicle> + <vif0.1:Data xsi:type="PrimaryVehicleDataType" id="PIF-10652bf49ae0499f8689"> + <vif0.1:Vehicle xsi:type="VehiclePIFType"> + <vif0.1:ManufacturerPrimaryVehicle>Generic Bus Manufacturer</vif0.1:ManufacturerPrimaryVehicle> + <vif0.1:ManufacturerAddressPrimaryVehicle>Street, ZIP City</vif0.1:ManufacturerAddressPrimaryVehicle> + <vif0.1:Model>Generic Model</vif0.1:Model> + <vif0.1:VIN>VEH-1234567890_nonSmart-ESS</vif0.1:VIN> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:LegislativeCategory>M3</vif0.1:LegislativeCategory> + <vif0.1:ChassisConfiguration>Bus</vif0.1:ChassisConfiguration> + <vif0.1:AxleConfiguration>8x2</vif0.1:AxleConfiguration> + <vif0.1:Articulated>true</vif0.1:Articulated> + <vif0.1:TechnicalPermissibleMaximumLadenMass>40000</vif0.1:TechnicalPermissibleMaximumLadenMass> + <vif0.1:IdlingSpeed>600</vif0.1:IdlingSpeed> + <vif0.1:RetarderType>Transmission Output Retarder</vif0.1:RetarderType> + <vif0.1:RetarderRatio>1.000</vif0.1:RetarderRatio> + <vif0.1:AngledriveType>None</vif0.1:AngledriveType> + <vif0.1:ZeroEmissionVehicle>false</vif0.1:ZeroEmissionVehicle> + <vif0.1:ADAS xmlns:adas="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xsi:type="adas:AdvancedDriverAssistantSystemsType"> + <adas:EngineStopStart>true</adas:EngineStopStart> + <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> + <adas:EcoRollWithEngineStop>false</adas:EcoRollWithEngineStop> + <adas:PredictiveCruiseControl>none</adas:PredictiveCruiseControl> + </vif0.1:ADAS> + <vif0.1: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" /> + <tcl:Entry gear="12" maxTorque="1900" /> + </vif0.1:TorqueLimits> + <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Engine> + <vif0.1:Data xsi:type="EngineDataPIFType"> + <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>8x2 articulated bus Engine</vif0.1:Model> + <vif0.1:CertificationNumber>e12*0815/8051*2017/05E0000*00</vif0.1:CertificationNumber> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>VectoEngine x.y</vif0.1:AppVersion> + <vif0.1:Displacement>12730</vif0.1:Displacement> + <vif0.1:RatedSpeed>2200</vif0.1:RatedSpeed> + <vif0.1:RatedPower>260</vif0.1:RatedPower> + <vif0.1:MaxEngineTorque>2400</vif0.1:MaxEngineTorque> + <vif0.1:WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </vif0.1:WHRType> + <vif0.1:Mode> + <vif0.1:IdlingSpeed>600</vif0.1:IdlingSpeed> + <vif0.1:FullLoadAndDragCurve> + <vif0.1:Entry engineSpeed="600.00" maxTorque="710.00" dragTorque="-52.00" /> + <vif0.1:Entry engineSpeed="800.00" maxTorque="989.00" dragTorque="-63.00" /> + <vif0.1:Entry engineSpeed="1000.00" maxTorque="1265.00" dragTorque="-73.00" /> + <vif0.1:Entry engineSpeed="1200.00" maxTorque="1420.00" dragTorque="-87.00" /> + <vif0.1:Entry engineSpeed="1400.00" maxTorque="1420.00" dragTorque="-101.00" /> + <vif0.1:Entry engineSpeed="1600.00" maxTorque="1420.00" dragTorque="-114.00" /> + <vif0.1:Entry engineSpeed="1800.00" maxTorque="1329.00" dragTorque="-122.00" /> + <vif0.1:Entry engineSpeed="2000.00" maxTorque="1227.00" dragTorque="-131.00" /> + <vif0.1:Entry engineSpeed="2200.00" maxTorque="1129.00" dragTorque="-147.00" /> + <vif0.1:Entry engineSpeed="2400.00" maxTorque="965.00" dragTorque="-159.00" /> + <vif0.1:Entry engineSpeed="2500.00" maxTorque="841.00" dragTorque="-165.00" /> + <vif0.1:Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-172.00" /> + </vif0.1:FullLoadAndDragCurve> + <vif0.1:Fuels> + <vif0.1:FuelType>Diesel CI</vif0.1:FuelType> + </vif0.1:Fuels> + </vif0.1:Mode> + </vif0.1:Data> + </vif0.1:Engine> + <vif0.1:Transmission> + <vif0.1:Data xsi:type="TransmissionDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>8x2 Bus</vif0.1:Model> + <vif0.1:MainCertificationMethod>Standard values</vif0.1:MainCertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:TransmissionType>APT-P</vif0.1:TransmissionType> + <vif0.1:Gears xsi:type="TransmissionGearsPIFType"> + <vif0.1:Gear number="1"> + <vif0.1:Ratio>1.361</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + </vif0.1:Gear> + <vif0.1:Gear number="2"> + <vif0.1:Ratio>1.000</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + </vif0.1:Gear> + <vif0.1:Gear number="3"> + <vif0.1:Ratio>0.735</vif0.1:Ratio> + </vif0.1:Gear> + </vif0.1:Gears> + </vif0.1:Data> + </vif0.1:Transmission> + <vif0.1:Axlegear> + <vif0.1:Data xsi:type="AxlegearDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>8x2 articulated bus</vif0.1:Model> + <vif0.1:CertificationMethod>Standard values</vif0.1:CertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:LineType>Single portal axle</vif0.1:LineType> + <vif0.1:Ratio>5.810</vif0.1:Ratio> + </vif0.1:Data> + </vif0.1:Axlegear> + <vif0.1:AxleWheels> + <vif0.1:Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" 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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="4" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </vif0.1:Data> + </vif0.1:AxleWheels> + <vif0.1:Auxiliaries> + <vif0.1:Data xsi:type="AuxiliaryDataPIFType"> + <vif0.1:Fan> + <vif0.1:Technology>Hydraulic driven - Constant displacement pump</vif0.1:Technology> + </vif0.1:Fan> + <vif0.1:SteeringPump> + <vif0.1:Technology axleNumber="1">Variable displacement elec. controlled</vif0.1:Technology> + </vif0.1:SteeringPump> + <vif0.1:ElectricSystem> + <vif0.1:AlternatorTechnology>conventional</vif0.1:AlternatorTechnology> + <vif0.1:SupplyFromHEVPossible>false</vif0.1:SupplyFromHEVPossible> + </vif0.1:ElectricSystem> + <vif0.1:PneumaticSystem> + <vif0.1:SizeOfAirSupply>Large Supply 2-stage</vif0.1:SizeOfAirSupply> + <vif0.1:CompressorDrive>mechanically</vif0.1:CompressorDrive> + <vif0.1:Clutch>none</vif0.1:Clutch> + <vif0.1:CompressorRatio>1.000</vif0.1:CompressorRatio> + <vif0.1:SmartCompressionSystem>false</vif0.1:SmartCompressionSystem> + <vif0.1:SmartRegenerationSystem>false</vif0.1:SmartRegenerationSystem> + <vif0.1:AirsuspensionControl>electronically</vif0.1:AirsuspensionControl> + <vif0.1:PneumaticSCRReagentDosing>true</vif0.1:PneumaticSCRReagentDosing> + </vif0.1:PneumaticSystem> + <vif0.1:HVAC> + <vif0.1:AdjustableCoolantThermostat>true</vif0.1:AdjustableCoolantThermostat> + <vif0.1:EngineWasteGasHeatExchanger>true</vif0.1:EngineWasteGasHeatExchanger> + </vif0.1:HVAC> + </vif0.1:Data> + </vif0.1:Auxiliaries> + </vif0.1:Components> + </vif0.1:Vehicle> + <vif0.1:InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_nonSmart-ESS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>jvHzwuW7gaqCxNBELjVg0ZwSEWPR+pSn2iUsocSa2/4=</di:DigestValue> + </di:Reference> + </vif0.1:InputDataSignature> + <vif0.1:ManufacturerRecordSignature> + <di:Reference URI="#RESULT-65d622ab1d834d94ac65"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>k2hbOlnDmFKemd1pQt7YrzNLf5RAKIdH7wMobex4+hw=</di:DigestValue> + </di:Reference> + </vif0.1:ManufacturerRecordSignature> + <vif0.1:Results> + <vif0.1:Status>error</vif0.1:Status> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">21659.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2059.99</vif0.1:Payload> + <vif0.1:PassengerCount>30.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">31.43467</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2304.23</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">29899.96</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">10299.96</vif0.1:Payload> + <vif0.1:PassengerCount>151.47</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">40.44322</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2964.57</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">21659.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2059.99</vif0.1:Payload> + <vif0.1:PassengerCount>30.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">25.29407</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1854.11</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">29899.96</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">10299.96</vif0.1:Payload> + <vif0.1:PassengerCount>151.47</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">32.82324</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2406.01</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">21659.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2059.99</vif0.1:Payload> + <vif0.1:PassengerCount>30.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">21.42260</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1570.32</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">29899.96</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">10299.96</vif0.1:Payload> + <vif0.1:PassengerCount>151.47</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">26.89680</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1971.59</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">27340.66</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2540.66</vif0.1:Payload> + <vif0.1:PassengerCount>37.36</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">38.59941</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2829.42</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">37503.28</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">12703.28</vif0.1:Payload> + <vif0.1:PassengerCount>186.81</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">50.04116</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">3668.12</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">27340.66</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2540.66</vif0.1:Payload> + <vif0.1:PassengerCount>37.36</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">31.08581</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2278.66</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">37503.28</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">12703.28</vif0.1:Payload> + <vif0.1:PassengerCount>186.81</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">41.40670</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">3035.20</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">27340.66</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2540.66</vif0.1:Payload> + <vif0.1:PassengerCount>37.36</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">25.67399</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1881.96</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P39DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">37503.28</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">12703.28</vif0.1:Payload> + <vif0.1:PassengerCount>186.81</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">32.19445</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2359.92</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P40SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22563.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1613.16</vif0.1:Payload> + <vif0.1:PassengerCount>22.72</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">18.51694</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1357.33</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P40SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">27402.62</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">6452.62</vif0.1:Payload> + <vif0.1:PassengerCount>90.88</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">38.15886</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">2797.12</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P40SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">22957.48</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2007.48</vif0.1:Payload> + <vif0.1:PassengerCount>28.27</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.84130</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1014.60</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P40SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">25968.71</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5018.71</vif0.1:Payload> + <vif0.1:PassengerCount>70.69</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.06873</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1104.57</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P40DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">26840.49</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2240.49</vif0.1:Payload> + <vif0.1:PassengerCount>31.56</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">22.11304</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1620.93</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="error"> + <vif0.1:VehicleGroup>P40DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">33561.98</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">8961.98</vif0.1:Payload> + <vif0.1:PassengerCount>126.23</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Error>98 (Interurban _P40DD_ReferenceLoad) - absTime: 6784.9522 [s], distance: 53835.3412 [m], dt: 0.6791 [s], v: 0.0259 [m/s], Gear: 1 | DrivingActionAccelerate: Failed to find operating point</vif0.1:Error> + <vif0.1:ErrorDetails> bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.DrivingActionAccelerate(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, IResponse previousResponse) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.FirstAccelerateOrCoast(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.HandleRequestEngaged(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.AbstractDriverMode.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.DriveDistance(Second absTime, Meter ds) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.Request(Second absTime, Meter ds) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</vif0.1:ErrorDetails> + </vif0.1:Result> + <vif0.1:Result status="error"> + <vif0.1:VehicleGroup>P40DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">27467.83</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2867.83</vif0.1:Payload> + <vif0.1:PassengerCount>40.39</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Error>99 (Coach _P40DD_LowLoading) - absTime: 7924.2025 [s], distance: 131329.1916 [m], dt: 0.6490 [s], v: 0.0076 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 228.7985 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0036 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0306 [m/s^2], OperatingPoint: a: -0.0306 [m/s^2], dt: 0.0036 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0075 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 292.2862 [W], AxlegearPowerRequest: 283.3102 [W], WheelsPowerRequest: 283.3102 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3252.6557 [Nm], GearboxInputSpeed: 0.0889 [1/s], TorqueConverterOperatingPoint: n_out: 0.0902 [1/s], n_in: 63.4602 [1/s], tq_out: 726.9261 [Nm], tq_in 297.1152 [Nm], nu: 0.00142183442517666, my: 2.44661391211967, TorqueConverterTorqueDemand: }</vif0.1:Error> + <vif0.1:ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) + bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</vif0.1:ErrorDetails> + </vif0.1:Result> + <vif0.1:Result status="error"> + <vif0.1:VehicleGroup>P40DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">31769.58</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">7169.58</vif0.1:Payload> + <vif0.1:PassengerCount>100.98</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Error>100 (Coach _P40DD_ReferenceLoad) - absTime: 7524.6514 [s], distance: 130336.7109 [m], dt: 0.7342 [s], v: 0.0092 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 270.7480 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0049 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0467 [m/s^2], OperatingPoint: a: -0.0467 [m/s^2], dt: 0.0049 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0090 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 345.1743 [W], AxlegearPowerRequest: 334.5284 [W], WheelsPowerRequest: 334.5284 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3212.7746 [Nm], GearboxInputSpeed: 0.1057 [1/s], TorqueConverterOperatingPoint: n_out: 0.1085 [1/s], n_in: 63.4602 [1/s], tq_out: 726.6280 [Nm], tq_in 297.0764 [Nm], nu: 0.00170920399100873, my: 2.44592954368211, TorqueConverterTorqueDemand: }</vif0.1:Error> + <vif0.1:ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) + bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</vif0.1:ErrorDetails> + </vif0.1:Result> + </vif0.1:Results> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.6.1.1974-DEV !!NOT FOR CERTIFICATION!!</vif0.1:SimulationToolVersion> + <vif0.1:Date>2020-05-28T14:48:47.62548Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#PIF-10652bf49ae0499f8689"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>kNMmLf/SQo7//Wr3wmU1/x7c3q7VbmBEILJi39cdrz4=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:PrimaryVehicle> + <vif0.1:ManufacturingStage stageCount="2"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-9d0c3a409fce4a89a6ce"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#PIF-10652bf49ae0499f8689"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>kNMmLf/SQo7//Wr3wmU1/x7c3q7VbmBEILJi39cdrz4=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-f34a4a8615eb4037a7b7"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>19000</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>37000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>181</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>0</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>0</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CG</v2.8:BodyworkCode> + <v2.8:LowEntry>false</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>19700</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>320</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <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>5.20</CdxA_0> + <TransferredCdxA>5.20</TransferredCdxA> + <DeclaredCdxA>5.20</DeclaredCdxA> + </Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>7</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>cooling</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>15000</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>false</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-08T19:23:53.3253131Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-9d0c3a409fce4a89a6ce"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>3YDwmAXmbJO9ExDXLz+Q4lNnQXHFBRThT6JdzG5uW3k=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> +</vif0.1:VectoOutputMultistage> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_PIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_PIF.xml deleted file mode 100644 index ee0f566dfddcdde351ec5c2023c53de3b7a428a7..0000000000000000000000000000000000000000 --- a/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_PIF.xml +++ /dev/null @@ -1,575 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-10652bf49ae0499f8689"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart-ESS</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>8x2</AxleConfiguration> - <Articulated>true</Articulated> - <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>600</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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>true</adas:EngineStopStart> - <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> - <adas:EcoRollWithEngineStop>false</adas:EcoRollWithEngineStop> - <adas:PredictiveCruiseControl>none</adas: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" /> - <tcl:Entry gear="12" maxTorque="1900" /> - </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>8x2 articulated bus 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>260</RatedPower> - <MaxEngineTorque>2400</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>600</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="710.00" dragTorque="-52.00" /> - <Entry engineSpeed="800.00" maxTorque="989.00" dragTorque="-63.00" /> - <Entry engineSpeed="1000.00" maxTorque="1265.00" dragTorque="-73.00" /> - <Entry engineSpeed="1200.00" maxTorque="1420.00" dragTorque="-87.00" /> - <Entry engineSpeed="1400.00" maxTorque="1420.00" dragTorque="-101.00" /> - <Entry engineSpeed="1600.00" maxTorque="1420.00" dragTorque="-114.00" /> - <Entry engineSpeed="1800.00" maxTorque="1329.00" dragTorque="-122.00" /> - <Entry engineSpeed="2000.00" maxTorque="1227.00" dragTorque="-131.00" /> - <Entry engineSpeed="2200.00" maxTorque="1129.00" dragTorque="-147.00" /> - <Entry engineSpeed="2400.00" maxTorque="965.00" dragTorque="-159.00" /> - <Entry engineSpeed="2500.00" maxTorque="841.00" dragTorque="-165.00" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-172.00" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>8x2 Bus</Model> - <MainCertificationMethod>Standard values</MainCertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <TransmissionType>APT-P</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> - <Gear number="1"> - <Ratio>1.361</Ratio> - <MaxTorque>1900</MaxTorque> - </Gear> - <Gear number="2"> - <Ratio>1.000</Ratio> - <MaxTorque>1900</MaxTorque> - </Gear> - <Gear number="3"> - <Ratio>0.735</Ratio> - </Gear> - </Gears> - </Data> - </Transmission> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>8x2 articulated bus</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>5.810</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </Signature> - </Tyre> - </Axle> - <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> - <AxleType>VehicleNonDriven</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" 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> - </Signature> - </Tyre> - </Axle> - <Axle axleNumber="3" 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" 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> - </Signature> - </Tyre> - </Axle> - <Axle axleNumber="4" xsi:type="AxleDataDeclarationType"> - <AxleType>VehicleNonDriven</AxleType> - <TwinTyres>false</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.0055</RRCDeclared> - <FzISO>31300</FzISO> - </Data> - <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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart-ESS"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>jvHzwuW7gaqCxNBELjVg0ZwSEWPR+pSn2iUsocSa2/4=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-65d622ab1d834d94ac65"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>k2hbOlnDmFKemd1pQt7YrzNLf5RAKIdH7wMobex4+hw=</di:DigestValue> - </di:Reference> - </ManufacturerRecordSignature> - <Results> - <Status>error</Status> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Heavy Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> - <Payload unit="kg">2059.99</Payload> - <PassengerCount>30.29</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">31.43467</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2304.23</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Heavy Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> - <Payload unit="kg">10299.96</Payload> - <PassengerCount>151.47</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">40.44322</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2964.57</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> - <Payload unit="kg">2059.99</Payload> - <PassengerCount>30.29</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">25.29407</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1854.11</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> - <Payload unit="kg">10299.96</Payload> - <PassengerCount>151.47</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">32.82324</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2406.01</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Suburban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> - <Payload unit="kg">2059.99</Payload> - <PassengerCount>30.29</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.42260</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1570.32</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39SD</VehicleGroup> - <Mission>Suburban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> - <Payload unit="kg">10299.96</Payload> - <PassengerCount>151.47</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">26.89680</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1971.59</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Heavy Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> - <Payload unit="kg">2540.66</Payload> - <PassengerCount>37.36</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">38.59941</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2829.42</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Heavy Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> - <Payload unit="kg">12703.28</Payload> - <PassengerCount>186.81</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">50.04116</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">3668.12</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> - <Payload unit="kg">2540.66</Payload> - <PassengerCount>37.36</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">31.08581</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2278.66</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Urban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> - <Payload unit="kg">12703.28</Payload> - <PassengerCount>186.81</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">41.40670</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">3035.20</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Suburban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> - <Payload unit="kg">2540.66</Payload> - <PassengerCount>37.36</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">25.67399</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1881.96</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P39DD</VehicleGroup> - <Mission>Suburban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> - <Payload unit="kg">12703.28</Payload> - <PassengerCount>186.81</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">32.19445</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2359.92</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P40SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">22563.16</TotalVehicleMass> - <Payload unit="kg">1613.16</Payload> - <PassengerCount>22.72</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.51694</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1357.33</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P40SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">27402.62</TotalVehicleMass> - <Payload unit="kg">6452.62</Payload> - <PassengerCount>90.88</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">38.15886</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2797.12</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P40SD</VehicleGroup> - <Mission>Coach</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">22957.48</TotalVehicleMass> - <Payload unit="kg">2007.48</Payload> - <PassengerCount>28.27</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.84130</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1014.60</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P40SD</VehicleGroup> - <Mission>Coach</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">25968.71</TotalVehicleMass> - <Payload unit="kg">5018.71</Payload> - <PassengerCount>70.69</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.06873</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1104.57</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P40DD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">26840.49</TotalVehicleMass> - <Payload unit="kg">2240.49</Payload> - <PassengerCount>31.56</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">22.11304</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1620.93</CO2> - </Result> - <Result status="error"> - <VehicleGroup>P40DD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">33561.98</TotalVehicleMass> - <Payload unit="kg">8961.98</Payload> - <PassengerCount>126.23</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Error>98 (Interurban _P40DD_ReferenceLoad) - absTime: 6784.9522 [s], distance: 53835.3412 [m], dt: 0.6791 [s], v: 0.0259 [m/s], Gear: 1 | DrivingActionAccelerate: Failed to find operating point</Error> - <ErrorDetails> bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.DrivingActionAccelerate(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, IResponse previousResponse) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.FirstAccelerateOrCoast(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.HandleRequestEngaged(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.AbstractDriverMode.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.DriveDistance(Second absTime, Meter ds) - bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.Request(Second absTime, Meter ds) - bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() - bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> - </Result> - <Result status="error"> - <VehicleGroup>P40DD</VehicleGroup> - <Mission>Coach</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">27467.83</TotalVehicleMass> - <Payload unit="kg">2867.83</Payload> - <PassengerCount>40.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Error>99 (Coach _P40DD_LowLoading) - absTime: 7924.2025 [s], distance: 131329.1916 [m], dt: 0.6490 [s], v: 0.0076 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 228.7985 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0036 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0306 [m/s^2], OperatingPoint: a: -0.0306 [m/s^2], dt: 0.0036 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0075 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 292.2862 [W], AxlegearPowerRequest: 283.3102 [W], WheelsPowerRequest: 283.3102 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3252.6557 [Nm], GearboxInputSpeed: 0.0889 [1/s], TorqueConverterOperatingPoint: n_out: 0.0902 [1/s], n_in: 63.4602 [1/s], tq_out: 726.9261 [Nm], tq_in 297.1152 [Nm], nu: 0.00142183442517666, my: 2.44661391211967, TorqueConverterTorqueDemand: }</Error> - <ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) - bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) - bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() - bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> - </Result> - <Result status="error"> - <VehicleGroup>P40DD</VehicleGroup> - <Mission>Coach</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">31769.58</TotalVehicleMass> - <Payload unit="kg">7169.58</Payload> - <PassengerCount>100.98</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Error>100 (Coach _P40DD_ReferenceLoad) - absTime: 7524.6514 [s], distance: 130336.7109 [m], dt: 0.7342 [s], v: 0.0092 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 270.7480 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0049 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0467 [m/s^2], OperatingPoint: a: -0.0467 [m/s^2], dt: 0.0049 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0090 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 345.1743 [W], AxlegearPowerRequest: 334.5284 [W], WheelsPowerRequest: 334.5284 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3212.7746 [Nm], GearboxInputSpeed: 0.1057 [1/s], TorqueConverterOperatingPoint: n_out: 0.1085 [1/s], n_in: 63.4602 [1/s], tq_out: 726.6280 [Nm], tq_in 297.0764 [Nm], nu: 0.00170920399100873, my: 2.44592954368211, TorqueConverterTorqueDemand: }</Error> - <ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) - bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) - bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() - bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1974-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-05-28T14:48:47.62548Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-10652bf49ae0499f8689"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>kNMmLf/SQo7//Wr3wmU1/x7c3q7VbmBEILJi39cdrz4=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_VIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_VIF.xml new file mode 100644 index 0000000000000000000000000000000000000000..1cc890120187f477a1ffdab508e47ace0d7c9d8e --- /dev/null +++ b/Generic Vehicles/Declaration Mode/CompletedBus 39a/primary_heavyBus group P39_40_nonSmart_ESS_VIF.xml @@ -0,0 +1,579 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/DEV/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-10652bf49ae0499f8689"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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>true</adas:EngineStopStart> + <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> + <adas:EcoRollWithEngineStop>false</adas:EcoRollWithEngineStop> + <adas:PredictiveCruiseControl>none</adas: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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>8x2 articulated bus 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>260</RatedPower> + <MaxEngineTorque>2400</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="710.00" dragTorque="-52.00"/> + <Entry engineSpeed="800.00" maxTorque="989.00" dragTorque="-63.00"/> + <Entry engineSpeed="1000.00" maxTorque="1265.00" dragTorque="-73.00"/> + <Entry engineSpeed="1200.00" maxTorque="1420.00" dragTorque="-87.00"/> + <Entry engineSpeed="1400.00" maxTorque="1420.00" dragTorque="-101.00"/> + <Entry engineSpeed="1600.00" maxTorque="1420.00" dragTorque="-114.00"/> + <Entry engineSpeed="1800.00" maxTorque="1329.00" dragTorque="-122.00"/> + <Entry engineSpeed="2000.00" maxTorque="1227.00" dragTorque="-131.00"/> + <Entry engineSpeed="2200.00" maxTorque="1129.00" dragTorque="-147.00"/> + <Entry engineSpeed="2400.00" maxTorque="965.00" dragTorque="-159.00"/> + <Entry engineSpeed="2500.00" maxTorque="841.00" dragTorque="-165.00"/> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-172.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>8x2 Bus</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>APT-P</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <Gear number="1"> + <Ratio>1.361</Ratio> + <MaxTorque>1900</MaxTorque> + </Gear> + <Gear number="2"> + <Ratio>1.000</Ratio> + <MaxTorque>1900</MaxTorque> + </Gear> + <Gear number="3"> + <Ratio>0.735</Ratio> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>8x2 articulated bus</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>5.810</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" 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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="4" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <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-PrimaryBus_nonSmart-ESS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>jvHzwuW7gaqCxNBELjVg0ZwSEWPR+pSn2iUsocSa2/4=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-65d622ab1d834d94ac65"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>k2hbOlnDmFKemd1pQt7YrzNLf5RAKIdH7wMobex4+hw=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>error</Status> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> + <Payload unit="kg">2059.99</Payload> + <PassengerCount>30.29</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">31.43467</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2304.23</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> + <Payload unit="kg">10299.96</Payload> + <PassengerCount>151.47</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">40.44322</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2964.57</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> + <Payload unit="kg">2059.99</Payload> + <PassengerCount>30.29</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">25.29407</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1854.11</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> + <Payload unit="kg">10299.96</Payload> + <PassengerCount>151.47</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">32.82324</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2406.01</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">21659.99</TotalVehicleMass> + <Payload unit="kg">2059.99</Payload> + <PassengerCount>30.29</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.42260</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1570.32</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39SD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">29899.96</TotalVehicleMass> + <Payload unit="kg">10299.96</Payload> + <PassengerCount>151.47</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">26.89680</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1971.59</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> + <Payload unit="kg">2540.66</Payload> + <PassengerCount>37.36</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">38.59941</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2829.42</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> + <Payload unit="kg">12703.28</Payload> + <PassengerCount>186.81</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">50.04116</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">3668.12</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> + <Payload unit="kg">2540.66</Payload> + <PassengerCount>37.36</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">31.08581</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2278.66</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> + <Payload unit="kg">12703.28</Payload> + <PassengerCount>186.81</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">41.40670</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">3035.20</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">27340.66</TotalVehicleMass> + <Payload unit="kg">2540.66</Payload> + <PassengerCount>37.36</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">25.67399</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1881.96</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P39DD</VehicleGroup> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">37503.28</TotalVehicleMass> + <Payload unit="kg">12703.28</Payload> + <PassengerCount>186.81</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">32.19445</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2359.92</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P40SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22563.16</TotalVehicleMass> + <Payload unit="kg">1613.16</Payload> + <PassengerCount>22.72</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.51694</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1357.33</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P40SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">27402.62</TotalVehicleMass> + <Payload unit="kg">6452.62</Payload> + <PassengerCount>90.88</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">38.15886</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2797.12</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P40SD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22957.48</TotalVehicleMass> + <Payload unit="kg">2007.48</Payload> + <PassengerCount>28.27</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.84130</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1014.60</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P40SD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">25968.71</TotalVehicleMass> + <Payload unit="kg">5018.71</Payload> + <PassengerCount>70.69</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.06873</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1104.57</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P40DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">26840.49</TotalVehicleMass> + <Payload unit="kg">2240.49</Payload> + <PassengerCount>31.56</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">22.11304</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1620.93</CO2> + </Result> + <Result status="error"> + <VehicleGroup>P40DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">33561.98</TotalVehicleMass> + <Payload unit="kg">8961.98</Payload> + <PassengerCount>126.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Error>98 (Interurban _P40DD_ReferenceLoad) - absTime: 6784.9522 [s], distance: 53835.3412 [m], dt: 0.6791 [s], v: 0.0259 [m/s], Gear: 1 | DrivingActionAccelerate: Failed to find operating point</Error> + <ErrorDetails> bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.DrivingActionAccelerate(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, IResponse previousResponse) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.FirstAccelerateOrCoast(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.HandleRequestEngaged(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DriverModeDrive.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, Boolean prohibitOverspeed) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.AbstractDriverMode.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.DoHandleRequest(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DefaultDriverStrategy.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.Driver.Request(Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.DriveDistance(Second absTime, Meter ds) + bei TUGraz.VectoCore.Models.SimulationComponent.Impl.DistanceBasedDrivingCycle.Request(Second absTime, Meter ds) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> + </Result> + <Result status="error"> + <VehicleGroup>P40DD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">27467.83</TotalVehicleMass> + <Payload unit="kg">2867.83</Payload> + <PassengerCount>40.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Error>99 (Coach _P40DD_LowLoading) - absTime: 7924.2025 [s], distance: 131329.1916 [m], dt: 0.6490 [s], v: 0.0076 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 228.7985 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0036 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0306 [m/s^2], OperatingPoint: a: -0.0306 [m/s^2], dt: 0.0036 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0075 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 292.2862 [W], AxlegearPowerRequest: 283.3102 [W], WheelsPowerRequest: 283.3102 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3252.6557 [Nm], GearboxInputSpeed: 0.0889 [1/s], TorqueConverterOperatingPoint: n_out: 0.0902 [1/s], n_in: 63.4602 [1/s], tq_out: 726.9261 [Nm], tq_in 297.1152 [Nm], nu: 0.00142183442517666, my: 2.44661391211967, TorqueConverterTorqueDemand: }</Error> + <ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) + bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> + </Result> + <Result status="error"> + <VehicleGroup>P40DD</VehicleGroup> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">31769.58</TotalVehicleMass> + <Payload unit="kg">7169.58</Payload> + <PassengerCount>100.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Error>100 (Coach _P40DD_ReferenceLoad) - absTime: 7524.6514 [s], distance: 130336.7109 [m], dt: 0.7342 [s], v: 0.0092 [m/s], Gear: 1 | DistanceRun got an unexpected response: ResponseOverload{Delta: 270.7480 [W], Source: TUGraz.VectoCore.Models.SimulationComponent.Impl.TorqueConverter, AbsTime: , SimulationInterval: 0.0049 [s], SimulationDistance: 0.0000 [m], Acceleration: -0.0467 [m/s^2], OperatingPoint: a: -0.0467 [m/s^2], dt: 0.0049 [s], ds: 0.0000 [m], EngineSpeed: , EnginePowerRequest: , DynamicFullLoadPower: , DragPower: , EngineTorqueDemand: , EngineTorqueDemandTotal: , EngineStationaryFullLoadTorque: , EngineDynamicFullLoadTorque: , VehicleSpeed: 0.0090 [m/s], AngledrivePowerRequest: , ClutchPowerRequest: , GearboxPowerRequest: 345.1743 [W], AxlegearPowerRequest: 334.5284 [W], WheelsPowerRequest: 334.5284 [W], BrakePower: 0.0000 [W], AuxiliariesPowerDemand: , CardanTorque: 3212.7746 [Nm], GearboxInputSpeed: 0.1057 [1/s], TorqueConverterOperatingPoint: n_out: 0.1085 [1/s], n_in: 63.4602 [1/s], tq_out: 726.6280 [Nm], tq_in 297.0764 [Nm], nu: 0.00170920399100873, my: 2.44592954368211, TorqueConverterTorqueDemand: }</Error> + <ErrorDetails> bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.<>c.<DoSimulationStep>b__1_3(IResponse r) + bei TUGraz.VectoCore.Utils.Switch`1.Default(Action`1 action) + bei TUGraz.VectoCore.Models.Simulation.Impl.DistanceRun.DoSimulationStep() + bei TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run()</ErrorDetails> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1974-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-28T14:48:47.62548Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-10652bf49ae0499f8689"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>kNMmLf/SQo7//Wr3wmU1/x7c3q7VbmBEILJi39cdrz4=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml b/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml index ec94637358436fcc56164f29b2b1e9b40c3fc483..709891bb30d6f94dc57e1000b3fc890ea2aee8df 100644 --- a/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml +++ b/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml @@ -1,29 +1,32 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II</ClassBus> - <VehicleCode>CG</VehicleCode> - <CurbMassChassis>19000</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>19000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>37000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>181</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II</ClassBus> + <NumberPassengerSeatsLowerDeck>181</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CG</BodyworkCode> <LowEntry>false</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>19.700</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.320</EntranceHeight> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>19700</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>0320</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> - <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> + <AirDrag> + <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> @@ -33,7 +36,7 @@ <TransferredCdxA>5.20</TransferredCdxA> <DeclaredCdxA>5.20</DeclaredCdxA> </Data> - <Signature> + <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> @@ -42,29 +45,27 @@ <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> - </Signature> - </v2.6:AirDrag> + </v2.0:Signature> + </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>true</Interiorlights> <Dayrunninglights>true</Dayrunninglights> - <Headlights>true</Headlights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> - <Interiorlights>true</Interiorlights> + <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>7</SystemConfiguration> - <CompressorType> - <DriverAC>2-stage</DriverAC> - <PassengerAC>3-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 3-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>15000</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> </HVAC> diff --git a/Generic Vehicles/Declaration Mode/Group P31_32/primary_heavyBus group_P31_32_Smart_ES.xml b/Generic Vehicles/Declaration Mode/Group P31_32/primary_heavyBus group_P31_32_Smart_ES.xml index 4e56fa439d824afbab1420a76282eb8e394dd4fc..b3493936e31ea50f699ed4b2039602184583f3af 100644 --- a/Generic Vehicles/Declaration Mode/Group P31_32/primary_heavyBus group_P31_32_Smart_ES.xml +++ b/Generic Vehicles/Declaration Mode/Group P31_32/primary_heavyBus group_P31_32_Smart_ES.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> @@ -2188,19 +2188,27 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>true</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/Group P33_34/primary_heavyBus group_P33_34_SmartPS.xml b/Generic Vehicles/Declaration Mode/Group P33_34/primary_heavyBus group_P33_34_SmartPS.xml index 4d065f7c2d49d37856d8e87f14f1faa9c9a5f81b..7ca77eecbb7348c828e7f76967a62edce1e6d491 100644 --- a/Generic Vehicles/Declaration Mode/Group P33_34/primary_heavyBus group_P33_34_SmartPS.xml +++ b/Generic Vehicles/Declaration Mode/Group P33_34/primary_heavyBus group_P33_34_SmartPS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_SmartPS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Bus Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -47,138 +47,138 @@ <CFNCV>1.0000</CFNCV> <FuelType>Diesel CI</FuelType> <FuelConsumptionMap> - <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00" /> - <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00" /> - <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75" /> - <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91" /> - <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95" /> - <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27" /> - <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00" /> - <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45" /> - <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57" /> - <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68" /> - <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80" /> - <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92" /> - <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00" /> - <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69" /> - <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77" /> - <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06" /> - <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92" /> - <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55" /> - <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09" /> - <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44" /> - <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90" /> - <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02" /> - <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05" /> - <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96" /> - <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00" /> - <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15" /> - <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49" /> - <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43" /> - <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87" /> - <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49" /> - <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62" /> - <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10" /> - <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31" /> - <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18" /> - <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40" /> - <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09" /> - <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00" /> - <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21" /> - <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69" /> - <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67" /> - <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76" /> - <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71" /> - <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70" /> - <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40" /> - <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65" /> - <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67" /> - <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29" /> - <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72" /> - <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00" /> - <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21" /> - <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55" /> - <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50" /> - <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59" /> - <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22" /> - <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81" /> - <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77" /> - <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22" /> - <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60" /> - <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89" /> - <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10" /> - <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00" /> - <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15" /> - <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52" /> - <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44" /> - <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41" /> - <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61" /> - <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71" /> - <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01" /> - <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96" /> - <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37" /> - <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97" /> - <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23" /> - <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00" /> - <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84" /> - <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80" /> - <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69" /> - <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18" /> - <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30" /> - <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33" /> - <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82" /> - <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91" /> - <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82" /> - <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52" /> - <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14" /> - <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00" /> - <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40" /> - <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91" /> - <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19" /> - <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18" /> - <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21" /> - <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36" /> - <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25" /> - <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48" /> - <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01" /> - <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92" /> - <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75" /> - <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00" /> - <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80" /> - <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09" /> - <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05" /> - <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56" /> - <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62" /> - <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51" /> - <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51" /> - <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25" /> - <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29" /> - <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45" /> - <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09" /> - <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00" /> - <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51" /> - <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55" /> - <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96" /> - <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46" /> - <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94" /> - <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10" /> - <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71" /> - <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15" /> - <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35" /> - <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10" /> - <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30" /> + <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00"/> + <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00"/> + <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75"/> + <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91"/> + <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95"/> + <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27"/> + <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00"/> + <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45"/> + <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57"/> + <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68"/> + <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80"/> + <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92"/> + <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00"/> + <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69"/> + <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77"/> + <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06"/> + <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92"/> + <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55"/> + <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09"/> + <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44"/> + <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90"/> + <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02"/> + <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05"/> + <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96"/> + <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00"/> + <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15"/> + <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49"/> + <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43"/> + <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87"/> + <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49"/> + <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62"/> + <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10"/> + <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31"/> + <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18"/> + <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40"/> + <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09"/> + <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00"/> + <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21"/> + <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69"/> + <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67"/> + <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76"/> + <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71"/> + <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70"/> + <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40"/> + <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65"/> + <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67"/> + <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29"/> + <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72"/> + <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00"/> + <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21"/> + <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55"/> + <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50"/> + <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59"/> + <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22"/> + <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81"/> + <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77"/> + <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22"/> + <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60"/> + <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89"/> + <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10"/> + <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00"/> + <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15"/> + <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52"/> + <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44"/> + <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41"/> + <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61"/> + <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71"/> + <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01"/> + <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96"/> + <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37"/> + <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97"/> + <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23"/> + <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00"/> + <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84"/> + <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80"/> + <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69"/> + <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18"/> + <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30"/> + <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33"/> + <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82"/> + <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91"/> + <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82"/> + <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52"/> + <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14"/> + <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00"/> + <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40"/> + <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91"/> + <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19"/> + <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18"/> + <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21"/> + <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36"/> + <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25"/> + <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48"/> + <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01"/> + <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92"/> + <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75"/> + <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00"/> + <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80"/> + <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09"/> + <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05"/> + <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56"/> + <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62"/> + <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51"/> + <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51"/> + <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25"/> + <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29"/> + <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45"/> + <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09"/> + <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00"/> + <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51"/> + <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55"/> + <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96"/> + <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46"/> + <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94"/> + <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10"/> + <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71"/> + <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15"/> + <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35"/> + <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10"/> + <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30"/> </FuelConsumptionMap> <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00" /> - <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00" /> - <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00" /> - <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00" /> - <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00" /> - <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00" /> - <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00" /> - <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00" /> - <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00" /> - <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00" /> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> </FullLoadAndDragCurve> </v2.0:Data> <Signature> @@ -2644,74 +2644,74 @@ </v2.6:Angledrive> <v2.6:Retarder xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="RetarderComponentDeclarationType"> <Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType"> - <Manufacturer>Generic Vendor</Manufacturer> - <Model>RET-generic</Model> - <CertificationNumber>standard values</CertificationNumber> - <Date>2018-02-02T13:38:22.424664Z</Date> - <AppVersion>VectoCore</AppVersion> - <CertificationMethod>Standard values</CertificationMethod> - <RetarderLossMap> - <Entry retarderSpeed="0.00" torqueLoss="5.00" /> - <Entry retarderSpeed="100.00" torqueLoss="5.00" /> - <Entry retarderSpeed="200.00" torqueLoss="5.00" /> - <Entry retarderSpeed="300.00" torqueLoss="5.00" /> - <Entry retarderSpeed="400.00" torqueLoss="5.00" /> - <Entry retarderSpeed="500.00" torqueLoss="5.10" /> - <Entry retarderSpeed="600.00" torqueLoss="5.10" /> - <Entry retarderSpeed="700.00" torqueLoss="5.10" /> - <Entry retarderSpeed="800.00" torqueLoss="5.20" /> - <Entry retarderSpeed="900.00" torqueLoss="5.20" /> - <Entry retarderSpeed="1000.00" torqueLoss="5.30" /> - <Entry retarderSpeed="1100.00" torqueLoss="5.30" /> - <Entry retarderSpeed="1200.00" torqueLoss="5.40" /> - <Entry retarderSpeed="1300.00" torqueLoss="5.40" /> - <Entry retarderSpeed="1400.00" torqueLoss="5.50" /> - <Entry retarderSpeed="1500.00" torqueLoss="5.60" /> - <Entry retarderSpeed="1600.00" torqueLoss="5.60" /> - <Entry retarderSpeed="1700.00" torqueLoss="5.70" /> - <Entry retarderSpeed="1800.00" torqueLoss="5.80" /> - <Entry retarderSpeed="1900.00" torqueLoss="5.90" /> - <Entry retarderSpeed="2000.00" torqueLoss="6.00" /> - <Entry retarderSpeed="2100.00" torqueLoss="6.10" /> - <Entry retarderSpeed="2200.00" torqueLoss="6.20" /> - <Entry retarderSpeed="2300.00" torqueLoss="6.30" /> - <Entry retarderSpeed="2400.00" torqueLoss="6.40" /> - <Entry retarderSpeed="2500.00" torqueLoss="6.60" /> - <Entry retarderSpeed="2600.00" torqueLoss="6.70" /> - <Entry retarderSpeed="2700.00" torqueLoss="6.80" /> - <Entry retarderSpeed="2800.00" torqueLoss="7.00" /> - <Entry retarderSpeed="2900.00" torqueLoss="7.10" /> - <Entry retarderSpeed="3000.00" torqueLoss="7.30" /> - <Entry retarderSpeed="3100.00" torqueLoss="7.40" /> - <Entry retarderSpeed="3200.00" torqueLoss="7.60" /> - <Entry retarderSpeed="3300.00" torqueLoss="7.70" /> - <Entry retarderSpeed="3400.00" torqueLoss="7.90" /> - <Entry retarderSpeed="3500.00" torqueLoss="8.10" /> - <Entry retarderSpeed="3600.00" torqueLoss="8.20" /> - <Entry retarderSpeed="3700.00" torqueLoss="8.40" /> - <Entry retarderSpeed="3800.00" torqueLoss="8.60" /> - <Entry retarderSpeed="3900.00" torqueLoss="8.80" /> - <Entry retarderSpeed="4000.00" torqueLoss="9.00" /> - <Entry retarderSpeed="4100.00" torqueLoss="9.20" /> - <Entry retarderSpeed="4200.00" torqueLoss="9.40" /> - <Entry retarderSpeed="4300.00" torqueLoss="9.60" /> - <Entry retarderSpeed="4400.00" torqueLoss="9.80" /> - <Entry retarderSpeed="4500.00" torqueLoss="10.10" /> - <Entry retarderSpeed="4600.00" torqueLoss="10.30" /> - <Entry retarderSpeed="4700.00" torqueLoss="10.50" /> - <Entry retarderSpeed="4800.00" torqueLoss="10.80" /> - <Entry retarderSpeed="4900.00" torqueLoss="11.00" /> - <Entry retarderSpeed="5000.00" torqueLoss="11.30" /> - <Entry retarderSpeed="5100.00" torqueLoss="11.50" /> - <Entry retarderSpeed="5200.00" torqueLoss="11.80" /> - <Entry retarderSpeed="5300.00" torqueLoss="12.00" /> - <Entry retarderSpeed="5400.00" torqueLoss="12.30" /> - <Entry retarderSpeed="5500.00" torqueLoss="12.60" /> - <Entry retarderSpeed="5600.00" torqueLoss="12.80" /> - <Entry retarderSpeed="5700.00" torqueLoss="13.10" /> - <Entry retarderSpeed="5800.00" torqueLoss="13.40" /> - <Entry retarderSpeed="5900.00" torqueLoss="13.70" /> - <Entry retarderSpeed="6000.00" torqueLoss="14.00" /> + <Manufacturer>Generic Vendor</Manufacturer> + <Model>RET-generic</Model> + <CertificationNumber>standard values</CertificationNumber> + <Date>2018-02-02T13:38:22.424664Z</Date> + <AppVersion>VectoCore</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="5.00"/> + <Entry retarderSpeed="100.00" torqueLoss="5.00"/> + <Entry retarderSpeed="200.00" torqueLoss="5.00"/> + <Entry retarderSpeed="300.00" torqueLoss="5.00"/> + <Entry retarderSpeed="400.00" torqueLoss="5.00"/> + <Entry retarderSpeed="500.00" torqueLoss="5.10"/> + <Entry retarderSpeed="600.00" torqueLoss="5.10"/> + <Entry retarderSpeed="700.00" torqueLoss="5.10"/> + <Entry retarderSpeed="800.00" torqueLoss="5.20"/> + <Entry retarderSpeed="900.00" torqueLoss="5.20"/> + <Entry retarderSpeed="1000.00" torqueLoss="5.30"/> + <Entry retarderSpeed="1100.00" torqueLoss="5.30"/> + <Entry retarderSpeed="1200.00" torqueLoss="5.40"/> + <Entry retarderSpeed="1300.00" torqueLoss="5.40"/> + <Entry retarderSpeed="1400.00" torqueLoss="5.50"/> + <Entry retarderSpeed="1500.00" torqueLoss="5.60"/> + <Entry retarderSpeed="1600.00" torqueLoss="5.60"/> + <Entry retarderSpeed="1700.00" torqueLoss="5.70"/> + <Entry retarderSpeed="1800.00" torqueLoss="5.80"/> + <Entry retarderSpeed="1900.00" torqueLoss="5.90"/> + <Entry retarderSpeed="2000.00" torqueLoss="6.00"/> + <Entry retarderSpeed="2100.00" torqueLoss="6.10"/> + <Entry retarderSpeed="2200.00" torqueLoss="6.20"/> + <Entry retarderSpeed="2300.00" torqueLoss="6.30"/> + <Entry retarderSpeed="2400.00" torqueLoss="6.40"/> + <Entry retarderSpeed="2500.00" torqueLoss="6.60"/> + <Entry retarderSpeed="2600.00" torqueLoss="6.70"/> + <Entry retarderSpeed="2700.00" torqueLoss="6.80"/> + <Entry retarderSpeed="2800.00" torqueLoss="7.00"/> + <Entry retarderSpeed="2900.00" torqueLoss="7.10"/> + <Entry retarderSpeed="3000.00" torqueLoss="7.30"/> + <Entry retarderSpeed="3100.00" torqueLoss="7.40"/> + <Entry retarderSpeed="3200.00" torqueLoss="7.60"/> + <Entry retarderSpeed="3300.00" torqueLoss="7.70"/> + <Entry retarderSpeed="3400.00" torqueLoss="7.90"/> + <Entry retarderSpeed="3500.00" torqueLoss="8.10"/> + <Entry retarderSpeed="3600.00" torqueLoss="8.20"/> + <Entry retarderSpeed="3700.00" torqueLoss="8.40"/> + <Entry retarderSpeed="3800.00" torqueLoss="8.60"/> + <Entry retarderSpeed="3900.00" torqueLoss="8.80"/> + <Entry retarderSpeed="4000.00" torqueLoss="9.00"/> + <Entry retarderSpeed="4100.00" torqueLoss="9.20"/> + <Entry retarderSpeed="4200.00" torqueLoss="9.40"/> + <Entry retarderSpeed="4300.00" torqueLoss="9.60"/> + <Entry retarderSpeed="4400.00" torqueLoss="9.80"/> + <Entry retarderSpeed="4500.00" torqueLoss="10.10"/> + <Entry retarderSpeed="4600.00" torqueLoss="10.30"/> + <Entry retarderSpeed="4700.00" torqueLoss="10.50"/> + <Entry retarderSpeed="4800.00" torqueLoss="10.80"/> + <Entry retarderSpeed="4900.00" torqueLoss="11.00"/> + <Entry retarderSpeed="5000.00" torqueLoss="11.30"/> + <Entry retarderSpeed="5100.00" torqueLoss="11.50"/> + <Entry retarderSpeed="5200.00" torqueLoss="11.80"/> + <Entry retarderSpeed="5300.00" torqueLoss="12.00"/> + <Entry retarderSpeed="5400.00" torqueLoss="12.30"/> + <Entry retarderSpeed="5500.00" torqueLoss="12.60"/> + <Entry retarderSpeed="5600.00" torqueLoss="12.80"/> + <Entry retarderSpeed="5700.00" torqueLoss="13.10"/> + <Entry retarderSpeed="5800.00" torqueLoss="13.40"/> + <Entry retarderSpeed="5900.00" torqueLoss="13.70"/> + <Entry retarderSpeed="6000.00" torqueLoss="14.00"/> </RetarderLossMap> </Data> <Signature> @@ -3055,7 +3055,6 @@ <Entry inputSpeed="1300.00" inputTorque="24000.00" torqueLoss="400.00"/> <Entry inputSpeed="1300.00" inputTorque="25000.00" torqueLoss="415.00"/> <Entry inputSpeed="1300.00" inputTorque="26000.00" torqueLoss="430.00"/> - <Entry inputSpeed="1300.00" inputTorque="27000.00" torqueLoss="445.00"/> <Entry inputSpeed="1300.00" inputTorque="28000.00" torqueLoss="460.00"/> <Entry inputSpeed="1300.00" inputTorque="29000.00" torqueLoss="475.00"/> @@ -3338,19 +3337,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/Group P35_36/primary_heavyBus group_P35_36_nonSmart.xml b/Generic Vehicles/Declaration Mode/Group P35_36/primary_heavyBus group_P35_36_nonSmart.xml index f9ae42448f9612b7efa234ff72e0543182ecbcc8..56c01167a5e177b2a3cca67413803193080687fd 100644 --- a/Generic Vehicles/Declaration Mode/Group P35_36/primary_heavyBus group_P35_36_nonSmart.xml +++ b/Generic Vehicles/Declaration Mode/Group P35_36/primary_heavyBus group_P35_36_nonSmart.xml @@ -1,14 +1,14 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> - <Articulated>true</Articulated> + <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>32000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> @@ -46,138 +46,138 @@ <CFNCV>1.0000</CFNCV> <FuelType>Diesel CI</FuelType> <FuelConsumptionMap> - <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00" /> - <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00" /> - <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75" /> - <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91" /> - <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95" /> - <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27" /> - <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00" /> - <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45" /> - <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57" /> - <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68" /> - <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80" /> - <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92" /> - <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00" /> - <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69" /> - <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77" /> - <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06" /> - <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92" /> - <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55" /> - <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09" /> - <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44" /> - <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90" /> - <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02" /> - <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05" /> - <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96" /> - <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00" /> - <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15" /> - <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49" /> - <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43" /> - <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87" /> - <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49" /> - <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62" /> - <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10" /> - <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31" /> - <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18" /> - <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40" /> - <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09" /> - <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00" /> - <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21" /> - <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69" /> - <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67" /> - <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76" /> - <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71" /> - <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70" /> - <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40" /> - <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65" /> - <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67" /> - <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29" /> - <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72" /> - <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00" /> - <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21" /> - <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55" /> - <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50" /> - <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59" /> - <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22" /> - <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81" /> - <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77" /> - <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22" /> - <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60" /> - <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89" /> - <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10" /> - <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00" /> - <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15" /> - <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52" /> - <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44" /> - <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41" /> - <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61" /> - <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71" /> - <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01" /> - <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96" /> - <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37" /> - <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97" /> - <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23" /> - <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00" /> - <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84" /> - <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80" /> - <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69" /> - <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18" /> - <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30" /> - <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33" /> - <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82" /> - <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91" /> - <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82" /> - <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52" /> - <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14" /> - <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00" /> - <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40" /> - <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91" /> - <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19" /> - <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18" /> - <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21" /> - <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36" /> - <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25" /> - <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48" /> - <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01" /> - <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92" /> - <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75" /> - <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00" /> - <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80" /> - <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09" /> - <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05" /> - <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56" /> - <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62" /> - <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51" /> - <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51" /> - <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25" /> - <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29" /> - <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45" /> - <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09" /> - <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00" /> - <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51" /> - <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55" /> - <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96" /> - <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46" /> - <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94" /> - <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10" /> - <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71" /> - <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15" /> - <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35" /> - <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10" /> - <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30" /> + <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00"/> + <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00"/> + <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75"/> + <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91"/> + <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95"/> + <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27"/> + <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00"/> + <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45"/> + <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57"/> + <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68"/> + <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80"/> + <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92"/> + <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00"/> + <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69"/> + <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77"/> + <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06"/> + <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92"/> + <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55"/> + <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09"/> + <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44"/> + <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90"/> + <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02"/> + <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05"/> + <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96"/> + <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00"/> + <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15"/> + <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49"/> + <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43"/> + <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87"/> + <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49"/> + <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62"/> + <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10"/> + <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31"/> + <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18"/> + <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40"/> + <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09"/> + <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00"/> + <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21"/> + <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69"/> + <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67"/> + <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76"/> + <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71"/> + <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70"/> + <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40"/> + <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65"/> + <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67"/> + <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29"/> + <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72"/> + <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00"/> + <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21"/> + <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55"/> + <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50"/> + <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59"/> + <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22"/> + <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81"/> + <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77"/> + <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22"/> + <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60"/> + <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89"/> + <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10"/> + <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00"/> + <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15"/> + <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52"/> + <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44"/> + <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41"/> + <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61"/> + <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71"/> + <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01"/> + <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96"/> + <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37"/> + <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97"/> + <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23"/> + <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00"/> + <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84"/> + <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80"/> + <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69"/> + <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18"/> + <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30"/> + <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33"/> + <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82"/> + <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91"/> + <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82"/> + <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52"/> + <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14"/> + <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00"/> + <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40"/> + <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91"/> + <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19"/> + <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18"/> + <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21"/> + <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36"/> + <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25"/> + <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48"/> + <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01"/> + <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92"/> + <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75"/> + <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00"/> + <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80"/> + <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09"/> + <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05"/> + <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56"/> + <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62"/> + <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51"/> + <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51"/> + <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25"/> + <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29"/> + <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45"/> + <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09"/> + <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00"/> + <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51"/> + <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55"/> + <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96"/> + <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46"/> + <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94"/> + <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10"/> + <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71"/> + <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15"/> + <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35"/> + <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10"/> + <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30"/> </FuelConsumptionMap> <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00" /> - <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00" /> - <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00" /> - <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00" /> - <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00" /> - <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00" /> - <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00" /> - <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00" /> - <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00" /> - <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00" /> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> </FullLoadAndDragCurve> </v2.0:Data> <Signature> @@ -1308,776 +1308,776 @@ <Ratio>6.500</Ratio> <CertificationMethod>Standard values</CertificationMethod> <TorqueLossMap> - <Entry inputSpeed='0.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='0.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='0.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='0.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='0.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='0.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='0.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='0.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='0.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='0.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='0.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='0.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='0.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='0.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='0.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='0.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='0.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='0.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='0.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='0.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='0.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='0.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='0.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='0.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='0.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='0.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='0.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='0.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='0.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='0.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='0.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='0.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='0.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='0.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='0.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='325.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='325.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='325.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='325.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='325.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='325.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='325.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='325.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='325.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='325.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='325.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='325.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='325.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='325.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='325.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='325.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='325.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='325.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='325.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='325.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='325.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='325.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='325.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='325.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='325.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='325.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='325.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='325.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='325.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='325.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='325.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='325.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='325.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='325.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='325.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='650.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='650.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='650.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='650.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='650.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='650.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='650.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='650.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='650.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='650.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='650.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='650.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='650.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='650.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='650.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='650.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='650.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='650.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='650.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='650.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='650.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='650.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='650.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='650.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='650.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='650.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='650.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='650.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='650.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='650.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='650.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='650.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='650.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='650.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='650.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='975.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='975.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='975.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='975.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='975.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='975.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='975.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='975.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='975.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='975.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='975.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='975.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='975.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='975.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='975.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='975.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='975.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='975.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='975.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='975.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='975.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='975.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='975.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='975.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='975.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='975.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='975.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='975.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='975.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='975.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='975.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='975.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='975.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='975.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='975.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1300.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1300.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1300.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1300.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1300.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1300.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1300.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1300.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1300.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1300.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1300.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1300.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1300.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1300.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1300.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1300.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1300.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1300.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1300.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1300.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1300.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1300.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1300.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1300.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1300.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1300.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1300.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1300.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1300.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1300.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1300.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1300.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1300.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1300.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1300.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1625.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1625.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1625.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1625.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1625.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1625.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1625.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1625.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1625.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1625.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1625.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1625.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1625.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1625.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1625.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1625.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1625.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1625.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1625.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1625.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1625.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1625.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1625.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1625.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1625.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1625.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1625.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1625.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1625.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1625.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1625.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1625.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1625.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1625.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1625.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1950.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1950.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1950.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1950.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1950.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1950.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1950.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1950.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1950.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1950.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1950.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1950.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1950.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1950.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1950.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1950.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1950.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1950.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1950.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1950.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1950.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1950.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1950.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1950.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1950.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1950.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1950.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1950.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1950.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1950.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1950.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1950.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1950.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1950.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1950.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2275.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2275.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2275.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2275.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2275.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2275.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2275.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2275.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2275.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2275.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2275.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2275.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2275.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2275.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2275.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2275.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2275.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2275.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2275.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2275.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2275.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2275.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2275.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2275.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2275.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2275.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2275.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2275.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2275.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2275.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2275.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2275.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2275.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2275.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2275.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2600.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2600.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2600.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2600.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2600.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2600.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2600.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2600.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2600.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2600.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2600.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2600.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2600.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2600.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2600.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2600.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2600.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2600.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2600.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2600.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2600.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2600.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2600.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2600.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2600.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2600.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2600.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2600.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2600.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2600.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2600.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2600.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2600.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2600.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2600.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2925.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2925.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2925.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2925.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2925.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2925.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2925.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2925.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2925.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2925.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2925.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2925.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2925.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2925.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2925.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2925.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2925.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2925.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2925.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2925.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2925.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2925.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2925.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2925.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2925.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2925.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2925.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2925.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2925.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2925.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2925.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2925.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2925.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2925.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2925.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='3750.00' inputTorque='31.96' torqueLoss='31.96'/> - <Entry inputSpeed='3750.00' inputTorque='70.42' torqueLoss='31.96'/> - <Entry inputSpeed='3750.00' inputTorque='110.07' torqueLoss='33.15'/> - <Entry inputSpeed='3750.00' inputTorque='149.72' torqueLoss='34.34'/> - <Entry inputSpeed='3750.00' inputTorque='189.37' torqueLoss='35.53'/> - <Entry inputSpeed='3750.00' inputTorque='268.68' torqueLoss='37.91'/> - <Entry inputSpeed='3750.00' inputTorque='347.98' torqueLoss='40.29'/> - <Entry inputSpeed='3750.00' inputTorque='506.58' torqueLoss='45.04'/> - <Entry inputSpeed='3750.00' inputTorque='665.19' torqueLoss='49.80'/> - <Entry inputSpeed='3750.00' inputTorque='823.79' torqueLoss='54.56'/> - <Entry inputSpeed='3750.00' inputTorque='982.39' torqueLoss='59.32'/> - <Entry inputSpeed='3750.00' inputTorque='1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='3750.00' inputTorque='1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='3750.00' inputTorque='1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='3750.00' inputTorque='1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='3750.00' inputTorque='1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='3750.00' inputTorque='2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='3750.00' inputTorque='2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='3750.00' inputTorque='2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='3750.00' inputTorque='3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='3750.00' inputTorque='3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='3750.00' inputTorque='3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='3750.00' inputTorque='4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='3750.00' inputTorque='4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='3750.00' inputTorque='4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='3750.00' inputTorque='5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='3750.00' inputTorque='5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='3750.00' inputTorque='5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='3750.00' inputTorque='6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='3750.00' inputTorque='6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='3750.00' inputTorque='6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='3750.00' inputTorque='7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='3750.00' inputTorque='7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='3750.00' inputTorque='7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='3750.00' inputTorque='7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='0.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='0.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='0.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='0.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='0.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='0.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='0.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='0.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='0.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='0.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='0.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='0.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='0.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='0.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='0.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='0.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='0.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='0.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='0.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='0.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='0.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='0.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='0.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='0.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='0.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='0.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='0.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='0.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='0.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='0.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='0.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='0.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='0.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='0.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='0.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='325.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='325.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='325.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='325.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='325.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='325.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='325.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='325.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='325.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='325.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='325.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='325.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='325.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='325.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='325.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='325.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='325.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='325.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='325.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='325.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='325.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='325.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='325.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='325.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='325.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='325.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='325.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='325.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='325.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='325.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='325.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='325.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='325.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='325.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='325.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='650.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='650.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='650.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='650.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='650.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='650.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='650.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='650.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='650.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='650.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='650.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='650.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='650.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='650.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='650.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='650.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='650.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='650.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='650.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='650.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='650.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='650.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='650.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='650.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='650.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='650.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='650.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='650.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='650.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='650.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='650.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='650.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='650.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='650.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='650.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='975.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='975.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='975.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='975.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='975.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='975.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='975.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='975.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='975.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='975.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='975.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='975.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='975.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='975.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='975.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='975.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='975.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='975.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='975.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='975.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='975.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='975.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='975.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='975.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='975.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='975.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='975.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='975.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='975.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='975.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='975.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='975.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='975.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='975.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='975.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1300.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1300.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1300.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1300.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1300.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1300.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1300.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1300.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1300.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1300.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1300.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1300.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1300.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1300.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1300.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1300.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1300.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1300.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1300.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1300.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1300.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1300.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1300.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1300.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1300.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1300.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1300.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1300.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1300.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1300.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1300.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1300.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1300.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1300.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1300.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1625.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1625.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1625.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1625.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1625.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1625.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1625.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1625.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1625.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1625.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1625.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1625.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1625.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1625.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1625.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1625.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1625.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1625.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1625.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1625.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1625.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1625.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1625.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1625.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1625.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1625.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1625.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1625.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1625.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1625.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1625.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1625.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1625.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1625.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1625.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='1950.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='1950.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='1950.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='1950.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='1950.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='1950.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='1950.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='1950.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='1950.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='1950.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='1950.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='1950.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='1950.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='1950.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='1950.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='1950.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='1950.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='1950.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='1950.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='1950.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='1950.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='1950.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='1950.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='1950.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='1950.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='1950.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='1950.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='1950.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='1950.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='1950.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='1950.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='1950.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='1950.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='1950.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='1950.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2275.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2275.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2275.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2275.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2275.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2275.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2275.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2275.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2275.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2275.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2275.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2275.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2275.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2275.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2275.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2275.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2275.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2275.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2275.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2275.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2275.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2275.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2275.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2275.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2275.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2275.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2275.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2275.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2275.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2275.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2275.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2275.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2275.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2275.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2275.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2600.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2600.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2600.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2600.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2600.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2600.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2600.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2600.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2600.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2600.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2600.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2600.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2600.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2600.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2600.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2600.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2600.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2600.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2600.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2600.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2600.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2600.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2600.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2600.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2600.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2600.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2600.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2600.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2600.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2600.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2600.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2600.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2600.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2600.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2600.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='2925.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='2925.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='2925.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='2925.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='2925.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='2925.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='2925.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='2925.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='2925.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='2925.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='2925.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='2925.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='2925.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='2925.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='2925.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='2925.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='2925.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='2925.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='2925.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='2925.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='2925.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='2925.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='2925.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='2925.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='2925.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='2925.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='2925.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='2925.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='2925.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='2925.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='2925.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='2925.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='2925.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='2925.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='2925.00' inputTorque='-7960.98' torqueLoss='268.68'/> - <Entry inputSpeed='3250.00' inputTorque='-31.96' torqueLoss='31.96'/> - <Entry inputSpeed='3250.00' inputTorque='-70.42' torqueLoss='31.96'/> - <Entry inputSpeed='3250.00' inputTorque='-110.07' torqueLoss='33.15'/> - <Entry inputSpeed='3250.00' inputTorque='-149.72' torqueLoss='34.34'/> - <Entry inputSpeed='3250.00' inputTorque='-189.37' torqueLoss='35.53'/> - <Entry inputSpeed='3750.00' inputTorque='-268.68' torqueLoss='37.91'/> - <Entry inputSpeed='3750.00' inputTorque='-347.98' torqueLoss='40.29'/> - <Entry inputSpeed='3750.00' inputTorque='-506.58' torqueLoss='45.04'/> - <Entry inputSpeed='3750.00' inputTorque='-665.19' torqueLoss='49.80'/> - <Entry inputSpeed='3750.00' inputTorque='-823.79' torqueLoss='54.56'/> - <Entry inputSpeed='3750.00' inputTorque='-982.39' torqueLoss='59.32'/> - <Entry inputSpeed='3750.00' inputTorque='-1141.00' torqueLoss='64.08'/> - <Entry inputSpeed='3750.00' inputTorque='-1299.60' torqueLoss='68.83'/> - <Entry inputSpeed='3750.00' inputTorque='-1458.21' torqueLoss='73.59'/> - <Entry inputSpeed='3750.00' inputTorque='-1616.81' torqueLoss='78.35'/> - <Entry inputSpeed='3750.00' inputTorque='-1934.02' torqueLoss='87.87'/> - <Entry inputSpeed='3750.00' inputTorque='-2251.23' torqueLoss='97.38'/> - <Entry inputSpeed='3750.00' inputTorque='-2568.44' torqueLoss='106.90'/> - <Entry inputSpeed='3750.00' inputTorque='-2885.65' torqueLoss='116.42'/> - <Entry inputSpeed='3750.00' inputTorque='-3202.85' torqueLoss='125.93'/> - <Entry inputSpeed='3750.00' inputTorque='-3520.06' torqueLoss='135.45'/> - <Entry inputSpeed='3750.00' inputTorque='-3837.27' torqueLoss='144.96'/> - <Entry inputSpeed='3750.00' inputTorque='-4154.48' torqueLoss='154.48'/> - <Entry inputSpeed='3750.00' inputTorque='-4471.69' torqueLoss='164.00'/> - <Entry inputSpeed='3750.00' inputTorque='-4788.90' torqueLoss='173.51'/> - <Entry inputSpeed='3750.00' inputTorque='-5106.11' torqueLoss='183.03'/> - <Entry inputSpeed='3750.00' inputTorque='-5423.31' torqueLoss='192.55'/> - <Entry inputSpeed='3750.00' inputTorque='-5740.52' torqueLoss='202.06'/> - <Entry inputSpeed='3750.00' inputTorque='-6057.73' torqueLoss='211.58'/> - <Entry inputSpeed='3750.00' inputTorque='-6374.94' torqueLoss='221.09'/> - <Entry inputSpeed='3750.00' inputTorque='-6692.15' torqueLoss='230.61'/> - <Entry inputSpeed='3750.00' inputTorque='-7009.36' torqueLoss='240.13'/> - <Entry inputSpeed='3750.00' inputTorque='-7326.57' torqueLoss='249.64'/> - <Entry inputSpeed='3750.00' inputTorque='-7643.77' torqueLoss='259.16'/> - <Entry inputSpeed='3750.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='0.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='0.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='0.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='0.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='0.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='0.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='0.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='0.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='0.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='0.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='0.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='0.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='0.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='0.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='0.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='0.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='0.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='0.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='0.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='0.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='0.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='0.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='0.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='0.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='0.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='0.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='0.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='0.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='0.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='0.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='0.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='0.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='0.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='0.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='0.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='325.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='325.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='325.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='325.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='325.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='325.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='325.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='325.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='325.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='325.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='325.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='325.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='325.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='325.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='325.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='325.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='325.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='325.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='325.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='325.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='325.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='325.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='325.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='325.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='325.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='325.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='325.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='325.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='325.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='325.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='325.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='325.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='325.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='325.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='325.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='650.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='650.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='650.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='650.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='650.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='650.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='650.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='650.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='650.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='650.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='650.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='650.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='650.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='650.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='650.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='650.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='650.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='650.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='650.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='650.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='650.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='650.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='650.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='650.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='650.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='650.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='650.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='650.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='650.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='650.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='650.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='650.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='650.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='650.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='650.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='975.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='975.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='975.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='975.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='975.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='975.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='975.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='975.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='975.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='975.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='975.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='975.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='975.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='975.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='975.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='975.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='975.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='975.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='975.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='975.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='975.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='975.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='975.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='975.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='975.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='975.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='975.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='975.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='975.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='975.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='975.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='975.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='975.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='975.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='975.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1300.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1300.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1300.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1300.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1300.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1300.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1300.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1300.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1300.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1300.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1300.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1300.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1300.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1300.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1300.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1300.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1300.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1300.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1300.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1300.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1300.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1300.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1300.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1300.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1300.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1300.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1300.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1300.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1300.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1300.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1300.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1300.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1300.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1300.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1300.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1625.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1625.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1625.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1625.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1625.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1625.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1625.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1625.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1625.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1625.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1625.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1625.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1625.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1625.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1625.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1625.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1625.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1625.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1625.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1625.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1625.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1625.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1625.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1625.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1625.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1625.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1625.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1625.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1625.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1625.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1625.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1625.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1625.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1625.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1625.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1950.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1950.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1950.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1950.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1950.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1950.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1950.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1950.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1950.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1950.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1950.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1950.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1950.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1950.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1950.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1950.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1950.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1950.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1950.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1950.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1950.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1950.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1950.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1950.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1950.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1950.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1950.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1950.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1950.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1950.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1950.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1950.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1950.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1950.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1950.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2275.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2275.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2275.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2275.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2275.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2275.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2275.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2275.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2275.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2275.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2275.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2275.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2275.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2275.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2275.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2275.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2275.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2275.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2275.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2275.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2275.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2275.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2275.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2275.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2275.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2275.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2275.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2275.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2275.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2275.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2275.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2275.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2275.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2275.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2275.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2600.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2600.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2600.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2600.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2600.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2600.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2600.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2600.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2600.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2600.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2600.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2600.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2600.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2600.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2600.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2600.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2600.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2600.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2600.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2600.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2600.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2600.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2600.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2600.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2600.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2600.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2600.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2600.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2600.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2600.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2600.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2600.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2600.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2600.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2600.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2925.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2925.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2925.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2925.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2925.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2925.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2925.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2925.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2925.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2925.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2925.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2925.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2925.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2925.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2925.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2925.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2925.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2925.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2925.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2925.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2925.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2925.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2925.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2925.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2925.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2925.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2925.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2925.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2925.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2925.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2925.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2925.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2925.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2925.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2925.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='3750.00' inputTorque='31.96' torqueLoss='31.96'/> + <Entry inputSpeed='3750.00' inputTorque='70.42' torqueLoss='31.96'/> + <Entry inputSpeed='3750.00' inputTorque='110.07' torqueLoss='33.15'/> + <Entry inputSpeed='3750.00' inputTorque='149.72' torqueLoss='34.34'/> + <Entry inputSpeed='3750.00' inputTorque='189.37' torqueLoss='35.53'/> + <Entry inputSpeed='3750.00' inputTorque='268.68' torqueLoss='37.91'/> + <Entry inputSpeed='3750.00' inputTorque='347.98' torqueLoss='40.29'/> + <Entry inputSpeed='3750.00' inputTorque='506.58' torqueLoss='45.04'/> + <Entry inputSpeed='3750.00' inputTorque='665.19' torqueLoss='49.80'/> + <Entry inputSpeed='3750.00' inputTorque='823.79' torqueLoss='54.56'/> + <Entry inputSpeed='3750.00' inputTorque='982.39' torqueLoss='59.32'/> + <Entry inputSpeed='3750.00' inputTorque='1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='3750.00' inputTorque='1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='3750.00' inputTorque='1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='3750.00' inputTorque='1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='3750.00' inputTorque='1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='3750.00' inputTorque='2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='3750.00' inputTorque='2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='3750.00' inputTorque='2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='3750.00' inputTorque='3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='3750.00' inputTorque='3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='3750.00' inputTorque='3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='3750.00' inputTorque='4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='3750.00' inputTorque='4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='3750.00' inputTorque='4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='3750.00' inputTorque='5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='3750.00' inputTorque='5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='3750.00' inputTorque='5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='3750.00' inputTorque='6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='3750.00' inputTorque='6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='3750.00' inputTorque='6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='3750.00' inputTorque='7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='3750.00' inputTorque='7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='3750.00' inputTorque='7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='3750.00' inputTorque='7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='0.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='0.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='0.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='0.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='0.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='0.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='0.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='0.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='0.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='0.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='0.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='0.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='0.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='0.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='0.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='0.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='0.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='0.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='0.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='0.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='0.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='0.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='0.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='0.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='0.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='0.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='0.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='0.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='0.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='0.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='0.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='0.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='0.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='0.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='0.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='325.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='325.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='325.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='325.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='325.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='325.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='325.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='325.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='325.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='325.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='325.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='325.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='325.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='325.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='325.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='325.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='325.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='325.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='325.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='325.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='325.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='325.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='325.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='325.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='325.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='325.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='325.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='325.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='325.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='325.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='325.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='325.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='325.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='325.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='325.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='650.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='650.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='650.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='650.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='650.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='650.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='650.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='650.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='650.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='650.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='650.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='650.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='650.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='650.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='650.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='650.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='650.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='650.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='650.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='650.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='650.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='650.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='650.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='650.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='650.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='650.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='650.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='650.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='650.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='650.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='650.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='650.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='650.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='650.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='650.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='975.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='975.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='975.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='975.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='975.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='975.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='975.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='975.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='975.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='975.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='975.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='975.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='975.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='975.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='975.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='975.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='975.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='975.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='975.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='975.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='975.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='975.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='975.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='975.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='975.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='975.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='975.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='975.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='975.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='975.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='975.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='975.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='975.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='975.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='975.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1300.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1300.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1300.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1300.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1300.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1300.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1300.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1300.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1300.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1300.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1300.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1300.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1300.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1300.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1300.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1300.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1300.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1300.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1300.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1300.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1300.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1300.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1300.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1300.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1300.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1300.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1300.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1300.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1300.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1300.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1300.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1300.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1300.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1300.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1300.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1625.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1625.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1625.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1625.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1625.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1625.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1625.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1625.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1625.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1625.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1625.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1625.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1625.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1625.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1625.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1625.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1625.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1625.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1625.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1625.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1625.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1625.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1625.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1625.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1625.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1625.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1625.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1625.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1625.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1625.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1625.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1625.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1625.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1625.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1625.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='1950.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='1950.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='1950.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='1950.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='1950.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='1950.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='1950.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='1950.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='1950.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='1950.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='1950.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='1950.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='1950.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='1950.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='1950.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='1950.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='1950.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='1950.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='1950.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='1950.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='1950.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='1950.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='1950.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='1950.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='1950.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='1950.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='1950.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='1950.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='1950.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='1950.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='1950.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='1950.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='1950.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='1950.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='1950.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2275.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2275.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2275.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2275.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2275.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2275.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2275.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2275.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2275.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2275.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2275.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2275.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2275.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2275.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2275.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2275.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2275.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2275.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2275.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2275.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2275.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2275.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2275.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2275.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2275.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2275.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2275.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2275.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2275.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2275.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2275.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2275.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2275.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2275.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2275.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2600.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2600.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2600.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2600.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2600.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2600.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2600.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2600.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2600.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2600.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2600.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2600.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2600.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2600.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2600.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2600.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2600.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2600.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2600.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2600.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2600.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2600.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2600.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2600.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2600.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2600.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2600.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2600.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2600.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2600.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2600.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2600.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2600.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2600.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2600.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='2925.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='2925.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='2925.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='2925.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='2925.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='2925.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='2925.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='2925.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='2925.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='2925.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='2925.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='2925.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='2925.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='2925.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='2925.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='2925.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='2925.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='2925.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='2925.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='2925.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='2925.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='2925.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='2925.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='2925.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='2925.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='2925.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='2925.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='2925.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='2925.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='2925.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='2925.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='2925.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='2925.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='2925.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='2925.00' inputTorque='-7960.98' torqueLoss='268.68'/> + <Entry inputSpeed='3250.00' inputTorque='-31.96' torqueLoss='31.96'/> + <Entry inputSpeed='3250.00' inputTorque='-70.42' torqueLoss='31.96'/> + <Entry inputSpeed='3250.00' inputTorque='-110.07' torqueLoss='33.15'/> + <Entry inputSpeed='3250.00' inputTorque='-149.72' torqueLoss='34.34'/> + <Entry inputSpeed='3250.00' inputTorque='-189.37' torqueLoss='35.53'/> + <Entry inputSpeed='3750.00' inputTorque='-268.68' torqueLoss='37.91'/> + <Entry inputSpeed='3750.00' inputTorque='-347.98' torqueLoss='40.29'/> + <Entry inputSpeed='3750.00' inputTorque='-506.58' torqueLoss='45.04'/> + <Entry inputSpeed='3750.00' inputTorque='-665.19' torqueLoss='49.80'/> + <Entry inputSpeed='3750.00' inputTorque='-823.79' torqueLoss='54.56'/> + <Entry inputSpeed='3750.00' inputTorque='-982.39' torqueLoss='59.32'/> + <Entry inputSpeed='3750.00' inputTorque='-1141.00' torqueLoss='64.08'/> + <Entry inputSpeed='3750.00' inputTorque='-1299.60' torqueLoss='68.83'/> + <Entry inputSpeed='3750.00' inputTorque='-1458.21' torqueLoss='73.59'/> + <Entry inputSpeed='3750.00' inputTorque='-1616.81' torqueLoss='78.35'/> + <Entry inputSpeed='3750.00' inputTorque='-1934.02' torqueLoss='87.87'/> + <Entry inputSpeed='3750.00' inputTorque='-2251.23' torqueLoss='97.38'/> + <Entry inputSpeed='3750.00' inputTorque='-2568.44' torqueLoss='106.90'/> + <Entry inputSpeed='3750.00' inputTorque='-2885.65' torqueLoss='116.42'/> + <Entry inputSpeed='3750.00' inputTorque='-3202.85' torqueLoss='125.93'/> + <Entry inputSpeed='3750.00' inputTorque='-3520.06' torqueLoss='135.45'/> + <Entry inputSpeed='3750.00' inputTorque='-3837.27' torqueLoss='144.96'/> + <Entry inputSpeed='3750.00' inputTorque='-4154.48' torqueLoss='154.48'/> + <Entry inputSpeed='3750.00' inputTorque='-4471.69' torqueLoss='164.00'/> + <Entry inputSpeed='3750.00' inputTorque='-4788.90' torqueLoss='173.51'/> + <Entry inputSpeed='3750.00' inputTorque='-5106.11' torqueLoss='183.03'/> + <Entry inputSpeed='3750.00' inputTorque='-5423.31' torqueLoss='192.55'/> + <Entry inputSpeed='3750.00' inputTorque='-5740.52' torqueLoss='202.06'/> + <Entry inputSpeed='3750.00' inputTorque='-6057.73' torqueLoss='211.58'/> + <Entry inputSpeed='3750.00' inputTorque='-6374.94' torqueLoss='221.09'/> + <Entry inputSpeed='3750.00' inputTorque='-6692.15' torqueLoss='230.61'/> + <Entry inputSpeed='3750.00' inputTorque='-7009.36' torqueLoss='240.13'/> + <Entry inputSpeed='3750.00' inputTorque='-7326.57' torqueLoss='249.64'/> + <Entry inputSpeed='3750.00' inputTorque='-7643.77' torqueLoss='259.16'/> + <Entry inputSpeed='3750.00' inputTorque='-7960.98' torqueLoss='268.68'/> </TorqueLossMap> </Data> <Signature> @@ -2187,17 +2187,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/Group P37_38/primary_heavyBus group_P37_38_SmartES_PS.xml b/Generic Vehicles/Declaration Mode/Group P37_38/primary_heavyBus group_P37_38_SmartES_PS.xml index 30df4a340641a8a3e2b1455d862a59145a92f515..3e710f5c4241bff9f63b889f9e805983df1e273e 100644 --- a/Generic Vehicles/Declaration Mode/Group P37_38/primary_heavyBus group_P37_38_SmartES_PS.xml +++ b/Generic Vehicles/Declaration Mode/Group P37_38/primary_heavyBus group_P37_38_SmartES_PS.xml @@ -1,14 +1,14 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_SmartES-PS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Bus Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartES-PS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>8x2</AxleConfiguration> - <Articulated>false</Articulated> + <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>29250</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> @@ -1283,7 +1283,6 @@ <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> - <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> @@ -2449,7 +2448,6 @@ <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="14.85"/> <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="15.85"/> <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="16.85"/> - <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="17.85"/> <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="18.85"/> <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="19.85"/> @@ -3321,19 +3319,27 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>true</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/Group P39_40/primary_heavyBus group P39_40_nonSmart_ESS.xml b/Generic Vehicles/Declaration Mode/Group P39_40/primary_heavyBus group P39_40_nonSmart_ESS.xml index 0880ce6fec483131bf0470b4449f02bba59ce2cf..6c21b1f947e842d5e7b48b6fe2578d1482bfc446 100644 --- a/Generic Vehicles/Declaration Mode/Group P39_40/primary_heavyBus group P39_40_nonSmart_ESS.xml +++ b/Generic Vehicles/Declaration Mode/Group P39_40/primary_heavyBus group P39_40_nonSmart_ESS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart-ESS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Bus Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>8x2</AxleConfiguration> <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> @@ -1433,7 +1433,7 @@ </Signature> </Tyre> </Axle> - <Axle axleNumber="4" xsi:type="AxleDataDeclarationType"> + <Axle axleNumber="4" xsi:type="AxleDataDeclarationType"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>false</Steered> @@ -1472,17 +1472,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/SingleBus_31b/primary_heavyBus group_P31_32_Smart_ES.xml b/Generic Vehicles/Declaration Mode/SingleBus_31b/primary_heavyBus group_P31_32_Smart_ES.xml index 250df1d708987ef7194f42f83bb571fd78fb78b9..b3493936e31ea50f699ed4b2039602184583f3af 100644 --- a/Generic Vehicles/Declaration Mode/SingleBus_31b/primary_heavyBus group_P31_32_Smart_ES.xml +++ b/Generic Vehicles/Declaration Mode/SingleBus_31b/primary_heavyBus group_P31_32_Smart_ES.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> - <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> @@ -36,7 +36,7 @@ <Displacement>7700</Displacement> <IdlingSpeed>700</IdlingSpeed> <RatedSpeed>2200</RatedSpeed> - <RatedPower>220000</RatedPower> + <RatedPower>200000</RatedPower> <MaxEngineTorque>1100</MaxEngineTorque> <WHTCUrban>1.0600</WHTCUrban> <WHTCRural>1.0300</WHTCRural> @@ -2188,19 +2188,27 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>true</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml b/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml index ee9ea1cb21ec5fd0f5346a08f67cee76ad87c654..d26a3385b1a827b1770571a08f536d807320b21b 100644 --- a/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml +++ b/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml @@ -1,29 +1,39 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:di="http://www.w3.org/2000/09/xmldsig#" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II</ClassBus> - <VehicleCode>CE</VehicleCode> - <CurbMassChassis>10680</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>10680</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>86</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II</ClassBus> + <NumberPassengerSeatsLowerDeck>86</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CE</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>10.633</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.270</EntranceHeight> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>10633</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>270</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> - <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> + <AirDrag> + <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> @@ -33,7 +43,7 @@ <TransferredCdxA>4.90</TransferredCdxA> <DeclaredCdxA>4.90</DeclaredCdxA> </Data> - <Signature> + <v2.0:Signature> <di:Reference URI="#CabinX23h"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> @@ -42,29 +52,27 @@ <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> - </Signature> - </v2.6:AirDrag> + </v2.0:Signature> + </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>true</Interiorlights> <Dayrunninglights>true</Dayrunninglights> - <Headlights>true</Headlights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> - <Interiorlights>true</Interiorlights> + <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>6</SystemConfiguration> - <CompressorType> - <DriverAC>none</DriverAC> - <PassengerAC>2-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>N.A.</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>15000</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> </HVAC> diff --git a/Generic Vehicles/Declaration Mode/SingleBus_34f/primary_heavyBus group_P33_34_SmartPS.xml b/Generic Vehicles/Declaration Mode/SingleBus_34f/primary_heavyBus group_P33_34_SmartPS.xml index 48caa0c3f0b498cfe7ca0fdd285bdedfae5890db..7ca77eecbb7348c828e7f76967a62edce1e6d491 100644 --- a/Generic Vehicles/Declaration Mode/SingleBus_34f/primary_heavyBus group_P33_34_SmartPS.xml +++ b/Generic Vehicles/Declaration Mode/SingleBus_34f/primary_heavyBus group_P33_34_SmartPS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_SmartPS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> - <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <Manufacturer>Generic Bus Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -47,138 +47,138 @@ <CFNCV>1.0000</CFNCV> <FuelType>Diesel CI</FuelType> <FuelConsumptionMap> - <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00" /> - <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00" /> - <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75" /> - <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91" /> - <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95" /> - <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27" /> - <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00" /> - <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45" /> - <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57" /> - <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68" /> - <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80" /> - <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92" /> - <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00" /> - <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69" /> - <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77" /> - <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06" /> - <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92" /> - <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55" /> - <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09" /> - <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44" /> - <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90" /> - <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02" /> - <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05" /> - <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96" /> - <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00" /> - <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15" /> - <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49" /> - <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43" /> - <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87" /> - <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49" /> - <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62" /> - <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10" /> - <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31" /> - <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18" /> - <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40" /> - <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09" /> - <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00" /> - <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21" /> - <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69" /> - <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67" /> - <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76" /> - <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71" /> - <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70" /> - <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40" /> - <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65" /> - <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67" /> - <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29" /> - <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72" /> - <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00" /> - <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21" /> - <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55" /> - <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50" /> - <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59" /> - <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22" /> - <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81" /> - <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77" /> - <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22" /> - <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60" /> - <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89" /> - <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10" /> - <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00" /> - <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15" /> - <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52" /> - <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44" /> - <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41" /> - <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61" /> - <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71" /> - <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01" /> - <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96" /> - <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37" /> - <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97" /> - <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23" /> - <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00" /> - <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84" /> - <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80" /> - <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69" /> - <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18" /> - <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30" /> - <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33" /> - <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82" /> - <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91" /> - <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82" /> - <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52" /> - <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14" /> - <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00" /> - <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40" /> - <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91" /> - <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19" /> - <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18" /> - <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21" /> - <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36" /> - <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25" /> - <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48" /> - <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01" /> - <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92" /> - <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75" /> - <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00" /> - <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80" /> - <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09" /> - <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05" /> - <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56" /> - <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62" /> - <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51" /> - <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51" /> - <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25" /> - <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29" /> - <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45" /> - <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09" /> - <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00" /> - <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51" /> - <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55" /> - <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96" /> - <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46" /> - <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94" /> - <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10" /> - <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71" /> - <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15" /> - <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35" /> - <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10" /> - <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30" /> + <Entry engineSpeed="600.00" torque="-150.00" fuelConsumption="0.00"/> + <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00"/> + <Entry engineSpeed="600.00" torque="216.90" fuelConsumption="3538.75"/> + <Entry engineSpeed="600.00" torque="433.80" fuelConsumption="5936.91"/> + <Entry engineSpeed="600.00" torque="650.70" fuelConsumption="8584.95"/> + <Entry engineSpeed="600.00" torque="867.60" fuelConsumption="10708.27"/> + <Entry engineSpeed="600.00" torque="1084.50" fuelConsumption="13054.00"/> + <Entry engineSpeed="600.00" torque="1301.40" fuelConsumption="15575.45"/> + <Entry engineSpeed="600.00" torque="1518.30" fuelConsumption="18097.57"/> + <Entry engineSpeed="600.00" torque="1735.20" fuelConsumption="20619.68"/> + <Entry engineSpeed="600.00" torque="1952.10" fuelConsumption="23141.80"/> + <Entry engineSpeed="600.00" torque="2169.00" fuelConsumption="25663.92"/> + <Entry engineSpeed="748.90" torque="-153.25" fuelConsumption="0.00"/> + <Entry engineSpeed="748.90" torque="0.00" fuelConsumption="1771.69"/> + <Entry engineSpeed="748.90" torque="216.90" fuelConsumption="4287.77"/> + <Entry engineSpeed="748.90" torque="433.80" fuelConsumption="7329.06"/> + <Entry engineSpeed="748.90" torque="650.70" fuelConsumption="10252.92"/> + <Entry engineSpeed="748.90" torque="867.60" fuelConsumption="13214.55"/> + <Entry engineSpeed="748.90" torque="1084.50" fuelConsumption="16271.09"/> + <Entry engineSpeed="748.90" torque="1301.40" fuelConsumption="19504.44"/> + <Entry engineSpeed="748.90" torque="1518.30" fuelConsumption="22715.90"/> + <Entry engineSpeed="748.90" torque="1735.20" fuelConsumption="26067.02"/> + <Entry engineSpeed="748.90" torque="1952.10" fuelConsumption="29381.05"/> + <Entry engineSpeed="748.90" torque="2169.00" fuelConsumption="32699.96"/> + <Entry engineSpeed="897.80" torque="-159.33" fuelConsumption="0.00"/> + <Entry engineSpeed="897.80" torque="0.00" fuelConsumption="2361.15"/> + <Entry engineSpeed="897.80" torque="216.90" fuelConsumption="5371.49"/> + <Entry engineSpeed="897.80" torque="433.80" fuelConsumption="8747.43"/> + <Entry engineSpeed="897.80" torque="650.70" fuelConsumption="12019.87"/> + <Entry engineSpeed="897.80" torque="867.60" fuelConsumption="15642.49"/> + <Entry engineSpeed="897.80" torque="1084.50" fuelConsumption="19348.62"/> + <Entry engineSpeed="897.80" torque="1301.40" fuelConsumption="23071.10"/> + <Entry engineSpeed="897.80" torque="1518.30" fuelConsumption="26864.31"/> + <Entry engineSpeed="897.80" torque="1735.20" fuelConsumption="30815.18"/> + <Entry engineSpeed="897.80" torque="1952.10" fuelConsumption="34854.40"/> + <Entry engineSpeed="897.80" torque="2169.00" fuelConsumption="39155.09"/> + <Entry engineSpeed="1046.70" torque="-167.79" fuelConsumption="0.00"/> + <Entry engineSpeed="1046.70" torque="0.00" fuelConsumption="2968.21"/> + <Entry engineSpeed="1046.70" torque="216.90" fuelConsumption="6463.69"/> + <Entry engineSpeed="1046.70" torque="433.80" fuelConsumption="10102.67"/> + <Entry engineSpeed="1046.70" torque="650.70" fuelConsumption="13853.76"/> + <Entry engineSpeed="1046.70" torque="867.60" fuelConsumption="18068.71"/> + <Entry engineSpeed="1046.70" torque="1084.50" fuelConsumption="22383.70"/> + <Entry engineSpeed="1046.70" torque="1301.40" fuelConsumption="26543.40"/> + <Entry engineSpeed="1046.70" torque="1518.30" fuelConsumption="30847.65"/> + <Entry engineSpeed="1046.70" torque="1735.20" fuelConsumption="35304.67"/> + <Entry engineSpeed="1046.70" torque="1952.10" fuelConsumption="40046.29"/> + <Entry engineSpeed="1046.70" torque="2169.00" fuelConsumption="45162.72"/> + <Entry engineSpeed="1195.57" torque="-178.58" fuelConsumption="0.00"/> + <Entry engineSpeed="1195.57" torque="0.00" fuelConsumption="3297.21"/> + <Entry engineSpeed="1195.57" torque="216.90" fuelConsumption="7191.55"/> + <Entry engineSpeed="1195.57" torque="433.80" fuelConsumption="11289.50"/> + <Entry engineSpeed="1195.57" torque="650.70" fuelConsumption="15720.59"/> + <Entry engineSpeed="1195.57" torque="867.60" fuelConsumption="20580.22"/> + <Entry engineSpeed="1195.57" torque="1084.50" fuelConsumption="25484.81"/> + <Entry engineSpeed="1195.57" torque="1301.40" fuelConsumption="30222.77"/> + <Entry engineSpeed="1195.57" torque="1518.30" fuelConsumption="35006.22"/> + <Entry engineSpeed="1195.57" torque="1735.20" fuelConsumption="40026.60"/> + <Entry engineSpeed="1195.57" torque="1952.10" fuelConsumption="45496.89"/> + <Entry engineSpeed="1195.57" torque="2169.00" fuelConsumption="50854.10"/> + <Entry engineSpeed="1359.19" torque="-197.42" fuelConsumption="0.00"/> + <Entry engineSpeed="1359.19" torque="0.00" fuelConsumption="4102.15"/> + <Entry engineSpeed="1359.19" torque="216.90" fuelConsumption="8260.52"/> + <Entry engineSpeed="1359.19" torque="433.80" fuelConsumption="13082.44"/> + <Entry engineSpeed="1359.19" torque="650.70" fuelConsumption="18126.41"/> + <Entry engineSpeed="1359.19" torque="867.60" fuelConsumption="23245.61"/> + <Entry engineSpeed="1359.19" torque="1084.50" fuelConsumption="28611.71"/> + <Entry engineSpeed="1359.19" torque="1301.40" fuelConsumption="34186.01"/> + <Entry engineSpeed="1359.19" torque="1518.30" fuelConsumption="39773.96"/> + <Entry engineSpeed="1359.19" torque="1735.20" fuelConsumption="45940.37"/> + <Entry engineSpeed="1359.19" torque="1952.10" fuelConsumption="52485.97"/> + <Entry engineSpeed="1359.19" torque="2169.00" fuelConsumption="58360.23"/> + <Entry engineSpeed="1484.00" torque="-216.03" fuelConsumption="0.00"/> + <Entry engineSpeed="1484.00" torque="0.00" fuelConsumption="4684.84"/> + <Entry engineSpeed="1484.00" torque="216.90" fuelConsumption="9190.80"/> + <Entry engineSpeed="1484.00" torque="433.80" fuelConsumption="14455.69"/> + <Entry engineSpeed="1484.00" torque="650.70" fuelConsumption="19929.18"/> + <Entry engineSpeed="1484.00" torque="867.60" fuelConsumption="25556.30"/> + <Entry engineSpeed="1484.00" torque="1084.50" fuelConsumption="31326.33"/> + <Entry engineSpeed="1484.00" torque="1301.40" fuelConsumption="37363.82"/> + <Entry engineSpeed="1484.00" torque="1518.30" fuelConsumption="43571.91"/> + <Entry engineSpeed="1484.00" torque="1735.20" fuelConsumption="50460.82"/> + <Entry engineSpeed="1484.00" torque="1952.10" fuelConsumption="57604.52"/> + <Entry engineSpeed="1484.00" torque="2169.00" fuelConsumption="64181.14"/> + <Entry engineSpeed="1608.90" torque="-236.34" fuelConsumption="0.00"/> + <Entry engineSpeed="1608.90" torque="0.00" fuelConsumption="5261.40"/> + <Entry engineSpeed="1608.90" torque="216.90" fuelConsumption="10199.91"/> + <Entry engineSpeed="1608.90" torque="433.80" fuelConsumption="15846.19"/> + <Entry engineSpeed="1608.90" torque="650.70" fuelConsumption="21747.18"/> + <Entry engineSpeed="1608.90" torque="867.60" fuelConsumption="28037.21"/> + <Entry engineSpeed="1608.90" torque="1084.50" fuelConsumption="34232.36"/> + <Entry engineSpeed="1608.90" torque="1301.40" fuelConsumption="40669.25"/> + <Entry engineSpeed="1608.90" torque="1518.30" fuelConsumption="47498.48"/> + <Entry engineSpeed="1608.90" torque="1735.20" fuelConsumption="55015.01"/> + <Entry engineSpeed="1608.90" torque="1952.10" fuelConsumption="62654.92"/> + <Entry engineSpeed="1608.90" torque="2169.00" fuelConsumption="70071.75"/> + <Entry engineSpeed="1733.80" torque="-253.92" fuelConsumption="0.00"/> + <Entry engineSpeed="1733.80" torque="0.00" fuelConsumption="6010.80"/> + <Entry engineSpeed="1733.80" torque="216.90" fuelConsumption="11536.09"/> + <Entry engineSpeed="1733.80" torque="433.80" fuelConsumption="17479.05"/> + <Entry engineSpeed="1733.80" torque="650.70" fuelConsumption="23999.56"/> + <Entry engineSpeed="1733.80" torque="867.60" fuelConsumption="30943.62"/> + <Entry engineSpeed="1733.80" torque="1084.50" fuelConsumption="37482.51"/> + <Entry engineSpeed="1733.80" torque="1301.40" fuelConsumption="44617.51"/> + <Entry engineSpeed="1733.80" torque="1518.30" fuelConsumption="52071.25"/> + <Entry engineSpeed="1733.80" torque="1735.20" fuelConsumption="60004.29"/> + <Entry engineSpeed="1733.80" torque="1952.10" fuelConsumption="68251.45"/> + <Entry engineSpeed="1733.80" torque="2169.00" fuelConsumption="76381.09"/> + <Entry engineSpeed="1858.61" torque="-274.22" fuelConsumption="0.00"/> + <Entry engineSpeed="1858.61" torque="0.00" fuelConsumption="7204.51"/> + <Entry engineSpeed="1858.61" torque="216.90" fuelConsumption="13143.55"/> + <Entry engineSpeed="1858.61" torque="433.80" fuelConsumption="19338.96"/> + <Entry engineSpeed="1858.61" torque="650.70" fuelConsumption="26272.46"/> + <Entry engineSpeed="1858.61" torque="867.60" fuelConsumption="33838.94"/> + <Entry engineSpeed="1858.61" torque="1084.50" fuelConsumption="41281.10"/> + <Entry engineSpeed="1858.61" torque="1301.40" fuelConsumption="49065.71"/> + <Entry engineSpeed="1858.61" torque="1518.30" fuelConsumption="57066.15"/> + <Entry engineSpeed="1858.61" torque="1735.20" fuelConsumption="65324.35"/> + <Entry engineSpeed="1858.61" torque="1952.10" fuelConsumption="73876.10"/> + <Entry engineSpeed="1858.61" torque="2169.00" fuelConsumption="82384.30"/> </FuelConsumptionMap> <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00" /> - <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00" /> - <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00" /> - <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00" /> - <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00" /> - <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00" /> - <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00" /> - <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00" /> - <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00" /> - <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00" /> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> </FullLoadAndDragCurve> </v2.0:Data> <Signature> @@ -2644,74 +2644,74 @@ </v2.6:Angledrive> <v2.6:Retarder xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="RetarderComponentDeclarationType"> <Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType"> - <Manufacturer>Generic Vendor</Manufacturer> - <Model>RET-generic</Model> - <CertificationNumber>standard values</CertificationNumber> - <Date>2018-02-02T13:38:22.424664Z</Date> - <AppVersion>VectoCore</AppVersion> - <CertificationMethod>Standard values</CertificationMethod> - <RetarderLossMap> - <Entry retarderSpeed="0.00" torqueLoss="5.00" /> - <Entry retarderSpeed="100.00" torqueLoss="5.00" /> - <Entry retarderSpeed="200.00" torqueLoss="5.00" /> - <Entry retarderSpeed="300.00" torqueLoss="5.00" /> - <Entry retarderSpeed="400.00" torqueLoss="5.00" /> - <Entry retarderSpeed="500.00" torqueLoss="5.10" /> - <Entry retarderSpeed="600.00" torqueLoss="5.10" /> - <Entry retarderSpeed="700.00" torqueLoss="5.10" /> - <Entry retarderSpeed="800.00" torqueLoss="5.20" /> - <Entry retarderSpeed="900.00" torqueLoss="5.20" /> - <Entry retarderSpeed="1000.00" torqueLoss="5.30" /> - <Entry retarderSpeed="1100.00" torqueLoss="5.30" /> - <Entry retarderSpeed="1200.00" torqueLoss="5.40" /> - <Entry retarderSpeed="1300.00" torqueLoss="5.40" /> - <Entry retarderSpeed="1400.00" torqueLoss="5.50" /> - <Entry retarderSpeed="1500.00" torqueLoss="5.60" /> - <Entry retarderSpeed="1600.00" torqueLoss="5.60" /> - <Entry retarderSpeed="1700.00" torqueLoss="5.70" /> - <Entry retarderSpeed="1800.00" torqueLoss="5.80" /> - <Entry retarderSpeed="1900.00" torqueLoss="5.90" /> - <Entry retarderSpeed="2000.00" torqueLoss="6.00" /> - <Entry retarderSpeed="2100.00" torqueLoss="6.10" /> - <Entry retarderSpeed="2200.00" torqueLoss="6.20" /> - <Entry retarderSpeed="2300.00" torqueLoss="6.30" /> - <Entry retarderSpeed="2400.00" torqueLoss="6.40" /> - <Entry retarderSpeed="2500.00" torqueLoss="6.60" /> - <Entry retarderSpeed="2600.00" torqueLoss="6.70" /> - <Entry retarderSpeed="2700.00" torqueLoss="6.80" /> - <Entry retarderSpeed="2800.00" torqueLoss="7.00" /> - <Entry retarderSpeed="2900.00" torqueLoss="7.10" /> - <Entry retarderSpeed="3000.00" torqueLoss="7.30" /> - <Entry retarderSpeed="3100.00" torqueLoss="7.40" /> - <Entry retarderSpeed="3200.00" torqueLoss="7.60" /> - <Entry retarderSpeed="3300.00" torqueLoss="7.70" /> - <Entry retarderSpeed="3400.00" torqueLoss="7.90" /> - <Entry retarderSpeed="3500.00" torqueLoss="8.10" /> - <Entry retarderSpeed="3600.00" torqueLoss="8.20" /> - <Entry retarderSpeed="3700.00" torqueLoss="8.40" /> - <Entry retarderSpeed="3800.00" torqueLoss="8.60" /> - <Entry retarderSpeed="3900.00" torqueLoss="8.80" /> - <Entry retarderSpeed="4000.00" torqueLoss="9.00" /> - <Entry retarderSpeed="4100.00" torqueLoss="9.20" /> - <Entry retarderSpeed="4200.00" torqueLoss="9.40" /> - <Entry retarderSpeed="4300.00" torqueLoss="9.60" /> - <Entry retarderSpeed="4400.00" torqueLoss="9.80" /> - <Entry retarderSpeed="4500.00" torqueLoss="10.10" /> - <Entry retarderSpeed="4600.00" torqueLoss="10.30" /> - <Entry retarderSpeed="4700.00" torqueLoss="10.50" /> - <Entry retarderSpeed="4800.00" torqueLoss="10.80" /> - <Entry retarderSpeed="4900.00" torqueLoss="11.00" /> - <Entry retarderSpeed="5000.00" torqueLoss="11.30" /> - <Entry retarderSpeed="5100.00" torqueLoss="11.50" /> - <Entry retarderSpeed="5200.00" torqueLoss="11.80" /> - <Entry retarderSpeed="5300.00" torqueLoss="12.00" /> - <Entry retarderSpeed="5400.00" torqueLoss="12.30" /> - <Entry retarderSpeed="5500.00" torqueLoss="12.60" /> - <Entry retarderSpeed="5600.00" torqueLoss="12.80" /> - <Entry retarderSpeed="5700.00" torqueLoss="13.10" /> - <Entry retarderSpeed="5800.00" torqueLoss="13.40" /> - <Entry retarderSpeed="5900.00" torqueLoss="13.70" /> - <Entry retarderSpeed="6000.00" torqueLoss="14.00" /> + <Manufacturer>Generic Vendor</Manufacturer> + <Model>RET-generic</Model> + <CertificationNumber>standard values</CertificationNumber> + <Date>2018-02-02T13:38:22.424664Z</Date> + <AppVersion>VectoCore</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="5.00"/> + <Entry retarderSpeed="100.00" torqueLoss="5.00"/> + <Entry retarderSpeed="200.00" torqueLoss="5.00"/> + <Entry retarderSpeed="300.00" torqueLoss="5.00"/> + <Entry retarderSpeed="400.00" torqueLoss="5.00"/> + <Entry retarderSpeed="500.00" torqueLoss="5.10"/> + <Entry retarderSpeed="600.00" torqueLoss="5.10"/> + <Entry retarderSpeed="700.00" torqueLoss="5.10"/> + <Entry retarderSpeed="800.00" torqueLoss="5.20"/> + <Entry retarderSpeed="900.00" torqueLoss="5.20"/> + <Entry retarderSpeed="1000.00" torqueLoss="5.30"/> + <Entry retarderSpeed="1100.00" torqueLoss="5.30"/> + <Entry retarderSpeed="1200.00" torqueLoss="5.40"/> + <Entry retarderSpeed="1300.00" torqueLoss="5.40"/> + <Entry retarderSpeed="1400.00" torqueLoss="5.50"/> + <Entry retarderSpeed="1500.00" torqueLoss="5.60"/> + <Entry retarderSpeed="1600.00" torqueLoss="5.60"/> + <Entry retarderSpeed="1700.00" torqueLoss="5.70"/> + <Entry retarderSpeed="1800.00" torqueLoss="5.80"/> + <Entry retarderSpeed="1900.00" torqueLoss="5.90"/> + <Entry retarderSpeed="2000.00" torqueLoss="6.00"/> + <Entry retarderSpeed="2100.00" torqueLoss="6.10"/> + <Entry retarderSpeed="2200.00" torqueLoss="6.20"/> + <Entry retarderSpeed="2300.00" torqueLoss="6.30"/> + <Entry retarderSpeed="2400.00" torqueLoss="6.40"/> + <Entry retarderSpeed="2500.00" torqueLoss="6.60"/> + <Entry retarderSpeed="2600.00" torqueLoss="6.70"/> + <Entry retarderSpeed="2700.00" torqueLoss="6.80"/> + <Entry retarderSpeed="2800.00" torqueLoss="7.00"/> + <Entry retarderSpeed="2900.00" torqueLoss="7.10"/> + <Entry retarderSpeed="3000.00" torqueLoss="7.30"/> + <Entry retarderSpeed="3100.00" torqueLoss="7.40"/> + <Entry retarderSpeed="3200.00" torqueLoss="7.60"/> + <Entry retarderSpeed="3300.00" torqueLoss="7.70"/> + <Entry retarderSpeed="3400.00" torqueLoss="7.90"/> + <Entry retarderSpeed="3500.00" torqueLoss="8.10"/> + <Entry retarderSpeed="3600.00" torqueLoss="8.20"/> + <Entry retarderSpeed="3700.00" torqueLoss="8.40"/> + <Entry retarderSpeed="3800.00" torqueLoss="8.60"/> + <Entry retarderSpeed="3900.00" torqueLoss="8.80"/> + <Entry retarderSpeed="4000.00" torqueLoss="9.00"/> + <Entry retarderSpeed="4100.00" torqueLoss="9.20"/> + <Entry retarderSpeed="4200.00" torqueLoss="9.40"/> + <Entry retarderSpeed="4300.00" torqueLoss="9.60"/> + <Entry retarderSpeed="4400.00" torqueLoss="9.80"/> + <Entry retarderSpeed="4500.00" torqueLoss="10.10"/> + <Entry retarderSpeed="4600.00" torqueLoss="10.30"/> + <Entry retarderSpeed="4700.00" torqueLoss="10.50"/> + <Entry retarderSpeed="4800.00" torqueLoss="10.80"/> + <Entry retarderSpeed="4900.00" torqueLoss="11.00"/> + <Entry retarderSpeed="5000.00" torqueLoss="11.30"/> + <Entry retarderSpeed="5100.00" torqueLoss="11.50"/> + <Entry retarderSpeed="5200.00" torqueLoss="11.80"/> + <Entry retarderSpeed="5300.00" torqueLoss="12.00"/> + <Entry retarderSpeed="5400.00" torqueLoss="12.30"/> + <Entry retarderSpeed="5500.00" torqueLoss="12.60"/> + <Entry retarderSpeed="5600.00" torqueLoss="12.80"/> + <Entry retarderSpeed="5700.00" torqueLoss="13.10"/> + <Entry retarderSpeed="5800.00" torqueLoss="13.40"/> + <Entry retarderSpeed="5900.00" torqueLoss="13.70"/> + <Entry retarderSpeed="6000.00" torqueLoss="14.00"/> </RetarderLossMap> </Data> <Signature> @@ -3055,7 +3055,6 @@ <Entry inputSpeed="1300.00" inputTorque="24000.00" torqueLoss="400.00"/> <Entry inputSpeed="1300.00" inputTorque="25000.00" torqueLoss="415.00"/> <Entry inputSpeed="1300.00" inputTorque="26000.00" torqueLoss="430.00"/> - <Entry inputSpeed="1300.00" inputTorque="27000.00" torqueLoss="445.00"/> <Entry inputSpeed="1300.00" inputTorque="28000.00" torqueLoss="460.00"/> <Entry inputSpeed="1300.00" inputTorque="29000.00" torqueLoss="475.00"/> @@ -3338,19 +3337,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml b/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml index 263d916f179b9c37a3894c1ce933b0a3211d4104..e44502a740c47d7f4ebb9b93a76b15b10af2553d 100644 --- a/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml +++ b/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml @@ -1,28 +1,31 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II+III</ClassBus> - <VehicleCode>CB</VehicleCode> - <CurbMassChassis>19400</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>19400</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>16</LowerDeck> - <UpperDeck>56</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>16</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>56</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>4.000</HeightIntegratedBody> - <VehicleLength>13.890</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.300</EntranceHeight> + <HeightIntegratedBody>4000</HeightIntegratedBody> + <VehicleLength>13890</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>300</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -43,28 +46,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>true</Interiorlights> <Dayrunninglights>true</Dayrunninglights> - <Headlights>true</Headlights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> - <Interiorlights>true</Interiorlights> + <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>6</SystemConfiguration> - <CompressorType> - <DriverAC>none</DriverAC> - <PassengerAC>2-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>N.A.</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>30000</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/Generic Vehicles/Declaration Mode/VTP HeavyBus/primary_heavyBus group P33_34_non_Smart.xml b/Generic Vehicles/Declaration Mode/VTP HeavyBus/primary_heavyBus group P33_34_non_Smart.xml index 6191bcc6d53b1535284af13da74dab9b3b1fb3f6..97987ab1de276d22d9293a7be8626e2e84aa300b 100644 --- a/Generic Vehicles/Declaration Mode/VTP HeavyBus/primary_heavyBus group P33_34_non_Smart.xml +++ b/Generic Vehicles/Declaration Mode/VTP HeavyBus/primary_heavyBus group P33_34_non_Smart.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3338,19 +3338,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Tools/GraphDrawer/bin/Debug/TestData/Integration/VTPMode/GenericVehicle/CityBus_AT_Ser.RSLT_MANUFACTURER.xml b/Tools/GraphDrawer/bin/Debug/TestData/Integration/VTPMode/GenericVehicle/CityBus_AT_Ser.RSLT_MANUFACTURER.xml deleted file mode 100644 index 3069eb40a95836621bde9462d3ccdbe35bc0b9d6..0000000000000000000000000000000000000000 --- a/Tools/GraphDrawer/bin/Debug/TestData/Integration/VTPMode/GenericVehicle/CityBus_AT_Ser.RSLT_MANUFACTURER.xml +++ /dev/null @@ -1,323 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<?xml-stylesheet href="https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/CSS/VectoReports.css"?> -<VectoOutput schemaVersion="0.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoOutputManufacturer.0.5.xsd"> - <Data id="RESULT-bf220343fe634daa8708"> - <Vehicle> - <VIN>1234</VIN> - <LegislativeClass>N2</LegislativeClass> - <VehicleGroup>2</VehicleGroup> - <AxleConfiguration>4x2</AxleConfiguration> - <GrossVehicleMass unit="t">12.0</GrossVehicleMass> - <CurbMassChassis unit="kg">4670</CurbMassChassis> - <PTO>false</PTO> - <Components> - <Engine> - <Model>175kW 6.8l Engine</Model> - <CertificationNumber>1234</CertificationNumber> - <DigestValue>JZmOioDqDbJWb3SWfxl/wSaxs9/WN5mLPh8vtJjs8Vs=</DigestValue> - <RatedPower unit="kW">0</RatedPower> - <IdlingSpeed unit="rpm">650</IdlingSpeed> - <RatedSpeed unit="rpm">2200</RatedSpeed> - <Displacement unit="ltr">6.9</Displacement> - <FuelType>Diesel CI</FuelType> - </Engine> - <Gearbox> - <Model>AT Serial</Model> - <CertificationMethod>Standard values</CertificationMethod> - <DigestValue>XopOvOsapfoRb6Px3dioaWrK2gzG4ICU22YvmCA3YEU=</DigestValue> - <TransmissionType>APT-S</TransmissionType> - <GearsCount>6</GearsCount> - <TransmissionRatioFinalGear>0.620</TransmissionRatioFinalGear> - </Gearbox> - <TorqueConverter> - <Model /> - <CertificationMethod>Standard values</CertificationMethod> - <DigestValue /> - </TorqueConverter> - <Retarder> - <RetarderType>None</RetarderType> - </Retarder> - <Axlegear> - <Model>N.A.</Model> - <CertificationMethod>Standard values</CertificationMethod> - <DigestValue>6SDJDUVv0NR59jxJVNVERv65KBwvwbqAPNuOa1b+3HM=</DigestValue> - <LineType>Single reduction axle</LineType> - <Ratio>6.200</Ratio> - </Axlegear> - <AirDrag> - <Model>N.A.</Model> - <CertificationMethod>Measured</CertificationMethod> - <CertificationNumber>1234</CertificationNumber> - <DigestValue>IkK48GO1AjmbFybyld4/BYI0ymwJTnaglLqwALludTw=</DigestValue> - <CdxA>4.83</CdxA> - </AirDrag> - <AxleWheels> - <Axle axleNumber="1"> - <TyreDimension>265/70 R19.5</TyreDimension> - <TyreCertificationNumber>e12*0815/8051*2017/05E0000*00</TyreCertificationNumber> - <DigestValue>m5RsKXsyG5IZ5K397SrIGJjsuXbmdVOuTmdRY3RSdcM=</DigestValue> - <TyreRRCDeclared>0.0055</TyreRRCDeclared> - <TwinTyres>false</TwinTyres> - </Axle> - <Axle axleNumber="2"> - <TyreDimension>265/70 R19.5</TyreDimension> - <TyreCertificationNumber>e12*0815/8051*2017/05E0000*00</TyreCertificationNumber> - <DigestValue>N8+9tAQ3TWT7He9gM/aHRmcU76J2keixu8ONXE7sMjM=</DigestValue> - <TyreRRCDeclared>0.0063</TyreRRCDeclared> - <TwinTyres>true</TwinTyres> - </Axle> - </AxleWheels> - <Auxiliaries> - <FanTechnology>Hydraulic driven - Constant displacement pump</FanTechnology> - <SteeringPumpTechnology>Variable displacement elec. controlled</SteeringPumpTechnology> - <ElectricSystemTechnology>Standard technology - LED headlights, all</ElectricSystemTechnology> - <PneumaticSystemTechnology>Medium Supply 2-stage + ESS</PneumaticSystemTechnology> - <HVACTechnology>Default</HVACTechnology> - </Auxiliaries> - </Components> - <InputDataSignature> - <di:Reference URI="#VEH-N.A."> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>d1VI47bzCHCfd2bpCt4fZwDwwze/OUK3U0vDY1s1QYQ=</di:DigestValue> - </di:Reference> - </InputDataSignature> - </Vehicle> - <Results> - <Status>success</Status> - <Result status="success"> - <Mission>Long Haul</Mission> - <Distance unit="km">100.185</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">11274</TotalVehicleMass> - <Payload unit="kg">1304</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">79.8</AverageSpeed> - <AverageDrivingSpeed unit="km/h">81.0</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">85.0</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>4.59</FullLoadDrivingtimePercentage> - <GearshiftCount>33</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">683.7</Min> - <Average unit="rpm">1977.1</Average> - <Max unit="rpm">2059.4</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">207.6</FuelConsumption> - <FuelConsumption unit="g/t-km">159.2</FuelConsumption> - <FuelConsumption unit="g/m³-km">2.44</FuelConsumption> - <FuelConsumption unit="MJ/km">8.86</FuelConsumption> - <FuelConsumption unit="MJ/t-km">6.80</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.104</FuelConsumption> - <FuelConsumption unit="l/100km">24.8</FuelConsumption> - <FuelConsumption unit="l/t-km">0.190</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00292</FuelConsumption> - <CO2 unit="g/km">649.8</CO2> - <CO2 unit="g/t-km">498.3</CO2> - <CO2 unit="g/m³-km">7.64</CO2> - </Result> - <Result status="success"> - <Mission>Long Haul</Mission> - <Distance unit="km">100.185</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">19811</TotalVehicleMass> - <Payload unit="kg">9841</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">78.3</AverageSpeed> - <AverageDrivingSpeed unit="km/h">79.4</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">87.5</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>17.09</FullLoadDrivingtimePercentage> - <GearshiftCount>39</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">677.3</Min> - <Average unit="rpm">1954.9</Average> - <Max unit="rpm">2192.7</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">241.1</FuelConsumption> - <FuelConsumption unit="g/t-km">24.5</FuelConsumption> - <FuelConsumption unit="g/m³-km">2.84</FuelConsumption> - <FuelConsumption unit="MJ/km">10.3</FuelConsumption> - <FuelConsumption unit="MJ/t-km">1.05</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.121</FuelConsumption> - <FuelConsumption unit="l/100km">28.8</FuelConsumption> - <FuelConsumption unit="l/t-km">0.0293</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00339</FuelConsumption> - <CO2 unit="g/km">754.7</CO2> - <CO2 unit="g/t-km">76.7</CO2> - <CO2 unit="g/m³-km">8.88</CO2> - </Result> - <Result status="success"> - <Mission>Regional Delivery</Mission> - <Distance unit="km">100.000</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">7174</TotalVehicleMass> - <Payload unit="kg">604</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">61.1</AverageSpeed> - <AverageDrivingSpeed unit="km/h">70.0</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">85.0</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>1.41</FullLoadDrivingtimePercentage> - <GearshiftCount>127</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">650.0</Min> - <Average unit="rpm">1738.4</Average> - <Max unit="rpm">2059.4</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">153.8</FuelConsumption> - <FuelConsumption unit="g/t-km">254.7</FuelConsumption> - <FuelConsumption unit="g/m³-km">3.40</FuelConsumption> - <FuelConsumption unit="MJ/km">6.57</FuelConsumption> - <FuelConsumption unit="MJ/t-km">10.9</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.145</FuelConsumption> - <FuelConsumption unit="l/100km">18.4</FuelConsumption> - <FuelConsumption unit="l/t-km">0.305</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00407</FuelConsumption> - <CO2 unit="g/km">481.4</CO2> - <CO2 unit="g/t-km">797.1</CO2> - <CO2 unit="g/m³-km">10.6</CO2> - </Result> - <Result status="success"> - <Mission>Regional Delivery</Mission> - <Distance unit="km">100.000</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">9590</TotalVehicleMass> - <Payload unit="kg">3020</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">61.0</AverageSpeed> - <AverageDrivingSpeed unit="km/h">69.9</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">86.1</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>3.85</FullLoadDrivingtimePercentage> - <GearshiftCount>127</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">662.6</Min> - <Average unit="rpm">1736.9</Average> - <Max unit="rpm">2086.8</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">166.2</FuelConsumption> - <FuelConsumption unit="g/t-km">55.1</FuelConsumption> - <FuelConsumption unit="g/m³-km">3.68</FuelConsumption> - <FuelConsumption unit="MJ/km">7.10</FuelConsumption> - <FuelConsumption unit="MJ/t-km">2.35</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.157</FuelConsumption> - <FuelConsumption unit="l/100km">19.9</FuelConsumption> - <FuelConsumption unit="l/t-km">0.0659</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00440</FuelConsumption> - <CO2 unit="g/km">520.4</CO2> - <CO2 unit="g/t-km">172.3</CO2> - <CO2 unit="g/m³-km">11.5</CO2> - </Result> - <Result status="success"> - <Mission>Urban Delivery</Mission> - <Distance unit="km">99.999</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">7174</TotalVehicleMass> - <Payload unit="kg">604</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">26.6</AverageSpeed> - <AverageDrivingSpeed unit="km/h">35.4</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">86.4</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>3.10</FullLoadDrivingtimePercentage> - <GearshiftCount>1351</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">650.0</Min> - <Average unit="rpm">1133.3</Average> - <Max unit="rpm">2093.8</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">183.8</FuelConsumption> - <FuelConsumption unit="g/t-km">304.4</FuelConsumption> - <FuelConsumption unit="g/m³-km">4.07</FuelConsumption> - <FuelConsumption unit="MJ/km">7.85</FuelConsumption> - <FuelConsumption unit="MJ/t-km">13.0</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.174</FuelConsumption> - <FuelConsumption unit="l/100km">22.0</FuelConsumption> - <FuelConsumption unit="l/t-km">0.364</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00486</FuelConsumption> - <CO2 unit="g/km">575.4</CO2> - <CO2 unit="g/t-km">952.7</CO2> - <CO2 unit="g/m³-km">12.7</CO2> - </Result> - <Result status="success"> - <Mission>Urban Delivery</Mission> - <Distance unit="km">99.999</Distance> - <SimulationParameters> - <TotalVehicleMass unit="kg">9590</TotalVehicleMass> - <Payload unit="kg">3020</Payload> - <FuelType>Diesel CI</FuelType> - </SimulationParameters> - <VehiclePerformance> - <AverageSpeed unit="km/h">26.5</AverageSpeed> - <AverageDrivingSpeed unit="km/h">35.2</AverageDrivingSpeed> - <MinSpeed unit="km/h">0.0</MinSpeed> - <MaxSpeed unit="km/h">87.5</MaxSpeed> - <MaxDeceleration unit="m/s²">1.00</MaxDeceleration> - <MaxAcceleration unit="m/s²">1.00</MaxAcceleration> - <FullLoadDrivingtimePercentage>6.91</FullLoadDrivingtimePercentage> - <GearshiftCount>1355</GearshiftCount> - <EngineSpeedDriving> - <Min unit="rpm">650.0</Min> - <Average unit="rpm">1136.5</Average> - <Max unit="rpm">2119.9</Max> - </EngineSpeedDriving> - </VehiclePerformance> - <FuelConsumption unit="g/km">214.4</FuelConsumption> - <FuelConsumption unit="g/t-km">71.0</FuelConsumption> - <FuelConsumption unit="g/m³-km">4.74</FuelConsumption> - <FuelConsumption unit="MJ/km">9.16</FuelConsumption> - <FuelConsumption unit="MJ/t-km">3.03</FuelConsumption> - <FuelConsumption unit="MJ/m³-km">0.203</FuelConsumption> - <FuelConsumption unit="l/100km">25.6</FuelConsumption> - <FuelConsumption unit="l/t-km">0.0849</FuelConsumption> - <FuelConsumption unit="l/m³-km">0.00567</FuelConsumption> - <CO2 unit="g/km">671.1</CO2> - <CO2 unit="g/t-km">222.2</CO2> - <CO2 unit="g/m³-km">14.8</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>3.3.0.1250</SimulationToolVersion> - <Date>2018-06-12T11:38:13.0616599Z</Date> - </ApplicationInformation> - </Data> - <Signature> - <di:Reference URI="#RESULT-bf220343fe634daa8708"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>jqnxgZOnQyrwc2f4Is+7/vmp6Kps8zck64lYx2YFU+w=</di:DigestValue> - </di:Reference> - </Signature> -</VectoOutput> \ No newline at end of file diff --git a/VECTO.sln b/VECTO.sln index c3adf8e9ce45c9a5468af2bbca59910340da89e3..8b72b482c43336c2def0b2b9d3aee1b98e578c83 100644 --- a/VECTO.sln +++ b/VECTO.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31112.23 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VECTO", "VECTO\VECTO.vbproj", "{AAC0F132-0A9F-45B3-B682-77AC9B24B352}" ProjectSection(ProjectDependencies) = postProject @@ -58,20 +58,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HashingCmd", "HashingCmd\Ha EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Article10Notifications", "..\VECTO-Article10\Article10Notifications\Article10Notifications.csproj", "{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO_GIT", "..\STUDENTEN_PROJEKTE\Kober_VectoGIT\VECTO_GIT\VECTO_GIT\VECTO_GIT.csproj", "{A684BC49-C9B3-4C0C-8D2E-A13077853EDA}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandaloneApplication", "..\VECTO_API\StandaloneApplication\StandaloneApplication.csproj", "{C234077C-F81E-42FA-9367-1319753678A6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VECTO-GIT", "VECTO-GIT", "{5DDEEEC2-743F-4395-B058-687B5773E3D2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO_GIT_TEST", "..\STUDENTEN_PROJEKTE\Kober_VectoGIT\VECTO_GIT\VECTO_GIT_TEST\VECTO_GIT_TEST.csproj", "{52430C51-892A-4D8E-9189-B6C9D09791C0}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO3GUI", "VECTO3GUI\VECTO3GUI.csproj", "{A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PluginsDEV", "PluginsDEV", "{C4D97EBF-BA80-4943-9D27-33179405D8D5}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI", "..\VECTO_API_DEV\VectoAPI\VectoAPI.csproj", "{DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO3GUI2020", "VECTO3GUI2020\VECTO3GUI2020.csproj", "{7E9172D4-07E3-4077-814E-7117AB2B3E22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vecto3GUI2020Test", "Vecto3GUI2020Test\Vecto3GUI2020Test.csproj", "{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug PerformanceStats|Any CPU = Debug PerformanceStats|Any CPU @@ -384,7 +384,6 @@ Global {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|x64.ActiveCfg = Debug|Any CPU {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|x86.ActiveCfg = Debug|Any CPU {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|Any CPU.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|Any CPU.Build.0 = Release|Any CPU {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|x64.ActiveCfg = Debug|Any CPU {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|x86.ActiveCfg = Debug|Any CPU {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -654,48 +653,6 @@ Global {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.ReleaseTUG|x64.Build.0 = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.ReleaseTUG|x86.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug PerformanceTrace|x86.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|x64.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|x64.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|x86.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Debug|x86.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|x64.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|x64.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|x86.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.DebugTUG|x86.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|Any CPU.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|x64.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|x64.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|x86.ActiveCfg = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Deploy|x86.Build.0 = Debug|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|Any CPU.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|x64.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|x64.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|x86.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.Release|x86.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|x64.Build.0 = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA}.ReleaseTUG|x86.Build.0 = Release|Any CPU {C234077C-F81E-42FA-9367-1319753678A6}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU {C234077C-F81E-42FA-9367-1319753678A6}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU {C234077C-F81E-42FA-9367-1319753678A6}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU @@ -738,48 +695,6 @@ Global {C234077C-F81E-42FA-9367-1319753678A6}.ReleaseTUG|x64.Build.0 = Release|Any CPU {C234077C-F81E-42FA-9367-1319753678A6}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {C234077C-F81E-42FA-9367-1319753678A6}.ReleaseTUG|x86.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug PerformanceTrace|x86.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|x64.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|x64.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|x86.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Debug|x86.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|x64.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|x64.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|x86.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.DebugTUG|x86.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|Any CPU.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|x64.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|x64.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|x86.ActiveCfg = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Deploy|x86.Build.0 = Debug|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|Any CPU.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|x64.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|x64.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|x86.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.Release|x86.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x64.Build.0 = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU - {52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x86.Build.0 = Release|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU @@ -805,7 +720,6 @@ Global {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.DebugTUG|x86.ActiveCfg = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.DebugTUG|x86.Build.0 = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Deploy|Any CPU.ActiveCfg = Release|Any CPU - {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Deploy|Any CPU.Build.0 = Release|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Deploy|x64.ActiveCfg = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Deploy|x64.Build.0 = Debug|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.Deploy|x86.ActiveCfg = Debug|Any CPU @@ -864,6 +778,89 @@ Global {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x64.Build.0 = Release|Any CPU {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x86.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceTrace|x86.Build.0 = Debug|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}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|x64.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|x86.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|x64.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|x64.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|x86.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.DebugTUG|x86.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}.Deploy|x64.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|x64.Build.0 = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|x86.ActiveCfg = Debug|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|x86.Build.0 = Debug|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 + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|x64.ActiveCfg = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|x64.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|x86.ActiveCfg = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|x86.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|x64.Build.0 = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU + {7E9172D4-07E3-4077-814E-7117AB2B3E22}.ReleaseTUG|x86.Build.0 = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug PerformanceTrace|x86.Build.0 = Debug|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}.Debug|x64.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|x64.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|x86.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|x64.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|x64.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|x86.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.DebugTUG|x86.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|x64.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|x64.Build.0 = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|x86.ActiveCfg = Debug|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|x86.Build.0 = Debug|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 + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|x64.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|x64.Build.0 = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|x86.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|x86.Build.0 = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x64.Build.0 = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU + {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -884,9 +881,10 @@ Global {7C364099-9B85-473A-8A42-BBEBE4798FF5} = {CC93EA68-F3FE-4BCB-9292-1101F94A4D09} {B673E12F-D323-4C4C-8805-9915B2C72D3D} = {73A5BF70-6168-456F-95E5-A1402BFA488C} {760C1C5B-A767-463E-BA85-F0BCFC23A550} = {73A5BF70-6168-456F-95E5-A1402BFA488C} - {A684BC49-C9B3-4C0C-8D2E-A13077853EDA} = {5DDEEEC2-743F-4395-B058-687B5773E3D2} {C234077C-F81E-42FA-9367-1319753678A6} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} - {52430C51-892A-4D8E-9189-B6C9D09791C0} = {5DDEEEC2-743F-4395-B058-687B5773E3D2} {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2} = {C4D97EBF-BA80-4943-9D27-33179405D8D5} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B38F3172-132E-43F7-9C4B-5FDC3A28C051} + EndGlobalSection EndGlobal diff --git a/VECTO.sln.DotSettings b/VECTO.sln.DotSettings index 5ef26f0f900b2204394290b153d9975ceeed8d6b..72ab10a7f7948db3ba37bf3ac00b510794cd2a0f 100644 --- a/VECTO.sln.DotSettings +++ b/VECTO.sln.DotSettings @@ -1,6 +1,7 @@ <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:Boolean x:Key="/Default/CodeEditing/GenerateMemberBody/WrapIntoRegions/@EntryValue">True</s:Boolean> <s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=HashingTool_002EAnnotations/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=VECTO3GUI2020_002EAnnotations/@EntryIndexedValue">True</s:Boolean> <s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">Default: Reformat Code</s:String> <s:String x:Key="/Default/CodeStyle/CodeFormatting/CommonFormatter/ALIGNMENT_TAB_FILL_STYLE/@EntryValue">USE_TABS_ONLY</s:String> <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGNMENT_TAB_FILL_STYLE/@EntryValue">USE_TABS_ONLY</s:String> @@ -121,5 +122,6 @@ <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EFormat_002ESettingsUpgrade_002EAlignmentTabFillStyleMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsParsFormattingSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsWrapperSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EVB_002ECodeStyle_002ESettingsUpgrade_002EVBSpaceAfterUnaryMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EXml_002ECodeStyle_002EFormatSettingsUpgrade_002EXmlMoveToCommonFormatterSettingsUpgrade/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=RESS/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb index 300494ace7af22117db1b8dc49d29e074ee6a1f4..30cc6872eae4f881473d70aa472aaa5d80f26e09 100644 --- a/VECTO/GUI/VehicleForm.vb +++ b/VECTO/GUI/VehicleForm.vb @@ -143,7 +143,7 @@ Public Class VehicleForm cbLegislativeClass.ValueMember = "Value" cbLegislativeClass.DisplayMember = "Label" cbLegislativeClass.DataSource = [Enum].GetValues(GetType(LegislativeClass)) _ - .Cast(Of LegislativeClass).Select(Function(x) New With {Key .Value = x, .Label = x.GetLabel()}).Tolist() + .Cast(Of LegislativeClass?).Select(Function(x) New With {Key .Value = x, .Label = x.GetLabel()}).ToList() 'Items.AddRange(PtoTypeStrings.Values.Cast(Of Object).ToArray()) _changed = False diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb index f63d5fe15951d1e9164199c36f80f72d6e85a023..8d3fa15223a3f2ec11023195f1810c103e7066ae 100644 --- a/VECTO/Input Files/Engine.vb +++ b/VECTO/Input Files/Engine.vb @@ -33,385 +33,385 @@ Imports TUGraz.VectoCore.Utils ''' <remarks></remarks> <CustomValidation(GetType(Engine), "ValidateEngine")> Public Class Engine - Implements IEngineEngineeringInputData, IEngineDeclarationInputData, IEngineModeDeclarationInputData, IEngineModeEngineeringInputData + Implements IEngineEngineeringInputData, IEngineDeclarationInputData, IEngineModeDeclarationInputData, IEngineModeEngineeringInputData - ''' <summary> - ''' Current format version - ''' </summary> - ''' <remarks></remarks> - Private Const FormatVersion As Short = 3 + ''' <summary> + ''' Current format version + ''' </summary> + ''' <remarks></remarks> + Private Const FormatVersion As Short = 3 - ''' <summary> - ''' Engine description (model, type, etc.). Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public ModelName As String + ''' <summary> + ''' Engine description (model, type, etc.). Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public ModelName As String - ''' <summary> - ''' Engine displacement [ccm]. Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public Displacement As Double + ''' <summary> + ''' Engine displacement [ccm]. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public Displacement As Double - ''' <summary> - ''' Idling speed [1/min]. Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public IdleSpeed As Double + ''' <summary> + ''' Idling speed [1/min]. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public IdleSpeed As Double + + ''' <summary> + ''' Rotational inertia including flywheel [kgm²]. Saved in input file. Overwritten by generic value in Declaration mode. + ''' </summary> + ''' <remarks></remarks> + Public EngineInertia As Double + + ''' <summary> + ''' List of full load/motoring curve files (.vfld) + ''' </summary> + ''' <remarks></remarks> + Private ReadOnly _fullLoadCurvePath As SubPath + + + + ''' <summary> + ''' Directory of engine file. Defined in FilePath property (Set) + ''' </summary> + ''' <remarks></remarks> + Friend _myPath As String + + ''' <summary> + ''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile. + ''' </summary> + ''' <remarks></remarks> + Private _filePath As String + + + + Public ratedPowerInput As Watt + Public ratedSpeedInput As PerSecond + Public maxTorqueInput As NewtonMeter + + Public WHRTypeInput As WHRType + + + Public PrimaryEngineFuel As EngineFuel + Public SecondaryEngineFuel As EngineFuel + + Public ElectricalWHRData As WHRData + Public MechanicalWHRData As WHRData + + Public DualFuelInput As Boolean + + + ''' <summary> + ''' New instance. Initialise + ''' </summary> + ''' <remarks></remarks> + Public Sub New() + _myPath = "" + _filePath = "" + + _fullLoadCurvePath = New SubPath + + PrimaryEngineFuel = New EngineFuel(Me) + SecondaryEngineFuel = New EngineFuel(Me) + SetDefault() + End Sub + + ''' <summary> + ''' Set default values + ''' </summary> + ''' <remarks></remarks> + Private Sub SetDefault() + ModelName = "Undefined" + Displacement = 0 + IdleSpeed = 0 + EngineInertia = 0 + + + _fullLoadCurvePath.Clear() + + End Sub + + ''' <summary> + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function SaveFile() As Boolean + + Dim validationResults As IList(Of ValidationResult) = + Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), VectoSimulationJobType.ConventionalVehicle, Nothing, Nothing, False) + + If validationResults.Count > 0 Then + Dim messages As IEnumerable(Of String) = + validationResults.Select(Function(r) r.ErrorMessage + String.Join(", ", r.MemberNames.Distinct())) + MsgBox("Invalid input." + Environment.NewLine + String.Join(Environment.NewLine, messages), MsgBoxStyle.OkOnly, + "Failed to save engine") + Return False + End If + + Try + Dim writer As JSONFileWriter = New JSONFileWriter() + writer.SaveEngine(Me, _filePath, Cfg.DeclMode) + + Catch ex As Exception + MsgBox("Faled to write Engine file: " + ex.Message) + Return False + End Try + Return True + End Function + + + ''' <summary> + ''' </summary> + ''' <value></value> + ''' <returns>Full filepath</returns> + ''' <remarks></remarks> + Public Property FilePath() As String + Get + Return _filePath + End Get + Set(ByVal value As String) + _filePath = value + If _filePath = "" Then + _myPath = "" + Else + _myPath = Path.GetDirectoryName(_filePath) & "\" + End If + End Set + End Property + + + Public Property PathFld(Optional ByVal original As Boolean = False) As String + Get + If original Then + Return _fullLoadCurvePath.OriginalPath + Else + Return _fullLoadCurvePath.FullPath + End If + End Get + Set(ByVal value As String) + _fullLoadCurvePath.Init(_myPath, value) + End Set + End Property - ''' <summary> - ''' Rotational inertia including flywheel [kgm²]. Saved in input file. Overwritten by generic value in Declaration mode. - ''' </summary> - ''' <remarks></remarks> - Public EngineInertia As Double - ''' <summary> - ''' List of full load/motoring curve files (.vfld) - ''' </summary> - ''' <remarks></remarks> - Private ReadOnly _fullLoadCurvePath As SubPath - - - - ''' <summary> - ''' Directory of engine file. Defined in FilePath property (Set) - ''' </summary> - ''' <remarks></remarks> - Friend _myPath As String - - ''' <summary> - ''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile. - ''' </summary> - ''' <remarks></remarks> - Private _filePath As String - - - - Public ratedPowerInput As Watt - Public ratedSpeedInput As PerSecond - Public maxTorqueInput As NewtonMeter - - Public WHRTypeInput As WHRType - - - Public PrimaryEngineFuel As EngineFuel - Public SecondaryEngineFuel As EngineFuel - - Public ElectricalWHRData As WHRData - Public MechanicalWHRData As WHRData - - Public DualFuelInput As Boolean - - - ''' <summary> - ''' New instance. Initialise - ''' </summary> - ''' <remarks></remarks> - Public Sub New() - _myPath = "" - _filePath = "" - - _fullLoadCurvePath = New SubPath - - PrimaryEngineFuel = New EngineFuel(Me) - SecondaryEngineFuel = New EngineFuel(Me) - SetDefault() - End Sub - - ''' <summary> - ''' Set default values - ''' </summary> - ''' <remarks></remarks> - Private Sub SetDefault() - ModelName = "Undefined" - Displacement = 0 - IdleSpeed = 0 - EngineInertia = 0 - - - _fullLoadCurvePath.Clear() - - End Sub - - ''' <summary> - ''' </summary> - ''' <returns>True if successful.</returns> - ''' <remarks></remarks> - Public Function SaveFile() As Boolean - - Dim validationResults As IList(Of ValidationResult) = - Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), VectoSimulationJobType.ConventionalVehicle, Nothing, Nothing, False) - - If validationResults.Count > 0 Then - Dim messages As IEnumerable(Of String) = - validationResults.Select(Function(r) r.ErrorMessage + String.Join(", ", r.MemberNames.Distinct())) - MsgBox("Invalid input." + Environment.NewLine + String.Join(Environment.NewLine, messages), MsgBoxStyle.OkOnly, - "Failed to save engine") - Return False - End If - - Try - Dim writer As JSONFileWriter = New JSONFileWriter() - writer.SaveEngine(Me, _filePath, Cfg.DeclMode) - - Catch ex As Exception - MsgBox("Faled to write Engine file: " + ex.Message) - Return False - End Try - Return True - End Function - - - ''' <summary> - ''' </summary> - ''' <value></value> - ''' <returns>Full filepath</returns> - ''' <remarks></remarks> - Public Property FilePath() As String - Get - Return _filePath - End Get - Set(ByVal value As String) - _filePath = value - If _filePath = "" Then - _myPath = "" - Else - _myPath = Path.GetDirectoryName(_filePath) & "\" - End If - End Set - End Property - - - Public Property PathFld(Optional ByVal original As Boolean = False) As String - Get - If original Then - Return _fullLoadCurvePath.OriginalPath - Else - Return _fullLoadCurvePath.FullPath - End If - End Get - Set(ByVal value As String) - _fullLoadCurvePath.Init(_myPath, value) - End Set - End Property - - - - - ' ReSharper disable once UnusedMember.Global -- used for Validation - Public Shared Function ValidateEngine(engine As Engine, validationContext As ValidationContext) As ValidationResult - Dim engineData As CombustionEngineData - - - Dim modeService As VectoValidationModeServiceContainer = - TryCast(validationContext.GetService(GetType(VectoValidationModeServiceContainer)), - VectoValidationModeServiceContainer) - Dim mode As ExecutionMode = If(modeService Is Nothing, ExecutionMode.Declaration, modeService.Mode) - Dim emsCycle As Boolean = (modeService IsNot Nothing) AndAlso modeService.IsEMSCycle - Dim gbxType As GearboxType? = If(modeService Is Nothing, GearboxType.MT, modeService.GearboxType) - Dim jobType as VectoSimulationJobType = If(modeService Is Nothing, VectoSimulationJobType.ConventionalVehicle, modeService.JobType) - Dim emPos as PowertrainPosition? = If(modeService Is Nothing, PowertrainPosition.HybridPositionNotSet, modeService.EMPowertrainPosition) - - Try - If mode = ExecutionMode.Declaration Then - Dim doa As DeclarationDataAdapterHeavyLorry = New DeclarationDataAdapterHeavyLorry() - Dim dummyGearboxData As IGearboxDeclarationInputData = New Gearbox() With { - .Type = GearboxType.AMT, - .MaxTorque = New List(Of String), - .GearRatios = New List(Of Double)() - } - Dim dummyVehicle As IVehicleDeclarationInputData = New DummyVehicle() With { - .GearboxInputData = dummyGearboxData, - .EngineInputData = engine, - .TankSystem = TankSystem.Compressed - } - engineData = doa.CreateEngineData(dummyVehicle, engine.EngineModes.First(), New Mission() With {.MissionType = MissionType.LongHaul}) - Else - Dim doa As EngineeringDataAdapter = New EngineeringDataAdapter() - Dim dummyVehicle As IVehicleEngineeringInputData = New DummyVehicle() With { - .IVehicleComponentsEngineering_EngineInputData = engine - } - engineData = doa.CreateEngineData(dummyVehicle, CType(engine.EngineModes.First(), IEngineModeEngineeringInputData)) - End If - - Dim result As IList(Of ValidationResult) = - engineData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), jobType, emPos, gbxType, emsCycle) - - If Not result.Any() Then Return ValidationResult.Success - - Return New ValidationResult("Engine Configuration is invalid. ", - result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList()) - Catch ex As Exception - Return New ValidationResult(ex.Message) - End Try - End Function + + + ' ReSharper disable once UnusedMember.Global -- used for Validation + Public Shared Function ValidateEngine(engine As Engine, validationContext As ValidationContext) As ValidationResult + Dim engineData As CombustionEngineData + + + Dim modeService As VectoValidationModeServiceContainer = + TryCast(validationContext.GetService(GetType(VectoValidationModeServiceContainer)), + VectoValidationModeServiceContainer) + Dim mode As ExecutionMode = If(modeService Is Nothing, ExecutionMode.Declaration, modeService.Mode) + Dim emsCycle As Boolean = (modeService IsNot Nothing) AndAlso modeService.IsEMSCycle + Dim gbxType As GearboxType? = If(modeService Is Nothing, GearboxType.MT, modeService.GearboxType) + Dim jobType As VectoSimulationJobType = If(modeService Is Nothing, VectoSimulationJobType.ConventionalVehicle, modeService.JobType) + Dim emPos As PowertrainPosition? = If(modeService Is Nothing, PowertrainPosition.HybridPositionNotSet, modeService.EMPowertrainPosition) + + Try + If mode = ExecutionMode.Declaration Then + Dim doa As DeclarationDataAdapterHeavyLorry = New DeclarationDataAdapterHeavyLorry() + Dim dummyGearboxData As IGearboxDeclarationInputData = New Gearbox() With { + .Type = GearboxType.AMT, + .MaxTorque = New List(Of String), + .GearRatios = New List(Of Double)() + } + Dim dummyVehicle As IVehicleDeclarationInputData = New DummyVehicle() With { + .GearboxInputData = dummyGearboxData, + .EngineInputData = engine, + .TankSystem = TankSystem.Compressed + } + engineData = doa.CreateEngineData(dummyVehicle, engine.EngineModes.First(), New Mission() With {.MissionType = MissionType.LongHaul}) + Else + Dim doa As EngineeringDataAdapter = New EngineeringDataAdapter() + Dim dummyVehicle As IVehicleEngineeringInputData = New DummyVehicle() With { + .IVehicleComponentsEngineering_EngineInputData = engine + } + engineData = doa.CreateEngineData(dummyVehicle, CType(engine.EngineModes.First(), IEngineModeEngineeringInputData)) + End If + + Dim result As IList(Of ValidationResult) = + engineData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), jobType, emPos, gbxType, emsCycle) + + If Not result.Any() Then Return ValidationResult.Success + + Return New ValidationResult("Engine Configuration is invalid. ", + result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList()) + Catch ex As Exception + Return New ValidationResult(ex.Message) + End Try + End Function #Region "IInputData" - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource - Get - Dim retVal As DataSource = New DataSource() - retVal.SourceType = DataSourceType.JSONFile - retVal.SourceFile = FilePath - Return retVal - End Get - End Property - - - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Get - Return Cfg.DeclMode - End Get - End Property - - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Get - ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE - End Get - End Property - - Public ReadOnly Property [Date] As DateTime Implements IComponentInputData.[Date] - Get - Return Now.ToUniversalTime() - End Get - End Property - - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Get - Return "VECTO-GUI" - End Get - End Property - - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Get - Return CertificationMethod.NotCertified - End Get - End Property - - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Get - ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE - End Get - End Property - - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Get - Return Nothing - End Get - End Property - - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Get - Return ModelName - End Get - End Property - - Public ReadOnly Property IEngineDeclarationInputData_Displacement As CubicMeter _ - Implements IEngineDeclarationInputData.Displacement - Get - Return (Displacement / 1000.0 / 1000.0).SI(Of CubicMeter)() - End Get - End Property - - Public ReadOnly Property IEngineModeDeclarationInputData_IdleSpeed As PerSecond _ - Implements IEngineModeDeclarationInputData.IdleSpeed - Get - Return IdleSpeed.RPMtoRad() - End Get - End Property - - - - Public ReadOnly Property FullLoadCurve As TableData Implements IEngineModeDeclarationInputData.FullLoadCurve - Get - If Not File.Exists(_fullLoadCurvePath.FullPath) Then _ - Throw New VectoException("Full-Load Curve is missing or invalid") - Return VectoCSVFile.Read(_fullLoadCurvePath.FullPath) - End Get - End Property - - Public ReadOnly Property IEngineModeEngineeringInputData_Fuels As IList(Of IEngineFuelEngineeringInputData) Implements IEngineModeEngineeringInputData.Fuels - Get - Dim retval As List(Of IEngineFuelEngineeringInputData) = New List(Of IEngineFuelEngineeringInputData)({PrimaryEngineFuel}) - If (DualFuelInput) Then - retval.Add(SecondaryEngineFuel) - End If - Return retval - End Get - End Property - - Public ReadOnly Property Fuels As IList(Of IEngineFuelDelcarationInputData) Implements IEngineModeDeclarationInputData.Fuels - Get - Dim retval As List(Of IEngineFuelDelcarationInputData) = New List(Of IEngineFuelDelcarationInputData)({PrimaryEngineFuel}) - If (DualFuelInput) Then - retval.Add(SecondaryEngineFuel) - End If - Return retval - End Get - End Property - - Public ReadOnly Property WasteHeatRecoveryDataElectrical As IWHRData Implements IEngineModeDeclarationInputData.WasteHeatRecoveryDataElectrical - Get - Return ElectricalWHRData - End Get - End Property - - Public ReadOnly Property WasteHeatRecoveryDataMechanical As IWHRData Implements IEngineModeDeclarationInputData.WasteHeatRecoveryDataMechanical - Get - Return MechanicalWHRData - End Get - End Property - - Public ReadOnly Property RatedPowerDeclared As Watt Implements IEngineDeclarationInputData.RatedPowerDeclared - Get - Return ratedPowerInput - End Get - End Property - - Public ReadOnly Property RatedSpeedDeclared As PerSecond Implements IEngineDeclarationInputData.RatedSpeedDeclared - Get - Return ratedSpeedInput - End Get - End Property - - Public ReadOnly Property MaxTorqueDeclared As NewtonMeter Implements IEngineDeclarationInputData.MaxTorqueDeclared - Get - Return maxTorqueInput - End Get - End Property - - Public ReadOnly Property IEngineEngineeringInputData_EngineModes As IList(Of IEngineModeEngineeringInputData) Implements IEngineEngineeringInputData.EngineModes - Get - Return New List(Of IEngineModeEngineeringInputData)({Me}) - End Get - End Property - - Public ReadOnly Property EngineModes As IList(Of IEngineModeDeclarationInputData) Implements IEngineDeclarationInputData.EngineModes - Get - Return New List(Of IEngineModeDeclarationInputData)({Me}) - End Get - End Property - - Public ReadOnly Property WHRType As WHRType Implements IEngineDeclarationInputData.WHRType - Get - Return WHRTypeInput - End Get - End Property - - Public ReadOnly Property Inertia As KilogramSquareMeter Implements IEngineEngineeringInputData.Inertia - Get - Return EngineInertia.SI(Of KilogramSquareMeter)() - End Get - End Property - - - Public ReadOnly Property EngineStartTime As Second Implements IEngineEngineeringInputData.EngineStartTime - Get - Return Nothing - End Get - End Property + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Get + Dim retVal As DataSource = New DataSource() + retVal.SourceType = DataSourceType.JSONFile + retVal.SourceFile = FilePath + Return retVal + End Get + End Property + + + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Get + Return Cfg.DeclMode + End Get + End Property + + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Get + ' Just for the interface. Value is not available in GUI yet. + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + End Get + End Property + + Public ReadOnly Property [Date] As DateTime Implements IComponentInputData.[Date] + Get + Return Now.ToUniversalTime() + End Get + End Property + + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Get + Return "VECTO-GUI" + End Get + End Property + + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Get + Return CertificationMethod.NotCertified + End Get + End Property + + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Get + ' Just for the interface. Value is not available in GUI yet. + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + End Get + End Property + + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Get + Return Nothing + End Get + End Property + + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Get + Return ModelName + End Get + End Property + + Public ReadOnly Property IEngineDeclarationInputData_Displacement As CubicMeter _ + Implements IEngineDeclarationInputData.Displacement + Get + Return (Displacement / 1000.0 / 1000.0).SI(Of CubicMeter)() + End Get + End Property + + Public ReadOnly Property IEngineModeDeclarationInputData_IdleSpeed As PerSecond _ + Implements IEngineModeDeclarationInputData.IdleSpeed + Get + Return IdleSpeed.RPMtoRad() + End Get + End Property + + + + Public ReadOnly Property FullLoadCurve As TableData Implements IEngineModeDeclarationInputData.FullLoadCurve + Get + If Not File.Exists(_fullLoadCurvePath.FullPath) Then _ + Throw New VectoException("Full-Load Curve is missing or invalid") + Return VectoCSVFile.Read(_fullLoadCurvePath.FullPath) + End Get + End Property + + Public ReadOnly Property IEngineModeEngineeringInputData_Fuels As IList(Of IEngineFuelEngineeringInputData) Implements IEngineModeEngineeringInputData.Fuels + Get + Dim retval As List(Of IEngineFuelEngineeringInputData) = New List(Of IEngineFuelEngineeringInputData)({PrimaryEngineFuel}) + If (DualFuelInput) Then + retval.Add(SecondaryEngineFuel) + End If + Return retval + End Get + End Property + + Public ReadOnly Property Fuels As IList(Of IEngineFuelDeclarationInputData) Implements IEngineModeDeclarationInputData.Fuels + Get + Dim retval As List(Of IEngineFuelDeclarationInputData) = New List(Of IEngineFuelDeclarationInputData)({PrimaryEngineFuel}) + If (DualFuelInput) Then + retval.Add(SecondaryEngineFuel) + End If + Return retval + End Get + End Property + + Public ReadOnly Property WasteHeatRecoveryDataElectrical As IWHRData Implements IEngineModeDeclarationInputData.WasteHeatRecoveryDataElectrical + Get + Return ElectricalWHRData + End Get + End Property + + Public ReadOnly Property WasteHeatRecoveryDataMechanical As IWHRData Implements IEngineModeDeclarationInputData.WasteHeatRecoveryDataMechanical + Get + Return MechanicalWHRData + End Get + End Property + + Public ReadOnly Property RatedPowerDeclared As Watt Implements IEngineDeclarationInputData.RatedPowerDeclared + Get + Return ratedPowerInput + End Get + End Property + + Public ReadOnly Property RatedSpeedDeclared As PerSecond Implements IEngineDeclarationInputData.RatedSpeedDeclared + Get + Return ratedSpeedInput + End Get + End Property + + Public ReadOnly Property MaxTorqueDeclared As NewtonMeter Implements IEngineDeclarationInputData.MaxTorqueDeclared + Get + Return maxTorqueInput + End Get + End Property + + Public ReadOnly Property IEngineEngineeringInputData_EngineModes As IList(Of IEngineModeEngineeringInputData) Implements IEngineEngineeringInputData.EngineModes + Get + Return New List(Of IEngineModeEngineeringInputData)({Me}) + End Get + End Property + + Public ReadOnly Property EngineModes As IList(Of IEngineModeDeclarationInputData) Implements IEngineDeclarationInputData.EngineModes + Get + Return New List(Of IEngineModeDeclarationInputData)({Me}) + End Get + End Property + + Public ReadOnly Property WHRType As WHRType Implements IEngineDeclarationInputData.WHRType + Get + Return WHRTypeInput + End Get + End Property + + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IEngineEngineeringInputData.Inertia + Get + Return EngineInertia.SI(Of KilogramSquareMeter)() + End Get + End Property + + + Public ReadOnly Property EngineStartTime As Second Implements IEngineEngineeringInputData.EngineStartTime + Get + Return Nothing + End Get + End Property #End Region @@ -420,289 +420,294 @@ End Class Public Class WHRData - Implements IWHRData - - Public WHRUrbanInput as Double - public WHRRuralInput As Double - public WHRMotorwayInput As Double - public WHRColdHotInput As Double - public WHRRegPerInput As Double - public WHREngineeringInput As Double - - protected EngineData As Engine - - public Sub New(engineDatar As Engine) - EngineData = engineDatar - End Sub - - Public ReadOnly Property UrbanCorrectionFactor As Double Implements IWHRData.UrbanCorrectionFactor - Get - Return WHRUrbanInput - End Get - End Property - Public ReadOnly Property RuralCorrectionFactor As Double Implements IWHRData.RuralCorrectionFactor - Get - Return WHRRuralInput - End Get - End Property - Public ReadOnly Property MotorwayCorrectionFactor As Double Implements IWHRData.MotorwayCorrectionFactor - get - Return WHRMotorwayInput - End Get - End Property - Public ReadOnly Property BFColdHot As Double Implements IWHRData.BFColdHot - Get - Return WHRColdHotInput - End Get - End Property - Public ReadOnly Property CFRegPer As Double Implements IWHRData.CFRegPer - get - Return WHRRegPerInput - End Get - End Property - - Public ReadOnly Property EngineeringCorrectionFactor As Double Implements IWHRData.EngineeringCorrectionFactor - Get - Return WHREngineeringInput - End Get - End Property - - Public ReadOnly Property GeneratedPower As TableData Implements IWHRData.GeneratedPower - get - If Not File.Exists(EngineData.PrimaryEngineFuel._fuelConsumptionMapPath.FullPath) Then _ - Throw New VectoException("FuelConsumptionMap is missing or invalid") - Return VectoCSVFile.Read(EngineData.PrimaryEngineFuel._fuelConsumptionMapPath.FullPath) - End Get - End Property + Implements IWHRData + + Public WHRUrbanInput As Double + Public WHRRuralInput As Double + Public WHRMotorwayInput As Double + Public WHRColdHotInput As Double + Public WHRRegPerInput As Double + Public WHREngineeringInput As Double + + Protected EngineData As Engine + + Public Sub New(engineDatar As Engine) + EngineData = engineDatar + End Sub + + Public ReadOnly Property UrbanCorrectionFactor As Double Implements IWHRData.UrbanCorrectionFactor + Get + Return WHRUrbanInput + End Get + End Property + Public ReadOnly Property RuralCorrectionFactor As Double Implements IWHRData.RuralCorrectionFactor + Get + Return WHRRuralInput + End Get + End Property + Public ReadOnly Property MotorwayCorrectionFactor As Double Implements IWHRData.MotorwayCorrectionFactor + Get + Return WHRMotorwayInput + End Get + End Property + Public ReadOnly Property BFColdHot As Double Implements IWHRData.BFColdHot + Get + Return WHRColdHotInput + End Get + End Property + Public ReadOnly Property CFRegPer As Double Implements IWHRData.CFRegPer + Get + Return WHRRegPerInput + End Get + End Property + + Public ReadOnly Property EngineeringCorrectionFactor As Double Implements IWHRData.EngineeringCorrectionFactor + Get + Return WHREngineeringInput + End Get + End Property + + Public ReadOnly Property GeneratedPower As TableData Implements IWHRData.GeneratedPower + Get + If Not File.Exists(EngineData.PrimaryEngineFuel._fuelConsumptionMapPath.FullPath) Then _ + Throw New VectoException("FuelConsumptionMap is missing or invalid") + Return VectoCSVFile.Read(EngineData.PrimaryEngineFuel._fuelConsumptionMapPath.FullPath) + End Get + End Property End Class Public Class EngineFuel - Implements IEngineFuelDelcarationInputData, IEngineFuelEngineeringInputData - - ''' <summary> - ''' WHTC Urban test results. Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public WHTCUrbanInput As Double - - ''' <summary> - ''' WHTC Rural test results. Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public WHTCRuralInput As Double - - ''' <summary> - ''' WHTC Motorway test results. Saved in input file. - ''' </summary> - ''' <remarks></remarks> - Public WHTCMotorwayInput As Double - - Public WHTCEngineeringInput As Double - - ''' <summary> - ''' Path to fuel consumption map - ''' </summary> - ''' <remarks></remarks> - - Friend ReadOnly _fuelConsumptionMapPath As SubPath - - - Public ColdHotBalancingFactorInput As Double - Public correctionFactorRegPerInput As Double - Public FuelTypeInput As FuelType - Private engineData As Engine - - Public Sub New(engine As Engine) - - engineData = engine - _fuelConsumptionMapPath = New SubPath - - SetDefault() - End Sub - - ''' <summary> - ''' Set default values - ''' </summary> - ''' <remarks></remarks> - Private Sub SetDefault() - _fuelConsumptionMapPath.Clear() - - WHTCUrbanInput = 0 - WHTCRuralInput = 0 - WHTCMotorwayInput = 0 - WHTCEngineeringInput = 1 - End Sub - - Public ReadOnly Property WHTCMotorway As Double Implements IEngineFuelDelcarationInputData.WHTCMotorway - Get - Return WHTCMotorwayInput - End Get - End Property - - Public ReadOnly Property WHTCRural As Double Implements IEngineFuelDelcarationInputData.WHTCRural - Get - Return WHTCRuralInput - End Get - End Property - - Public ReadOnly Property WHTCUrban As Double Implements IEngineFuelDelcarationInputData.WHTCUrban - Get - Return WHTCUrbanInput - End Get - End Property - - Public ReadOnly Property ColdHotBalancingFactor As Double Implements IEngineFuelDelcarationInputData.ColdHotBalancingFactor - Get - Return ColdHotBalancingFactorInput - End Get - End Property - - Public ReadOnly Property CorrectionFactorRegPer As Double Implements IEngineFuelDelcarationInputData.CorrectionFactorRegPer - Get - Return correctionFactorRegPerInput - End Get - End Property - - Public ReadOnly Property FuelType As FuelType Implements IEngineFuelDelcarationInputData.FuelType - Get - Return FuelTypeInput - End Get - End Property - - ''' <summary> - ''' Get or set file path (cSubPath) to FC map (.vmap) - ''' </summary> - ''' <param name="original">True= (relative) file path as saved in file; False= full file path</param> - ''' <value></value> - ''' <returns>Relative or absolute file path to FC map</returns> - ''' <remarks></remarks> - Public Property PathMap(Optional ByVal original As Boolean = False) As String - Get - If original Then - Return _fuelConsumptionMapPath.OriginalPath - Else - Return _fuelConsumptionMapPath.FullPath - End If - End Get - Set(ByVal value As String) - _fuelConsumptionMapPath.Init(engineData._myPath, value) - End Set - End Property - - Public ReadOnly Property FuelConsumptionMap As TableData Implements IEngineFuelDelcarationInputData.FuelConsumptionMap - Get - If Not File.Exists(_fuelConsumptionMapPath.FullPath) Then _ - Throw New VectoException("FuelConsumptionMap is missing or invalid") - Return VectoCSVFile.Read(_fuelConsumptionMapPath.FullPath) - End Get - End Property - - Public ReadOnly Property WHTCEngineering As Double Implements IEngineFuelEngineeringInputData.WHTCEngineering - Get - Return WHTCEngineeringInput - End Get - End Property + Implements IEngineFuelDeclarationInputData, IEngineFuelEngineeringInputData + + ''' <summary> + ''' WHTC Urban test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCUrbanInput As Double + + ''' <summary> + ''' WHTC Rural test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCRuralInput As Double + + ''' <summary> + ''' WHTC Motorway test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCMotorwayInput As Double + + Public WHTCEngineeringInput As Double + + ''' <summary> + ''' Path to fuel consumption map + ''' </summary> + ''' <remarks></remarks> + + Friend ReadOnly _fuelConsumptionMapPath As SubPath + + + Public ColdHotBalancingFactorInput As Double + Public correctionFactorRegPerInput As Double + Public FuelTypeInput As FuelType + Private engineData As Engine + + Public Sub New(engine As Engine) + + engineData = engine + _fuelConsumptionMapPath = New SubPath + + SetDefault() + End Sub + + ''' <summary> + ''' Set default values + ''' </summary> + ''' <remarks></remarks> + Private Sub SetDefault() + _fuelConsumptionMapPath.Clear() + + WHTCUrbanInput = 0 + WHTCRuralInput = 0 + WHTCMotorwayInput = 0 + WHTCEngineeringInput = 1 + End Sub + + Public ReadOnly Property WHTCMotorway As Double Implements IEngineFuelDeclarationInputData.WHTCMotorway + Get + Return WHTCMotorwayInput + End Get + End Property + + Public ReadOnly Property WHTCRural As Double Implements IEngineFuelDeclarationInputData.WHTCRural + Get + Return WHTCRuralInput + End Get + End Property + + Public ReadOnly Property WHTCUrban As Double Implements IEngineFuelDeclarationInputData.WHTCUrban + Get + Return WHTCUrbanInput + End Get + End Property + + Public ReadOnly Property ColdHotBalancingFactor As Double Implements IEngineFuelDeclarationInputData.ColdHotBalancingFactor + Get + Return ColdHotBalancingFactorInput + End Get + End Property + + Public ReadOnly Property CorrectionFactorRegPer As Double Implements IEngineFuelDeclarationInputData.CorrectionFactorRegPer + Get + Return correctionFactorRegPerInput + End Get + End Property + + Public ReadOnly Property FuelType As FuelType Implements IEngineFuelDeclarationInputData.FuelType + Get + Return FuelTypeInput + End Get + End Property + + ''' <summary> + ''' Get or set file path (cSubPath) to FC map (.vmap) + ''' </summary> + ''' <param name="original">True= (relative) file path as saved in file; False= full file path</param> + ''' <value></value> + ''' <returns>Relative or absolute file path to FC map</returns> + ''' <remarks></remarks> + Public Property PathMap(Optional ByVal original As Boolean = False) As String + Get + If original Then + Return _fuelConsumptionMapPath.OriginalPath + Else + Return _fuelConsumptionMapPath.FullPath + End If + End Get + Set(ByVal value As String) + _fuelConsumptionMapPath.Init(engineData._myPath, value) + End Set + End Property + + Public ReadOnly Property FuelConsumptionMap As TableData Implements IEngineFuelDeclarationInputData.FuelConsumptionMap + Get + If Not File.Exists(_fuelConsumptionMapPath.FullPath) Then _ + Throw New VectoException("FuelConsumptionMap is missing or invalid") + Return VectoCSVFile.Read(_fuelConsumptionMapPath.FullPath) + End Get + End Property + + Public ReadOnly Property WHTCEngineering As Double Implements IEngineFuelEngineeringInputData.WHTCEngineering + Get + Return WHTCEngineeringInput + End Get + End Property End Class Public Class DummyVehicle Implements IVehicleDeclarationInputData, IVehicleComponentsDeclaration, IVehicleEngineeringInputData, IVehicleComponentsEngineering - Public Property DataSource As DataSource Implements IComponentInputData.DataSource - Public Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public Property Model As String Implements IComponentInputData.Model - Public Property [Date] As DateTime Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Public Property Identifier As String Implements IVehicleDeclarationInputData.Identifier - Public Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle - Public Property VIN As String Implements IVehicleDeclarationInputData.VIN - Public Property LegislativeClass As LegislativeClass Implements IVehicleDeclarationInputData.LegislativeClass - Public Property VehicleCategory As VehicleCategory Implements IVehicleDeclarationInputData.VehicleCategory - Public Property AxleConfiguration As AxleConfiguration Implements IVehicleDeclarationInputData.AxleConfiguration - Public Property CurbMassChassis As Kilogram Implements IVehicleDeclarationInputData.CurbMassChassis - Public Property GrossVehicleMassRating As Kilogram Implements IVehicleDeclarationInputData.GrossVehicleMassRating + Public Property DataSource As DataSource Implements IComponentInputData.DataSource + Public Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public Property Model As String Implements IComponentInputData.Model + Public Property [Date] As DateTime Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public Property Identifier As String Implements IVehicleDeclarationInputData.Identifier + Public Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle + Public Property VIN As String Implements IVehicleDeclarationInputData.VIN + Public ReadOnly Property LegislativeCategory As String Implements IVehicleDeclarationInputData.LegislativeCategory + Public Property LegislativeClass As LegislativeClass? Implements IVehicleDeclarationInputData.LegislativeClass + Public Property VehicleCategory As VehicleCategory Implements IVehicleDeclarationInputData.VehicleCategory + Public Property AxleConfiguration As AxleConfiguration Implements IVehicleDeclarationInputData.AxleConfiguration + Public Property CurbMassChassis As Kilogram Implements IVehicleDeclarationInputData.CurbMassChassis + Public Property GrossVehicleMassRating As Kilogram Implements IVehicleDeclarationInputData.GrossVehicleMassRating Public ReadOnly Property TorqueLimits As IList(Of ITorqueLimitInputData) Implements IVehicleDeclarationInputData.TorqueLimits - get - Return new List(Of ITorqueLimitInputData)() - End Get - End Property - Public Property ManufacturerAddress As String Implements IVehicleDeclarationInputData.ManufacturerAddress - Public Property EngineIdleSpeed As PerSecond Implements IVehicleDeclarationInputData.EngineIdleSpeed - Public Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle - Public Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab - Public Property TankSystem As TankSystem? Implements IVehicleDeclarationInputData.TankSystem - Public Property IVehicleEngineeringInputData_ADAS As IAdvancedDriverAssistantSystemsEngineering Implements IVehicleEngineeringInputData.ADAS - Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering Implements IVehicleEngineeringInputData.Components - get - return me - End Get - End Property + Get + Return New List(Of ITorqueLimitInputData)() + End Get + End Property + Public Property ManufacturerAddress As String Implements IVehicleDeclarationInputData.ManufacturerAddress + Public Property EngineIdleSpeed As PerSecond Implements IVehicleDeclarationInputData.EngineIdleSpeed + Public Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle + Public Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab + Public ReadOnly Property AirdragModifiedMultistage As Boolean? Implements IVehicleDeclarationInputData.AirdragModifiedMultistage + Public Property TankSystem As TankSystem? Implements IVehicleDeclarationInputData.TankSystem + Public Property IVehicleEngineeringInputData_ADAS As IAdvancedDriverAssistantSystemsEngineering Implements IVehicleEngineeringInputData.ADAS + Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering Implements IVehicleEngineeringInputData.Components + Get + Return Me + End Get + End Property Public Property ADAS As IAdvancedDriverAssistantSystemDeclarationInputData Implements IVehicleDeclarationInputData.ADAS - Public ReadOnly Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC - Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType + Public ReadOnly Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC + Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType Public ReadOnly Property PTO_DriveGear As GearshiftPosition Implements IVehicleEngineeringInputData.PTO_DriveGear Public ReadOnly Property PTO_DriveEngineSpeed As PerSecond Implements IVehicleEngineeringInputData.PTO_DriveEngineSpeed - Public Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle - Public Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV - Public Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle - Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 - Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 - Public ReadOnly Property RegisteredClass As RegistrationClass Implements IVehicleDeclarationInputData.RegisteredClass - Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck - Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck - Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume - Public ReadOnly Property VehicleCode As VehicleCode Implements IVehicleDeclarationInputData.VehicleCode - Public Property CurbMassExtra As Kilogram Implements IVehicleEngineeringInputData.CurbMassExtra - Public Property Loading As Kilogram Implements IVehicleEngineeringInputData.Loading - Public Property DynamicTyreRadius As Meter Implements IVehicleEngineeringInputData.DynamicTyreRadius - Public Property Height As Meter Implements IVehicleEngineeringInputData.Height + Public Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle + Public Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV + Public Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle + Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 + Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 + Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass + Public ReadOnly Property NumberPassengerSeatsUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck + Public ReadOnly Property NumberPassengerSeatsLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck + Public ReadOnly Property NumberPassengersStandingLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingLowerDeck + Public ReadOnly Property NumberPassengersStandingUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingUpperDeck + Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume + Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode + Public Property CurbMassExtra As Kilogram Implements IVehicleEngineeringInputData.CurbMassExtra + Public Property Loading As Kilogram Implements IVehicleEngineeringInputData.Loading + Public Property DynamicTyreRadius As Meter Implements IVehicleEngineeringInputData.DynamicTyreRadius + Public Property Height As Meter Implements IVehicleEngineeringInputData.Height + Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry Public ReadOnly Property ElectricMotorTorqueLimits As TableData Implements IVehicleEngineeringInputData.ElectricMotorTorqueLimits Public ReadOnly Property MaxPropulsionTorque As TableData Implements IVehicleEngineeringInputData.MaxPropulsionTorque - Public ReadOnly Property LowEntry As Boolean Implements IVehicleDeclarationInputData.LowEntry - Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated - Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height - Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length - Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width - Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight - Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology Implements IVehicleDeclarationInputData.DoorDriveTechnology - - Public readonly Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components - get - Return me - End Get - End Property - - Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource - - Public Property AirdragInputData As IAirdragDeclarationInputData Implements IVehicleComponentsDeclaration.AirdragInputData - Public Property IVehicleComponentsEngineering_GearboxInputData As IGearboxEngineeringInputData Implements IVehicleComponentsEngineering.GearboxInputData - Public Property IVehicleComponentsEngineering_AirdragInputData As IAirdragEngineeringInputData Implements IVehicleComponentsEngineering.AirdragInputData - Public Property GearboxInputData As IGearboxDeclarationInputData Implements IVehicleComponentsDeclaration.GearboxInputData - Public Property IVehicleComponentsEngineering_TorqueConverterInputData As ITorqueConverterEngineeringInputData Implements IVehicleComponentsEngineering.TorqueConverterInputData - Public Property TorqueConverterInputData As ITorqueConverterDeclarationInputData Implements IVehicleComponentsDeclaration.TorqueConverterInputData - Public Property IVehicleComponentsEngineering_AxleGearInputData As IAxleGearInputData Implements IVehicleComponentsEngineering.AxleGearInputData - Public Property AxleGearInputData As IAxleGearInputData Implements IVehicleComponentsDeclaration.AxleGearInputData - Public Property IVehicleComponentsEngineering_AngledriveInputData As IAngledriveInputData Implements IVehicleComponentsEngineering.AngledriveInputData - Public Property AngledriveInputData As IAngledriveInputData Implements IVehicleComponentsDeclaration.AngledriveInputData - Public Property IVehicleComponentsEngineering_EngineInputData As IEngineEngineeringInputData Implements IVehicleComponentsEngineering.EngineInputData - Public Property EngineInputData As IEngineDeclarationInputData Implements IVehicleComponentsDeclaration.EngineInputData - Public Property IVehicleComponentsEngineering_AuxiliaryInputData As IAuxiliariesEngineeringInputData Implements IVehicleComponentsEngineering.AuxiliaryInputData - Public Property AuxiliaryInputData As IAuxiliariesDeclarationInputData Implements IVehicleComponentsDeclaration.AuxiliaryInputData - Public Property IVehicleComponentsEngineering_RetarderInputData As IRetarderInputData Implements IVehicleComponentsEngineering.RetarderInputData - Public Property RetarderInputData As IRetarderInputData Implements IVehicleComponentsDeclaration.RetarderInputData - Public Property IVehicleComponentsEngineering_PTOTransmissionInputData As IPTOTransmissionInputData Implements IVehicleComponentsEngineering.PTOTransmissionInputData - Public Property PTOTransmissionInputData As IPTOTransmissionInputData Implements IVehicleComponentsDeclaration.PTOTransmissionInputData - Public Property IVehicleComponentsEngineering_AxleWheels As IAxlesEngineeringInputData Implements IVehicleComponentsEngineering.AxleWheels - Public Property AxleWheels As IAxlesDeclarationInputData Implements IVehicleComponentsDeclaration.AxleWheels - Public ReadOnly Property IVehicleComponentsEngineering_ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage - Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries - Public ReadOnly Property ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage - Public ReadOnly Property IVehicleComponentsEngineering_ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines - Public ReadOnly Property ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines + Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated + Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height + Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length + Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width + Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight + Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property VehicleDeclarationType As VehicleDeclarationType Implements IVehicleDeclarationInputData.VehicleDeclarationType + + Public ReadOnly Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components + Get + Return Me + End Get + End Property + + Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource + + Public Property AirdragInputData As IAirdragDeclarationInputData Implements IVehicleComponentsDeclaration.AirdragInputData + Public Property IVehicleComponentsEngineering_GearboxInputData As IGearboxEngineeringInputData Implements IVehicleComponentsEngineering.GearboxInputData + Public Property IVehicleComponentsEngineering_AirdragInputData As IAirdragEngineeringInputData Implements IVehicleComponentsEngineering.AirdragInputData + Public Property GearboxInputData As IGearboxDeclarationInputData Implements IVehicleComponentsDeclaration.GearboxInputData + Public Property IVehicleComponentsEngineering_TorqueConverterInputData As ITorqueConverterEngineeringInputData Implements IVehicleComponentsEngineering.TorqueConverterInputData + Public Property TorqueConverterInputData As ITorqueConverterDeclarationInputData Implements IVehicleComponentsDeclaration.TorqueConverterInputData + Public Property IVehicleComponentsEngineering_AxleGearInputData As IAxleGearInputData Implements IVehicleComponentsEngineering.AxleGearInputData + Public Property AxleGearInputData As IAxleGearInputData Implements IVehicleComponentsDeclaration.AxleGearInputData + Public Property IVehicleComponentsEngineering_AngledriveInputData As IAngledriveInputData Implements IVehicleComponentsEngineering.AngledriveInputData + Public Property AngledriveInputData As IAngledriveInputData Implements IVehicleComponentsDeclaration.AngledriveInputData + Public Property IVehicleComponentsEngineering_EngineInputData As IEngineEngineeringInputData Implements IVehicleComponentsEngineering.EngineInputData + Public Property EngineInputData As IEngineDeclarationInputData Implements IVehicleComponentsDeclaration.EngineInputData + Public Property IVehicleComponentsEngineering_AuxiliaryInputData As IAuxiliariesEngineeringInputData Implements IVehicleComponentsEngineering.AuxiliaryInputData + Public Property AuxiliaryInputData As IAuxiliariesDeclarationInputData Implements IVehicleComponentsDeclaration.AuxiliaryInputData + Public Property IVehicleComponentsEngineering_RetarderInputData As IRetarderInputData Implements IVehicleComponentsEngineering.RetarderInputData + Public Property RetarderInputData As IRetarderInputData Implements IVehicleComponentsDeclaration.RetarderInputData + Public Property IVehicleComponentsEngineering_PTOTransmissionInputData As IPTOTransmissionInputData Implements IVehicleComponentsEngineering.PTOTransmissionInputData + Public Property PTOTransmissionInputData As IPTOTransmissionInputData Implements IVehicleComponentsDeclaration.PTOTransmissionInputData + Public Property IVehicleComponentsEngineering_AxleWheels As IAxlesEngineeringInputData Implements IVehicleComponentsEngineering.AxleWheels + Public Property AxleWheels As IAxlesDeclarationInputData Implements IVehicleComponentsDeclaration.AxleWheels + Public ReadOnly Property IVehicleComponentsEngineering_ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage + Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries + Public ReadOnly Property ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage + Public ReadOnly Property IVehicleComponentsEngineering_ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines + Public ReadOnly Property ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines End Class diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index 696b2496ac63f14808b818623eda756dcf123276..3f24eecc22bf20f68c58b07050e50057c4a612d0 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -802,7 +802,8 @@ Public Class MockEngineeringVehicle Public Property Identifier As String Implements IVehicleDeclarationInputData.Identifier Public Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle Public Property VIN As String Implements IVehicleDeclarationInputData.VIN - Public Property LegislativeClass As LegislativeClass Implements IVehicleDeclarationInputData.LegislativeClass + Public ReadOnly Property LegislativeCategory As String Implements IVehicleDeclarationInputData.LegislativeCategory + Public Property LegislativeClass As LegislativeClass? Implements IVehicleDeclarationInputData.LegislativeClass Public Property VehicleCategory As VehicleCategory Implements IVehicleDeclarationInputData.VehicleCategory Public Property AxleConfiguration As AxleConfiguration Implements IVehicleDeclarationInputData.AxleConfiguration Public Property CurbMassChassis As Kilogram Implements IVehicleDeclarationInputData.CurbMassChassis @@ -812,15 +813,16 @@ Public Class MockEngineeringVehicle Public Property EngineIdleSpeed As PerSecond Implements IVehicleDeclarationInputData.EngineIdleSpeed Public Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle Public Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab + Public ReadOnly Property AirdragModifiedMultistage As Boolean? Implements IVehicleDeclarationInputData.AirdragModifiedMultistage Public Property TankSystem As TankSystem? Implements IVehicleDeclarationInputData.TankSystem Public Property IVehicleEngineeringInputData_ADAS As IAdvancedDriverAssistantSystemsEngineering _ Implements IVehicleEngineeringInputData.ADAS - Public readonly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering _ + Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering _ Implements IVehicleEngineeringInputData.Components Get - Return me + Return Me End Get End Property @@ -837,12 +839,14 @@ Public Class MockEngineeringVehicle Public Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 - Public ReadOnly Property RegisteredClass As RegistrationClass Implements IVehicleDeclarationInputData.RegisteredClass - Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck - Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck + Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass + Public ReadOnly Property NumberPassengerSeatsUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck + Public ReadOnly Property NumberPassengerSeatsLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck + Public ReadOnly Property NumberPassengersStandingLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingLowerDeck + Public ReadOnly Property NumberPassengersStandingUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingUpperDeck Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume - Public ReadOnly Property VehicleCode As VehicleCode Implements IVehicleDeclarationInputData.VehicleCode - Public ReadOnly Property LowEntry As Boolean Implements IVehicleDeclarationInputData.LowEntry + Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode + Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height Public Property CurbMassExtra As Kilogram Implements IVehicleEngineeringInputData.CurbMassExtra @@ -854,7 +858,8 @@ Public Class MockEngineeringVehicle Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight - Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property VehicleDeclarationType As VehicleDeclarationType Implements IVehicleDeclarationInputData.VehicleDeclarationType Public Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource diff --git a/VECTO/Input Files/MockVehicleInputData.vb b/VECTO/Input Files/MockVehicleInputData.vb index 796fb9be88119a01222bd838a4bc347a100d5070..0ff5fff18194700bcd5118c54631dc26b275fbf9 100644 --- a/VECTO/Input Files/MockVehicleInputData.vb +++ b/VECTO/Input Files/MockVehicleInputData.vb @@ -19,7 +19,8 @@ Public Class MockVehicleInputData Public Property Identifier As String Implements IVehicleDeclarationInputData.Identifier Public Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle Public Property VIN As String Implements IVehicleDeclarationInputData.VIN - Public Property LegislativeClass As LegislativeClass Implements IVehicleDeclarationInputData.LegislativeClass + Public ReadOnly Property LegislativeCategory As String Implements IVehicleDeclarationInputData.LegislativeCategory + Public Property LegislativeClass As LegislativeClass? Implements IVehicleDeclarationInputData.LegislativeClass Public Property VehicleCategory As VehicleCategory Implements IVehicleDeclarationInputData.VehicleCategory Public Property AxleConfiguration As AxleConfiguration Implements IVehicleDeclarationInputData.AxleConfiguration Public Property CurbMassChassis As Kilogram Implements IVehicleDeclarationInputData.CurbMassChassis @@ -29,6 +30,7 @@ Public Class MockVehicleInputData Public Property EngineIdleSpeed As PerSecond Implements IVehicleDeclarationInputData.EngineIdleSpeed Public Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle Public Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab + Public ReadOnly Property AirdragModifiedMultistage As Boolean? Implements IVehicleDeclarationInputData.AirdragModifiedMultistage Public Property TankSystem As TankSystem? Implements IVehicleDeclarationInputData.TankSystem Public Property ADAS As IAdvancedDriverAssistantSystemDeclarationInputData _ @@ -39,18 +41,21 @@ Public Class MockVehicleInputData Public Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 - Public ReadOnly Property RegisteredClass As RegistrationClass Implements IVehicleDeclarationInputData.RegisteredClass - Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck - Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck + Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass + Public ReadOnly Property NumberPassengerSeatsUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck + Public ReadOnly Property NumberPassengerSeatsLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck + Public ReadOnly Property NumberPassengersStandingLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingLowerDeck + Public ReadOnly Property NumberPassengersStandingUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingUpperDeck Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume - Public ReadOnly Property VehicleCode As VehicleCode Implements IVehicleDeclarationInputData.VehicleCode - Public ReadOnly Property LowEntry As Boolean Implements IVehicleDeclarationInputData.LowEntry + Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode + Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated Public ReadOnly Property Height As Meter Implements IVehicleDeclarationInputData.Height Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight - Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property VehicleDeclarationType As VehicleDeclarationType Implements IVehicleDeclarationInputData.VehicleDeclarationType Public Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource End Class \ No newline at end of file diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 9c30f229b014613c99ab52f5b0ea6326e7900b09..f501510b56920b19d4761bddbed45fb77e03295d 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -78,15 +78,15 @@ Public Class Vehicle public PCC as PredictiveCruiseControlType public EngineStop as Boolean - Public VehicleTankSystem As TankSystem? + Public VehicleTankSystem As TankSystem? - Public ReadOnly BatteryFile As SubPath - Public ReadOnly ElectricMotorFile As SubPath + Public ReadOnly BatteryFile As SubPath + Public ReadOnly ElectricMotorFile As SubPath - Public NumBatteryPacks As Integer - Public ElectricMotorPosition As PowertrainPosition - Public ElectricMotorCount As Integer - Public ElectricMotorRatio As Double + Public NumBatteryPacks As Integer + Public ElectricMotorPosition As PowertrainPosition + Public ElectricMotorCount As Integer + Public ElectricMotorRatio As Double 'Public ElectricMotorMechEff As Double Public ElectricMotorMechLossMap As SubPath @@ -94,7 +94,7 @@ Public Class Vehicle Public EngineSpeedDuringPTODrive As PerSecond Public ElectricMotorPerGearRatios As Double() - Public Sub New() + Public Sub New() _path = "" _filePath = "" CrossWindCorrectionFile = New SubPath @@ -109,11 +109,11 @@ Public Class Vehicle PtoLossMap = New SubPath() PtoCycleStandstill = New SubPath() PtoCycleDriving = new SubPath() - BatteryFile = New SubPath() - ElectricMotorFile = New SubPath() + BatteryFile = New SubPath() + ElectricMotorFile = New SubPath() ElectricMotorMechLossMap = new SubPath() - SetDefault() + SetDefault() End Sub @@ -127,20 +127,20 @@ Public Class Vehicle Dim angledriveData As AngledriveData Dim modeService As VectoValidationModeServiceContainer = - TryCast(validationContext.GetService(GetType(VectoValidationModeServiceContainer)), + TryCast(validationContext.GetService(GetType(VectoValidationModeServiceContainer)), VectoValidationModeServiceContainer) Dim mode As ExecutionMode = If(modeService Is Nothing, ExecutionMode.Declaration, modeService.Mode) Dim emsCycle As Boolean = (modeService IsNot Nothing) AndAlso modeService.IsEMSCycle Dim gbxType As GearboxType? = If(modeService Is Nothing, Nothing, modeService.GearboxType) - Dim jobType as VectoSimulationJobType = If(modeService Is Nothing, VectoSimulationJobType.ConventionalVehicle, modeService.JobType) - Dim emPos as PowertrainPosition? = If(modeService Is Nothing, PowertrainPosition.HybridPositionNotSet, modeService.EMPowertrainPosition) + Dim jobType As VectoSimulationJobType = If(modeService Is Nothing, VectoSimulationJobType.ConventionalVehicle, modeService.JobType) + Dim emPos As PowertrainPosition? = If(modeService Is Nothing, PowertrainPosition.HybridPositionNotSet, modeService.EMPowertrainPosition) Try If mode = ExecutionMode.Declaration Then Dim doa As DeclarationDataAdapterHeavyLorry = New DeclarationDataAdapterHeavyLorry() Dim segment As Segment = DeclarationData.TruckSegments.Lookup(vehicle.VehicleCategory, vehicle.AxleConfiguration, - vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, false) + vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, False) vehicleData = doa.CreateVehicleData(vehicle, segment, segment.Missions.First(), segment.Missions.First().Loadings.First(), true) airdragData = doa.CreateAirdragData(vehicle, segment.Missions.First(), segment) @@ -289,7 +289,7 @@ Public Class Vehicle Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource Get - Dim retVal As DataSource = New DataSource() + Dim retVal As DataSource = New DataSource() retVal.SourceType = DataSourceType.JSONFile retVal.SourceFile = FilePath Return retVal @@ -323,13 +323,13 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - get - Return "VECTO-GUI" - End Get - End Property + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Get + Return "VECTO-GUI" + End Get + End Property - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod Get Return CertificationMethod.NotCertified End Get @@ -363,15 +363,15 @@ Public Class Vehicle End Property Public ReadOnly Property Identifier As String Implements IVehicleDeclarationInputData.Identifier - get + Get Return "" - End Get + End Get End Property Public ReadOnly Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle - get - Return false - End Get + Get + Return False + End Get End Property Public ReadOnly Property VIN As String Implements IVehicleDeclarationInputData.VIN @@ -380,7 +380,9 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property LegislativeClass As LegislativeClass Implements IVehicleEngineeringInputData.LegislativeClass + Public ReadOnly Property LegislativeCategory As String Implements IVehicleDeclarationInputData.LegislativeCategory + + Public ReadOnly Property LegislativeClass As LegislativeClass? Implements IVehicleEngineeringInputData.LegislativeClass Get Return legClass End Get @@ -395,7 +397,7 @@ Public Class Vehicle Public ReadOnly Property GrossVehicleMassRating As Kilogram _ Implements IVehicleDeclarationInputData.GrossVehicleMassRating Get - Return MassMax.SI(Unit.SI.Ton).Cast(Of Kilogram)() + Return MassMax.SI(Unit.SI.Ton).Cast(Of Kilogram)() End Get End Property @@ -424,6 +426,9 @@ Public Class Vehicle End Get End Property + Public ReadOnly Property TransferredAirDragArea As SquareMeter Implements IAirdragDeclarationInputData.TransferredAirDragArea + Public ReadOnly Property AirDragArea_0 As SquareMeter Implements IAirdragDeclarationInputData.AirDragArea_0 + Public ReadOnly Property IVehicleEngineeringInputData_Axles As IList(Of IAxleEngineeringInputData) _ Implements IAxlesEngineeringInputData.AxlesEngineering Get @@ -445,11 +450,11 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height + Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height - Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated + Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated - Public ReadOnly Property Height As Meter Implements IVehicleEngineeringInputData.Height + Public ReadOnly Property Height As Meter Implements IVehicleEngineeringInputData.Height Get Return VehicleHeight.SI(Of Meter)() End Get @@ -472,15 +477,16 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length - Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width - Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight - Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length + Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width + Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight + Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology + Public ReadOnly Property VehicleDeclarationType As VehicleDeclarationType Implements IVehicleDeclarationInputData.VehicleDeclarationType - Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering Implements IVehicleEngineeringInputData.Components - get - Return me - End Get + Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering Implements IVehicleEngineeringInputData.Components + Get + Return Me + End Get End Property Public ReadOnly Property CrosswindCorrectionMap As TableData _ @@ -500,7 +506,7 @@ Public Class Vehicle Public ReadOnly Property IVehicleEngineeringInputData_DynamicTyreRadius As Meter _ Implements IVehicleEngineeringInputData.DynamicTyreRadius Get - Return DynamicTyreRadius.SI(Unit.SI.Milli.Meter).Cast(Of Meter)() + Return DynamicTyreRadius.SI(Unit.SI.Milli.Meter).Cast(Of Meter)() End Get End Property @@ -695,15 +701,15 @@ Public Class Vehicle End Property Public ReadOnly Property IVehicleComponentsDeclaration_AuxiliaryInputData As IAuxiliariesDeclarationInputData Implements IVehicleComponentsDeclaration.AuxiliaryInputData - get - return nothing - End Get + Get + Return Nothing + End Get End Property Public ReadOnly Property AuxiliaryInputData As IAuxiliariesEngineeringInputData Implements IVehicleComponentsEngineering.AuxiliaryInputData - get + Get Return Nothing - End Get + End Get End Property @@ -744,56 +750,58 @@ Public Class Vehicle End Property Public ReadOnly Property IVehicleComponentsDeclaration_AxleWheels As IAxlesDeclarationInputData Implements IVehicleComponentsDeclaration.AxleWheels - get + Get Return Me - End Get + End Get End Property Public ReadOnly Property AxleWheels As IAxlesEngineeringInputData Implements IVehicleComponentsEngineering.AxleWheels - get - Return me - End Get + Get + Return Me + End Get End Property - Public ReadOnly Property ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage - Get - Return New ElectricStorageWrapper(Me) - End Get - End Property + Public ReadOnly Property ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage + Get + Return New ElectricStorageWrapper(Me) + End Get + End Property - Public ReadOnly Property IVehicleComponentsDeclaration_ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines + Public ReadOnly Property IVehicleComponentsDeclaration_ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines - Public ReadOnly Property IVehicleComponentsDeclaration_ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage - Public ReadOnly Property ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines - Get - Return New ElectricMachineWrapper(Me) - End Get - End Property + Public ReadOnly Property IVehicleComponentsDeclaration_ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage + Public ReadOnly Property ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines + Get + Return New ElectricMachineWrapper(Me) + End Get + End Property - Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries + Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries - Public ReadOnly Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle - get + Public ReadOnly Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle + Get Return DeclarationData.Vehicle.VocationalVehicleDefault - End Get + End Get End Property Public ReadOnly Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab - get + Get Return DeclarationData.Vehicle.SleeperCabDefault - End Get + End Get End Property + Public ReadOnly Property AirdragModifiedMultistage As Boolean? Implements IVehicleDeclarationInputData.AirdragModifiedMultistage + Public ReadOnly Property TankSystem As TankSystem? Implements IVehicleDeclarationInputData.TankSystem - get - Return vehicleTankSystem - End Get + Get + Return VehicleTankSystem + End Get End Property Public ReadOnly Property IVehicleEngineeringInputData_ADAS As IAdvancedDriverAssistantSystemsEngineering Implements IVehicleEngineeringInputData.ADAS - get - Return me - End Get + Get + Return Me + End Get End Property Public ReadOnly Property ADAS As IAdvancedDriverAssistantSystemDeclarationInputData Implements IVehicleDeclarationInputData.ADAS @@ -818,171 +826,173 @@ end Property End Get End Property - Public ReadOnly Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle - Get - Return DeclarationData.Vehicle.ZeroEmissionVehicleDefault - End Get - End Property + Public ReadOnly Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle + Get + Return DeclarationData.Vehicle.ZeroEmissionVehicleDefault + End Get + End Property - Public ReadOnly Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV - get - return DeclarationData.Vehicle.HybridElectricHDVDefault - End Get + Public ReadOnly Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV + Get + Return DeclarationData.Vehicle.HybridElectricHDVDefault + End Get End Property Public ReadOnly Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle - get - return DeclarationData.Vehicle.DualFuelVehicleDefault - End Get + Get + Return DeclarationData.Vehicle.DualFuelVehicleDefault + End Get End Property Public ReadOnly Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 - get + Get Return Nothing - End Get + End Get End Property Public ReadOnly Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 - get + Get Return Nothing - End Get + End Get End Property - Public ReadOnly Property RegisteredClass As RegistrationClass Implements IVehicleDeclarationInputData.RegisteredClass - Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck - Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck - Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume - Public ReadOnly Property VehicleCode As VehicleCode Implements IVehicleDeclarationInputData.VehicleCode - Public ReadOnly Property LowEntry As Boolean Implements IVehicleDeclarationInputData.LowEntry + Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass + Public ReadOnly Property NumberPassengerSeatsUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck + Public ReadOnly Property NumberPassengerSeatsLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck + Public ReadOnly Property NumberPassengersStandingLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingLowerDeck + Public ReadOnly Property NumberPassengersStandingUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingUpperDeck + Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume + Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode + Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry - Public ReadOnly Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components - get + Public ReadOnly Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components + Get Return Me - End Get + End Get End Property - Public ReadOnly Property IVehicleDeclarationInputData_XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource + Public ReadOnly Property IVehicleDeclarationInputData_XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource - Public ReadOnly Property EngineStopStart As Boolean Implements IAdvancedDriverAssistantSystemDeclarationInputData.EngineStopStart - get - return EngineStop - End Get + Public ReadOnly Property EngineStopStart As Boolean Implements IAdvancedDriverAssistantSystemDeclarationInputData.EngineStopStart + Get + Return EngineStop + End Get End Property Public ReadOnly Property EcoRoll As EcoRollType Implements IAdvancedDriverAssistantSystemDeclarationInputData.EcoRoll - get - return EcoRolltype - End Get + Get + Return EcoRolltype + End Get End Property - + Public ReadOnly Property PredictiveCruiseControl As PredictiveCruiseControlType Implements IAdvancedDriverAssistantSystemDeclarationInputData.PredictiveCruiseControl - get + Get Return PCC - End Get + End Get End Property - Public ReadOnly Property ATEcoRollReleaseLockupClutch As Boolean? Implements IAdvancedDriverAssistantSystemDeclarationInputData.ATEcoRollReleaseLockupClutch - get - Return EcoRollReleaseLockupClutch - End Get - End Property + Public ReadOnly Property ATEcoRollReleaseLockupClutch As Boolean? Implements IAdvancedDriverAssistantSystemDeclarationInputData.ATEcoRollReleaseLockupClutch + Get + Return EcoRollReleaseLockupClutch + End Get + End Property - Public ReadOnly Property XMLSource As XmlNode Implements IAdvancedDriverAssistantSystemDeclarationInputData.XMLSource + Public ReadOnly Property XMLSource As XmlNode Implements IAdvancedDriverAssistantSystemDeclarationInputData.XMLSource - Public ReadOnly Property IAdvancedDriverAssistantSystemsEngineering_DataSource As DataSource Implements IAdvancedDriverAssistantSystemsEngineering.DataSource - get - Return New DataSource() With {.SourceType = DataSourceType.JSONFile} - End Get - End Property + Public ReadOnly Property IAdvancedDriverAssistantSystemsEngineering_DataSource As DataSource Implements IAdvancedDriverAssistantSystemsEngineering.DataSource + Get + Return New DataSource() With {.SourceType = DataSourceType.JSONFile} + End Get + End Property Public ReadOnly Property IAxlesEngineeringInputData_DataSource As DataSource Implements IAxlesEngineeringInputData.DataSource - get - Return New DataSource() With {.SourceType = DataSourceType.JSONFile} - End Get + Get + Return New DataSource() With {.SourceType = DataSourceType.JSONFile} + End Get End Property - Public Property EcoRollReleaseLockupClutch As Boolean + Public Property EcoRollReleaseLockupClutch As Boolean - Public ReadOnly Property IAxlesDeclarationInputData_XMLSource As XmlNode Implements IAxlesDeclarationInputData.XMLSource + Public ReadOnly Property IAxlesDeclarationInputData_XMLSource As XmlNode Implements IAxlesDeclarationInputData.XMLSource End Class Public Class ElectricStorageWrapper - Implements IElectricStorageEngineeringInputData, IBatteryPackEngineeringInputData + Implements IElectricStorageEngineeringInputData, IBatteryPackEngineeringInputData - Protected Vehicle As Vehicle + Protected Vehicle As Vehicle - Public Sub New(veh As Vehicle) - Vehicle = veh - End Sub + Public Sub New(veh As Vehicle) + Vehicle = veh + End Sub - - Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack - Get - return Me - End Get - End Property - Public ReadOnly Property Count As Integer Implements IElectricStorageEngineeringInputData.Count - Get - Return Vehicle.NumBatteryPacks - End Get - End Property + Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack + Get + Return Me + End Get + End Property - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource - Get - Dim retVal As DataSource = New DataSource() - retVal.SourceType = DataSourceType.JSONFile - retVal.SourceFile = Vehicle.BatteryFile.FullPath - Return retVal - End Get - End Property - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Public ReadOnly Property MinSOC As Double Implements IBatteryPackDeclarationInputData.MinSOC - Public ReadOnly Property MaxSOC As Double Implements IBatteryPackDeclarationInputData.MaxSOC - Public ReadOnly Property Capacity As AmpereSecond Implements IBatteryPackDeclarationInputData.Capacity - Public ReadOnly Property InternalResistanceCurve As TableData Implements IBatteryPackDeclarationInputData.InternalResistanceCurve - Public ReadOnly Property VoltageCurve As TableData Implements IBatteryPackDeclarationInputData.VoltageCurve - Public ReadOnly Property MaxCurrentMap As TableData Implements IBatteryPackDeclarationInputData.MaxCurrentMap - Public ReadOnly Property StorageType As REESSType Implements IREESSPackInputData.StorageType + Public ReadOnly Property Count As Integer Implements IElectricStorageEngineeringInputData.Count + Get + Return Vehicle.NumBatteryPacks + End Get + End Property + + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Get + Dim retVal As DataSource = New DataSource() + retVal.SourceType = DataSourceType.JSONFile + retVal.SourceFile = Vehicle.BatteryFile.FullPath + Return retVal + End Get + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public ReadOnly Property MinSOC As Double Implements IBatteryPackDeclarationInputData.MinSOC + Public ReadOnly Property MaxSOC As Double Implements IBatteryPackDeclarationInputData.MaxSOC + Public ReadOnly Property Capacity As AmpereSecond Implements IBatteryPackDeclarationInputData.Capacity + Public ReadOnly Property InternalResistanceCurve As TableData Implements IBatteryPackDeclarationInputData.InternalResistanceCurve + Public ReadOnly Property VoltageCurve As TableData Implements IBatteryPackDeclarationInputData.VoltageCurve + Public ReadOnly Property MaxCurrentMap As TableData Implements IBatteryPackDeclarationInputData.MaxCurrentMap + Public ReadOnly Property StorageType As REESSType Implements IREESSPackInputData.StorageType End Class Public Class ElectricMachineWrapper - Implements IElectricMachinesEngineeringInputData, IElectricMotorEngineeringInputData + Implements IElectricMachinesEngineeringInputData, IElectricMotorEngineeringInputData - Protected Vehicle As Vehicle + Protected Vehicle As Vehicle - Public Sub New(veh As Vehicle) - Vehicle = veh - End Sub + Public Sub New(veh As Vehicle) + Vehicle = veh + End Sub - Public ReadOnly Property Entries As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) Implements IElectricMachinesDeclarationInputData.Entries - Get - Return New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() { - New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { - .ElectricMachine = Me, + Public ReadOnly Property Entries As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) Implements IElectricMachinesDeclarationInputData.Entries + Get + Return New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() { + New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { + .ElectricMachine = Me, .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), .MechanicalTransmissionLossMap = VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath), .Position = Vehicle.ElectricMotorPosition, .RatioADC = Vehicle.ElectricMotorRatio, .RatioPerGear = vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}}) - End Get - End Property - Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries - Get - Return New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { - New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() With { - .ElectricMachine = Me, + End Get + End Property + Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries + Get + Return New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { + New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() With { + .ElectricMachine = Me, .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), .Position = Vehicle.ElectricMotorPosition, @@ -990,31 +1000,31 @@ Public Class ElectricMachineWrapper .RatioPerGear = Vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}}) - End Get - End Property + End Get + End Property - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource - Get - Return New DataSource() With { - .SourceFile = Vehicle.ElectricMotorFile.FullPath} - End Get - End Property - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Public ReadOnly Property FullLoadCurve As TableData Implements IElectricMotorDeclarationInputData.FullLoadCurve - Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve - Public ReadOnly Property EfficiencyMap As TableData Implements IElectricMotorDeclarationInputData.EfficiencyMap - Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia - Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Get + Return New DataSource() With { + .SourceFile = Vehicle.ElectricMotorFile.FullPath} + End Get + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public ReadOnly Property FullLoadCurve As TableData Implements IElectricMotorDeclarationInputData.FullLoadCurve + Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve + Public ReadOnly Property EfficiencyMap As TableData Implements IElectricMotorDeclarationInputData.EfficiencyMap + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia + Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime Public ReadOnly Property ContinuousTorqueSpeed As PerSecond Implements IElectricMotorDeclarationInputData.ContinuousTorqueSpeed Public ReadOnly Property OverloadTorque As NewtonMeter Implements IElectricMotorDeclarationInputData.OverloadTorque Public ReadOnly Property OverloadTestSpeed As PerSecond Implements IElectricMotorDeclarationInputData.OverloadTestSpeed - Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorDeclarationInputData.OverloadRecoveryFactor + Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorDeclarationInputData.OverloadRecoveryFactor Public ReadOnly Property ContinuousTorque As NewtonMeter Implements IElectricMotorDeclarationInputData.ContinuousTorque End Class \ No newline at end of file diff --git a/VECTO3GUI/ViewModel/Adapter/Declaration/VehicleDeclarationAdapter.cs b/VECTO3GUI/ViewModel/Adapter/Declaration/VehicleDeclarationAdapter.cs index 41cfe52b0614dc9954f362a2a36bbc7933390356..0ddb13c270bea8d22311ea44e5eb73e0cc1e80e1 100644 --- a/VECTO3GUI/ViewModel/Adapter/Declaration/VehicleDeclarationAdapter.cs +++ b/VECTO3GUI/ViewModel/Adapter/Declaration/VehicleDeclarationAdapter.cs @@ -102,6 +102,7 @@ namespace VECTO3GUI.ViewModel.Adapter.Declaration public PerSecond EngineIdleSpeed { get { return ViewModel.IdlingSpeed; } } public bool VocationalVehicle { get; } public bool SleeperCab { get; } + public bool AirdragModifiedMultistage { get; } public TankSystem? TankSystem { get; } public IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get; } public bool ZeroEmissionVehicle { get; } @@ -121,6 +122,7 @@ namespace VECTO3GUI.ViewModel.Adapter.Declaration public Meter Width { get; } public Meter EntranceHeight { get; } public ConsumerTechnology DoorDriveTechnology { get; } + public StateOfCompletion StateOfCompletion { get; } public IAirdragDeclarationInputData AirdragInputData { get { return GetComponentViewModel<IAirdragViewModel>(Component.Airdrag)?.ModelData; diff --git a/VECTO3GUI/ViewModel/Impl/CompleteVehicleBusViewModel.cs b/VECTO3GUI/ViewModel/Impl/CompleteVehicleBusViewModel.cs index a737e015259b0f74403dedfe49aad9955f06c68a..2d7d647616833dfbf98bc14aa5c54a90797095cb 100644 --- a/VECTO3GUI/ViewModel/Impl/CompleteVehicleBusViewModel.cs +++ b/VECTO3GUI/ViewModel/Impl/CompleteVehicleBusViewModel.cs @@ -280,8 +280,8 @@ namespace VECTO3GUI.ViewModel.Impl CurbMassChassis = vehicle.CurbMassChassis; TechnicalPermissibleMaximumLadenMass = vehicle.GrossVehicleMassRating; NgTankSystem = vehicle.TankSystem; - NumberOfPassengersLowerDeck = vehicle.NumberOfPassengersLowerDeck; - NumberOfPassengersUpperDeck = vehicle.NumberOfPassengersUpperDeck; + NumberOfPassengersLowerDeck = vehicle.NumberPassengerSeatsLowerDeck; + NumberOfPassengersUpperDeck = vehicle.NumberPassengerSeatsUpperDeck; LowEntry = vehicle.LowEntry; HeightIntegratedBody = vehicle.Height; VehicleLength = vehicle.Length; diff --git a/VECTO3GUI2020/App.config b/VECTO3GUI2020/App.config new file mode 100644 index 0000000000000000000000000000000000000000..f16f0863ce8b4ad80311d1e1bd0b5073a7cc3899 --- /dev/null +++ b/VECTO3GUI2020/App.config @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <section name="VECTO3GUI2020.Properties.Application" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + <section name="VECTO3GUI2020.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> + </startup> + <userSettings> + <VECTO3GUI2020.Properties.Application> + <setting name="Path" serializeAs="String"> + <value /> + </setting> + </VECTO3GUI2020.Properties.Application> + <VECTO3GUI2020.Properties.Settings> + <setting name="EngineeringMode" serializeAs="String"> + <value>False</value> + </setting> + <setting name="DefaultFilePath" serializeAs="String"> + <value /> + </setting> + <setting name="WriteModalResults" serializeAs="String"> + <value>True</value> + </setting> + <setting name="ModalResults1Hz" serializeAs="String"> + <value>True</value> + </setting> + <setting name="Validate" serializeAs="String"> + <value>True</value> + </setting> + <setting name="ActualModalData" serializeAs="String"> + <value>True</value> + </setting> + <setting name="SerializeVectoRunData" serializeAs="String"> + <value>True</value> + </setting> + <setting name="DefaultOutputPath" serializeAs="String"> + <value /> + </setting> + </VECTO3GUI2020.Properties.Settings> + </userSettings> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Reactive.Linq" publicKeyToken="94bc3704cddfc263" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.0.6000.0" newVersion="3.0.6000.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.0.6000.0" newVersion="3.0.6000.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> \ No newline at end of file diff --git a/VECTO3GUI2020/App.xaml b/VECTO3GUI2020/App.xaml new file mode 100644 index 0000000000000000000000000000000000000000..817f5f0b1b06102dfd0be81a55b244696f9a79d1 --- /dev/null +++ b/VECTO3GUI2020/App.xaml @@ -0,0 +1,25 @@ +<Application x:Class="VECTO3GUI2020.App" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:VECTO3GUI2020" + ShutdownMode="OnMainWindowClose"> + <Application.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + <!-- Add new ResourceDictionaries here--> + <ResourceDictionary Source="Resources/ViewModelBindings.xaml"/> + <ResourceDictionary Source="Resources/Converter.xaml"/> + <ResourceDictionary Source="Resources/MultistageParameterDataTemplates.xaml"/> + <ResourceDictionary Source="Resources\Styles\ButtonStyles.xaml"/> + <ResourceDictionary Source="Resources/Styles/GlobalStyles.xaml"/> + <ResourceDictionary Source="Resources/Styles/Colors.xaml"/> + <ResourceDictionary Source="Resources/Styles/ButtonStyles.xaml"/> + <ResourceDictionary Source="DataGridStyles.xaml"/> + <ResourceDictionary Source="Resources/Templates/ErrorTemplates.xaml"/> + <ResourceDictionary Source="Resources/ObjectProvider.xaml"/> + <ResourceDictionary Source="Resources/Icons/drawables.xaml"></ResourceDictionary> + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Application.Resources> + +</Application> diff --git a/VECTO3GUI2020/App.xaml.cs b/VECTO3GUI2020/App.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..93284aafd7b2b9bd4f35035ddabcbd647880dcc9 --- /dev/null +++ b/VECTO3GUI2020/App.xaml.cs @@ -0,0 +1,76 @@ +using System; +using System.Windows; +using Ninject; +using Ninject.Extensions.ChildKernel; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.Model; +using TUGraz.VectoCore; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Model.Implementation; +using VECTO3GUI2020.Ninject; +using VECTO3GUI2020.Ninject.Vehicle; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.ViewModel; +using Application = System.Windows.Application; + +namespace VECTO3GUI2020 +{ + public partial class App : Application + { + + private IKernel container; + + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + + if (Settings.Default.DefaultFilePath == null) { + Settings.Default.DefaultFilePath = Environment.CurrentDirectory; + Settings.Default.Save(); + } + ConfigureContainer(); + ConfigureMainWindow(); + + } + + private void ConfigureContainer() + { + container = new StandardKernel( + new VectoNinjectModule(), + new JobEditModule(), + new ComponentModule(), + new DocumentModule(), + new XMLWriterFactoryModule(), + new FactoryModule(), + new MultistageModule() + ); + + + + container.Bind<IJobListViewModel>().To<JobListViewModel>(); + container.Bind<IMainWindowViewModel>().To<MainWindowViewModel>(); + container.Bind<IMainViewModel>().To<JobListViewModel>(); + container.Bind<ISettingsViewModel>().To<SettingsViewModel>(); + container.Bind<IOutputViewModel>().To<OutputViewModel>().InSingletonScope(); + container.Bind<ISettingsModel>().To<SettingsModel>(); + + container.Bind<IDialogHelper>().To<DialogHelper>().InSingletonScope(); + container.Bind<IWindowHelper>().To<WindowHelper>(); + + + + } + + private void ConfigureMainWindow() + { + var mainwindow = container.Get<MainWindow>(); + this.MainWindow = mainwindow; + Application.Current.MainWindow = mainwindow; + this.MainWindow.Show(); + } + + } + +} diff --git a/VECTO3GUI2020/DataGridStyles.xaml b/VECTO3GUI2020/DataGridStyles.xaml new file mode 100644 index 0000000000000000000000000000000000000000..71273451d233039b3dca9760cbe966e2d8dbd21e --- /dev/null +++ b/VECTO3GUI2020/DataGridStyles.xaml @@ -0,0 +1,76 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"> + + <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}"> + <Setter Property="Width" Value="8"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Cursor" Value="SizeWE"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="JobListDataGridHeaderStyle" TargetType="{x:Type DataGridColumnHeader}"> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGridColumnHeader}"> + <Grid> + <Themes:DataGridHeaderBorder BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsClickable="{TemplateBinding CanUserSort}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" Padding="{TemplateBinding Padding}" SortDirection="{TemplateBinding SortDirection}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}"> + <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Themes:DataGridHeaderBorder> + <Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/> + <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + <Setter Property="Padding" Value="4 0 0 0"/> + <Setter Property="Foreground" Value="Black"/> + <Setter Property="Background" Value="White"/> + </Style> + + + <Style x:Key="DataGridCellStyle1" TargetType="{x:Type DataGridCell}"> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="BorderBrush" Value="Transparent"/> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGridCell}"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> + <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="IsSelected" Value="True"> + <Setter Property="Background" Value="{StaticResource ButtonHighlightColor}"/> + <!-- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/> + <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> --> + <Setter Property="Foreground" Value="Black"/> + <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> + </Trigger> + <Trigger Property="IsKeyboardFocusWithin" Value="True"> + <Setter Property="BorderBrush" Value="{DynamicResource {x:Static DataGrid.FocusBorderBrushKey}}"/> + </Trigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsSelected" Value="true"/> + <Condition Property="Selector.IsSelectionActive" Value="false"/> + </MultiTrigger.Conditions> + <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/> + <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}}"/> + </MultiTrigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> + </Trigger> + </Style.Triggers> + </Style> + +</ResourceDictionary> \ No newline at end of file diff --git "a/VECTO3GUI2020/Documentation - Verkn\303\274pfung.lnk" "b/VECTO3GUI2020/Documentation - Verkn\303\274pfung.lnk" new file mode 100644 index 0000000000000000000000000000000000000000..b67320f9a2eebaf55c4c984c8cf03b0f110586ae Binary files /dev/null and "b/VECTO3GUI2020/Documentation - Verkn\303\274pfung.lnk" differ diff --git a/VECTO3GUI2020/Documentation/InputData.cd b/VECTO3GUI2020/Documentation/InputData.cd new file mode 100644 index 0000000000000000000000000000000000000000..f294b40a8783f1e2291a7830af79733b30c4d11e --- /dev/null +++ b/VECTO3GUI2020/Documentation/InputData.cd @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1"> + <Interface Name="TUGraz.VectoCommon.InputData.IMultistageBusInputDataProvider"> + <Position X="0.5" Y="1.5" Width="2.75" /> + <TypeIdentifier /> + <ShowAsAssociation> + <Property Name="JobInputData" /> + </ShowAsAssociation> + </Interface> + <Interface Name="TUGraz.VectoCommon.InputData.IDeclarationMultistageJobInputData"> + <Position X="4" Y="1.5" Width="2.25" /> + <TypeIdentifier /> + <ShowAsAssociation> + <Property Name="PrimaryVehicle" /> + </ShowAsAssociation> + <ShowAsCollectionAssociation> + <Property Name="ManufacturingStages" /> + </ShowAsCollectionAssociation> + </Interface> + <Interface Name="TUGraz.VectoCommon.InputData.IPrimaryVehicleInformationInputDataProvider"> + <Position X="7.25" Y="1.5" Width="3" /> + <TypeIdentifier /> + </Interface> + <Interface Name="TUGraz.VectoCommon.InputData.IManufacturingStageInputData"> + <Position X="4" Y="2.75" Width="2.25" /> + <TypeIdentifier /> + <ShowAsAssociation> + <Property Name="Vehicle" /> + </ShowAsAssociation> + </Interface> + <Interface Name="TUGraz.VectoCommon.InputData.IVehicleDeclarationInputData"> + <Position X="7.25" Y="4.5" Width="3" /> + <TypeIdentifier /> + </Interface> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/ConvertedSIDummyCreator.cs b/VECTO3GUI2020/Helper/ConvertedSIDummyCreator.cs new file mode 100644 index 0000000000000000000000000000000000000000..e1486e008581a0e6e0cef599630f72ecc5499aa9 --- /dev/null +++ b/VECTO3GUI2020/Helper/ConvertedSIDummyCreator.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Utils; + +namespace VECTO3GUI2020.Helper +{ + public static class ConvertedSIDummyCreator + { + public static ConvertedSI CreateMillimeterDummy() + { + return new ConvertedSI(0, "mm"); + } + + } +} diff --git a/VECTO3GUI2020/Helper/Converter/AlwaysVisibleConverter.cs b/VECTO3GUI2020/Helper/Converter/AlwaysVisibleConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..c7218d9ae2a02621b22b19faeb8ca755dda58b8e --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/AlwaysVisibleConverter.cs @@ -0,0 +1,21 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + //https://stackoverflow.com/questions/9893825/mvvm-hiding-a-control-when-bound-property-is-not-present + public class AlwaysVisibleConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return Visibility.Visible; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/BoolToIntConverter.cs b/VECTO3GUI2020/Helper/Converter/BoolToIntConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..65b859ac7b9c022073d491d1cd4053e5d9da246e --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/BoolToIntConverter.cs @@ -0,0 +1,33 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + + public class BoolToIntConverter : IValueConverter + { + #region Implementation of IValueConverter + + + /// <summary> + /// Returns -1 if value is false, 0 if value is true + /// </summary> + /// <param name="value"></param> + /// <param name="targetType"></param> + /// <param name="parameter"></param> + /// <param name="culture"></param> + /// <returns></returns> + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return (bool)value == false ? -1 : 0; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return Binding.DoNothing; + } + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/Converter/BoolToVisibilityConverter.cs b/VECTO3GUI2020/Helper/Converter/BoolToVisibilityConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..0eb30e7c549784ad287c57a8645066fcf89ebae7 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/BoolToVisibilityConverter.cs @@ -0,0 +1,32 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + public class InvertedBoolToVisibilityConverter : IValueConverter + { + /// <summary> + /// Converts boolean to Visibility + /// </summary> + /// <param name="value"></param> + /// <param name="targetType"></param> + /// <param name="parameter">if set to true the result is inverted</param> + /// <param name="culture"></param> + /// <returns></returns> + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool b) { + var visibility = b ? Visibility.Collapsed : Visibility.Visible; + return visibility; + } + return Binding.DoNothing; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotFiniteNumberException(); + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/Converter/EnumConverter.cs b/VECTO3GUI2020/Helper/Converter/EnumConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..d5e45906213b5576229869a5d46f94f9a5e4f55f --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/EnumConverter.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using Castle.Core.Internal; +using TUGraz.VectoCommon.Utils; + +namespace VECTO3GUI2020.Helper.Converter +{ + class EnumConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) { + return Binding.DoNothing; + } + + Type valueType = value.GetType(); + if (!valueType.IsEnum) { + return value; + } + + var attributes = + valueType.GetField(value.ToString())?.GetCustomAttributes( typeof(GuiLabelAttribute),false); + + GuiLabelAttribute attribute = attributes.IsNullOrEmpty() ? null : attributes.First() as GuiLabelAttribute; + if (attribute == null) { + return value; + } else { + return attribute.Label; + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return value; + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/InvertBoolConverter.cs b/VECTO3GUI2020/Helper/Converter/InvertBoolConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..75a4308ca49a4e90e77ac497dd85d7d7d00b2f32 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/InvertBoolConverter.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + public class InvertBoolConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return !(bool)value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return !(bool)value; + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/JobTypeStringConverter.cs b/VECTO3GUI2020/Helper/Converter/JobTypeStringConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..b34367fe3f9229dcf75dfacb9172cac0dd9d8453 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/JobTypeStringConverter.cs @@ -0,0 +1,52 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + class JobTypeStringConverter : IValueConverter + { + /* + public string JobTypeToString(JobType jobtype) + { + switch (jobtype) + { + case JobType.CompletedBus: + return "Completed Bus"; + case JobType.HeavyLorry: + return "Heavy Lorry"; + case JobType.PrimaryBus: + return "Primary Bus"; + case JobType.Unknown: + return "Unknown"; + default: + return jobtype.ToString(); + } + } + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (!(value is JobType)) + { + return Binding.DoNothing; + } + JobType jobtype = (JobType)value; + return JobTypeToString(jobtype); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + */ + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/LabledTextBoxConverter.cs b/VECTO3GUI2020/Helper/Converter/LabledTextBoxConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..5fe323ec869c2b0c5a62a3b074380494d7ae7619 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/LabledTextBoxConverter.cs @@ -0,0 +1,158 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; +using TUGraz.VectoCommon.Utils; +using SIUtils = VECTO3GUI2020.Util.SIUtils; + + +namespace VECTO3GUI2020.Helper.Converter +{ + + class LabledTextBoxConverter : IValueConverter + { + protected const double ToRpm = 60 / (2 * Math.PI); + protected const double ToCubicCentimeter = 1e6; + + private object _originalobject; + public object OriginalObject + { + get { return _originalobject; } + set { _originalobject = value; } + } + + #region Implementation of IValueConverter + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + OriginalObject = value; + if (value == null) + { + return DependencyProperty.UnsetValue; + } + if (!(value is SI)) + { + return value; + //return DependencyProperty.UnsetValue; + //throw new Exception("Can only convert SI types!"); + } + + + + var siValue = value as SI; + var doubleVal = siValue.Value(); + + var conversionFactor = 1.0; + + + if (value is SI SIvalue) + { + if (SIvalue.UnitString == "1/s") + conversionFactor = ToRpm; + } + + var stringParam = parameter as string; + int? decimals = null; + if (!string.IsNullOrEmpty(stringParam)) + { + var args = stringParam.Split('|'); + foreach (var arg in args) + { + GetDecimals(arg, ref decimals); + GetConversionFactor(ref conversionFactor, arg); + } + } + doubleVal *= conversionFactor; + return decimals == null ? doubleVal.ToString(culture) : doubleVal.ToString("F" + decimals.Value, culture); + } + + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + targetType = OriginalObject.GetType(); + + if (!typeof(SI).IsAssignableFrom(targetType)) + { + return value; + //return DependencyProperty.UnsetValue; + } + + if (value == null) + { + return DependencyProperty.UnsetValue; + } + + var stringParam = parameter as string; + int? decimals = null; + var conversionFactor = 1.0; + + if (OriginalObject.GetType() == typeof(PerSecond)) + { + conversionFactor = ToRpm; + } + + + if (!string.IsNullOrEmpty(stringParam)) + { + var args = stringParam.Split('|'); + foreach (var arg in args) + { + GetDecimals(arg, ref decimals); + GetConversionFactor(ref conversionFactor, arg); + } + } + + double doubleVal; + var success = double.TryParse(value.ToString(), NumberStyles.Float, culture, out doubleVal); + if (!success) + { + return DependencyProperty.UnsetValue; + } + + if (decimals != null) + { + doubleVal = Math.Round(doubleVal, decimals.Value, MidpointRounding.AwayFromZero); + } + doubleVal /= conversionFactor; + + return SIUtils.CreateSIValue(targetType, doubleVal); + } + + private void GetConversionFactor(ref double factor, string convertId) + { + switch (convertId.ToLower()) + { + case "asrpm": + factor = ToRpm; + break; + case "ascubiccentimeter": + factor = ToCubicCentimeter; + break; + } + } + + private void GetDecimals(string arg, ref int? decimals) + { + switch (arg.ToLower()) + { + case "int": + decimals = 0; + break; + case "double2": + decimals = 2; + break; + case "double3": + decimals = 3; + break; + case "double4": + decimals = 4; + break; + } + } + #endregion + } + + + +} + diff --git a/VECTO3GUI2020/Helper/Converter/LabledTextBoxLabelConverter.cs b/VECTO3GUI2020/Helper/Converter/LabledTextBoxLabelConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..a96dc5a3c86fc8ea5eb8edd99356d6205843b048 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/LabledTextBoxLabelConverter.cs @@ -0,0 +1,23 @@ +using System; +using System.Globalization; +using System.Windows.Data; + + +namespace VECTO3GUI2020.Helper.Converter +{ + class LabledTextBoxLabelConverter : IValueConverter + { + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + +} diff --git a/VECTO3GUI2020/Helper/Converter/MultistageParameterModeToVisibilityConverter.cs b/VECTO3GUI2020/Helper/Converter/MultistageParameterModeToVisibilityConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..ab76e59ead75e5d6672a564df8ec264dc40ec3ae --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/MultistageParameterModeToVisibilityConverter.cs @@ -0,0 +1,30 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; +using VECTO3GUI2020.Views.Multistage.CustomControls; + +namespace VECTO3GUI2020.Helper.Converter +{ + public class MultistageParameterModeToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var selectedMode = (MultistageParameterViewMode)value; + if (parameter is MultistageParameterViewMode mode) { + if (selectedMode == mode) { + return Visibility.Visible; + } else { + return Visibility.Collapsed; + } + } else { + throw new ArgumentException("Provide a MultiStageParameter.MODE as parameter!"); + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/Converter/NullToUnsetValueConverter.cs b/VECTO3GUI2020/Helper/Converter/NullToUnsetValueConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..893afb505aeb96bcd11c7ea181c7fd3b6b53b761 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/NullToUnsetValueConverter.cs @@ -0,0 +1,28 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + public class NullToUnsetValueConverter : IValueConverter + { + #region Implementation of IValueConverter + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) { + return DependencyProperty.UnsetValue; + } else { + return value; + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/Converter/NullToVisibilityConverter.cs b/VECTO3GUI2020/Helper/Converter/NullToVisibilityConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..7458434d5dc685e25b4152d4db4952ca1842c6c4 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/NullToVisibilityConverter.cs @@ -0,0 +1,45 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + class NullToVisibilityConverter : IValueConverter + { + /// <summary> + /// + /// </summary> + /// <param name="value"></param> + /// <param name="targetType"></param> + /// <param name="parameter">set to "invert" to invert the result</param> + /// <param name="culture"></param> + /// <returns></returns> + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var invert = false; + if (parameter != null) { + invert = string.Equals("invert", (string) parameter, StringComparison.InvariantCultureIgnoreCase); + } + + if (value == null) + { + if (invert) { + return Visibility.Visible; + } + return Visibility.Collapsed; + } + else { + if (invert) { + return Visibility.Collapsed; + } + return Visibility.Visible; + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/SIToUnitString.cs b/VECTO3GUI2020/Helper/Converter/SIToUnitString.cs new file mode 100644 index 0000000000000000000000000000000000000000..23cb170b8d864236c93d0776fc229da8718df7f5 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/SIToUnitString.cs @@ -0,0 +1,72 @@ +using System; +using System.Globalization; +using System.Windows.Data; +using TUGraz.VectoCommon.Utils; + +namespace VECTO3GUI2020.Helper.Converter +{ + class SIToUnitString : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var unitString = getUnitString(value); + if (unitString != null) { + unitString = unitString.Replace("^2", ((char)0xB2).ToString()); + unitString = unitString.Replace("^3", ((char)0xB3).ToString()); + return unitString; + } else { + return Binding.DoNothing; + } + + //if (value == null) { + // return Binding.DoNothing; + //} + + + // if(value is SI SIValue) + // { + // if (SIValue.UnitString == "1/s") + // { + // return "rpm"; + // } + // return SIValue.UnitString; + // } + + //if (value is ConvertedSI convertedSI) { + // return convertedSI.Units; + //} + + //return Binding.DoNothing; + + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + private string getUnitString(object value) + { + if (value == null) { + return null; + } + + + if (value is SI SIValue) + { + if (SIValue.UnitString == "1/s") + { + return "rpm"; + } + return SIValue.UnitString; + } + + if (value is ConvertedSI convertedSI) + { + return convertedSI.Units; + } + + return null; + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/SIValueToStringConverter.cs b/VECTO3GUI2020/Helper/Converter/SIValueToStringConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..09e36f3c9c29dbf03fb92988835d864ac0f4e612 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/SIValueToStringConverter.cs @@ -0,0 +1,64 @@ +using System; +using System.Diagnostics; +using System.Globalization; +using System.Linq.Expressions; +using System.Runtime.InteropServices; +using System.Windows.Data; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Util; +using SIUtils = VECTO3GUI2020.Util.SIUtils; + +namespace VECTO3GUI2020.Helper.Converter +{ + class SIValueToStringConverter : IValueConverter + { + private SI _si; + private ConvertedSI _convertedSI; + private Type _sourceType; + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) { + return value; + } + + + if(value is SI SIvalue) { + _si = SIvalue; + return SIvalue.ToGUIFormat(); + } + + if (value is ConvertedSI convertedSI) { + _convertedSI = convertedSI; + return convertedSI.ToOutputFormat(showUnit: false, decimals:0); + } + + return value?.ToString(); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + try { + if (_si != null || _convertedSI != null) { + var hackedString = value as string; + hackedString = hackedString.Replace(",", "."); + var doubleVal = Double.Parse(hackedString, CultureInfo.InvariantCulture); + if (_convertedSI != null) + { + return new ConvertedSI(doubleVal, _convertedSI.Units); + } + if (_si != null) + { + var newSi = SIUtils.CreateSIValue(_si.GetType(), doubleVal); + return newSi; + } + + } + } + catch (Exception e) { + return value; + } + + return value; + } + } +} diff --git a/VECTO3GUI2020/Helper/Converter/VehicleCategoryToStringConverter.cs b/VECTO3GUI2020/Helper/Converter/VehicleCategoryToStringConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..6178ad8308651a6fc4542b2308677869b39dcd23 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/VehicleCategoryToStringConverter.cs @@ -0,0 +1,6 @@ +namespace VECTO3GUI2020.Helper.Converter +{ + class VehicleCategoryToStringConverter + { + } +} diff --git a/VECTO3GUI2020/Helper/Converter/XToBoolConverter.cs b/VECTO3GUI2020/Helper/Converter/XToBoolConverter.cs new file mode 100644 index 0000000000000000000000000000000000000000..696dfbadae63e62e2698cd406c53284181b21684 --- /dev/null +++ b/VECTO3GUI2020/Helper/Converter/XToBoolConverter.cs @@ -0,0 +1,26 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace VECTO3GUI2020.Helper.Converter +{ + /// <summary> + /// Converts bool to bool and object to null; used to avoid errors in collapsed checkboxes; + /// </summary> + public class XToBoolConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + bool? b = value as bool?; + + + return b; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return value; + + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/DialogHelper.cs b/VECTO3GUI2020/Helper/DialogHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..9609208a1d3ef0c2dfbe981952a0478ece06a7d2 --- /dev/null +++ b/VECTO3GUI2020/Helper/DialogHelper.cs @@ -0,0 +1,218 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using System.Windows.Forms; +using Microsoft.WindowsAPICodePack.Dialogs; +using VECTO3GUI2020.Properties; +using MessageBox = System.Windows.MessageBox; + +namespace VECTO3GUI2020.Helper +{ + public class DialogHelper : IDialogHelper + { + private readonly string _defaultInitialDirectory = Settings.Default.DefaultFilePath; + + #region File and Folder Dialogs + private string _xmlFilter = "XML Files (*.xml)|*.xml"; + + private Dictionary<string, string> lastUsedDirectories = new Dictionary<string, string>(); + + private string lastUsedDirectoryFolderPicker = null; + private string[] OpenFilesDialog(string filter, string initialDirectory, bool multiselect) + { + if (initialDirectory == null) { + initialDirectory = LookUpLastDir(filter); + } + + + + using (OpenFileDialog fd = new OpenFileDialog { + InitialDirectory = initialDirectory ?? _defaultInitialDirectory, + Multiselect = multiselect, + Filter = filter, + RestoreDirectory = true + }) { + var result = fd.ShowDialog(); + if (result == DialogResult.OK) { + lastUsedDirectories[filter] = Path.GetDirectoryName(fd.FileName); + return fd.FileNames; + } + } + + + return null; + } + + private string LookUpLastDir(string filter) + { + string lastUsedDirectory = null; + if (lastUsedDirectories.TryGetValue(filter, out lastUsedDirectory)) { + return lastUsedDirectory; + } else { + return Settings.Default.DefaultFilePath; + } + } + + public string OpenFileDialog(string filter = "All files (*.*)|*.*", string initialDirectory = null) + { + return OpenFilesDialog(filter, initialDirectory)?[0]; + } + + public string[] OpenFilesDialog(string filter, string initialDirectory) + { + return OpenFilesDialog(filter, initialDirectory, true); + } + + public string OpenXMLFileDialog() + { + return OpenXMLFileDialog(null); + } + + + + public string[] OpenXMLFilesDialog(string initialDirectory) + { + return OpenFilesDialog(_xmlFilter, initialDirectory); + } + + public string OpenXMLFileDialog(string initialDirectory) + { + return OpenFilesDialog(_xmlFilter, initialDirectory, false)?[0]; + } + + + public string OpenFolderDialog(string initialDirectory = null) + { + + if (initialDirectory == null) { + initialDirectory = lastUsedDirectoryFolderPicker; + } + using (var dialog = new CommonOpenFileDialog()) + { + dialog.InitialDirectory = initialDirectory; + dialog.IsFolderPicker = true; + dialog.Multiselect = false; + dialog.RestoreDirectory = true; + + var result = dialog.ShowDialog(); + if (result == CommonFileDialogResult.Ok) { + lastUsedDirectoryFolderPicker = Path.GetDirectoryName(dialog.FileName); + return dialog.FileName; + } + } + return null; + } + + #endregion + + #region Messagebox + + public MessageBoxResult ShowMessageBox(string messageBoxText, + string caption, + MessageBoxButton button, + MessageBoxImage icon) + { + return MessageBox.Show(messageBoxText, caption, button, icon); + } + + public MessageBoxResult ShowMessageBox(string messageBoxText, string caption) + { + return MessageBox.Show(messageBoxText, caption); + } + + public string SaveToDialog(string initialDirectory, string filter) + { + using (var saveFileDialog = new SaveFileDialog { + Filter = filter + }) { + saveFileDialog.InitialDirectory = initialDirectory ?? _defaultInitialDirectory; + + return saveFileDialog.ShowDialog() == DialogResult.OK ? saveFileDialog.FileName : null; + } + } + + + public string SaveToXMLDialog(string initialDirectory) + { + return SaveToDialog(initialDirectory, _xmlFilter); + } + + + + #endregion + } + + public interface IDialogHelper + { + /// <summary> + /// Opens a dialog to open a file + /// </summary> + /// <param name="filter"></param> + /// <param name="initialDirectory">If no directory is specified the location of the assembly is used</param> + /// <returns></returns> + string OpenFileDialog(string filter = "All files (*.*)|*.*", string initialDirectory = null); + + /// <summary> + /// Opens a dialog to open files + /// </summary> + /// <param name="filter"></param> + /// <param name="initialDirectory">If no directory is specified the location of the assembly is used</param> + /// <returns></returns> + string[] OpenFilesDialog(string filter = "All files (*.*|*.*", string initialDirectory = null); + + /// <summary> + /// Opens a dialog to open a XML-file + /// </summary> + /// <param name="initialDirectory">If no directory is specified the location of the assembly is used</param> + /// <returns></returns> + string OpenXMLFileDialog(string initialDirectory); + + string OpenXMLFileDialog(); + + + /// <summary> + /// Opens a dialog to open XML-files + /// </summary> + /// <param name="initialDirectory">If no directory is specified the location of the assembly is used</param> + /// <returns></returns> + string[] OpenXMLFilesDialog(string initialDirectory = null); + + /// <summary> + /// Opens a dialog to pick a folder, if no initialdirectory is specified the location of the assembly is used + /// </summary> + /// <param name="initialDirectory"></param> + /// <returns></returns> + string OpenFolderDialog(string initialDirectory = null); + + /// <summary> + /// Displays a messagebox + /// </summary> + /// <param name="messageBoxText"></param> + /// <param name="caption"></param> + /// <param name="button"></param> + /// <param name="icon"></param> + /// <returns></returns> + MessageBoxResult ShowMessageBox(string messageBoxText, + string caption, + MessageBoxButton button, + MessageBoxImage icon); + + /// <summary> + /// Displays a messagebox + /// </summary> + /// <param name="messageBoxText"></param> + /// <param name="caption"></param> + /// <returns></returns> + MessageBoxResult ShowMessageBox(string messageBoxText, string caption); + + + string SaveToDialog(string initialDirectory = null, string filter = "All files (*.*|*.*"); + + string SaveToXMLDialog(string initialDirectory = null); + } +} diff --git a/VECTO3GUI2020/Helper/DoubleValidation.cs b/VECTO3GUI2020/Helper/DoubleValidation.cs new file mode 100644 index 0000000000000000000000000000000000000000..00be0652a2b171f8a5928a6ea053ea87bb04556d --- /dev/null +++ b/VECTO3GUI2020/Helper/DoubleValidation.cs @@ -0,0 +1,20 @@ +using System; +using System.Globalization; +using System.Windows.Controls; + +namespace VECTO3GUI2020.Helper +{ + public class DoubleValidation : ValidationRule + { + public override ValidationResult Validate(object value, CultureInfo cultureInfo) + { + try { + Double.Parse(value as string); + } catch (Exception e) { + return new ValidationResult(false, "Not a number"); + } + + return ValidationResult.ValidResult; + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/EnumHelper.cs b/VECTO3GUI2020/Helper/EnumHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..16c063f1d9184a28dfb1067035f9a39b56250620 --- /dev/null +++ b/VECTO3GUI2020/Helper/EnumHelper.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.ObjectModel; +using System.Linq; +using TUGraz.VectoCommon.Models; +using VECTO3GUI2020.Annotations; + +namespace VECTO3GUI2020.Helper +{ + using System.Runtime.CompilerServices; + + + + internal static class EnumHelper + { + private static ObservableCollection<T> GetValuesAsObservableCollection<T, TInput>(bool exclude, + params TInput[] items) + where TInput : System.Enum + where T : System.Enum + + { + var values = Enum.GetValues(typeof(TInput)).Cast<TInput>().ToList().Where(e => { + var contains = items.Contains(e); + var result = contains; + if (exclude) { + result = !contains; + } + + return result; + }); + return new ObservableCollection<T>(values.Cast<T>()); + } + + public static ObservableCollection<T> GetValuesAsObservableCollectionIncluding<T, TInput>(params TInput[] items) + where TInput : System.Enum + where T : System.Enum + + { + return GetValuesAsObservableCollection<T, TInput>(false, items); + } + + public static ObservableCollection<T> GetValuesAsObservableCollectionExcluding<T, TInput>(params TInput[] items) + where TInput : System.Enum + where T : System.Enum + + { + return GetValuesAsObservableCollection<T, TInput>(true, items); + } + + + + + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/Exceptions.cs b/VECTO3GUI2020/Helper/Exceptions.cs new file mode 100644 index 0000000000000000000000000000000000000000..6b8ce5755c34720b168c921200c5e7b7185a6828 --- /dev/null +++ b/VECTO3GUI2020/Helper/Exceptions.cs @@ -0,0 +1,26 @@ +using System; + +namespace VECTO3GUI2020.Helper +{ + /// <summary> + /// Exception to notify the view that a field is not allowed to be empty. Should be ignored by the debugger + /// </summary> + public class VectoEmptyFieldException : Exception + { + public VectoEmptyFieldException() + : base("Field must not be empty") + { + + } + + public VectoEmptyFieldException(string message) + : base(message) + { + } + + public VectoEmptyFieldException(string message, Exception inner) + : base(message, inner) + { + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/IWindowHelper.cs b/VECTO3GUI2020/Helper/IWindowHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..c01621543eb5a123b0dc4d987fe9f1e054e7eb8e --- /dev/null +++ b/VECTO3GUI2020/Helper/IWindowHelper.cs @@ -0,0 +1,7 @@ +namespace VECTO3GUI2020.Helper +{ + public interface IWindowHelper + { + void ShowWindow(object viewModel); + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/IndexedStorage.cs b/VECTO3GUI2020/Helper/IndexedStorage.cs new file mode 100644 index 0000000000000000000000000000000000000000..fee593ec2cf4c5b5f33aabc8463d2ae868f18540 --- /dev/null +++ b/VECTO3GUI2020/Helper/IndexedStorage.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VECTO3GUI2020.Helper +{ + //Helper class that can be used to store values of the same type that are identified by a string + public class IndexedStorage<T> where T : IEquatable<T> + { + private Dictionary<string, T> indexedStorageDictionary = new Dictionary<string, T>(); + private readonly Action<string> _valueChangedCallback; + + + + public IndexedStorage(Action<string> valueChangedCallback = null) + { + _valueChangedCallback = valueChangedCallback; + } + + + public T this[string identifier] + { + get + { + if (!indexedStorageDictionary.ContainsKey(identifier)) + { + indexedStorageDictionary.Add(identifier, default(T)); + } + return indexedStorageDictionary[identifier]; + } + set + { + var oldValue = default(T); + if (indexedStorageDictionary.ContainsKey(identifier)) + { + oldValue = indexedStorageDictionary[identifier]; + } + else + { + indexedStorageDictionary.Add(identifier, default(T)); + } + indexedStorageDictionary[identifier] = value; + if (!value.Equals(oldValue)) + { + _valueChangedCallback?.Invoke(identifier); + } + } + } + } + +} diff --git a/VECTO3GUI2020/Helper/MultistageParameterDataTemplateSelector.cs b/VECTO3GUI2020/Helper/MultistageParameterDataTemplateSelector.cs new file mode 100644 index 0000000000000000000000000000000000000000..74a73b23bee97dada9d9e9a539a7fd19e34e380b --- /dev/null +++ b/VECTO3GUI2020/Helper/MultistageParameterDataTemplateSelector.cs @@ -0,0 +1,52 @@ +using System; +using System.Windows; +using System.Windows.Controls; +using TUGraz.VectoCommon.Exceptions; +using VECTO3GUI2020.Views.Multistage.CustomControls; + +namespace VECTO3GUI2020.Helper +{ + public class MultistageParameterDataTemplateSelector : DataTemplateSelector + { + #region Overrides of DataTemplateSelector + + public override DataTemplate SelectTemplate(object item, DependencyObject container) + { + FrameworkElement element = container as FrameworkElement; + MultistageParameterViewModel vm = item as MultistageParameterViewModel; + + if (element != null && item != null && vm != null) { + + FrameworkElementFactory factory = null; + Type type = null; + switch (vm.Mode) { + case (ViewMode.TEXTBOX): + type = typeof(MultistageParameterTextView); + break; + case (ViewMode.CHECKBOX): + type = typeof(MultistageParameterCheckBoxView); + break; + case (ViewMode.COMBOBOX): + type = typeof(MultistageParameterComboBoxView); + break; + default: + throw new VectoException("Unknown MultistageParameterType"); + break; + } + factory = new FrameworkElementFactory(type); + DataTemplate dt = new DataTemplate(); + dt.VisualTree = factory; + return dt; + + + } + + + + + return base.SelectTemplate(item, container); + } + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/MultistageParameterViewModel.cs b/VECTO3GUI2020/Helper/MultistageParameterViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..7c3413d7539e46b06491da6c9b66f20a25ece57c --- /dev/null +++ b/VECTO3GUI2020/Helper/MultistageParameterViewModel.cs @@ -0,0 +1,421 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Net.Mime; +using System.Reflection; +using System.Resources; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Controls; +using Castle.Core.Internal; +using Castle.Core.Resource; +using Castle.DynamicProxy.Internal; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Annotations; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.Common; +using VECTO3GUI2020.Views.Multistage.CustomControls; + +namespace VECTO3GUI2020.Helper +{ + public enum ViewMode + { + COMBOBOX, + TEXTBOX, + CHECKBOX + } + + + public interface IMultistageParameterViewModel + { + bool IsReadOnly { get; set; } + bool EditingEnabled { get; set; } + object CurrentContent { get; set; } + object DummyContent { get; set; } + ObservableCollection<Enum> AllowedItems { get; set; } + object PreviousContent { get; set; } + Action<MultistageParameterViewModel> EditingChangedCallback { get; set; } + } + + public class MultistageParameterViewModel : ViewModelBase, IDataErrorInfo, IMultistageParameterViewModel + { + private bool _editingEnabled; + private object _currentContent; + private object _dummyContent; + private bool _mandatory; + private object _storedContent; + private string _label; + private ObservableCollection<Enum> _allowedItems; + private ObservableCollection<Enum> _generatedItems; + + private readonly Action<MultistageParameterViewModel> _propertyChangedCallback; + private Action<MultistageParameterViewModel> _editingChangedCallback; + private readonly PropertyInfo _propertyInfo; + private readonly IViewModelBase _parentViewModel; + private ViewMode _viewMode; + private object _previousContent; + private bool _showCheckBox; + + private Type _type; + + private Type _underlyingTargetType; + private readonly string _propertyName; + private bool _isReadOnly; + private bool _valueFieldIsEditable; + + public MultistageParameterViewModel ( + string propertyName, + object previousContent, + IViewModelBase parentViewModel, + ViewMode viewMode = ViewMode.TEXTBOX, + object dummyContent = null, + bool mandatory = false, + Action<MultistageParameterViewModel> propertyChangedCallback = null, + params ResourceManager[] resourceManagers) + { + + _propertyName = propertyName; + PreviousContent = previousContent; + _propertyChangedCallback = propertyChangedCallback; + _parentViewModel = parentViewModel; + //_parentViewModel.PropertyChanged += ParentViewModelPropertyChanged; + _propertyInfo = parentViewModel.GetType().GetProperty(propertyName); + + _viewMode = viewMode; + _dummyContent = dummyContent; + Mandatory = mandatory; + _type = _propertyInfo.PropertyType; + _label = NameResolver.ResolveName(propertyName, resourceManagers); + + if (dummyContent == null) { + DummyContent = CreateDummyContent(); + } + + + if (Mode == ViewMode.COMBOBOX) { + if (DummyContent is Enum dummyEnum) + { + var enType = dummyEnum.GetType(); + GeneratedListItems = new ObservableCollection<Enum>(Enum.GetValues(enType).Cast<Enum>().ToList()); + } + else if (CurrentContent is Enum contentEnum) + { + var enType = contentEnum.GetType(); + GeneratedListItems = new ObservableCollection<Enum>(Enum.GetValues(enType).Cast<Enum>().ToList()); + } + } + + CurrentContent = _propertyInfo.GetValue(parentViewModel); + } + + private void ParentViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) + { + Debug.Assert((IViewModelBase)sender == _parentViewModel); + if (e.PropertyName != _propertyName) { + return; + } + + var valueFromParent = _propertyInfo.GetValue(sender); + if (valueFromParent != CurrentContent) { + CurrentContent = valueFromParent; + } + } + + + private object CreateDummyContent() + { + var type = _type; + + + try + { + //dynamic dynType = type; + + var baseType = type.BaseType; + //Create SI Dummy + if (baseType?.BaseType != null && baseType.BaseType == typeof(SI)) { + var createMethod = baseType.GetMethod("Create"); + var dummyContent = createMethod?.Invoke(null, new object[] { (new double()) }); + return dummyContent; + } + + var underlyingType = Nullable.GetUnderlyingType(type); + if (underlyingType == typeof(bool)) { + _viewMode = ViewMode.CHECKBOX; + var dummyContent = false; + return dummyContent; + } + + + + + if (type.IsEnum || (underlyingType != null && underlyingType.IsEnum)) { + _viewMode = ViewMode.COMBOBOX; + } + + if (Mode == ViewMode.COMBOBOX) { + Enum dummyEnum; + + try + { + if (underlyingType != null) + { + dummyEnum = (Enum)Enum.Parse(underlyingType, underlyingType.GetEnumNames()[0]); + } + else + { + dummyEnum = (Enum)Enum.Parse(type, type.GetEnumNames()[0]); + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return null; + } + return dummyEnum; + } + + Type primitiveType = null; + + if (underlyingType != null && underlyingType.IsValueType) { + primitiveType = underlyingType; + } else if (type.IsValueType) { + primitiveType = type; + } + + + if (primitiveType != null) { + var dummyContent = Convert.ChangeType(0, primitiveType); + return dummyContent; + } + + if (type == typeof(string)) { + return ""; + } + + + + + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return null; + } + + return null; + } + + + public bool IsReadOnly + { + get => _isReadOnly; + set + { + SetProperty(ref _isReadOnly, value); + UpdateValueFieldEditable(); + } + } + + public bool EditingEnabled + { + get => _editingEnabled; + set + { + var old_value = _editingEnabled; + var new_value = value; + _editingEnabled = value; + if (old_value != new_value){ + _editingChangedCallback?.Invoke(this); + if (new_value == false) + { + if (StoredContent != CurrentContent) { + StoredContent = CurrentContent; + } + CurrentContent = null; + } + else + { + if (StoredContent != null) { + CurrentContent = StoredContent; + } else { + if (Mode == ViewMode.TEXTBOX) { + CurrentContent = DummyContent; + } + } + } + } + OnPropertyChanged(nameof(CurrentContent)); + OnPropertyChanged(nameof(EditingEnabled)); + UpdateValueFieldEditable(); + } + } + + + public bool ValueFieldIsEditable + { + get => _valueFieldIsEditable; + private set => SetProperty(ref _valueFieldIsEditable, value); + } + + private void UpdateValueFieldEditable() + { + if (IsReadOnly) { + ValueFieldIsEditable = false; + return; + } else { + ValueFieldIsEditable = EditingEnabled; + } + } + + public object CurrentContent + { + get => _currentContent; + set + { + if (value != null) { + EditingEnabled = true; + } + + var convertedValue = value; + + //Convert value if neccessary + if (value != null) { + if (DummyContent != null) { + convertedValue = Convert.ChangeType(value, DummyContent.GetType()); + } + } + + if (SetProperty(ref _currentContent, convertedValue)) { + _propertyInfo.SetValue(_parentViewModel, _currentContent); + _propertyChangedCallback?.Invoke(this); + }; + OnPropertyChanged(nameof(CurrentContent)); + } + } + + + + public object DummyContent + { + get => _dummyContent; + set + { + //_propertyChangedCallback?.Invoke(this); + SetProperty(ref _dummyContent, value); + } + } + + public object StoredContent + { + get => _storedContent; + set + { + SetProperty(ref _storedContent, value); + } + } + + public string Label + { + get => _label; + set + { + SetProperty(ref _label, value); + } + } + + public ObservableCollection<Enum> AllowedItems + { + get => _allowedItems; + set + { + SetProperty(ref _allowedItems, value); + OnPropertyChanged(nameof(CurrentContent)); + } + } + + public ViewMode Mode => _viewMode; + + public ObservableCollection<Enum> GeneratedListItems + { + get => _generatedItems; + set => SetProperty(ref _generatedItems, value); + } + + public bool Mandatory + { + get + { + return _mandatory; + } + set + { + if (SetProperty(ref _mandatory, value)) { + OnPropertyChanged(nameof(ShowCheckBox)); + EditingEnabled = true; + }; + + } + } + + public object PreviousContent + { + get => _previousContent; + set => SetProperty(ref _previousContent, value); + } + + public bool ShowCheckBox + { + get => !_mandatory; + } + + public bool Optional + { + get => !_mandatory; + } + + #region Implementation of IDataErrorInfo + + public string this[string columnName] + { + get + { + if (!(_parentViewModel is IDataErrorInfo dataErrorInfo)) { + return null; + } + + return dataErrorInfo[_propertyName]; + } + } + + public string Error => throw new NotImplementedException(); + + public Action<MultistageParameterViewModel> EditingChangedCallback + { + get => _editingChangedCallback; + set => _editingChangedCallback = value; + } + + /// <summary> + /// Sets Editing Enabled flag based on currentvalue + /// </summary> + /// <returns></returns> + public bool UpdateEditingEnabled() + { + if (CurrentContent == null) { + EditingEnabled = false; + } else { + EditingEnabled = true; + } + + return EditingEnabled; + } + + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/NameOfMarkUpExtension.cs b/VECTO3GUI2020/Helper/NameOfMarkUpExtension.cs new file mode 100644 index 0000000000000000000000000000000000000000..0e5218d4007204b9647b23db8c84464a098d8743 --- /dev/null +++ b/VECTO3GUI2020/Helper/NameOfMarkUpExtension.cs @@ -0,0 +1,18 @@ +using System; +using System.Windows.Markup; + +namespace VECTO3GUI2020.Helper +{ + public class NameOfMarkUpExtension : MarkupExtension + { + #region Overrides of MarkupExtension + + public override object ProvideValue(IServiceProvider serviceProvider) + { + throw new NotImplementedException(); + return null; + } + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/NameResolver.cs b/VECTO3GUI2020/Helper/NameResolver.cs new file mode 100644 index 0000000000000000000000000000000000000000..022c954acad0c2257c9241babb061c9c2d3a4247 --- /dev/null +++ b/VECTO3GUI2020/Helper/NameResolver.cs @@ -0,0 +1,24 @@ +using System.Resources; +using Castle.Core.Internal; + +namespace VECTO3GUI2020.Helper +{ + public class NameResolver + { + public static string ResolveName(string propertyName, params ResourceManager[] resourceManagers) + { + foreach (var resourceManager in resourceManagers) + { + var resolvedName = resourceManager?.GetString(propertyName); + if (!resolvedName.IsNullOrEmpty()) + { + return resolvedName; + break; + } + } + + + return propertyName + "*"; + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/WindowHelper.cs b/VECTO3GUI2020/Helper/WindowHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..1e56f7c2a28c96993ea963584e8b4a016b3eaf9b --- /dev/null +++ b/VECTO3GUI2020/Helper/WindowHelper.cs @@ -0,0 +1,29 @@ +using System.Windows; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.Common; + +namespace VECTO3GUI2020.Helper +{ + public class WindowHelper : IWindowHelper + { + + + public void ShowWindow(object viewModel) + { + var window = new Window { + Content = viewModel, + Width = 800, + Height = 600, + WindowStartupLocation = WindowStartupLocation.CenterScreen + }; + + if (viewModel is IViewModelBase vmBase) { + window.Title = vmBase.Title; + } + + window.Show(); + } + + + } +} diff --git a/VECTO3GUI2020/Helper/XMLExtension.cs b/VECTO3GUI2020/Helper/XMLExtension.cs new file mode 100644 index 0000000000000000000000000000000000000000..ecfbba62efee447803d1bec4f8cb22d7f5387dab --- /dev/null +++ b/VECTO3GUI2020/Helper/XMLExtension.cs @@ -0,0 +1,107 @@ +using System; +using System.Diagnostics; +using System.Windows.Forms; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Schema; +using Castle.Core.Resource; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing.Impl; +using VECTO3GUI2020.Util.XML; +using VECTO3GUI2020.Util.XML.Interfaces; + + +namespace VECTO3GUI2020.Helper +{ + public static class XMLExtension + { + + public static XElement CreateSignatureElement(this IXMLComponentWriter componentWriter, XNamespace nameSpace, string uri, DigestData digestData, bool hash = false) + { + var di = XMLNamespaces.Di; + var signatureElement = new XElement(nameSpace + XMLNames.DI_Signature); + signatureElement.Add(new XElement(di + XMLNames.DI_Signature_Reference, new XAttribute(XMLNames.DI_Signature_Reference_URI_Attr, digestData.Reference))); + + var refElement = signatureElement.FirstNode as XElement; + refElement?.Add(new XElement(di + XMLNames.DI_Signature_Reference_Transforms)); + + var transformsElement = refElement?.FirstNode as XElement; + foreach (var digestDataCanonicalizationMethod in digestData.CanonicalizationMethods) { + transformsElement?.Add(new XElement(di + XMLNames.DI_Signature_Reference_Transforms_Transform, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, digestDataCanonicalizationMethod))); + } + + refElement?.Add(new XElement(di + XMLNames.DI_Signature_Reference_DigestMethod, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, digestData.DigestMethod))); + if (hash) { + throw new NotImplementedException("Hashing not implemented"); + } + refElement?.Add(new XElement(di + XMLNames.DI_Signature_Reference_DigestValue, digestData.DigestValue)); + + + return signatureElement; + } + + + public static XmlDocument ToXmlDocument(this XDocument xDocument) + { + var xmlDocument = new XmlDocument(); + using (var reader = xDocument.CreateReader()) + { + xmlDocument.Load(reader); + } + + var xDeclaration = xDocument.Declaration; + if (xDeclaration != null) + { + var xmlDeclaration = xmlDocument.CreateXmlDeclaration( + xDeclaration.Version, + xDeclaration.Encoding, + xDeclaration.Standalone); + + xmlDocument.InsertBefore(xmlDeclaration, xmlDocument.FirstChild); + } + + return xmlDocument; + } + + public static XmlNode ToXmlNode(this XElement element) + { + using (XmlReader xmlReader = element.CreateReader()) + { + XmlDocument xmlDocument = new XmlDocument(); + xmlDocument.Load(xmlReader); + return xmlDocument; + } + } + + public static string GetVersion(this XElement element) + { + return element.ToXmlNode().GetVersion(); + } + + public static string GetVersion(this XmlNode node) + { + if (node == null) + { + return null; + } + var version = XMLHelper.GetXsdType(node.SchemaInfo.SchemaType); + if (string.IsNullOrWhiteSpace(version)) + { + version = XMLHelper.GetVersionFromNamespaceUri((node.SchemaInfo.SchemaType?.Parent as XmlSchemaElement)?.QualifiedName.Namespace); + } + + return version; + } + + + public static string ToXmlFormat(this DateTime dateTime) + { + return XmlConvert.ToString(dateTime, XmlDateTimeSerializationMode.Utc); + } + +} +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/XmlHelper.cs b/VECTO3GUI2020/Helper/XmlHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..2db50eed495027b1c6d4bd7d60bad969eb4fd559 --- /dev/null +++ b/VECTO3GUI2020/Helper/XmlHelper.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Schema; +using Castle.Core.Internal; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Util.XML; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace VECTO3GUI2020.Helper +{ + public static class XmlHelper + { + public static XmlDocument ReadXmlDocument(string filePath) + { + if (filePath.IsNullOrEmpty()) + return null; + + var xmlDocument = new XmlDocument(); + + + xmlDocument.Load(filePath); + + return xmlDocument; + } + + + public static XmlNodeList GetComponentNodes(XmlDocument xmlDocument, string parentNode, string nodeName) + { + if (xmlDocument == null || parentNode.IsNullOrEmpty() || nodeName.IsNullOrEmpty()) + return null; + + return xmlDocument.SelectNodes($"//*[local-name()='{parentNode}']//*[local-name()='{nodeName}']"); + } + + public static bool ValidateXDocument(XDocument xDocument, Action<bool> resultAction = null, + Action<XmlSeverityType, ValidationEvent> validationErrorAction = null) + { + var xmlDocument = xDocument.ToXmlDocument(); + if (xmlDocument == null) + return false; + + var documentType = XMLHelper.GetDocumentType(xmlDocument.DocumentElement.LocalName); + if (documentType == null) + { + throw new VectoException("unknown xml file! {0}", xmlDocument.DocumentElement.LocalName); + } + + var validator = new XMLValidator(xmlDocument, resultAction, validationErrorAction); + return validator.ValidateXML(documentType.Value); ; + } + + public static string GetXmlAbsoluteFilePath(string baseUri) + { + if (baseUri == null) + return null; + + return Uri.UnescapeDataString(new Uri(baseUri).AbsolutePath); + } + + public static XDocument CreateWrapperDocument(this XElement xElement, XNamespace defaultNamespace, + XmlDocumentType docType = XmlDocumentType.DeclarationJobData) + { + var prefixMap = new Dictionary<string, XNamespace>(); + + var xDocument = new XDocument(); + var rootElement = new XElement(XMLNamespaces.Tns_v20 + XMLNames.VectoInputDeclaration, new XAttribute(XNamespace.Xmlns + "tns", + XMLNamespaces.Tns_v20)); + Debug.WriteLine(rootElement.ToString()); + + rootElement.Add(new XAttribute("xmlns", defaultNamespace)); + rootElement.Add(new XAttribute("schemaVersion", XMLHelper.GetVersionFromNamespaceUri(defaultNamespace))); + + xDocument.Add(rootElement); + + + + Dictionary<string, XNamespace> nsAttributes = new Dictionary<string, XNamespace> { + ["xsi"] = XMLNamespaces.Xsi + }; + + foreach (var element in xElement.DescendantsAndSelf()) { + var ns = element.Name.Namespace; + if (ns != defaultNamespace) { + var prefix = XMLNamespaces.GetPrefix(ns); + if(prefix != null) + nsAttributes[prefix] = ns; + } + } + + + foreach (var nsAttribute in nsAttributes) { + rootElement.Add(new XAttribute(XNamespace.Xmlns + nsAttribute.Key, nsAttribute.Value)); + } + + var LocalSchemaLocation = @"V:\VectoCore\VectoCore\Resources\XSD\"; + + rootElement.Add(new XAttribute(XMLNamespaces.Xsi + "schemaLocation", + $"{XMLNamespaces.DeclarationRootNamespace} {LocalSchemaLocation}VectoDeclarationJob.xsd")); + + + rootElement.Add(xElement); + + return xDocument; + } + } +} diff --git a/VECTO3GUI2020/MainWindow.xaml b/VECTO3GUI2020/MainWindow.xaml new file mode 100644 index 0000000000000000000000000000000000000000..73a0a4efb0ecca551477ec3772aa586d54540eff --- /dev/null +++ b/VECTO3GUI2020/MainWindow.xaml @@ -0,0 +1,43 @@ +<Window + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:VECTO3GUI2020" + xmlns:Implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" d:DataContext="{d:DesignInstance Type=Implementation:MainWindowViewModel}" x:Class="VECTO3GUI2020.MainWindow" + mc:Ignorable="d" + Title="Vecto" Height="450" Width="820" + WindowStartupLocation="CenterScreen" + AutomationProperties.Name="=" + x:Name="MainView"> + + + + <Grid x:Name="Grid" > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="40"/> + <RowDefinition Height="1.5*"/> + <RowDefinition Height="5"></RowDefinition> + <RowDefinition Height="1*"/> + </Grid.RowDefinitions> + + <StackPanel Grid.Row="0" Orientation="Vertical"> + <Menu x:Name="menu" AutomationProperties.Name="-" AutomationProperties.AutomationId="Test" IsMainMenu="True"> + <MenuItem Header="File" x:Name="MenuItemFile" AutomationProperties.Name="=" VerticalAlignment="Stretch"> + <MenuItem Header="Settings" Command="{Binding OpenSettings}"/> + <MenuItem Header="New File" Command="{Binding NewInterimFile}"/> + <MenuItem Header="Open File" Command="{Binding AddJob}"/> + </MenuItem> + </Menu> + </StackPanel> + + + <ContentControl Grid.Row="1" Margin="0, 4, 0 0" Content="{Binding CurrentViewModelTop}"/> + <GridSplitter Grid.Row="2" HorizontalAlignment="Stretch" Height="5"/> + <ContentControl Grid.Row="3" Margin="0,0,0,0" Name="ContentControlBottom" Content="{Binding CurrentViewModelBottom}"/> + + </Grid> +</Window> diff --git a/VECTO3GUI2020/MainWindow.xaml.cs b/VECTO3GUI2020/MainWindow.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..4e8b11eaee2ab358b1ae4d8fdfae1b07f56419be --- /dev/null +++ b/VECTO3GUI2020/MainWindow.xaml.cs @@ -0,0 +1,26 @@ +using System.Windows; +using VECTO3GUI2020.ViewModel.Interfaces; + +namespace VECTO3GUI2020 +{ + /// <summary> + /// Interaktionslogik für MainWindow.xaml + /// </summary> + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + + + + + + public MainWindow(IMainWindowViewModel viewModel) + { + InitializeComponent(); + DataContext = viewModel; + } + } +} diff --git a/VECTO3GUI2020/Model/Implementation/SettingsModel.cs b/VECTO3GUI2020/Model/Implementation/SettingsModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..d22c2f4e121a26c30804ad854e77780d888ba44e --- /dev/null +++ b/VECTO3GUI2020/Model/Implementation/SettingsModel.cs @@ -0,0 +1,8 @@ +using VECTO3GUI2020.Model.Interfaces; + +namespace VECTO3GUI2020.Model.Implementation +{ + public class SettingsModel : ISettingsModel + { + } +} diff --git a/VECTO3GUI2020/Model/Interfaces/IAuxiliaryModelFactory.cs b/VECTO3GUI2020/Model/Interfaces/IAuxiliaryModelFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..208e2631c71c5427072084f101c7fc1bd6986a13 --- /dev/null +++ b/VECTO3GUI2020/Model/Interfaces/IAuxiliaryModelFactory.cs @@ -0,0 +1,15 @@ +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.Models.Declaration; + +namespace VECTO3GUI2020.Model.Interfaces +{ + + public interface IAuxiliaryModelFactory + { + /// <summary> + /// Creates a new AuxiliaryModel + /// </summary> + /// <param name="auxiliaryType">Is used to determine wich AuxiliaryModel is created</param> + IDeclarationAuxiliaryTable CreateAuxiliaryModel(AuxiliaryType auxiliaryType); + } +} diff --git a/VECTO3GUI2020/Model/Interfaces/ISettingsModel.cs b/VECTO3GUI2020/Model/Interfaces/ISettingsModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..49f55f27b4ac31bf91608a983e6098e9f4b05e94 --- /dev/null +++ b/VECTO3GUI2020/Model/Interfaces/ISettingsModel.cs @@ -0,0 +1,7 @@ +namespace VECTO3GUI2020.Model.Interfaces +{ + public interface ISettingsModel + { + + } +} diff --git a/VECTO3GUI2020/Ninject/DocumentModule.cs b/VECTO3GUI2020/Ninject/DocumentModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..8e2f284c2f865e218d820bbef3cef9a0cfdbedcd --- /dev/null +++ b/VECTO3GUI2020/Ninject/DocumentModule.cs @@ -0,0 +1,26 @@ +using Ninject.Extensions.Factory; +using Ninject.Modules; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.Document; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace VECTO3GUI2020.Ninject +{ + public class DocumentModule : NinjectModule + { + public override void Load() + { + + Bind<IDocumentViewModel>().To<DeclarationJobViewModel>().Named(XmlDocumentType.DeclarationJobData.ToString()); + Bind<IDocumentViewModel>().To<MultiStageJobViewModel_v0_1>() + .Named(XmlDocumentType.MultistageOutputData.ToString()); + //Bind<IDocumentViewModel>().To<MultistageJobViewModel>().Named(XmlDocumentType.MultistageOutputData.ToString()); + //Bind<IDocumentViewModel>().To<DeclarationTrailerJobDocumentViewModel>().Named(XmlDocumentType.DeclarationTrailerJobData.ToString()); + + } + } +} diff --git a/VECTO3GUI2020/Ninject/FactoryModule.cs b/VECTO3GUI2020/Ninject/FactoryModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..8dffd4b7be9e5c7ca138b2a6952be477c2b709b8 --- /dev/null +++ b/VECTO3GUI2020/Ninject/FactoryModule.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ninject.Extensions.Factory; +using Ninject.Modules; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace VECTO3GUI2020.Ninject +{ + public class FactoryModule : NinjectModule + { + public override void Load() + { + Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider(fallback:true)); + //Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true)); + Bind<IMultiStageViewModelFactory>().ToFactory(); + Bind<IJobEditViewModelFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider()); + Bind<IDocumentViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(false)); + Bind<IComponentViewModelFactory>().ToFactory( + () => new UseFirstArgumentTypeAsNameInstanceProvider(true)); + } + } +} diff --git a/VECTO3GUI2020/Ninject/IMultistageDependencies.cs b/VECTO3GUI2020/Ninject/IMultistageDependencies.cs new file mode 100644 index 0000000000000000000000000000000000000000..33a375cbb7dc549465730fcc0d49487d789d06fe --- /dev/null +++ b/VECTO3GUI2020/Ninject/IMultistageDependencies.cs @@ -0,0 +1,22 @@ +using System; +using System.Windows.Forms; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Ninject +{ + public interface IMultistageDependencies + { + Lazy<IDialogHelper> DialogHelperLazy { get; } + + IDialogHelper DialogHelper { get; } + IDeclarationInjectFactory InjectFactory { get; } + IComponentViewModelFactory ComponentViewModelFactory { get; } + + IXMLWriterFactory XMLWriterFactory { get; } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Ninject/JobEditModule.cs b/VECTO3GUI2020/Ninject/JobEditModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..817a490777255850e811a0596b05528092aeb000 --- /dev/null +++ b/VECTO3GUI2020/Ninject/JobEditModule.cs @@ -0,0 +1,23 @@ +using Ninject.Extensions.Factory; +using Ninject.Modules; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; + +namespace VECTO3GUI2020.Ninject +{ + public class JobEditModule : NinjectModule + { + public override void Load() + { + + Bind<IJobEditViewModel>().To<DeclarationJobEditViewModel_v1_0>().Named(DeclarationJobEditViewModel_v1_0.VERSION); + Bind<IJobEditViewModel>().To<DeclarationJobEditViewModel_v2_0>().Named(DeclarationJobEditViewModel_v2_0.VERSION); + + } + + } +} diff --git a/VECTO3GUI2020/Ninject/MultistageLazyDependencies.cs b/VECTO3GUI2020/Ninject/MultistageLazyDependencies.cs new file mode 100644 index 0000000000000000000000000000000000000000..b268e93677b245278571010fde2f3383fdf23595 --- /dev/null +++ b/VECTO3GUI2020/Ninject/MultistageLazyDependencies.cs @@ -0,0 +1,48 @@ +using System; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace VECTO3GUI2020.Ninject +{ + public class MultistageLazyDependencies : IMultistageDependencies + { + + private readonly Lazy<IDialogHelper> _dialogHelper; + public Lazy<IDialogHelper> DialogHelperLazy => _dialogHelper; + public IDialogHelper DialogHelper => _dialogHelper.Value; + + + //private readonly Lazy<XMLValidator> _xmlValidator = new Lazy<XMLValidator>(() => {return }); + //public Lazy<XMLValidator> XMLValidatorLazy => _xmlValidator; + //public XMLValidator XMLValidator => _xmlValidator.Value; + + + public IDeclarationInjectFactory InjectFactory => _injectFactory.Value; + public IComponentViewModelFactory ComponentViewModelFactory => _componentViewModelFactory.Value; + public IXMLWriterFactory XMLWriterFactory => _xmlWriterFactory.Value; + + private Lazy<IXMLWriterFactory> _xmlWriterFactory; + + + private readonly Lazy<IDeclarationInjectFactory> _injectFactory; + private readonly Lazy<IComponentViewModelFactory> _componentViewModelFactory; + public MultistageLazyDependencies( + Lazy<IDialogHelper> dialogHelper, + Lazy<IDeclarationInjectFactory> injectFactory, + Lazy<IComponentViewModelFactory> componentViewModelFactory, + Lazy<IXMLWriterFactory> xmlWriterFactory, + Lazy<IMultiStageViewModelFactory> viewModelFactory) + { + _dialogHelper = dialogHelper; + _componentViewModelFactory = componentViewModelFactory; + _injectFactory = injectFactory; + _xmlWriterFactory = xmlWriterFactory; + + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Ninject/MultistageModule.cs b/VECTO3GUI2020/Ninject/MultistageModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..c36e13772ffe0bc172f7b9eb92b7bbd1cc8c750b --- /dev/null +++ b/VECTO3GUI2020/Ninject/MultistageModule.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Automation.Peers; +using Ninject.Extensions.Factory; +using Ninject.Modules; +using TUGraz.VectoCore.Models.SimulationComponent; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.ViewModel.Interfaces.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace VECTO3GUI2020.Ninject +{ + public class MultistageModule : NinjectModule + { + public override void Load() + { + + Bind<IViewModelBase>().To<NewMultiStageJobViewModel>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetNewMultistageJobViewModel()); + + Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null)); + + Bind<IVehicleViewModel>().To<DeclarationInterimStageBusVehicleViewModel_v2_8>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel()); + + Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null)); + + Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultistageAirdragViewModel()); + + Bind<IMultistageAuxiliariesViewModel>().To<MultistageAuxiliariesViewModel>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetAuxiliariesViewModel(null)); + + Bind<IMultistageDependencies>().To<MultistageLazyDependencies>(); + } + } +} diff --git a/VECTO3GUI2020/Ninject/Util/UseFirstArgumentAsNameInstanceProvider.cs b/VECTO3GUI2020/Ninject/Util/UseFirstArgumentAsNameInstanceProvider.cs new file mode 100644 index 0000000000000000000000000000000000000000..97c89dbee42dae4e3be87b0c04d4244067f89d9b --- /dev/null +++ b/VECTO3GUI2020/Ninject/Util/UseFirstArgumentAsNameInstanceProvider.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; +using System.Reflection; +using Ninject.Extensions.Factory; +using Ninject.Extensions.Factory.Factory; +using Ninject.Parameters; +using TUGraz.VectoCommon.Exceptions; + +namespace VECTO3GUI2020.Ninject.Util +{ + /// <summary> + /// Ninject Instance Provider uses the first argument as name to resolve a named binding. + /// </summary> + public class UseFirstArgumentAsNameInstanceProvider : StandardInstanceProvider + { + private bool _skipFirstArgument = true; + public UseFirstArgumentAsNameInstanceProvider(bool skipFirstArgument=true, bool fallback=false) : base() + { + _skipFirstArgument = skipFirstArgument; + base.Fallback = fallback; + } + + public UseFirstArgumentAsNameInstanceProvider() : base() + { + + } + + protected override IConstructorArgument[] GetConstructorArguments(MethodInfo methodInfo, object[] arguments) + { + if (arguments.Length == 0) { + return base.GetConstructorArguments(methodInfo, arguments).ToArray(); + } + return base.GetConstructorArguments(methodInfo, arguments).Skip(_skipFirstArgument ? 1 : 0).ToArray(); + } + + protected override string GetName(MethodInfo methodInfo, object[] arguments) + { + if (arguments.Length == 0) { + return ""; + } + return arguments[0].ToString(); + } + + 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; + } + } + } +} diff --git a/VECTO3GUI2020/Ninject/Util/UseFirstArgumentTypeAsNameInstanceProvider.cs b/VECTO3GUI2020/Ninject/Util/UseFirstArgumentTypeAsNameInstanceProvider.cs new file mode 100644 index 0000000000000000000000000000000000000000..a2bf886cd28a986538efedf6154759ae06d44d6a --- /dev/null +++ b/VECTO3GUI2020/Ninject/Util/UseFirstArgumentTypeAsNameInstanceProvider.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; +using System.Reflection; +using Ninject.Extensions.Factory; +using Ninject.Extensions.Factory.Factory; +using Ninject.Parameters; +using Ninject.Planning.Bindings; +using TUGraz.VectoCommon.Exceptions; + +namespace VECTO3GUI2020.Ninject.Util +{ + /// <summary> + /// Ninject Instance Provider + /// uses the type of the first argument as name to resolve a named binding + /// </summary> + public class UseFirstArgumentTypeAsNameInstanceProvider + : StandardInstanceProvider + { + + public UseFirstArgumentTypeAsNameInstanceProvider() : base() + { + + } + /// <summary> + /// Constructor for UseFirstArgumentTypeAsNameInstanceProvider + /// </summary> + /// <param name="fallback">set to true if you want a binding without name as fallback</param> + public UseFirstArgumentTypeAsNameInstanceProvider(bool fallback) : base() + { + base.Fallback = fallback; + } + protected override IConstructorArgument[] GetConstructorArguments(MethodInfo methodInfo, object[] arguments) + { + + return base.GetConstructorArguments(methodInfo, arguments).ToArray(); + } + + protected override string GetName(MethodInfo methodInfo, object[] arguments) + { + var name = arguments[0].GetType().ToString(); + return name; + } + + 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]); + } + } + } +} diff --git a/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs b/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..edbbce58125ff6731a7d06984f093e08a7a5814c --- /dev/null +++ b/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs @@ -0,0 +1,122 @@ +using Ninject.Extensions.Factory; +using Ninject.Modules; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.Models.Declaration; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace VECTO3GUI2020.Ninject.Vehicle +{ + public class ComponentModule : NinjectModule + { + public override void Load() + { + + #region IComponentViewModelFactory + + + + Bind<IVehicleViewModel>().To<VehicleViewModel_v1_0>().Named(VehicleViewModel_v1_0.VERSION); + Bind<IVehicleViewModel>().To<VehicleViewModel_v2_0>().Named(VehicleViewModel_v2_0.VERSION); + + //Bind<IVehicleViewModel>().To<DeclarationInterimStageBusVehicleViewModel_v2_8>() + // .Named(DeclarationInterimStageBusVehicleViewModel_v2_8.INPUTPROVIDERTYPE).BindingConfiguration.; + + + Bind<IComponentViewModel>().To<EngineViewModel_v1_0>().Named(EngineViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<EngineViewModel_v2_0>().Named(EngineViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<AirDragViewModel_v1_0>().Named(AirDragViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AirDragViewModel_v2_0>().Named(AirDragViewModel_v2_0.VERSION); + Bind<IComponentViewModel>().To<AirDragViewModel_v2_8>().Named(AirDragViewModel_v2_8.VERSION); + + Bind<IComponentViewModel>().To<AxleWheelsViewModel_v1_0>().Named(AxleWheelsViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AxleWheelsViewModel_v2_0>().Named(AxleWheelsViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<AxleGearViewModel_v1_0>().Named(AxleGearViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AxleGearViewModel_v2_0>().Named(AxleGearViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<RetarderViewModel_v1_0>().Named(RetarderViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<RetarderViewModel_v2_0>().Named(RetarderViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<GearboxViewModel_v1_0>().Named(GearboxViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<GearboxViewModel_v2_0>().Named(GearboxViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<AuxiliariesViewModel_v1_0>().Named(AuxiliariesViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AuxiliariesViewModel_v2_0>().Named(AuxiliariesViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<AxleViewModel_v1_0>().Named(AxleViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AxleViewModel_v2_0>().Named(AxleViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<TyreViewModel_v1_0>().Named(TyreViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<TyreViewModel_v2_0>().Named(TyreViewModel_v2_0.VERSION); + Bind<IComponentViewModel>().To<TyreViewModel_v2_2>().Named(TyreViewModel_v2_2.VERSION); + Bind<IComponentViewModel>().To<TyreViewModel_v2_3>().Named(TyreViewModel_v2_3.VERSION); + + Bind<IComponentViewModel>().To<GearViewModel_v1_0>().Named(GearViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<GearViewModel_v2_0>().Named(GearViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<PTOViewModel_V1_0>().Named(PTOViewModel_V1_0.VERSION); + Bind<IComponentViewModel>().To<PTOViewModel_V2_0>().Named(PTOViewModel_V2_0.VERSION); + + Bind<IComponentViewModel>().To<AngleDriveViewModel_v1_0>().Named(AngleDriveViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AngleDriveViewModel_v2_0>().Named(AngleDriveViewModel_v2_0.VERSION); + + Bind<IComponentViewModel>().To<AuxiliaryViewModel_v1_0>().Named(AuxiliaryViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<AuxiliaryViewModel_v2_0>().Named(AuxiliaryViewModel_v2_0.VERSION); + Bind<IComponentViewModel>().To<AuxiliaryViewModel_v2_3>().Named(AuxiliaryViewModel_v2_3.VERSION); + + Bind<IAdasViewModel>().To<ADASViewModel_v1_0>().Named(ADASViewModel_v1_0.VERSION); + Bind<IAdasViewModel>().To<ADASViewModel_v2_1>().Named(ADASViewModel_v2_1.VERSION); + Bind<IAdasViewModel>().To<ADASViewModel_v2_3>().Named(ADASViewModel_v2_3.VERSION); + Bind<IAdasViewModel>().To<ADASViewModel_v2_3>(); //Default ADAS ViewModel if no matching binding is available; + + Bind<IEngineModeViewModel>().To<EngineModeViewModelSingleFuel>() + .Named(EngineModeViewModelSingleFuel.VERSION); + + Bind<IEngineFuelViewModel>().To<EngineFuelViewModel>(); + + + Bind<IComponentViewModel>().To<TorqueConverterViewModel_v1_0>() + .Named(TorqueConverterViewModel_v1_0.VERSION); + Bind<IComponentViewModel>().To<TorqueConverterViewModel_v2_0>() + .Named(TorqueConverterViewModel_v2_0.VERSION); + + + Bind<IComponentsViewModel>().To<ComponentsViewModel_v1_0>().Named(ComponentsViewModel_v1_0.VERSION); + Bind<IComponentsViewModel>().To<ComponentsViewModel_v2_0>().Named(ComponentsViewModel_v2_0.VERSION); + + Bind<ICommonComponentViewModel>().To<CommonComponentViewModel>(); + #endregion + + + + #region AuxiliaryModelFactory + Bind<IAuxiliaryModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider()); + + Bind<IDeclarationAuxiliaryTable>().To<ElectricSystem>(). + Named(AuxiliaryType.ElectricSystem.ToString()); + + Bind<IDeclarationAuxiliaryTable>().To<Fan>(). + Named(AuxiliaryType.Fan.ToString()); + + Bind<IDeclarationAuxiliaryTable>().To<HeatingVentilationAirConditioning>(). + Named(AuxiliaryType.HVAC.ToString()); + + Bind<IDeclarationAuxiliaryTable>().To<PneumaticSystem>(). + Named(AuxiliaryType.PneumaticSystem.ToString()); + + Bind<IDeclarationAuxiliaryTable>().To<SteeringPump>(). + Named(AuxiliaryType.SteeringPump.ToString()); + + #endregion + } + } +} diff --git a/VECTO3GUI2020/Ninject/XMLWriterFactoryModule.cs b/VECTO3GUI2020/Ninject/XMLWriterFactoryModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c9912f5a1c1c854eea2f24d8ddf0fe621aef886 --- /dev/null +++ b/VECTO3GUI2020/Ninject/XMLWriterFactoryModule.cs @@ -0,0 +1,107 @@ +using System; +using Ninject.Extensions.Factory; +using Ninject.Modules; +using VECTO3GUI2020.Ninject.Util; +using VECTO3GUI2020.Util.XML.Implementation; +using VECTO3GUI2020.Util.XML.Implementation.ComponentWriter; +using VECTO3GUI2020.Util.XML.Implementation.DocumentWriter; +using VECTO3GUI2020.Util.XML.Interfaces; + +namespace VECTO3GUI2020.Ninject +{ + public class XMLWriterFactoryModule : NinjectModule + { + public override void Load() + { + + + Array.ForEach( + XMLDeclarationJobWriter_v1_0.SUPPORTED_VERSIONS, + (sv=> + Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v1_0>().Named(sv))); + + Array.ForEach( + XMLDeclarationJobWriter_v2_0.SUPPORTED_VERSIONS, + (sv => + Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v2_0>().Named(sv))); + + Array.ForEach( + XMLPTOWriter_v1_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v1_0>().Named(sv)); + + Array.ForEach( + XMLPTOWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v2_0>().Named(sv)); + + + Array.ForEach( + XMLVehicleWriter_v1_0.SUPPORTEDVERSIONS, + (sv) => + Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v1_0>().Named(sv)); + + Array.ForEach( + XMLVehicleWriter_v2_0.SUPPORTEDVERSIONS, + sv => + Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLVehicleWriter_v2_8.SUPPORTEDVERSIONS, + sv => + Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_8>().Named(sv)); + + Array.ForEach( + XMLComponentsWriter_v1_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v1_0>().Named(sv)); + + Array.ForEach( + XMLComponentsWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLEngineWriter_v1_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v1_0>().Named(sv)); + + Array.ForEach( + XMLEngineWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLGearboxWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLGearboxWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLRetarderWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLRetarderWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLAxleGearWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLAxleGearWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLAxleWheelsWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLAxleWheelsWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLAxleWheelWriter_v2_0.SUPPORTED_VERSIONS, + sv=> Bind<IXMLComponentWriter>().To<XMLAxleWheelWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLTyreWriter_v2_0.SUPPORTED_VERSIONS, + sv=> Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_0>().Named(sv)); + + Array.ForEach( + XMLTyreWriter_v2_3.SUPPORTED_VERSIONS, + sv=>Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_3>().Named(sv)); + + Array.ForEach( + XMLAuxiliariesWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLAuxiliariesWriter_v2_0>().Named(sv)); + Array.ForEach( + XMLAirDragWriter_v2_0.SUPPORTED_VERSIONS, + sv => Bind<IXMLComponentWriter>().To<XMLAirDragWriter_v2_0>().Named(sv)); + + Bind<IXMLBusAuxiliariesWriter>().To<XMLBusAuxiliariesWriterMultistage>(); + + } + } +} diff --git a/VECTO3GUI2020/Properties/Annotations.cs b/VECTO3GUI2020/Properties/Annotations.cs new file mode 100644 index 0000000000000000000000000000000000000000..7e0233fb501b144de5f328486cb484e776e71d70 --- /dev/null +++ b/VECTO3GUI2020/Properties/Annotations.cs @@ -0,0 +1,1236 @@ +/* MIT License + +Copyright (c) 2016 JetBrains http://www.jetbrains.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. */ + +using System; +// ReSharper disable InheritdocConsiderUsage + +#pragma warning disable 1591 +// ReSharper disable UnusedMember.Global +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedAutoPropertyAccessor.Global +// ReSharper disable IntroduceOptionalParameters.Global +// ReSharper disable MemberCanBeProtected.Global +// ReSharper disable InconsistentNaming + +namespace VECTO3GUI2020.Annotations +{ + /// <summary> + /// Indicates that the value of the marked element could be <c>null</c> sometimes, + /// so checking for <c>null</c> is required before its usage. + /// </summary> + /// <example><code> + /// [CanBeNull] object Test() => null; + /// + /// void UseTest() { + /// var p = Test(); + /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event | + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)] + public sealed class CanBeNullAttribute : Attribute { } + + /// <summary> + /// Indicates that the value of the marked element can never be <c>null</c>. + /// </summary> + /// <example><code> + /// [NotNull] object Foo() { + /// return null; // Warning: Possible 'null' assignment + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event | + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)] + public sealed class NotNullAttribute : Attribute { } + + /// <summary> + /// Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property + /// or of the Lazy.Value property can never be null. + /// </summary> + /// <example><code> + /// public void Foo([ItemNotNull]List<string> books) + /// { + /// foreach (var book in books) { + /// if (book != null) // Warning: Expression is always true + /// Console.WriteLine(book.ToUpper()); + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field)] + public sealed class ItemNotNullAttribute : Attribute { } + + /// <summary> + /// Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property + /// or of the Lazy.Value property can be null. + /// </summary> + /// <example><code> + /// public void Foo([ItemCanBeNull]List<string> books) + /// { + /// foreach (var book in books) + /// { + /// // Warning: Possible 'System.NullReferenceException' + /// Console.WriteLine(book.ToUpper()); + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field)] + public sealed class ItemCanBeNullAttribute : Attribute { } + + /// <summary> + /// Indicates that the marked method builds string by the format pattern and (optional) arguments. + /// The parameter, which contains the format string, should be given in constructor. The format string + /// should be in <see cref="string.Format(IFormatProvider,string,object[])"/>-like form. + /// </summary> + /// <example><code> + /// [StringFormatMethod("message")] + /// void ShowError(string message, params object[] args) { /* do something */ } + /// + /// void Foo() { + /// ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Constructor | AttributeTargets.Method | + AttributeTargets.Property | AttributeTargets.Delegate)] + public sealed class StringFormatMethodAttribute : Attribute + { + /// <param name="formatParameterName"> + /// Specifies which parameter of an annotated method should be treated as the format string + /// </param> + public StringFormatMethodAttribute([NotNull] string formatParameterName) + { + FormatParameterName = formatParameterName; + } + + [NotNull] public string FormatParameterName { get; } + } + + /// <summary> + /// Use this annotation to specify a type that contains static or const fields + /// with values for the annotated property/field/parameter. + /// The specified type will be used to improve completion suggestions. + /// </summary> + /// <example><code> + /// namespace TestNamespace + /// { + /// public class Constants + /// { + /// public static int INT_CONST = 1; + /// public const string STRING_CONST = "1"; + /// } + /// + /// public class Class1 + /// { + /// [ValueProvider("TestNamespace.Constants")] public int myField; + /// public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + /// + /// public void Test() + /// { + /// Foo(/*try completion here*/);// + /// myField = /*try completion here*/ + /// } + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field, + AllowMultiple = true)] + public sealed class ValueProviderAttribute : Attribute + { + public ValueProviderAttribute([NotNull] string name) + { + Name = name; + } + + [NotNull] public string Name { get; } + } + + /// <summary> + /// Indicates that the integral value falls into the specified interval. + /// It's allowed to specify multiple non-intersecting intervals. + /// Values of interval boundaries are inclusive. + /// </summary> + /// <example><code> + /// void Foo([ValueRange(0, 100)] int value) { + /// if (value == -1) { // Warning: Expression is always 'false' + /// ... + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property | + AttributeTargets.Method | AttributeTargets.Delegate, + AllowMultiple = true)] + public sealed class ValueRangeAttribute : Attribute + { + public object From { get; } + public object To { get; } + + public ValueRangeAttribute(long from, long to) + { + From = from; + To = to; + } + + public ValueRangeAttribute(ulong from, ulong to) + { + From = from; + To = to; + } + + public ValueRangeAttribute(long value) + { + From = To = value; + } + + public ValueRangeAttribute(ulong value) + { + From = To = value; + } + } + + /// <summary> + /// Indicates that the integral value never falls below zero. + /// </summary> + /// <example><code> + /// void Foo([NonNegativeValue] int value) { + /// if (value == -1) { // Warning: Expression is always 'false' + /// ... + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property | + AttributeTargets.Method | AttributeTargets.Delegate)] + public sealed class NonNegativeValueAttribute : Attribute { } + + /// <summary> + /// Indicates that the function argument should be a string literal and match one + /// of the parameters of the caller function. For example, ReSharper annotates + /// the parameter of <see cref="System.ArgumentNullException"/>. + /// </summary> + /// <example><code> + /// void Foo(string param) { + /// if (param == null) + /// throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class InvokerParameterNameAttribute : Attribute { } + + /// <summary> + /// Indicates that the method is contained in a type that implements + /// <c>System.ComponentModel.INotifyPropertyChanged</c> interface and this method + /// is used to notify that some property value changed. + /// </summary> + /// <remarks> + /// The method should be non-static and conform to one of the supported signatures: + /// <list> + /// <item><c>NotifyChanged(string)</c></item> + /// <item><c>NotifyChanged(params string[])</c></item> + /// <item><c>NotifyChanged{T}(Expression{Func{T}})</c></item> + /// <item><c>NotifyChanged{T,U}(Expression{Func{T,U}})</c></item> + /// <item><c>SetProperty{T}(ref T, T, string)</c></item> + /// </list> + /// </remarks> + /// <example><code> + /// public class Foo : INotifyPropertyChanged { + /// public event PropertyChangedEventHandler PropertyChanged; + /// + /// [NotifyPropertyChangedInvocator] + /// protected virtual void NotifyChanged(string propertyName) { ... } + /// + /// string _name; + /// + /// public string Name { + /// get { return _name; } + /// set { _name = value; NotifyChanged("LastName"); /* Warning */ } + /// } + /// } + /// </code> + /// Examples of generated notifications: + /// <list> + /// <item><c>NotifyChanged("Property")</c></item> + /// <item><c>NotifyChanged(() => Property)</c></item> + /// <item><c>NotifyChanged((VM x) => x.Property)</c></item> + /// <item><c>SetProperty(ref myField, value, "Property")</c></item> + /// </list> + /// </example> + [AttributeUsage(AttributeTargets.Method)] + public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute + { + public NotifyPropertyChangedInvocatorAttribute() { } + public NotifyPropertyChangedInvocatorAttribute([NotNull] string parameterName) + { + ParameterName = parameterName; + } + + [CanBeNull] public string ParameterName { get; } + } + + /// <summary> + /// Describes dependency between method input and output. + /// </summary> + /// <syntax> + /// <p>Function Definition Table syntax:</p> + /// <list> + /// <item>FDT ::= FDTRow [;FDTRow]*</item> + /// <item>FDTRow ::= Input => Output | Output <= Input</item> + /// <item>Input ::= ParameterName: Value [, Input]*</item> + /// <item>Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item> + /// <item>Value ::= true | false | null | notnull | canbenull</item> + /// </list> + /// If the method has a single input parameter, its name could be omitted.<br/> + /// Using <c>halt</c> (or <c>void</c>/<c>nothing</c>, which is the same) for the method output + /// means that the method doesn't return normally (throws or terminates the process).<br/> + /// Value <c>canbenull</c> is only applicable for output parameters.<br/> + /// You can use multiple <c>[ContractAnnotation]</c> for each FDT row, or use single attribute + /// with rows separated by semicolon. There is no notion of order rows, all rows are checked + /// for applicability and applied per each program state tracked by the analysis engine.<br/> + /// </syntax> + /// <examples><list> + /// <item><code> + /// [ContractAnnotation("=> halt")] + /// public void TerminationMethod() + /// </code></item> + /// <item><code> + /// [ContractAnnotation("null <= param:null")] // reverse condition syntax + /// public string GetName(string surname) + /// </code></item> + /// <item><code> + /// [ContractAnnotation("s:null => true")] + /// public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + /// </code></item> + /// <item><code> + /// // A method that returns null if the parameter is null, + /// // and not null if the parameter is not null + /// [ContractAnnotation("null => null; notnull => notnull")] + /// public object Transform(object data) + /// </code></item> + /// <item><code> + /// [ContractAnnotation("=> true, result: notnull; => false, result: null")] + /// public bool TryParse(string s, out Person result) + /// </code></item> + /// </list></examples> + [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] + public sealed class ContractAnnotationAttribute : Attribute + { + public ContractAnnotationAttribute([NotNull] string contract) + : this(contract, false) { } + + public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates) + { + Contract = contract; + ForceFullStates = forceFullStates; + } + + [NotNull] public string Contract { get; } + + public bool ForceFullStates { get; } + } + + /// <summary> + /// Indicates whether the marked element should be localized. + /// </summary> + /// <example><code> + /// [LocalizationRequiredAttribute(true)] + /// class Foo { + /// string str = "my string"; // Warning: Localizable string + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.All)] + public sealed class LocalizationRequiredAttribute : Attribute + { + public LocalizationRequiredAttribute() : this(true) { } + + public LocalizationRequiredAttribute(bool required) + { + Required = required; + } + + public bool Required { get; } + } + + /// <summary> + /// Indicates that the value of the marked type (or its derivatives) + /// cannot be compared using '==' or '!=' operators and <c>Equals()</c> + /// should be used instead. However, using '==' or '!=' for comparison + /// with <c>null</c> is always permitted. + /// </summary> + /// <example><code> + /// [CannotApplyEqualityOperator] + /// class NoEquality { } + /// + /// class UsesNoEquality { + /// void Test() { + /// var ca1 = new NoEquality(); + /// var ca2 = new NoEquality(); + /// if (ca1 != null) { // OK + /// bool condition = ca1 == ca2; // Warning + /// } + /// } + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class | AttributeTargets.Struct)] + public sealed class CannotApplyEqualityOperatorAttribute : Attribute { } + + /// <summary> + /// When applied to a target attribute, specifies a requirement for any type marked + /// with the target attribute to implement or inherit specific type or types. + /// </summary> + /// <example><code> + /// [BaseTypeRequired(typeof(IComponent)] // Specify requirement + /// class ComponentAttribute : Attribute { } + /// + /// [Component] // ComponentAttribute requires implementing IComponent interface + /// class MyComponent : IComponent { } + /// </code></example> + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + [BaseTypeRequired(typeof(Attribute))] + public sealed class BaseTypeRequiredAttribute : Attribute + { + public BaseTypeRequiredAttribute([NotNull] Type baseType) + { + BaseType = baseType; + } + + [NotNull] public Type BaseType { get; } + } + + /// <summary> + /// Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + /// so this symbol will not be reported as unused (as well as by other usage inspections). + /// </summary> + [AttributeUsage(AttributeTargets.All)] + public sealed class UsedImplicitlyAttribute : Attribute + { + public UsedImplicitlyAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + UseKindFlags = useKindFlags; + TargetFlags = targetFlags; + } + + public ImplicitUseKindFlags UseKindFlags { get; } + + public ImplicitUseTargetFlags TargetFlags { get; } + } + + /// <summary> + /// Can be applied to attributes, type parameters, and parameters of a type assignable from <see cref="System.Type"/> . + /// When applied to an attribute, the decorated attribute behaves the same as <see cref="UsedImplicitlyAttribute"/>. + /// When applied to a type parameter or to a parameter of type <see cref="System.Type"/>, indicates that the corresponding type + /// is used implicitly. + /// </summary> + [AttributeUsage(AttributeTargets.Class | AttributeTargets.GenericParameter | AttributeTargets.Parameter)] + public sealed class MeansImplicitUseAttribute : Attribute + { + public MeansImplicitUseAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + UseKindFlags = useKindFlags; + TargetFlags = targetFlags; + } + + [UsedImplicitly] public ImplicitUseKindFlags UseKindFlags { get; } + + [UsedImplicitly] public ImplicitUseTargetFlags TargetFlags { get; } + } + + /// <summary> + /// Specify the details of implicitly used symbol when it is marked + /// with <see cref="MeansImplicitUseAttribute"/> or <see cref="UsedImplicitlyAttribute"/>. + /// </summary> + [Flags] + public enum ImplicitUseKindFlags + { + Default = Access | Assign | InstantiatedWithFixedConstructorSignature, + /// <summary>Only entity marked with attribute considered used.</summary> + Access = 1, + /// <summary>Indicates implicit assignment to a member.</summary> + Assign = 2, + /// <summary> + /// Indicates implicit instantiation of a type with fixed constructor signature. + /// That means any unused constructor parameters won't be reported as such. + /// </summary> + InstantiatedWithFixedConstructorSignature = 4, + /// <summary>Indicates implicit instantiation of a type.</summary> + InstantiatedNoFixedConstructorSignature = 8, + } + + /// <summary> + /// Specify what is considered to be used implicitly when marked + /// with <see cref="MeansImplicitUseAttribute"/> or <see cref="UsedImplicitlyAttribute"/>. + /// </summary> + [Flags] + public enum ImplicitUseTargetFlags + { + Default = Itself, + Itself = 1, + /// <summary>Members of entity marked with attribute are considered used.</summary> + Members = 2, + /// <summary> Inherited entities are considered used. </summary> + WithInheritors = 4, + /// <summary>Entity marked with attribute and all its members considered used.</summary> + WithMembers = Itself | Members + } + + /// <summary> + /// This attribute is intended to mark publicly available API + /// which should not be removed and so is treated as used. + /// </summary> + [MeansImplicitUse(ImplicitUseTargetFlags.WithMembers)] + [AttributeUsage(AttributeTargets.All, Inherited = false)] + public sealed class PublicAPIAttribute : Attribute + { + public PublicAPIAttribute() { } + + public PublicAPIAttribute([NotNull] string comment) + { + Comment = comment; + } + + [CanBeNull] public string Comment { get; } + } + + /// <summary> + /// Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + /// If the parameter is a delegate, indicates that delegate is executed while the method is executed. + /// If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class InstantHandleAttribute : Attribute { } + + /// <summary> + /// Indicates that a method does not make any observable state changes. + /// The same as <c>System.Diagnostics.Contracts.PureAttribute</c>. + /// </summary> + /// <example><code> + /// [Pure] int Multiply(int x, int y) => x * y; + /// + /// void M() { + /// Multiply(123, 42); // Warning: Return value of pure method is not used + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Method)] + public sealed class PureAttribute : Attribute { } + + /// <summary> + /// Indicates that the return value of the method invocation must be used. + /// </summary> + /// <remarks> + /// Methods decorated with this attribute (in contrast to pure methods) might change state, + /// but make no sense without using their return value. <br/> + /// Similarly to <see cref="PureAttribute"/>, this attribute + /// will help detecting usages of the method when the return value in not used. + /// Additionally, you can optionally specify a custom message, which will be used when showing warnings, e.g. + /// <code>[MustUseReturnValue("Use the return value to...")]</code>. + /// </remarks> + [AttributeUsage(AttributeTargets.Method)] + public sealed class MustUseReturnValueAttribute : Attribute + { + public MustUseReturnValueAttribute() { } + + public MustUseReturnValueAttribute([NotNull] string justification) + { + Justification = justification; + } + + [CanBeNull] public string Justification { get; } + } + + /// <summary> + /// Indicates the type member or parameter of some type, that should be used instead of all other ways + /// to get the value of that type. This annotation is useful when you have some "context" value evaluated + /// and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + /// </summary> + /// <example><code> + /// class Foo { + /// [ProvidesContext] IBarService _barService = ...; + /// + /// void ProcessNode(INode node) { + /// DoSomething(node, node.GetGlobalServices().Bar); + /// // ^ Warning: use value of '_barService' field + /// } + /// } + /// </code></example> + [AttributeUsage( + AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.Method | + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct | AttributeTargets.GenericParameter)] + public sealed class ProvidesContextAttribute : Attribute { } + + /// <summary> + /// Indicates that a parameter is a path to a file or a folder within a web project. + /// Path can be relative or absolute, starting from web root (~). + /// </summary> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class PathReferenceAttribute : Attribute + { + public PathReferenceAttribute() { } + + public PathReferenceAttribute([NotNull, PathReference] string basePath) + { + BasePath = basePath; + } + + [CanBeNull] public string BasePath { get; } + } + + /// <summary> + /// An extension method marked with this attribute is processed by code completion + /// as a 'Source Template'. When the extension method is completed over some expression, its source code + /// is automatically expanded like a template at call site. + /// </summary> + /// <remarks> + /// Template method body can contain valid source code and/or special comments starting with '$'. + /// Text inside these comments is added as source code when the template is applied. Template parameters + /// can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + /// Use the <see cref="MacroAttribute"/> attribute to specify macros for parameters. + /// </remarks> + /// <example> + /// In this example, the 'forEach' method is a source template available over all values + /// of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + /// <code> + /// [SourceTemplate] + /// public static void forEach<T>(this IEnumerable<T> xs) { + /// foreach (var x in xs) { + /// //$ $END$ + /// } + /// } + /// </code> + /// </example> + [AttributeUsage(AttributeTargets.Method)] + public sealed class SourceTemplateAttribute : Attribute { } + + /// <summary> + /// Allows specifying a macro for a parameter of a <see cref="SourceTemplateAttribute">source template</see>. + /// </summary> + /// <remarks> + /// You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + /// is defined in the <see cref="MacroAttribute.Expression"/> property. When applied on a method, the target + /// template parameter is defined in the <see cref="MacroAttribute.Target"/> property. To apply the macro silently + /// for the parameter, set the <see cref="MacroAttribute.Editable"/> property value = -1. + /// </remarks> + /// <example> + /// Applying the attribute on a source template method: + /// <code> + /// [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + /// public static void forEach<T>(this IEnumerable<T> collection) { + /// foreach (var item in collection) { + /// //$ $END$ + /// } + /// } + /// </code> + /// Applying the attribute on a template method parameter: + /// <code> + /// [SourceTemplate] + /// public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /// /*$ var $x$Id = "$newguid$" + x.ToString(); + /// x.DoSomething($x$Id); */ + /// } + /// </code> + /// </example> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method, AllowMultiple = true)] + public sealed class MacroAttribute : Attribute + { + /// <summary> + /// Allows specifying a macro that will be executed for a <see cref="SourceTemplateAttribute">source template</see> + /// parameter when the template is expanded. + /// </summary> + [CanBeNull] public string Expression { get; set; } + + /// <summary> + /// Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + /// </summary> + /// <remarks> + /// If the target parameter is used several times in the template, only one occurrence becomes editable; + /// other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + /// use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + /// </remarks> + public int Editable { get; set; } + + /// <summary> + /// Identifies the target parameter of a <see cref="SourceTemplateAttribute">source template</see> if the + /// <see cref="MacroAttribute"/> is applied on a template method. + /// </summary> + [CanBeNull] public string Target { get; set; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute + { + public AspMvcAreaMasterLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute + { + public AspMvcAreaPartialViewLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcAreaViewLocationFormatAttribute : Attribute + { + public AspMvcAreaViewLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcMasterLocationFormatAttribute : Attribute + { + public AspMvcMasterLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcPartialViewLocationFormatAttribute : Attribute + { + public AspMvcPartialViewLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)] + public sealed class AspMvcViewLocationFormatAttribute : Attribute + { + public AspMvcViewLocationFormatAttribute([NotNull] string format) + { + Format = format; + } + + [NotNull] public string Format { get; } + } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC action. If applied to a method, the MVC action name is calculated + /// implicitly from the context. Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcActionAttribute : Attribute + { + public AspMvcActionAttribute() { } + + public AspMvcActionAttribute([NotNull] string anonymousProperty) + { + AnonymousProperty = anonymousProperty; + } + + [CanBeNull] public string AnonymousProperty { get; } + } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that the marked parameter is an MVC area. + /// Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcAreaAttribute : Attribute + { + public AspMvcAreaAttribute() { } + + public AspMvcAreaAttribute([NotNull] string anonymousProperty) + { + AnonymousProperty = anonymousProperty; + } + + [CanBeNull] public string AnonymousProperty { get; } + } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + /// an MVC controller. If applied to a method, the MVC controller name is calculated + /// implicitly from the context. Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcControllerAttribute : Attribute + { + public AspMvcControllerAttribute() { } + + public AspMvcControllerAttribute([NotNull] string anonymousProperty) + { + AnonymousProperty = anonymousProperty; + } + + [CanBeNull] public string AnonymousProperty { get; } + } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that the marked parameter is an MVC Master. Use this attribute + /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcMasterAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that the marked parameter is an MVC model type. Use this attribute + /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, Object)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcModelTypeAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + /// partial view. If applied to a method, the MVC partial view name is calculated implicitly + /// from the context. Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcPartialViewAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + /// </summary> + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] + public sealed class AspMvcSuppressViewErrorAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + /// Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcDisplayTemplateAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that the marked parameter is an MVC editor template. + /// Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcEditorTemplateAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. Indicates that the marked parameter is an MVC template. + /// Use this attribute for custom wrappers similar to + /// <c>System.ComponentModel.DataAnnotations.UIHintAttribute(System.String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcTemplateAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + /// from the context. Use this attribute for custom wrappers similar to + /// <c>System.Web.Mvc.Controller.View(Object)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcViewAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC view component name. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcViewComponentAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC view component view. If applied to a method, the MVC view component view name is default. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class AspMvcViewComponentViewAttribute : Attribute { } + + /// <summary> + /// ASP.NET MVC attribute. When applied to a parameter of an attribute, + /// indicates that this parameter is an MVC action name. + /// </summary> + /// <example><code> + /// [ActionName("Foo")] + /// public ActionResult Login(string returnUrl) { + /// ViewBag.ReturnUrl = Url.Action("Foo"); // OK + /// return RedirectToAction("Bar"); // Error: Cannot resolve action + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)] + public sealed class AspMvcActionSelectorAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field)] + public sealed class HtmlElementAttributesAttribute : Attribute + { + public HtmlElementAttributesAttribute() { } + + public HtmlElementAttributesAttribute([NotNull] string name) + { + Name = name; + } + + [CanBeNull] public string Name { get; } + } + + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class HtmlAttributeValueAttribute : Attribute + { + public HtmlAttributeValueAttribute([NotNull] string name) + { + Name = name; + } + + [NotNull] public string Name { get; } + } + + /// <summary> + /// Razor attribute. Indicates that the marked parameter or method is a Razor section. + /// Use this attribute for custom wrappers similar to + /// <c>System.Web.WebPages.WebPageBase.RenderSection(String)</c>. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] + public sealed class RazorSectionAttribute : Attribute { } + + /// <summary> + /// Indicates how method, constructor invocation, or property access + /// over collection type affects the contents of the collection. + /// Use <see cref="CollectionAccessType"/> to specify the access type. + /// </summary> + /// <remarks> + /// Using this attribute only makes sense if all collection methods are marked with this attribute. + /// </remarks> + /// <example><code> + /// public class MyStringCollection : List<string> + /// { + /// [CollectionAccess(CollectionAccessType.Read)] + /// public string GetFirstString() + /// { + /// return this.ElementAt(0); + /// } + /// } + /// class Test + /// { + /// public void Foo() + /// { + /// // Warning: Contents of the collection is never updated + /// var col = new MyStringCollection(); + /// string x = col.GetFirstString(); + /// } + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Property)] + public sealed class CollectionAccessAttribute : Attribute + { + public CollectionAccessAttribute(CollectionAccessType collectionAccessType) + { + CollectionAccessType = collectionAccessType; + } + + public CollectionAccessType CollectionAccessType { get; } + } + + /// <summary> + /// Provides a value for the <see cref="CollectionAccessAttribute"/> to define + /// how the collection method invocation affects the contents of the collection. + /// </summary> + [Flags] + public enum CollectionAccessType + { + /// <summary>Method does not use or modify content of the collection.</summary> + None = 0, + /// <summary>Method only reads content of the collection but does not modify it.</summary> + Read = 1, + /// <summary>Method can change content of the collection but does not add new elements.</summary> + ModifyExistingContent = 2, + /// <summary>Method can add new elements to the collection.</summary> + UpdatedContent = ModifyExistingContent | 4 + } + + /// <summary> + /// Indicates that the marked method is assertion method, i.e. it halts the control flow if + /// one of the conditions is satisfied. To set the condition, mark one of the parameters with + /// <see cref="AssertionConditionAttribute"/> attribute. + /// </summary> + [AttributeUsage(AttributeTargets.Method)] + public sealed class AssertionMethodAttribute : Attribute { } + + /// <summary> + /// Indicates the condition parameter of the assertion method. The method itself should be + /// marked by <see cref="AssertionMethodAttribute"/> attribute. The mandatory argument of + /// the attribute is the assertion type. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AssertionConditionAttribute : Attribute + { + public AssertionConditionAttribute(AssertionConditionType conditionType) + { + ConditionType = conditionType; + } + + public AssertionConditionType ConditionType { get; } + } + + /// <summary> + /// Specifies assertion type. If the assertion method argument satisfies the condition, + /// then the execution continues. Otherwise, execution is assumed to be halted. + /// </summary> + public enum AssertionConditionType + { + /// <summary>Marked parameter should be evaluated to true.</summary> + IS_TRUE = 0, + /// <summary>Marked parameter should be evaluated to false.</summary> + IS_FALSE = 1, + /// <summary>Marked parameter should be evaluated to null value.</summary> + IS_NULL = 2, + /// <summary>Marked parameter should be evaluated to not null value.</summary> + IS_NOT_NULL = 3, + } + + /// <summary> + /// Indicates that the marked method unconditionally terminates control flow execution. + /// For example, it could unconditionally throw exception. + /// </summary> + [Obsolete("Use [ContractAnnotation('=> halt')] instead")] + [AttributeUsage(AttributeTargets.Method)] + public sealed class TerminatesProgramAttribute : Attribute { } + + /// <summary> + /// Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + /// .Where). This annotation allows inference of [InstantHandle] annotation for parameters + /// of delegate type by analyzing LINQ method chains. + /// </summary> + [AttributeUsage(AttributeTargets.Method)] + public sealed class LinqTunnelAttribute : Attribute { } + + /// <summary> + /// Indicates that IEnumerable passed as a parameter is not enumerated. + /// Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + /// </summary> + /// <example><code> + /// static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + /// { + /// // custom check for null but no enumeration + /// } + /// + /// void Foo(IEnumerable<string> values) + /// { + /// ThrowIfNull(values, nameof(values)); + /// var x = values.ToList(); // No warnings about multiple enumeration + /// } + /// </code></example> + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class NoEnumerationAttribute : Attribute { } + + /// <summary> + /// Indicates that the marked parameter is a regular expression pattern. + /// </summary> + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] + public sealed class RegexPatternAttribute : Attribute { } + + /// <summary> + /// Prevents the Member Reordering feature from tossing members of the marked class. + /// </summary> + /// <remarks> + /// The attribute must be mentioned in your member reordering patterns. + /// </remarks> + [AttributeUsage( + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct | AttributeTargets.Enum)] + public sealed class NoReorderAttribute : Attribute { } + + /// <summary> + /// XAML attribute. Indicates the type that has <c>ItemsSource</c> property and should be treated + /// as <c>ItemsControl</c>-derived type, to enable inner items <c>DataContext</c> type resolve. + /// </summary> + [AttributeUsage(AttributeTargets.Class)] + public sealed class XamlItemsControlAttribute : Attribute { } + + /// <summary> + /// XAML attribute. Indicates the property of some <c>BindingBase</c>-derived type, that + /// is used to bind some item of <c>ItemsControl</c>-derived type. This annotation will + /// enable the <c>DataContext</c> type resolve for XAML bindings for such properties. + /// </summary> + /// <remarks> + /// Property should have the tree ancestor of the <c>ItemsControl</c> type or + /// marked with the <see cref="XamlItemsControlAttribute"/> attribute. + /// </remarks> + [AttributeUsage(AttributeTargets.Property)] + public sealed class XamlItemBindingOfItemsControlAttribute : Attribute { } + + /// <summary> + /// XAML attribute. Indicates the property of some <c>Style</c>-derived type, that + /// is used to style items of <c>ItemsControl</c>-derived type. This annotation will + /// enable the <c>DataContext</c> type resolve for XAML bindings for such properties. + /// </summary> + /// <remarks> + /// Property should have the tree ancestor of the <c>ItemsControl</c> type or + /// marked with the <see cref="XamlItemsControlAttribute"/> attribute. + /// </remarks> + [AttributeUsage(AttributeTargets.Property)] + public sealed class XamlItemStyleOfItemsControlAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class AspChildControlTypeAttribute : Attribute + { + public AspChildControlTypeAttribute([NotNull] string tagName, [NotNull] Type controlType) + { + TagName = tagName; + ControlType = controlType; + } + + [NotNull] public string TagName { get; } + + [NotNull] public Type ControlType { get; } + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)] + public sealed class AspDataFieldAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)] + public sealed class AspDataFieldsAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Property)] + public sealed class AspMethodPropertyAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class AspRequiredAttributeAttribute : Attribute + { + public AspRequiredAttributeAttribute([NotNull] string attribute) + { + Attribute = attribute; + } + + [NotNull] public string Attribute { get; } + } + + [AttributeUsage(AttributeTargets.Property)] + public sealed class AspTypePropertyAttribute : Attribute + { + public bool CreateConstructorReferences { get; } + + public AspTypePropertyAttribute(bool createConstructorReferences) + { + CreateConstructorReferences = createConstructorReferences; + } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class RazorImportNamespaceAttribute : Attribute + { + public RazorImportNamespaceAttribute([NotNull] string name) + { + Name = name; + } + + [NotNull] public string Name { get; } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class RazorInjectionAttribute : Attribute + { + public RazorInjectionAttribute([NotNull] string type, [NotNull] string fieldName) + { + Type = type; + FieldName = fieldName; + } + + [NotNull] public string Type { get; } + + [NotNull] public string FieldName { get; } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class RazorDirectiveAttribute : Attribute + { + public RazorDirectiveAttribute([NotNull] string directive) + { + Directive = directive; + } + + [NotNull] public string Directive { get; } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class RazorPageBaseTypeAttribute : Attribute + { + public RazorPageBaseTypeAttribute([NotNull] string baseType) + { + BaseType = baseType; + } + public RazorPageBaseTypeAttribute([NotNull] string baseType, string pageName) + { + BaseType = baseType; + PageName = pageName; + } + + [NotNull] public string BaseType { get; } + [CanBeNull] public string PageName { get; } + } + + [AttributeUsage(AttributeTargets.Method)] + public sealed class RazorHelperCommonAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Property)] + public sealed class RazorLayoutAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Method)] + public sealed class RazorWriteLiteralMethodAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Method)] + public sealed class RazorWriteMethodAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class RazorWriteMethodParameterAttribute : Attribute { } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/Application.Designer.cs b/VECTO3GUI2020/Properties/Application.Designer.cs new file mode 100644 index 0000000000000000000000000000000000000000..6dc9f161ce435740fe6c6509ef8c1f718445e508 --- /dev/null +++ b/VECTO3GUI2020/Properties/Application.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace VECTO3GUI2020.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] + internal sealed partial class Application : global::System.Configuration.ApplicationSettingsBase { + + private static Application defaultInstance = ((Application)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Application()))); + + public static Application Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Path { + get { + return ((string)(this["Path"])); + } + set { + this["Path"] = value; + } + } + } +} diff --git a/VECTO3GUI2020/Properties/Application.settings b/VECTO3GUI2020/Properties/Application.settings new file mode 100644 index 0000000000000000000000000000000000000000..50a6a808d52539a09dab9357baa512e1f6d5a170 --- /dev/null +++ b/VECTO3GUI2020/Properties/Application.settings @@ -0,0 +1,9 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="VECTO3GUI2020.Properties" GeneratedClassName="Application"> + <Profiles /> + <Settings> + <Setting Name="Path" Type="System.String" Scope="User"> + <Value Profile="(Default)" /> + </Setting> + </Settings> +</SettingsFile> \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/AssemblyInfo.cs b/VECTO3GUI2020/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000000000000000000000000000000000..048eb62a0b9f75dabfc9a89fa518c551df703ef1 --- /dev/null +++ b/VECTO3GUI2020/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("VECTO3GUI2020")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VECTO3GUI2020")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: InternalsVisibleTo("Vecto3GUI2020Test")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +//Um mit dem Erstellen lokalisierbarer Anwendungen zu beginnen, legen Sie +//<UICulture>ImCodeVerwendeteKultur</UICulture> in der .csproj-Datei +//in einer <PropertyGroup> fest. Wenn Sie in den Quelldateien beispielsweise Deutsch +//(Deutschland) verwenden, legen Sie <UICulture> auf \"de-DE\" fest. Heben Sie dann die Auskommentierung +//des nachstehenden NeutralResourceLanguage-Attributs auf. Aktualisieren Sie "en-US" in der nachstehenden Zeile, +//sodass es mit der UICulture-Einstellung in der Projektdatei übereinstimmt. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //Speicherort der designspezifischen Ressourcenwörterbücher + //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird, + // oder in den Anwendungsressourcen-Wörterbüchern nicht gefunden werden kann.) + ResourceDictionaryLocation.SourceAssembly //Speicherort des generischen Ressourcenwörterbuchs + //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird, + // designspezifischen Ressourcenwörterbuch nicht gefunden werden kann.) +)] + + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +//[assembly: AssemblyVersion("1.0.0.0")] +//[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/VECTO3GUI2020/Properties/BusStrings.Designer.cs b/VECTO3GUI2020/Properties/BusStrings.Designer.cs new file mode 100644 index 0000000000000000000000000000000000000000..00c1f74fd2b689ce8ad9eac8dc6a73e744f4d2b9 --- /dev/null +++ b/VECTO3GUI2020/Properties/BusStrings.Designer.cs @@ -0,0 +1,261 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace VECTO3GUI2020.Properties { + using System; + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // 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.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class BusStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal BusStrings() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VECTO3GUI2020.Properties.BusStrings", typeof(BusStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// <summary> + /// Looks up a localized string similar to Airdrag Area 0. + /// </summary> + public static string AirdragArea0 { + get { + return ResourceManager.GetString("AirdragArea0", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Airdrag modified. + /// </summary> + public static string AirdragModifiedEnum { + get { + return ResourceManager.GetString("AirdragModifiedEnum", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ATP Eco Roll Release Lockup Clutch. + /// </summary> + public static string ATEcoRollReleaseLockupClutch { + get { + return ResourceManager.GetString("ATEcoRollReleaseLockupClutch", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Compressor Drive. + /// </summary> + public static string CompressorDrive { + get { + return ResourceManager.GetString("CompressorDrive", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Corrected Actual Mass. + /// </summary> + public static string CurbmassChassis { + get { + return ResourceManager.GetString("CurbmassChassis", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Eco Roll Type. + /// </summary> + public static string EcoRollTypeNullable { + get { + return ResourceManager.GetString("EcoRollTypeNullable", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Engine Stop Start. + /// </summary> + public static string EngineStopStartNullable { + get { + return ResourceManager.GetString("EngineStopStartNullable", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Entrance Height. + /// </summary> + public static string EntranceHeightInMm { + get { + return ResourceManager.GetString("EntranceHeightInMm", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Tech. Perm. Max. Laden Mass. + /// </summary> + public static string GrossVehicleMassRating { + get { + return ResourceManager.GetString("GrossVehicleMassRating", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Height. + /// </summary> + public static string HeightInMm { + get { + return ResourceManager.GetString("HeightInMm", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Legislative Category. + /// </summary> + public static string LegislativeClass { + get { + return ResourceManager.GetString("LegislativeClass", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Length. + /// </summary> + public static string LengthInMm { + get { + return ResourceManager.GetString("LengthInMm", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Manufacturer. + /// </summary> + public static string Manufacturer { + get { + return ResourceManager.GetString("Manufacturer", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passenger Seats Lower Deck. + /// </summary> + public static string NumberPassengerSeatsLowerDeck { + get { + return ResourceManager.GetString("NumberPassengerSeatsLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passenger Seats Upper Deck. + /// </summary> + public static string NumberPassengerSeatsUpperDeck { + get { + return ResourceManager.GetString("NumberPassengerSeatsUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passenger Standing Lower Deck. + /// </summary> + public static string NumberPassengersStandingLowerDeck { + get { + return ResourceManager.GetString("NumberPassengersStandingLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passenger Standing Upper Deck. + /// </summary> + public static string NumberPassengersStandingUpperDeck { + get { + return ResourceManager.GetString("NumberPassengersStandingUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Predictive Cruise Control. + /// </summary> + public static string PredictiveCruiseControlNullable { + get { + return ResourceManager.GetString("PredictiveCruiseControlNullable", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Ng Tank System. + /// </summary> + public static string TankSystem { + get { + return ResourceManager.GetString("TankSystem", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Transferred Airdrag Area. + /// </summary> + public static string TransferredAirDragArea { + get { + return ResourceManager.GetString("TransferredAirDragArea", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Bodywork Code. + /// </summary> + public static string VehicleCode { + get { + return ResourceManager.GetString("VehicleCode", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Width. + /// </summary> + public static string WidthInMm { + get { + return ResourceManager.GetString("WidthInMm", resourceCulture); + } + } + } +} diff --git a/VECTO3GUI2020/Properties/BusStrings.resx b/VECTO3GUI2020/Properties/BusStrings.resx new file mode 100644 index 0000000000000000000000000000000000000000..20eca9eee36fe73b138fed977abd4c79240f7e13 --- /dev/null +++ b/VECTO3GUI2020/Properties/BusStrings.resx @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="AirdragArea0" xml:space="preserve"> + <value>Airdrag Area 0</value> + </data> + <data name="AirdragModifiedEnum" xml:space="preserve"> + <value>Airdrag modified</value> + </data> + <data name="ATEcoRollReleaseLockupClutch" xml:space="preserve"> + <value>ATP Eco Roll Release Lockup Clutch</value> + </data> + <data name="CompressorDrive" xml:space="preserve"> + <value>Compressor Drive</value> + </data> + <data name="CurbmassChassis" xml:space="preserve"> + <value>Corrected Actual Mass</value> + </data> + <data name="EcoRollTypeNullable" xml:space="preserve"> + <value>Eco Roll Type</value> + </data> + <data name="EngineStopStartNullable" xml:space="preserve"> + <value>Engine Stop Start</value> + </data> + <data name="EntranceHeightInMm" xml:space="preserve"> + <value>Entrance Height</value> + </data> + <data name="GrossVehicleMassRating" xml:space="preserve"> + <value>Tech. Perm. Max. Laden Mass</value> + </data> + <data name="HeightInMm" xml:space="preserve"> + <value>Height</value> + </data> + <data name="LegislativeClass" xml:space="preserve"> + <value>Legislative Category</value> + </data> + <data name="LengthInMm" xml:space="preserve"> + <value>Length</value> + </data> + <data name="Manufacturer" xml:space="preserve"> + <value>Manufacturer</value> + </data> + <data name="NumberPassengerSeatsLowerDeck" xml:space="preserve"> + <value>Passenger Seats Lower Deck</value> + </data> + <data name="NumberPassengerSeatsUpperDeck" xml:space="preserve"> + <value>Passenger Seats Upper Deck</value> + </data> + <data name="NumberPassengersStandingLowerDeck" xml:space="preserve"> + <value>Passenger Standing Lower Deck</value> + </data> + <data name="NumberPassengersStandingUpperDeck" xml:space="preserve"> + <value>Passenger Standing Upper Deck</value> + </data> + <data name="PredictiveCruiseControlNullable" xml:space="preserve"> + <value>Predictive Cruise Control</value> + </data> + <data name="TankSystem" xml:space="preserve"> + <value>Ng Tank System</value> + </data> + <data name="TransferredAirDragArea" xml:space="preserve"> + <value>Transferred Airdrag Area</value> + </data> + <data name="VehicleCode" xml:space="preserve"> + <value>Bodywork Code</value> + </data> + <data name="WidthInMm" xml:space="preserve"> + <value>Width</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/Resources.Designer.cs b/VECTO3GUI2020/Properties/Resources.Designer.cs new file mode 100644 index 0000000000000000000000000000000000000000..3b10976644a9ab1b1bafce21574716b2d4ba2e71 --- /dev/null +++ b/VECTO3GUI2020/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion: 4.0.30319.42000 +// +// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace VECTO3GUI2020.Properties +{ + + + /// <summary> + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// </summary> + // Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse + // über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VECTO3GUI2020.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/VECTO3GUI2020/Properties/Resources.resx b/VECTO3GUI2020/Properties/Resources.resx new file mode 100644 index 0000000000000000000000000000000000000000..af7dbebbacef595e3089c01c05671016c21a8304 --- /dev/null +++ b/VECTO3GUI2020/Properties/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/Settings.Designer.cs b/VECTO3GUI2020/Properties/Settings.Designer.cs new file mode 100644 index 0000000000000000000000000000000000000000..78e0471711f38b352703436909e712ed7d3f3dd8 --- /dev/null +++ b/VECTO3GUI2020/Properties/Settings.Designer.cs @@ -0,0 +1,122 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace VECTO3GUI2020.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool EngineeringMode { + get { + return ((bool)(this["EngineeringMode"])); + } + set { + this["EngineeringMode"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string DefaultFilePath { + get { + return ((string)(this["DefaultFilePath"])); + } + set { + this["DefaultFilePath"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool WriteModalResults { + get { + return ((bool)(this["WriteModalResults"])); + } + set { + this["WriteModalResults"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool ModalResults1Hz { + get { + return ((bool)(this["ModalResults1Hz"])); + } + set { + this["ModalResults1Hz"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool Validate { + get { + return ((bool)(this["Validate"])); + } + set { + this["Validate"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool ActualModalData { + get { + return ((bool)(this["ActualModalData"])); + } + set { + this["ActualModalData"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool SerializeVectoRunData { + get { + return ((bool)(this["SerializeVectoRunData"])); + } + set { + this["SerializeVectoRunData"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string DefaultOutputPath { + get { + return ((string)(this["DefaultOutputPath"])); + } + set { + this["DefaultOutputPath"] = value; + } + } + } +} diff --git a/VECTO3GUI2020/Properties/Settings.cs b/VECTO3GUI2020/Properties/Settings.cs new file mode 100644 index 0000000000000000000000000000000000000000..2053405eb12affa998c8f39c78d447922e0d4c65 --- /dev/null +++ b/VECTO3GUI2020/Properties/Settings.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; + +namespace VECTO3GUI2020.Properties { + + + // This class allows you to handle specific events on the settings class: + // The SettingChanging event is raised before a setting's value is changed. + // The PropertyChanged event is raised after a setting's value is changed. + // The SettingsLoaded event is raised after the setting values are loaded. + // The SettingsSaving event is raised before the setting values are saved. + public sealed partial class Settings { + + public Settings() { + // // To add event handlers for saving and changing settings, uncomment the lines below: + // + var relativeFilePath = DefaultFilePath; + + DefaultFilePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @relativeFilePath)); + + this.SettingChanging += this.SettingChangingEventHandler; + this.SettingsLoaded += this.SettingsLoadedEventHandler; + // + this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { + // Add code to handle the SettingChangingEvent event here. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { + // Add code to handle the SettingsSaving event here. + } + + private void SettingsLoadedEventHandler(object sender, System.Configuration.SettingsLoadedEventArgs e) + { + var relativeFilePath = DefaultFilePath; + + DefaultFilePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @relativeFilePath)); + } + } +} diff --git a/VECTO3GUI2020/Properties/Settings.settings b/VECTO3GUI2020/Properties/Settings.settings new file mode 100644 index 0000000000000000000000000000000000000000..7d279b47c5819b8dfb73077904a27512a6487a87 --- /dev/null +++ b/VECTO3GUI2020/Properties/Settings.settings @@ -0,0 +1,30 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="VECTO3GUI2020.Properties" GeneratedClassName="Settings"> + <Profiles /> + <Settings> + <Setting Name="EngineeringMode" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">False</Value> + </Setting> + <Setting Name="DefaultFilePath" Type="System.String" Scope="User"> + <Value Profile="(Default)" /> + </Setting> + <Setting Name="WriteModalResults" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">True</Value> + </Setting> + <Setting Name="ModalResults1Hz" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">True</Value> + </Setting> + <Setting Name="Validate" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">True</Value> + </Setting> + <Setting Name="ActualModalData" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">True</Value> + </Setting> + <Setting Name="SerializeVectoRunData" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">True</Value> + </Setting> + <Setting Name="DefaultOutputPath" Type="System.String" Scope="User"> + <Value Profile="(Default)" /> + </Setting> + </Settings> +</SettingsFile> \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/Strings.Designer.cs b/VECTO3GUI2020/Properties/Strings.Designer.cs new file mode 100644 index 0000000000000000000000000000000000000000..f6ed81b6119d8487f88808a75d73483276c44400 --- /dev/null +++ b/VECTO3GUI2020/Properties/Strings.Designer.cs @@ -0,0 +1,685 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace VECTO3GUI2020.Properties { + using System; + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // 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.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VECTO3GUI2020.Properties.Strings", typeof(Strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// <summary> + /// Looks up a localized string similar to Adjustable Auxiliary Heater. + /// </summary> + public static string AdjustableAuxiliaryHeater { + get { + return ResourceManager.GetString("AdjustableAuxiliaryHeater", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Airdrag Area. + /// </summary> + public static string AirDragArea { + get { + return ResourceManager.GetString("AirDragArea", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Airdrag Area 0. + /// </summary> + public static string AirdragArea0 { + get { + return ResourceManager.GetString("AirdragArea0", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Air Electric Heater. + /// </summary> + public static string AirElectricHeater { + get { + return ResourceManager.GetString("AirElectricHeater", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Angledrive Type. + /// </summary> + public static string AngledriveType { + get { + return ResourceManager.GetString("AngledriveType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Auxiliary Heater Power. + /// </summary> + public static string AuxHeaterPower { + get { + return ResourceManager.GetString("AuxHeaterPower", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Axle Configuration. + /// </summary> + public static string AxleConfiguration { + get { + return ResourceManager.GetString("AxleConfiguration", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Axlegear Ratio. + /// </summary> + public static string AxleGearRatio { + get { + return ResourceManager.GetString("AxleGearRatio", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Brake Lights LED. + /// </summary> + public static string BrakelightsLED { + get { + return ResourceManager.GetString("BrakelightsLED", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Certification Number. + /// </summary> + public static string Certification_Number { + get { + return ResourceManager.GetString("Certification Number", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Certification Method. + /// </summary> + public static string CertificationMethod { + get { + return ResourceManager.GetString("CertificationMethod", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Certification Number. + /// </summary> + public static string CertificationNumber { + get { + return ResourceManager.GetString("CertificationNumber", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Curb Mass Chassis. + /// </summary> + public static string CurbMassChassis { + get { + return ResourceManager.GetString("CurbMassChassis", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Dayrunning Lights LED. + /// </summary> + public static string DayrunninglightsLED { + get { + return ResourceManager.GetString("DayrunninglightsLED", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Dimension. + /// </summary> + public static string Dimension { + get { + return ResourceManager.GetString("Dimension", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Displacement. + /// </summary> + public static string Displacement { + get { + return ResourceManager.GetString("Displacement", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Doordrive Technology. + /// </summary> + public static string DoorDriveTechnology { + get { + return ResourceManager.GetString("DoorDriveTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Double Glazing. + /// </summary> + public static string DoubleGlazing { + get { + return ResourceManager.GetString("DoubleGlazing", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Efficiency. + /// </summary> + public static string Efficiency { + get { + return ResourceManager.GetString("Efficiency", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Engine Idle Speed. + /// </summary> + public static string EngineIdleSpeed { + get { + return ResourceManager.GetString("EngineIdleSpeed", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Entrance Height. + /// </summary> + public static string EntranceHeight { + get { + return ResourceManager.GetString("EntranceHeight", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Gross Vehicle Mass. + /// </summary> + public static string GrossVehicleMass { + get { + return ResourceManager.GetString("GrossVehicleMass", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Gross Vehicle Mass Rating. + /// </summary> + public static string GrossVehicleMassRating { + get { + return ResourceManager.GetString("GrossVehicleMassRating", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Head Lights LED. + /// </summary> + public static string HeadlightsLED { + get { + return ResourceManager.GetString("HeadlightsLED", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Mode. + /// </summary> + public static string HeatPumpMode { + get { + return ResourceManager.GetString("HeatPumpMode", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Mode Driver. + /// </summary> + public static string HeatPumpModeDriverCompartment { + get { + return ResourceManager.GetString("HeatPumpModeDriverCompartment", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Mode Passenger. + /// </summary> + public static string HeatPumpModePassengerCompartment { + get { + return ResourceManager.GetString("HeatPumpModePassengerCompartment", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Type. + /// </summary> + public static string HeatPumpType { + get { + return ResourceManager.GetString("HeatPumpType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Type Driver. + /// </summary> + public static string HeatPumpTypeDriverCompartment { + get { + return ResourceManager.GetString("HeatPumpTypeDriverCompartment", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Heat Pump Type Passenger. + /// </summary> + public static string HeatPumpTypePassengerCompartment { + get { + return ResourceManager.GetString("HeatPumpTypePassengerCompartment", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Height. + /// </summary> + public static string Height { + get { + return ResourceManager.GetString("Height", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Idling Speed. + /// </summary> + public static string IdlingSpeed { + get { + return ResourceManager.GetString("IdlingSpeed", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Interior Lights LED. + /// </summary> + public static string InteriorLightsLED { + get { + return ResourceManager.GetString("InteriorLightsLED", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Legislative Class. + /// </summary> + public static string LegislativeClass { + get { + return ResourceManager.GetString("LegislativeClass", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Length. + /// </summary> + public static string Length { + get { + return ResourceManager.GetString("Length", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Low Entry. + /// </summary> + public static string LowEntry { + get { + return ResourceManager.GetString("LowEntry", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Manufacturer. + /// </summary> + public static string Manufacturer { + get { + return ResourceManager.GetString("Manufacturer", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Manufacturer Address. + /// </summary> + public static string ManufacturerAddress { + get { + return ResourceManager.GetString("ManufacturerAddress", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Manufacturer Adress. + /// </summary> + public static string ManufacturerAdress { + get { + return ResourceManager.GetString("ManufacturerAdress", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Max. Torque Declared. + /// </summary> + public static string MaxTorqueDeclared { + get { + return ResourceManager.GetString("MaxTorqueDeclared", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Model. + /// </summary> + public static string Model { + get { + return ResourceManager.GetString("Model", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passengers Lower Deck. + /// </summary> + public static string NumberOfPassengersLowerDeck { + get { + return ResourceManager.GetString("NumberOfPassengersLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Passengers Upper Deck. + /// </summary> + public static string NumberOfPassengersUpperDeck { + get { + return ResourceManager.GetString("NumberOfPassengersUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Other Heating Technology. + /// </summary> + public static string OtherHeatingTechnology { + get { + return ResourceManager.GetString("OtherHeatingTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Position Lights LED. + /// </summary> + public static string PositionlightsLED { + get { + return ResourceManager.GetString("PositionlightsLED", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Predictive Cruise Control. + /// </summary> + public static string PredictiveCruiseControl { + get { + return ResourceManager.GetString("PredictiveCruiseControl", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Transmission Type. + /// </summary> + public static string PTOTransmissionType { + get { + return ResourceManager.GetString("PTOTransmissionType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Rated Power. + /// </summary> + public static string RatedPowerDeclared { + get { + return ResourceManager.GetString("RatedPowerDeclared", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Rated Speed Declared. + /// </summary> + public static string RatedSpeedDeclared { + get { + return ResourceManager.GetString("RatedSpeedDeclared", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Ratio. + /// </summary> + public static string Ratio { + get { + return ResourceManager.GetString("Ratio", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Registered Class. + /// </summary> + public static string RegisteredClass { + get { + return ResourceManager.GetString("RegisteredClass", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Retarder Ratio. + /// </summary> + public static string RetarderRatio { + get { + return ResourceManager.GetString("RetarderRatio", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Retarder Type. + /// </summary> + public static string RetarderType { + get { + return ResourceManager.GetString("RetarderType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Roll Resistance Coefficient. + /// </summary> + public static string RRC { + get { + return ResourceManager.GetString("RRC", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Do you want to overwrite + /// . + /// </summary> + public static string SaveExecute_Do_you_want_to_overwrite { + get { + return ResourceManager.GetString("SaveExecute_Do_you_want_to_overwrite", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Seperate Air Distribution Ducts. + /// </summary> + public static string SeparateAirDistributionDucts { + get { + return ResourceManager.GetString("SeparateAirDistributionDucts", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to System Configuration. + /// </summary> + public static string SystemConfiguration { + get { + return ResourceManager.GetString("SystemConfiguration", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Tank System. + /// </summary> + public static string TankSystem { + get { + return ResourceManager.GetString("TankSystem", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Transferred Airdrag Area. + /// </summary> + public static string TransferredAirDragArea { + get { + return ResourceManager.GetString("TransferredAirDragArea", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Transmission Type. + /// </summary> + public static string TransmissionType { + get { + return ResourceManager.GetString("TransmissionType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Twin Tyres. + /// </summary> + public static string TwinTyres { + get { + return ResourceManager.GetString("TwinTyres", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Vehicle Category. + /// </summary> + public static string VehicleCategory { + get { + return ResourceManager.GetString("VehicleCategory", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Vehicle Code. + /// </summary> + public static string VehicleCode { + get { + return ResourceManager.GetString("VehicleCode", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Declaration Type. + /// </summary> + public static string VehicleDeclarationType { + get { + return ResourceManager.GetString("VehicleDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Vehicle Identification Number. + /// </summary> + public static string VehicleViewModel_v1_0_VIN { + get { + return ResourceManager.GetString("VehicleViewModel_v1_0_VIN", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Vehicle Identification Number. + /// </summary> + public static string VIN { + get { + return ResourceManager.GetString("VIN", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Water Electric Heater. + /// </summary> + public static string WaterElectricHeater { + get { + return ResourceManager.GetString("WaterElectricHeater", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Waste Heat Recovery. + /// </summary> + public static string WHRType { + get { + return ResourceManager.GetString("WHRType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Width. + /// </summary> + public static string Width { + get { + return ResourceManager.GetString("Width", resourceCulture); + } + } + } +} diff --git a/VECTO3GUI2020/Properties/Strings.resx b/VECTO3GUI2020/Properties/Strings.resx new file mode 100644 index 0000000000000000000000000000000000000000..25e87f6f23c6530b2a2868dbffec73b6cbcd8cc4 --- /dev/null +++ b/VECTO3GUI2020/Properties/Strings.resx @@ -0,0 +1,328 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="AirDragArea" xml:space="preserve"> + <value>Airdrag Area</value> + </data> + <data name="AngledriveType" xml:space="preserve"> + <value>Angledrive Type</value> + </data> + <data name="AxleConfiguration" xml:space="preserve"> + <value>Axle Configuration</value> + </data> + <data name="AxleGearRatio" xml:space="preserve"> + <value>Axlegear Ratio</value> + </data> + <data name="Certification Number" xml:space="preserve"> + <value>Certification Number</value> + </data> + <data name="CertificationMethod" xml:space="preserve"> + <value>Certification Method</value> + </data> + <data name="CertificationNumber" xml:space="preserve"> + <value>Certification Number</value> + </data> + <data name="CurbMassChassis" xml:space="preserve"> + <value>Curb Mass Chassis</value> + </data> + <data name="Dimension" xml:space="preserve"> + <value>Dimension</value> + </data> + <data name="Displacement" xml:space="preserve"> + <value>Displacement</value> + </data> + <data name="Efficiency" xml:space="preserve"> + <value>Efficiency</value> + </data> + <data name="EngineIdleSpeed" xml:space="preserve"> + <value>Engine Idle Speed</value> + </data> + <data name="GrossVehicleMass" xml:space="preserve"> + <value>Gross Vehicle Mass</value> + </data> + <data name="GrossVehicleMassRating" xml:space="preserve"> + <value>Gross Vehicle Mass Rating</value> + </data> + <data name="IdlingSpeed" xml:space="preserve"> + <value>Idling Speed</value> + </data> + <data name="LegislativeClass" xml:space="preserve"> + <value>Legislative Class</value> + </data> + <data name="Manufacturer" xml:space="preserve"> + <value>Manufacturer</value> + </data> + <data name="ManufacturerAddress" xml:space="preserve"> + <value>Manufacturer Address</value> + </data> + <data name="ManufacturerAdress" xml:space="preserve"> + <value>Manufacturer Adress</value> + </data> + <data name="MaxTorqueDeclared" xml:space="preserve"> + <value>Max. Torque Declared</value> + </data> + <data name="Model" xml:space="preserve"> + <value>Model</value> + </data> + <data name="PredictiveCruiseControl" xml:space="preserve"> + <value>Predictive Cruise Control</value> + </data> + <data name="PTOTransmissionType" xml:space="preserve"> + <value>Transmission Type</value> + </data> + <data name="RatedPowerDeclared" xml:space="preserve"> + <value>Rated Power</value> + </data> + <data name="RatedSpeedDeclared" xml:space="preserve"> + <value>Rated Speed Declared</value> + </data> + <data name="Ratio" xml:space="preserve"> + <value>Ratio</value> + </data> + <data name="RetarderRatio" xml:space="preserve"> + <value>Retarder Ratio</value> + </data> + <data name="RetarderType" xml:space="preserve"> + <value>Retarder Type</value> + </data> + <data name="RRC" xml:space="preserve"> + <value>Roll Resistance Coefficient</value> + </data> + <data name="TransmissionType" xml:space="preserve"> + <value>Transmission Type</value> + </data> + <data name="TwinTyres" xml:space="preserve"> + <value>Twin Tyres</value> + </data> + <data name="VehicleCategory" xml:space="preserve"> + <value>Vehicle Category</value> + </data> + <data name="VehicleViewModel_v1_0_VIN" xml:space="preserve"> + <value>Vehicle Identification Number</value> + </data> + <data name="VIN" xml:space="preserve"> + <value>Vehicle Identification Number</value> + </data> + <data name="WHRType" xml:space="preserve"> + <value>Waste Heat Recovery</value> + </data> + <data name="SaveExecute_Do_you_want_to_overwrite" xml:space="preserve"> + <value>Do you want to overwrite + </value> + </data> + <data name="AdjustableAuxiliaryHeater" xml:space="preserve"> + <value>Adjustable Auxiliary Heater</value> + </data> + <data name="AirElectricHeater" xml:space="preserve"> + <value>Air Electric Heater</value> + </data> + <data name="AuxHeaterPower" xml:space="preserve"> + <value>Auxiliary Heater Power</value> + </data> + <data name="BrakelightsLED" xml:space="preserve"> + <value>Brake Lights LED</value> + </data> + <data name="DayrunninglightsLED" xml:space="preserve"> + <value>Dayrunning Lights LED</value> + </data> + <data name="DoorDriveTechnology" xml:space="preserve"> + <value>Doordrive Technology</value> + </data> + <data name="DoubleGlazing" xml:space="preserve"> + <value>Double Glazing</value> + </data> + <data name="EntranceHeight" xml:space="preserve"> + <value>Entrance Height</value> + </data> + <data name="HeadlightsLED" xml:space="preserve"> + <value>Head Lights LED</value> + </data> + <data name="HeatPumpModeDriverCompartment" xml:space="preserve"> + <value>Heat Pump Mode Driver</value> + </data> + <data name="HeatPumpModePassengerCompartment" xml:space="preserve"> + <value>Heat Pump Mode Passenger</value> + </data> + <data name="HeatPumpTypeDriverCompartment" xml:space="preserve"> + <value>Heat Pump Type Driver</value> + </data> + <data name="HeatPumpTypePassengerCompartment" xml:space="preserve"> + <value>Heat Pump Type Passenger</value> + </data> + <data name="Height" xml:space="preserve"> + <value>Height</value> + </data> + <data name="InteriorLightsLED" xml:space="preserve"> + <value>Interior Lights LED</value> + </data> + <data name="Length" xml:space="preserve"> + <value>Length</value> + </data> + <data name="LowEntry" xml:space="preserve"> + <value>Low Entry</value> + </data> + <data name="NumberOfPassengersLowerDeck" xml:space="preserve"> + <value>Passengers Lower Deck</value> + </data> + <data name="NumberOfPassengersUpperDeck" xml:space="preserve"> + <value>Passengers Upper Deck</value> + </data> + <data name="OtherHeatingTechnology" xml:space="preserve"> + <value>Other Heating Technology</value> + </data> + <data name="PositionlightsLED" xml:space="preserve"> + <value>Position Lights LED</value> + </data> + <data name="RegisteredClass" xml:space="preserve"> + <value>Registered Class</value> + </data> + <data name="SeparateAirDistributionDucts" xml:space="preserve"> + <value>Seperate Air Distribution Ducts</value> + </data> + <data name="SystemConfiguration" xml:space="preserve"> + <value>System Configuration</value> + </data> + <data name="TankSystem" xml:space="preserve"> + <value>Tank System</value> + </data> + <data name="VehicleCode" xml:space="preserve"> + <value>Vehicle Code</value> + </data> + <data name="VehicleDeclarationType" xml:space="preserve"> + <value>Declaration Type</value> + </data> + <data name="WaterElectricHeater" xml:space="preserve"> + <value>Water Electric Heater</value> + </data> + <data name="Width" xml:space="preserve"> + <value>Width</value> + </data> + <data name="AirdragArea0" xml:space="preserve"> + <value>Airdrag Area 0</value> + </data> + <data name="TransferredAirDragArea" xml:space="preserve"> + <value>Transferred Airdrag Area</value> + </data> + <data name="HeatPumpMode" xml:space="preserve"> + <value>Heat Pump Mode</value> + </data> + <data name="HeatPumpType" xml:space="preserve"> + <value>Heat Pump Type</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO3GUI2020/Properties/Version.cs b/VECTO3GUI2020/Properties/Version.cs new file mode 100644 index 0000000000000000000000000000000000000000..5ade37d6792c11e1fe10c19042588155249b7bde --- /dev/null +++ b/VECTO3GUI2020/Properties/Version.cs @@ -0,0 +1,34 @@ +/* +* This file is part of VECTO. +* +* Copyright © 2012-2017 European Union +* +* Developed by Graz University of Technology, +* Institute of Internal Combustion Engines and Thermodynamics, +* Institute of Technical Informatics +* +* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved +* by the European Commission - subsequent versions of the EUPL (the "Licence"); +* You may not use VECTO except in compliance with the Licence. +* You may obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/community/eupl/og_page/eupl +* +* Unless required by applicable law or agreed to in writing, VECTO +* distributed under the Licence is distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the Licence for the specific language governing permissions and +* limitations under the Licence. +* +* Authors: +* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology +* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology +* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology +* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology +* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology +* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology +*/ + +using System.Reflection; +[assembly: AssemblyVersion("0.1.0.1954")] +[assembly: AssemblyFileVersion("0.1.0.1954")] diff --git a/VECTO3GUI2020/Properties/Version.tt b/VECTO3GUI2020/Properties/Version.tt new file mode 100644 index 0000000000000000000000000000000000000000..bf6606a7433a501c60753609366ac702934d292a --- /dev/null +++ b/VECTO3GUI2020/Properties/Version.tt @@ -0,0 +1,40 @@ +/* +* This file is part of VECTO. +* +* Copyright © 2012-2017 European Union +* +* Developed by Graz University of Technology, +* Institute of Internal Combustion Engines and Thermodynamics, +* Institute of Technical Informatics +* +* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved +* by the European Commission - subsequent versions of the EUPL (the "Licence"); +* You may not use VECTO except in compliance with the Licence. +* You may obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/community/eupl/og_page/eupl +* +* Unless required by applicable law or agreed to in writing, VECTO +* distributed under the Licence is distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the Licence for the specific language governing permissions and +* limitations under the Licence. +* +* Authors: +* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology +* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology +* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology +* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology +* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology +* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology +*/ + +<#@ template language="C#" #> +<#@ output extension=".cs"#> +<#@ include file="../../VectoCore/VectoCore/VersionNumber.t4" once="true" #> +using System.Reflection; +[assembly: AssemblyVersion("0.1.0.<#= GetBuildNumber() #>")] +[assembly: AssemblyFileVersion("0.1.0.<#= GetBuildNumber() #>")] +<#+ + int RevisionNumber = (int)(DateTime.UtcNow - new DateTime(2017, 1, 1)).TotalDays; +#> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Converter.xaml b/VECTO3GUI2020/Resources/Converter.xaml new file mode 100644 index 0000000000000000000000000000000000000000..ee924cdf0baa31fbe9a8b27f15c5c77b939709f5 --- /dev/null +++ b/VECTO3GUI2020/Resources/Converter.xaml @@ -0,0 +1,24 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converter="clr-namespace:VECTO3GUI2020.Helper.Converter" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper"> + <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + + <converter:SIToUnitString x:Shared="False" x:Key="SIToUnitStringConverter"/> + <converter:SIValueToStringConverter x:Shared="False" x:Key="SIValueToStringConverter"/> + <converter:NullToVisibilityConverter x:Key="NullToVisibilityConverter"/> + <converter:AlwaysVisibleConverter x:Key="AlwaysVisibleConverter"/> + <converter:LabledTextBoxConverter x:Key="LabledTextBoxConverter" x:Shared="false" /> + <converter:LabledTextBoxLabelConverter x:Key="LabledTextBoxLabelConverter" /> + <converter:InvertBoolConverter x:Key="InvertBoolConverter"/> + <converter:InvertedBoolToVisibilityConverter x:Key="InvertedBoolToVisibilityConverter"/> + <converter:MultistageParameterModeToVisibilityConverter x:Key="ParameterModeToVisibilityConverter"/> + <converter:XToBoolConverter x:Key="XToBoolConverter"/> + <converter:EnumConverter x:Key="EnumConverter"></converter:EnumConverter> + <converter:NullToUnsetValueConverter x:Key="NullToUnsetValue"></converter:NullToUnsetValueConverter> + <converter:BoolToIntConverter x:Key="BoolToIntConverter"></converter:BoolToIntConverter> + + + +</ResourceDictionary> + diff --git a/VECTO3GUI2020/Resources/Icons/AddDocument_16x.xaml b/VECTO3GUI2020/Resources/Icons/AddDocument_16x.xaml new file mode 100644 index 0000000000000000000000000000000000000000..6b3473284c5fb261a1f15daf4f501b0eed1fef22 --- /dev/null +++ b/VECTO3GUI2020/Resources/Icons/AddDocument_16x.xaml @@ -0,0 +1,27 @@ +<!-- This file was generated by the AiToXaml tool.--> +<!-- Tool Version: 14.0.22307.0 --> +<Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M1.9998,-0.000199999999999534L1.9998,2.0188 0.9998,2.0188 0.9998,5.9998 1.9998,5.9998 1.9998,15.9998 15.0008,15.9998 15.0008,4.3788 10.6208,-0.000199999999999534z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M10,5L10,2.207 12.793,5z M10.207,1L7,1 7,2 9,2 9,2.018 9,6 13,6 13,14 4,14 4,8 3.019,8 3,15 14,15 14,4.793z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M10,5L10,2.207 12.793,5z M10.207,1L7,1 7,2 9,2 9,2.018 9,6 13,6 13,14 4,14 4,8 3.019,8 3,15 14,15 14,4.793z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M7,2.018L9,2.018 9,1.999 7,1.999z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M10,2.207L10,5 12.793,5z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M9,6L7,6 7,8 4,8 4,14 13,14 13,6z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M7,2.018L9,2.018 9,1.999 7,1.999z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M10,2.207L10,5 12.793,5z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M9,6L7,6 7,8 4,8 4,14 13,14 13,6z" /> + <GeometryDrawing Brush="#FF388A34" Geometry="F1M8,3.0181L6,3.0181 6,1.0001 4.019,1.0001 4.019,3.0181 2,3.0181 2,5.0001 4.019,5.0001 4.019,7.0001 6,7.0001 6,5.0001 8,5.0001z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> +</Viewbox> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Icons/Add_16x.xaml b/VECTO3GUI2020/Resources/Icons/Add_16x.xaml new file mode 100644 index 0000000000000000000000000000000000000000..a341cdf085530d47fb14830484bf019f07b6434c --- /dev/null +++ b/VECTO3GUI2020/Resources/Icons/Add_16x.xaml @@ -0,0 +1,19 @@ +<!-- This file was generated by the AiToXaml tool.--> +<!-- Tool Version: 14.0.22307.0 --> +<Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M6.0003,-0.000199999999999534L6.0003,5.9998 0.000300000000000189,5.9998 0.000300000000000189,9.9998 6.0003,9.9998 6.0003,15.9998 10.0003,15.9998 10.0003,9.9998 16.0003,9.9998 16.0003,5.9998 10.0003,5.9998 10.0003,-0.000199999999999534z" /> + <GeometryDrawing Brush="#FF388934" Geometry="F1M15,9L9,9 9,15 7,15 7,9 1,9 1,7 7,7 7,1 9,1 9,7 15,7z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> +</Viewbox> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Icons/Icon2.ico b/VECTO3GUI2020/Resources/Icons/Icon2.ico new file mode 100644 index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f Binary files /dev/null and b/VECTO3GUI2020/Resources/Icons/Icon2.ico differ diff --git a/VECTO3GUI2020/Resources/Icons/Trash_16x.ico b/VECTO3GUI2020/Resources/Icons/Trash_16x.ico new file mode 100644 index 0000000000000000000000000000000000000000..9bba79cd42607f14c1e052e5e61c40863707236d Binary files /dev/null and b/VECTO3GUI2020/Resources/Icons/Trash_16x.ico differ diff --git a/VECTO3GUI2020/Resources/Icons/Trash_16x.xaml b/VECTO3GUI2020/Resources/Icons/Trash_16x.xaml new file mode 100644 index 0000000000000000000000000000000000000000..79f4d2fe3bd45ea19611b8d758fbf0077b7a2a52 --- /dev/null +++ b/VECTO3GUI2020/Resources/Icons/Trash_16x.xaml @@ -0,0 +1,20 @@ +<!-- This file was generated by the AiToXaml tool.--> +<!-- Tool Version: 14.0.22307.0 --> +<Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M4,16C2.897,16,2,15.103,2,14L2,5 1,5 1,2 4,2C4,0.897,4.897,0,6,0L9,0C10.103,0,11,0.897,11,2L14,2 14,5 13,5 13,14C13,15.103,12.103,16,11,16z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M10,12L9,12 9,6 10,6z M8,12L7,12 7,6 8,6z M6,12L5,12 5,6 6,6z M4,14L11,14 11,4 4,4z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M11,4L4,4 4,14 11,14z M6,3L9,3 9,2 6,2z M13,3L13,4 12,4 12,14C12,14.552,11.552,15,11,15L4,15C3.448,15,3,14.552,3,14L3,4 2,4 2,3 5,3 5,2C5,1.448,5.448,1,6,1L9,1C9.552,1,10,1.448,10,2L10,3z M10,6L9,6 9,12 10,12z M8,6L7,6 7,12 8,12z M6,12L5,12 5,6 6,6z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> +</Viewbox> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Icons/drawables.xaml b/VECTO3GUI2020/Resources/Icons/drawables.xaml new file mode 100644 index 0000000000000000000000000000000000000000..2d2c760217db5d9d2b2519a774f34d0e9c52e469 --- /dev/null +++ b/VECTO3GUI2020/Resources/Icons/drawables.xaml @@ -0,0 +1,69 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + <DataTemplate x:Key="TrashIcon"> + <Viewbox Stretch="Uniform" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M4,16C2.897,16,2,15.103,2,14L2,5 1,5 1,2 4,2C4,0.897,4.897,0,6,0L9,0C10.103,0,11,0.897,11,2L14,2 14,5 13,5 13,14C13,15.103,12.103,16,11,16z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M10,12L9,12 9,6 10,6z M8,12L7,12 7,6 8,6z M6,12L5,12 5,6 6,6z M4,14L11,14 11,4 4,4z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M11,4L4,4 4,14 11,14z M6,3L9,3 9,2 6,2z M13,3L13,4 12,4 12,14C12,14.552,11.552,15,11,15L4,15C3.448,15,3,14.552,3,14L3,4 2,4 2,3 5,3 5,2C5,1.448,5.448,1,6,1L9,1C9.552,1,10,1.448,10,2L10,3z M10,6L9,6 9,12 10,12z M8,6L7,6 7,12 8,12z M6,12L5,12 5,6 6,6z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> + </Viewbox> + </DataTemplate> + <DataTemplate x:Key="AddDocumentIcon"> + <Viewbox Stretch="Uniform" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M1.9998,-0.000199999999999534L1.9998,2.0188 0.9998,2.0188 0.9998,5.9998 1.9998,5.9998 1.9998,15.9998 15.0008,15.9998 15.0008,4.3788 10.6208,-0.000199999999999534z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M10,5L10,2.207 12.793,5z M10.207,1L7,1 7,2 9,2 9,2.018 9,6 13,6 13,14 4,14 4,8 3.019,8 3,15 14,15 14,4.793z" /> + <GeometryDrawing Brush="#FF424242" Geometry="F1M10,5L10,2.207 12.793,5z M10.207,1L7,1 7,2 9,2 9,2.018 9,6 13,6 13,14 4,14 4,8 3.019,8 3,15 14,15 14,4.793z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M7,2.018L9,2.018 9,1.999 7,1.999z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M10,2.207L10,5 12.793,5z" /> + <GeometryDrawing Brush="#FFF0EFF1" Geometry="F1M9,6L7,6 7,8 4,8 4,14 13,14 13,6z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M7,2.018L9,2.018 9,1.999 7,1.999z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M10,2.207L10,5 12.793,5z" /> + <GeometryDrawing Brush="#FFEFEFF0" Geometry="F1M9,6L7,6 7,8 4,8 4,14 13,14 13,6z" /> + <GeometryDrawing Brush="#FF388A34" Geometry="F1M8,3.0181L6,3.0181 6,1.0001 4.019,1.0001 4.019,3.0181 2,3.0181 2,5.0001 4.019,5.0001 4.019,7.0001 6,7.0001 6,5.0001 8,5.0001z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> + </Viewbox> + </DataTemplate> + <DataTemplate x:Key="AddIcon"> + <Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <Rectangle Width="16" Height="16"> + <Rectangle.Fill> + <DrawingBrush> + <DrawingBrush.Drawing> + <DrawingGroup> + <DrawingGroup.Children> + <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" /> + <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M6.0003,-0.000199999999999534L6.0003,5.9998 0.000300000000000189,5.9998 0.000300000000000189,9.9998 6.0003,9.9998 6.0003,15.9998 10.0003,15.9998 10.0003,9.9998 16.0003,9.9998 16.0003,5.9998 10.0003,5.9998 10.0003,-0.000199999999999534z" /> + <GeometryDrawing Brush="#FF388934" Geometry="F1M15,9L9,9 9,15 7,15 7,9 1,9 1,7 7,7 7,1 9,1 9,7 15,7z" /> + </DrawingGroup.Children> + </DrawingGroup> + </DrawingBrush.Drawing> + </DrawingBrush> + </Rectangle.Fill> + </Rectangle> + </Viewbox> + </DataTemplate> +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Icons/folderpicker.ico b/VECTO3GUI2020/Resources/Icons/folderpicker.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a76a8fef817549631e18bce0cae2f36f45fe764 Binary files /dev/null and b/VECTO3GUI2020/Resources/Icons/folderpicker.ico differ diff --git a/VECTO3GUI2020/Resources/MultistageParameterDataTemplates.xaml b/VECTO3GUI2020/Resources/MultistageParameterDataTemplates.xaml new file mode 100644 index 0000000000000000000000000000000000000000..f3499fc795fdb1f56bf70c50d1759cc676333396 --- /dev/null +++ b/VECTO3GUI2020/Resources/MultistageParameterDataTemplates.xaml @@ -0,0 +1,10 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper"> + + <helper:MultistageParameterDataTemplateSelector x:Key="MultistageParameterTemplateSelector"/> + <customControls:MultistageParameterTextView x:Key="MultistageTextBoxView"/> + <customControls:MultistageParameterComboBoxView x:Key="MultistageComboBoxView"/> + +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/ObjectProvider.xaml b/VECTO3GUI2020/Resources/ObjectProvider.xaml new file mode 100644 index 0000000000000000000000000000000000000000..1c858f64f60896d10c1172ad92ddc26a8d65996b --- /dev/null +++ b/VECTO3GUI2020/Resources/ObjectProvider.xaml @@ -0,0 +1,11 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper" + xmlns:properties="clr-namespace:VECTO3GUI2020.Properties" + xmlns:resources="clr-namespace:System.Resources;assembly=mscorlib"> + <ObjectDataProvider x:Key="milimeterDummy" + ObjectType="{x:Type helper:ConvertedSIDummyCreator}" + MethodName="CreateMillimeterDummy"/> + + <ObjectDataProvider x:Key="BusStringResourceManager" ObjectType="{x:Type resources:ResourceManager}" ObjectInstance="{x:Static properties:BusStrings.ResourceManager}"/> +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Styles/ButtonStyles.xaml b/VECTO3GUI2020/Resources/Styles/ButtonStyles.xaml new file mode 100644 index 0000000000000000000000000000000000000000..b5b95eb545e5061c7af04fcb4599cfaba6de5a33 --- /dev/null +++ b/VECTO3GUI2020/Resources/Styles/ButtonStyles.xaml @@ -0,0 +1,103 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + <SolidColorBrush x:Key="Button.Static.Background2" Color="#FFDDDDDD"/> + <SolidColorBrush x:Key="Button.Static.Border2" Color="#FF707070"/> + <SolidColorBrush x:Key="MultiStageButtonMouseOverBackGround" Color="#FFBEE6FD"/> + + + <Style x:Key="MultiStageButtonStyle1" TargetType="{x:Type Button}"> + <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/> + <Setter Property="Background" Value="{StaticResource Button.Static.Background2}"/> + <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border2}"/> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="HorizontalContentAlignment" Value="Center"/> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="Padding" Value="1"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Button}"> + <Border x:Name="border" BorderBrush="{DynamicResource AccentColorButton}" BorderThickness="0,0,0,1" Background="White" SnapsToDevicePixels="true" Width="Auto" Height="30"> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="CommonStates"> + <VisualStateGroup.Transitions> + <VisualTransition From="Normal" GeneratedDuration="0:0:0.3" To="MouseOver"> + <VisualTransition.GeneratedEasingFunction> + <BackEase EasingMode="EaseIn"/> + </VisualTransition.GeneratedEasingFunction> + </VisualTransition> + </VisualStateGroup.Transitions> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,0,1,6.02" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Bottom"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsDefaulted" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonHighlightColor}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource AccentColorButton}"/> + </Trigger> + <Trigger Property="IsPressed" Value="true"> + <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonHightlightPressedColor}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource AccentColorButton}"/> + </Trigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/> + <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="FocusVisual"> + <Setter Property="Control.Template"> + <Setter.Value> + <ControlTemplate> + <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="FilePickerButtonStyle" TargetType="{x:Type Button}"> + <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/> + <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/> + <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="HorizontalContentAlignment" Value="Center"/> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="Padding" Value="1"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Button}"> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsDefaulted" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonHighlightColor}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource AccentColorButton}"/> + </Trigger> + <Trigger Property="IsPressed" Value="true"> + <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonHightlightPressedColor}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource AccentColorButton}"/> + </Trigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/> + <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Styles/Colors.xaml b/VECTO3GUI2020/Resources/Styles/Colors.xaml new file mode 100644 index 0000000000000000000000000000000000000000..24f9fd5328a3a725b7cb3a642ff474827b645142 --- /dev/null +++ b/VECTO3GUI2020/Resources/Styles/Colors.xaml @@ -0,0 +1,18 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:VECTO3GUI2020"> + + <Color x:Key="SystemAccentColor"> + </Color> + <!--SolidColorBrush x:Key="AccentColorButton" Color="{x:Static SystemParameters.WindowGlassColor}"/--> + + <!--<SolidColorBrush x:Key="AccentColorButton" Color="}"></SolidColorBrush>--> + <SolidColorBrush x:Key="AccentColorButton" Color="#FF10796B"/> + <Color x:Key="ButtonBackgroundColor">White</Color> + <SolidColorBrush x:Key="ButtonHighlightColor" Opacity="0.3" + Color="{Binding Color, Source={StaticResource AccentColorButton}, Mode=OneWay}" /> + <SolidColorBrush x:Key="ButtonHightlightPressedColor" Opacity="0.4" + Color="{Binding Color, Source={StaticResource AccentColorButton}, Mode=OneWay}" /> + + +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Styles/GlobalStyles.xaml b/VECTO3GUI2020/Resources/Styles/GlobalStyles.xaml new file mode 100644 index 0000000000000000000000000000000000000000..c4aa2d9608b97ce62f93e9d2981762524524cc18 --- /dev/null +++ b/VECTO3GUI2020/Resources/Styles/GlobalStyles.xaml @@ -0,0 +1,91 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + + + + <Style x:Key="ListViewStyle" TargetType="ListView"> + <Setter Property="Background" Value="DimGray"/> + <Setter Property="Foreground" Value="White" /> + </Style> + <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/> + <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/> + <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/> + + <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/> + <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/> + <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/> + <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/> + <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/> + <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/> + <SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/> + <SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/> + <SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/> + <Style x:Key="TextBoxStyle1" TargetType="{x:Type TextBox}"> + <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> + <Setter Property="BorderBrush" Value="{StaticResource TextBox.Static.Border}"/> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/> + <Setter Property="HorizontalContentAlignment" Value="Left"/> + <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="AllowDrop" Value="true"/> + <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/> + <Setter Property="Stylus.IsFlicksEnabled" Value="False"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type TextBox}"> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> + <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Opacity" TargetName="border" Value="0.56"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHighlightColor}"/> + <!--<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/>--> + </Trigger> + <Trigger Property="IsKeyboardFocused" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHighlightColor}"/> + + <!--<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/>--> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsInactiveSelectionHighlightEnabled" Value="true"/> + <Condition Property="IsSelectionActive" Value="false"/> + </MultiTrigger.Conditions> + <Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/> + </MultiTrigger> + </Style.Triggers> + </Style> + <Style x:Key="LabelStyle1" TargetType="{x:Type Label}"> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> + <Setter Property="Background" Value="{DynamicResource ButtonHighlightColor}"/> + <Setter Property="Padding" Value="5"/> + <Setter Property="HorizontalContentAlignment" Value="Left"/> + <Setter Property="VerticalContentAlignment" Value="Top"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Label}"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + + +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/Templates/ErrorTemplates.xaml b/VECTO3GUI2020/Resources/Templates/ErrorTemplates.xaml new file mode 100644 index 0000000000000000000000000000000000000000..3cb32aaf620dbea6ac40973811900255e45cc23f --- /dev/null +++ b/VECTO3GUI2020/Resources/Templates/ErrorTemplates.xaml @@ -0,0 +1,12 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls"> + +<ControlTemplate x:Key="multistageParameterControlErrorTemplate"> + <Grid> + <AdornedElementPlaceholder></AdornedElementPlaceholder> + <TextBlock Text="!" Height="Auto" FontWeight="ExtraBold" Foreground="OrangeRed" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 -10 0"></TextBlock> + </Grid> + +</ControlTemplate> +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Resources/ViewModelBindings.xaml b/VECTO3GUI2020/Resources/ViewModelBindings.xaml new file mode 100644 index 0000000000000000000000000000000000000000..8ab51b42b3298ef42586280491f1b96d77eb0b38 --- /dev/null +++ b/VECTO3GUI2020/Resources/ViewModelBindings.xaml @@ -0,0 +1,234 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:VECTO3GUI2020" + xmlns:interfaces="clr-namespace:VECTO3GUI2020.ViewModel.Interfaces" + xmlns:views="clr-namespace:VECTO3GUI2020.Views" + xmlns:jobeditviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews" + xmlns:impl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" + xmlns:jobeditimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit" + xmlns:vehicleimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle" + xmlns:vehicleviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle" + xmlns:multistageviews="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:componentimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components" + xmlns:componentviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:multistageimpl="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:viewModel="clr-namespace:VECTO3GUI2020.ViewModel"> + <DataTemplate x:Shared="False" DataType="{x:Type impl:JobListViewModel}"> + <views:JobListView /> + </DataTemplate> + <DataTemplate x:Shared="False" DataType="{x:Type viewModel:OutputViewModel}"> + <views:OutputView /> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type impl:MainWindowViewModel}"> + <local:MainWindow /> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type impl:SettingsViewModel}"> + <views:SettingsView/> + </DataTemplate> + + + + + + + <DataTemplate x:Shared="False" DataType="{x:Type jobeditimpl:DeclarationJobEditViewModel_v1_0}"> + <jobeditviews:DeclarationJobEditView/> + </DataTemplate> + <DataTemplate x:Shared="False" DataType="{x:Type jobeditimpl:DeclarationJobEditViewModel_v2_0}"> + <jobeditviews:DeclarationJobEditView/> + </DataTemplate> + + + + <!--#region HeavyLorry --> + <DataTemplate x:Shared="False" DataType="{x:Type vehicleimpl:VehicleViewModel_v1_0 }"> + <vehicleviews:VehicleView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type vehicleimpl:VehicleViewModel_v2_0}"> + <vehicleviews:VehicleView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:CommonComponentViewModel}"> + <componentviews:CommonComponentView/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:EngineViewModel_v2_0}"> + <componentviews:EngineView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:EngineViewModel_v1_0}"> + <componentviews:EngineView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AirDragViewModel_v2_0}"> + <componentviews:AirDragView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AirDragViewModel_v1_0}"> + <componentviews:AirDragView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AxleWheelsViewModel_v1_0}"> + <componentviews:AxleWheelsView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AxleWheelsViewModel_v2_0}"> + <componentviews:AxleWheelsView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AxleGearViewModel_v1_0}"> + <componentviews:AxleGearView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentviews:AxleGearView_v2_0}"> + <componentviews:AxleGearView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:RetarderViewModel_v1_0}"> + <componentviews:RetarderView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:RetarderViewModel_v2_0}"> + <componentviews:RetarderView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:GearboxViewModel_v1_0}"> + <componentviews:GearboxView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:GearboxViewModel_v2_0}"> + <componentviews:GearboxView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliariesViewModel_v1_0}"> + <componentviews:AuxiliariesView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliariesViewModel_v2_0}"> + <componentviews:AuxiliariesView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliariesViewModel_v2_3}"> + <componentviews:AuxiliariesView_v2_0/> + </DataTemplate> + + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AxleViewModel_v1_0}"> + <componentviews:AxleView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AxleViewModel_v2_0}"> + <componentviews:AxleView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:TyreViewModel_v1_0}"> + <componentviews:TyreView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:TyreViewModel_v2_0}"> + <componentviews:TyreView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:TyreViewModel_v2_2}"> + <componentviews:TyreView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:TyreViewModel_v2_3}"> + <componentviews:TyreView_v2_3/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:GearViewModel_v1_0}"> + <componentviews:GearView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:GearViewModel_v2_0}"> + <componentviews:GearView_v2_0/> + </DataTemplate> + + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:PTOViewModel_V1_0}"> + <componentviews:PTOView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:PTOViewModel_V2_0}"> + <componentviews:PTOView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AngleDriveViewModel_v1_0}"> + <componentviews:AngleDriveView_v2_0/> + </DataTemplate> + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AngleDriveViewModel_v2_0}"> + <componentviews:AngleDriveView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliaryViewModel_v1_0}"> + <componentviews:AuxiliaryView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliaryViewModel_v2_0}"> + <componentviews:AuxiliaryView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AuxiliaryViewModel_v2_3}"> + <componentviews:AuxiliaryView_v2_0/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:ADASViewModel_v1_0}"> + <componentviews:ADASView_v2_3/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:ADASViewModel_v2_1}"> + <componentviews:ADASView_v2_3/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:ADASViewModel_v2_3}"> + <componentviews:ADASView_v2_3/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:EngineModeViewModelSingleFuel}"> + <componentviews:EngineModeViewSingleFuel/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:EngineFuelViewModel}"> + <componentviews:EngineFuelView/> + </DataTemplate> + <!--#endregion--> + + <DataTemplate x:Shared="False" DataType="{x:Type componentimpl:AirDragViewModel_v2_8}"> + <multistageviews:AirDragView_v2_8></multistageviews:AirDragView_v2_8> + </DataTemplate> + + <!--#region Multistage --> + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:NewMultiStageJobViewModel}"> + <multistageviews:NewMultistageFileView/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:ManufacturingStageViewModel_v0_1}"> + <multistageviews:ManufacturingStageView></multistageviews:ManufacturingStageView> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:DeclarationInterimStageBusVehicleViewModel_v2_8}"> + <multistageviews:VehicleView_v2_8/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:MultiStageJobViewModel_v0_1}"> + <multistageviews:MultiStageView/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:MultistageAirdragViewModel}"> + <multistageviews:MultistageAirDragView/> + </DataTemplate> + + <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:MultistageAuxiliariesViewModel}"> + <multistageviews:ManufacturingStageAuxiliariesView/> + </DataTemplate> + <!--#endregion--> + + <DataTemplate DataType="{x:Type local:TestViewModel}"> + <local:Test></local:Test> + </DataTemplate> + +</ResourceDictionary> \ No newline at end of file diff --git a/VECTO3GUI2020/Test.xaml b/VECTO3GUI2020/Test.xaml new file mode 100644 index 0000000000000000000000000000000000000000..db10836895142d67547c5fc7631a171bd49846c2 --- /dev/null +++ b/VECTO3GUI2020/Test.xaml @@ -0,0 +1,24 @@ +<UserControl x:Class="VECTO3GUI2020.Test" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance local:TestViewModel }"> + + <Grid> + + <!--https://www.thomasclaudiushuber.com/2008/01/10/bind-to-methods-with-objectdataprovider/--> + <StackPanel> + <!--<customControls:MultiStageParameter Content="{Binding ConvertedSI}" DummyContent="{Binding Source={StaticResource milimeterDummy}}"/> + <customControls:MultiStageParameter Content="{Binding ConvertedSI1}" DummyContent="{Binding Source={StaticResource milimeterDummy}}"/> + <customControls:MultiStageParameter Content="{Binding Meter}"/>--> + <customControls:MultiStageParameter Mode="COMBOBOX" Content="{Binding HeatPumpMode}" EditingEnabled="{Binding enabled}" ListItems="{Binding HeatPumpModeListItems}"></customControls:MultiStageParameter> + <!--<customControls:MultiStageParameter Mode="COMBOBOX" Content="{Binding HeatPumpMode2}" EditingEnabled="{Binding enabled}"></customControls:MultiStageParameter>--> + <!--<customControls:MultiStageParameter Mode="TEXTBOX" Content="{Binding TestString, ValidatesOnExceptions=True}"></customControls:MultiStageParameter>--> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Test.xaml.cs b/VECTO3GUI2020/Test.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..540ccaf6e0de93263e7cdb24146e548c883950f0 --- /dev/null +++ b/VECTO3GUI2020/Test.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020 +{ + /// <summary> + /// Interaction logic for Test.xaml + /// </summary> + public partial class Test : UserControl + { + public Test() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/TestViewModel.cs b/VECTO3GUI2020/TestViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..2e5b1a9badb3db6139fb932f357bcdce0f5f86f1 --- /dev/null +++ b/VECTO3GUI2020/TestViewModel.cs @@ -0,0 +1,94 @@ +using System; +using System.CodeDom; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Castle.Components.DictionaryAdapter; +using Castle.Core.Internal; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Common; + +namespace VECTO3GUI2020 +{ + public class TestViewModel : ViewModelBase, IMainViewModel + { + private ConvertedSI _convertedSI; + + public ConvertedSI ConvertedSI + { + get => _convertedSI; + set => SetProperty(ref _convertedSI, value); + + } + + private ConvertedSI _convertedSI1; + + public ConvertedSI ConvertedSI1 + { + get => _convertedSI1; + set => SetProperty(ref _convertedSI1, value); + + } + + + private Meter _meter; + private HeatPumpMode? _heatpumpMode; + private string _testString; + + public Meter Meter + { + get => _meter; + set => SetProperty(ref _meter, value); + } + + public HeatPumpMode? HeatPumpMode + { + get => _heatpumpMode; + set => SetProperty(ref _heatpumpMode, value); + } + + private IList<HeatPumpMode> allowedValues = new List<HeatPumpMode>(){ + TUGraz.VectoCommon.BusAuxiliaries.HeatPumpMode.cooling, + TUGraz.VectoCommon.BusAuxiliaries.HeatPumpMode.heating_and_cooling + }; + + private HeatPumpMode? _heatpumpMode2; + private bool _enabled; + public bool enabled { get => _enabled; set => SetProperty(ref _enabled, value); } + public HeatPumpMode? HeatPumpMode2 + { + get => _heatpumpMode2; + set => SetProperty(ref _heatpumpMode2, value); + } + + public ObservableCollection<Enum> HeatPumpModeListItems + { + get => new ObservableCollection<Enum>(allowedValues.Cast<Enum>()); + } + + public String TestString + { + get => _testString; + set + { + if (value.IsNullOrEmpty()) { + throw new VectoEmptyFieldException(); + } + SetProperty(ref _testString, value); + } + } + + + public TestViewModel() + { + _enabled = true; + + } + } +} diff --git a/VECTO3GUI2020/Util/AllowedEntry.cs b/VECTO3GUI2020/Util/AllowedEntry.cs new file mode 100644 index 0000000000000000000000000000000000000000..4d1c7270a2afa6f818e5d6035daf2e22b9a56297 --- /dev/null +++ b/VECTO3GUI2020/Util/AllowedEntry.cs @@ -0,0 +1,20 @@ +namespace VECTO3GUI2020.Util +{ + + public class AllowedEntry + { + public static AllowedEntry<T> Create<T>(T label, string description) + { + return new AllowedEntry<T> + { + Value = label, + Label = description + }; + } + } + public class AllowedEntry<T> + { + public string Label { get; set; } + public T Value { get; set; } + } +} diff --git a/VECTO3GUI2020/Util/Component.cs b/VECTO3GUI2020/Util/Component.cs new file mode 100644 index 0000000000000000000000000000000000000000..4799bc6244ebe9632df783194f3aa52052d0efed --- /dev/null +++ b/VECTO3GUI2020/Util/Component.cs @@ -0,0 +1,61 @@ +using TUGraz.VectoCommon.Resources; + +namespace VECTO3GUI2020.Util +{ + public enum Component + { + Vehicle = 1, + PrimaryBusVehicle, + Engine, + Gearbox, + TorqueConverter, + Retarder, + Angledrive, + Axlegear, + PTO, + Airdrag, + Axles, + Auxiliaries, + BusAuxiliaries, + Cycle, + CompleteBusVehicle + } + + public static class ComponentHelper + { + public static string GetLabel(this Component component) + { + switch (component) { + case Component.Vehicle: + case Component.PrimaryBusVehicle: + case Component.CompleteBusVehicle: + return XMLNames.Component_Vehicle; + case Component.Engine: + return XMLNames.Component_Engine; + case Component.Gearbox: + return XMLNames.Component_Gearbox; + case Component.TorqueConverter: + return XMLNames.Component_TorqueConverter; + case Component.Retarder: + return XMLNames.Component_Retarder; + case Component.Angledrive: + return XMLNames.Component_Angledrive; + case Component.Axlegear: + return XMLNames.Component_Axlegear; + case Component.PTO: + return XMLNames.Vehicle_PTO; + case Component.Airdrag: + return XMLNames.Component_AirDrag; + case Component.Axles: + return XMLNames.AxleWheels_Axles_Axle; + case Component.Auxiliaries: + case Component.BusAuxiliaries: + return XMLNames.Component_Auxiliaries; + case Component.Cycle: + return nameof(Component.Cycle); + } + + return string.Empty; + } + } +} diff --git a/VECTO3GUI2020/Util/InheritingConstructorParameterInstanceProvider.cs b/VECTO3GUI2020/Util/InheritingConstructorParameterInstanceProvider.cs new file mode 100644 index 0000000000000000000000000000000000000000..9f1312c28050beee9f946e86af4aa1b7d6fb6ace --- /dev/null +++ b/VECTO3GUI2020/Util/InheritingConstructorParameterInstanceProvider.cs @@ -0,0 +1,30 @@ +using Ninject.Extensions.Factory; +using Ninject.Extensions.Factory.Factory; +using Ninject.Parameters; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Navigation; + +namespace VECTO3GUI2020.Util +{ + public class InheritingConstructorParameterInstanceProvider : StandardInstanceProvider + { + public override object GetInstance(IInstanceResolver instanceResolver, MethodInfo methodInfo, object[] arguments) + { + return base.GetInstance(instanceResolver, methodInfo, arguments.Skip(1).ToArray(); + } + + protected override IConstructorArgument[] GetConstructorArguments(MethodInfo methodInfo, object[] arguments) + { + //https://stackoverflow.com/questions/32138857/inherit-constructorparameter-from-a-factory + return methodInfo.GetParameters() + .Select((parameter, index) => + new ConstructorArgument( + parameter.Name, arguments[index], true)).Cast<IConstructorArgument>().ToArray(); + } + } +} diff --git a/VECTO3GUI2020/Util/RelayCommand.cs b/VECTO3GUI2020/Util/RelayCommand.cs new file mode 100644 index 0000000000000000000000000000000000000000..702384d99666b8eafa41b9d97b4d63584f147224 --- /dev/null +++ b/VECTO3GUI2020/Util/RelayCommand.cs @@ -0,0 +1,84 @@ +using System; +using System.Windows.Input; + +namespace VECTO3GUI2020.Util +{ + public class RelayCommand<T> : ICommand + { + + private readonly Action<T> _execute; + private readonly Predicate<T> _canExecute; + + + public event EventHandler CanExecuteChanged { + add + { + CommandManager.RequerySuggested += value; + } + remove + { + CommandManager.RequerySuggested -= value; + } + } + + public RelayCommand(Action<T> execute, Predicate<T> canExecute = null) + { + _execute = execute?? throw new ArgumentNullException(nameof(execute)); + _canExecute = canExecute; + } + + public bool CanExecute(object parameter) + { + return _canExecute != null ?_canExecute((T)parameter) : true; + } + + public void Execute(object parameter) + { + _execute((T)parameter); + } + } + + + + + + public class RelayCommand : ICommand + { + + + private readonly Action _execute; + private readonly Func<bool> _canExecute; + + public RelayCommand(Action execute, Func<bool> canExecute = null) + { + _execute = execute ?? throw new ArgumentNullException(nameof(execute)); + _canExecute = canExecute; + + + } + + public event EventHandler CanExecuteChanged + { + add + { + CommandManager.RequerySuggested += value; + } + + remove + { + CommandManager.RequerySuggested -= value; + } + } + + public bool CanExecute(object parameter) + { + return _canExecute != null ? _canExecute() : true ; + } + + public void Execute(object parameter) + { + _execute(); + } + + } +} diff --git a/VECTO3GUI2020/Util/SIUtils.cs b/VECTO3GUI2020/Util/SIUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..0d7ea5a1a4ae96a7082f65af91c3506fb45efcc7 --- /dev/null +++ b/VECTO3GUI2020/Util/SIUtils.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Reflection; +using TUGraz.VectoCommon.Utils; + + +//Copied from VECTO3GUI franz kober +namespace VECTO3GUI2020.Util +{ + public static class SIUtils + { + static readonly Dictionary<Type, Func<double, object>> Constructors = new Dictionary<Type, Func<double, object>>(); + + public static SI CreateSIValue(Type targetType, double value) + { + if (!typeof(SI).IsAssignableFrom(targetType)) { + return null; + } + + if (!Constructors.ContainsKey(targetType)) { + const BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Instance; + var constructorInfo = targetType.GetConstructor(bindingFlags, null, new[] { typeof(double) }, null); + var param = Expression.Parameter(typeof(double)); + var expr = Expression.Lambda<Func<double, object>>(Expression.New(constructorInfo, param), param); + var constr = expr.Compile(); + Constructors[targetType] = constr; + } + + return (SI)Constructors[targetType](value); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..aaeaa4fa379841f7b8f023942b9bab822ff7b9d4 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using Castle.Core.Internal; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLAirDragWriter : IXMLComponentWriter + { + protected IAirdragDeclarationInputData _inputData; + protected XNamespace _defaultNamespace; + protected XElement _xElement; + protected string _uri = "ToDO-Add-id"; + + public XMLAirDragWriter(IAirdragDeclarationInputData inputData) + { + _inputData = inputData; + _uri = inputData.DigestValue?.Reference?.Replace("#",""); + if (_uri == null) { + _uri = "AirdragComponent" + Guid.NewGuid().ToString("n").Substring(0, 20); + } + } + + public XElement GetElement() + { + if (_xElement == null) { + + Initialize(); + CreateDataElements(); + var signatureElemnet = this.CreateSignatureElement(_defaultNamespace, _uri, _inputData.DigestValue); + _xElement.Add(signatureElemnet); + } + + return _xElement; + } + + public XElement GetElement(XNamespace wrapperNamespace) + { + throw new NotImplementedException(); + } + + protected abstract void Initialize(); + protected abstract void CreateDataElements(); + + + } + + public class XMLAirDragWriter_v2_0 : XMLAirDragWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(AirDragViewModel_v2_0).ToString(), + typeof(MultistageAirdragViewModel).ToString() + }; + public XMLAirDragWriter_v2_0(IAirdragDeclarationInputData inputData) : base(inputData) { } + protected override void CreateDataElements() + { + var dataElement = new XElement(_defaultNamespace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + + dataElement.Add(new XAttribute(XMLNames.Component_ID_Attr, _uri), new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, "v2.0:" + + XMLNames.AirDrag_Data_Type_Attr)); + + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_CertificationNumber, _inputData.CertificationNumber)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, _inputData.Date)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AirDrag_CdxA_0, _inputData.AirDragArea_0.ToXMLFormat(2))); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AirDrag_TransferredCDxA, _inputData.TransferredAirDragArea.ToXMLFormat(2))); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AirDrag_DeclaredCdxA, _inputData.AirDragArea.ToXMLFormat(2))); + + + dataElement.DescendantsAndSelf().Where(e => e.Value.IsNullOrEmpty()).Remove(); + } + + protected override void Initialize() + { + _defaultNamespace = XMLNamespaces.V20; + _xElement = new XElement(XMLNames.Component_AirDrag); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAuxiliariesWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAuxiliariesWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..aadcf95e8de288c0e7d0fa61dbb3fe40cba2cc71 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAuxiliariesWriter.cs @@ -0,0 +1,69 @@ +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 VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLAuxiliariesWriter : IXMLComponentWriter + { + protected XNamespace _defaultNamespace; + protected XElement _xElement; + protected IAuxiliariesDeclarationInputData _inputData; + + public XMLAuxiliariesWriter(IAuxiliariesDeclarationInputData inputData) + { + _inputData = inputData; + } + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateElements(); + } + + return _xElement; + } + public abstract void Initialize(); + + public abstract void CreateElements(); + } + + public class XMLAuxiliariesWriter_v2_0 : XMLAuxiliariesWriter + { + + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(AuxiliariesViewModel_v2_0).ToString() + }; + + public XMLAuxiliariesWriter_v2_0(IAuxiliariesDeclarationInputData inputData) : base(inputData) { } + + public override void CreateElements() + { + var dataElement = new XElement(_defaultNamespace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.Auxiliaries_Type_Attr_DataDeclarationType)); + + foreach (var auxiliary in _inputData.Auxiliaries) { + var auxElement = new XElement(_defaultNamespace + auxiliary.Type.ToString()); + auxElement.Add(new XElement(_defaultNamespace + XMLNames.Auxiliaries_Auxiliary_Technology, + auxiliary.Technology[0])); + dataElement.Add(auxElement); + } + } + + public override void Initialize() + { + _defaultNamespace = XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.Component_Auxiliaries); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleGearWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleGearWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..d687eb07adb2732548f1aa3ebf22b92144a04d35 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleGearWriter.cs @@ -0,0 +1,92 @@ +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.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLAxleGearWriter : IXMLComponentWriter + { + protected XElement _xElement; + protected IAxleGearInputData _inputData; + protected XNamespace _defaultNamespace; + protected string _uri = "ToDO-ADD_URI"; + + public XMLAxleGearWriter(IAxleGearInputData inputData) + { + _inputData = inputData; + + + } + + public abstract void Initialize(); + public abstract void CreateDataElements(); + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + _xElement.Add(this.CreateSignatureElement(_defaultNamespace, _uri, _inputData.DigestValue)); + } + return _xElement; + } + } + + public class XMLAxleGearWriter_v2_0 : XMLAxleGearWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(AxleGearViewModel_v2_0).ToString() + }; + + + public XMLAxleGearWriter_v2_0(IAxleGearInputData inputData) : base(inputData) + { + + } + + + public override void Initialize() + { + _defaultNamespace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.Component_Axlegear); + } + + public override void CreateDataElements() + { + var dataElement = new XElement(_defaultNamespace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + + dataElement.Add(new XAttribute(XMLNames.Component_ID_Attr, _uri)); + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.AxleGear_Type_Attr)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_CertificationNumber, _inputData.CertificationNumber)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, _inputData.Date)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Axlegear_LineType, _inputData.LineType.ToXMLFormat())); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AngleDrive_Ratio, _inputData.Ratio.ToXMLFormat(3))); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_CertificationMethod, _inputData.CertificationMethod.ToXMLFormat())); + + var torqueLossMap = new XElement(_defaultNamespace + XMLNames.Axlegear_TorqueLossMap); + dataElement.Add(torqueLossMap); + foreach (DataRow row in _inputData.LossMap.Rows) { + var entry = new XElement(_defaultNamespace + XMLNames.Axlegear_TorqueLossMap_Entry); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_InputSpeed_Attr, row[0].ToString())); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_InputTorque_Attr, row[1].ToString())); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_TorqueLoss_Attr, row[2].ToString())); + torqueLossMap.Add(entry); + } + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..f52ba462826299b408bb0f7ef5b2fc9e6ea5e585 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelWriter.cs @@ -0,0 +1,68 @@ +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 VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLAxleWheelWriter : IXMLComponentWriter + { + protected IXMLWriterFactory _writerFactory; + protected IAxleDeclarationInputData _inputData; + + protected XNamespace _defaultNamespace; + + protected XElement _xElement; + public XMLAxleWheelWriter(IAxleDeclarationInputData inputData, IXMLWriterFactory writerFactory) + { + _inputData = inputData; + _writerFactory = writerFactory; + } + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateElement(); + } + + return _xElement; + } + + protected abstract void CreateElement(); + protected abstract void Initialize(); + } + + + public class XMLAxleWheelWriter_v2_0 : XMLAxleWheelWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(AxleViewModel_v2_0).ToString() + }; + public XMLAxleWheelWriter_v2_0(IAxleDeclarationInputData inputData, IXMLWriterFactory writerFactory) : base(inputData, writerFactory) { } + + protected override void CreateElement() + { + _xElement.Add(new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, 0));//_inputData.AxleNumber)); + _xElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.Axle_Type_Attr_AxleDataDeclarationType)); + _xElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_AxleType, _inputData.AxleType)); + _xElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_TwinTyres, _inputData.TwinTyres)); + _xElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_Steered, false)); //_inputData.Steered)); + + _xElement.Add(_writerFactory.CreateComponentWriter(_inputData.Tyre).GetElement()); + } + + protected override void Initialize() + { + + _defaultNamespace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelsWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelsWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..9692c640c49e5768fbef6a98b2272a12016c933a --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAxleWheelsWriter.cs @@ -0,0 +1,70 @@ +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 VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLAxleWheelsWriter : IXMLComponentWriter + { + protected XElement _xElement; + protected XNamespace _defaultNameSpace; + protected IAxlesDeclarationInputData _inputData; + protected IXMLWriterFactory _writerFactory; + + protected XMLAxleWheelsWriter(IAxlesDeclarationInputData inputData, IXMLWriterFactory writerFactory) + { + _inputData = inputData; + _writerFactory = writerFactory; + } + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + } + + return _xElement; + } + + public abstract void CreateDataElements(); + public abstract void Initialize(); + } + + + public class XMLAxleWheelsWriter_v2_0 : XMLAxleWheelsWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(AxleWheelsViewModel_v2_0).ToString() + }; + public override void CreateDataElements() + { + _xElement.Add(new XElement(_defaultNameSpace + XMLNames.ComponentDataWrapper)); + var dataElement = _xElement.LastNode as XElement; + + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.AxleWheels_Type_Attr_AxleWheelsDeclarationType)); + + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.AxleWheels_Axles)); + var axles = dataElement.LastNode as XElement; + foreach (var axle in _inputData.AxlesDeclaration) { + axles.Add(_writerFactory.CreateComponentWriter(axle).GetElement()); + } + } + + public override void Initialize() + { + _defaultNameSpace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNameSpace + XMLNames.Component_AxleWheels); + } + + public XMLAxleWheelsWriter_v2_0(IAxlesDeclarationInputData inputData, IXMLWriterFactory writerFactory) : base(inputData, writerFactory) { } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..ad44783039c8b070b744ed533de5947710fd64bb --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs @@ -0,0 +1,118 @@ +using System; +using System.Linq; +using System.Xml.Linq; +using Castle.Core.Internal; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using VECTO3GUI2020.Util.XML.Interfaces; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public interface IXMLBusAuxiliariesWriter : IXMLComponentWriter + { + + } + + public abstract class XMLBusAuxiliariesWriter : IXMLBusAuxiliariesWriter + { + protected readonly IBusAuxiliariesDeclarationData _inputData; + protected XElement _xElement; + + protected XMLBusAuxiliariesWriter(IBusAuxiliariesDeclarationData inputData) + { + _inputData = inputData; + } + + public XElement GetElement() + { + if (_xElement == null) + { + Initialize(); + CreateElements(); + } + + return _xElement; + } + + public XElement GetElement(XNamespace wrapperNamespace) + { + throw new System.NotImplementedException(); + } + + public abstract void Initialize(); + + public abstract void CreateElements(); + } + + + + public class XMLBusAuxiliariesWriterMultistage : XMLBusAuxiliariesWriter + { + + + private XNamespace _defaultNamespace; + public XMLBusAuxiliariesWriterMultistage(IBusAuxiliariesDeclarationData inputData) : base(inputData) { } + + #region Overrides of XMLBusAuxiliariesWriter + + public override void Initialize() + { + _defaultNamespace = XMLNamespaces.V28; + _xElement = new XElement(_defaultNamespace + XMLNames.Component_Auxiliaries); + } + + public override void CreateElements() + { + + var dataElement = new XElement(_defaultNamespace + XMLNames.ComponentDataWrapper, + new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, "CompletedVehicleAuxiliaryDataDeclarationType")); + _xElement.Add(dataElement); + + + if (_inputData.ElectricConsumers != null) { + var electricSystemElement = new XElement(_defaultNamespace + XMLNames.BusAux_ElectricSystem); + var ledLightsElement = new XElement(_defaultNamespace + "LEDLights"); + ledLightsElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_Interiorlights, _inputData.ElectricConsumers.InteriorLightsLED)); + ledLightsElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_Dayrunninglights, _inputData.ElectricConsumers.DayrunninglightsLED)); + ledLightsElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_Positionlights, _inputData.ElectricConsumers.PositionlightsLED)); + ledLightsElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_Brakelights, _inputData.ElectricConsumers.BrakelightsLED)); + ledLightsElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_Headlights, _inputData.ElectricConsumers.HeadlightsLED)); + electricSystemElement.Add(ledLightsElement); + dataElement.Add(electricSystemElement); + } + + if (_inputData.HVACAux != null) { + var hvacElement = new XElement(_defaultNamespace + "HVAC"); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SystemConfiguration, _inputData.HVACAux.SystemConfiguration.GetXmlFormat())); + var heatPumpTypeLabel = _inputData.HVACAux.HeatPumpTypeDriverCompartment.GetLabel(); + if (heatPumpTypeLabel == "~null~") { + heatPumpTypeLabel = null; + } + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeatPumpTypeDriver, heatPumpTypeLabel)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeatPumpModeDriver, _inputData.HVACAux.HeatPumpModeDriverCompartment.GetLabel())); + //TODO + if (_inputData.HVACAux.HeatPumpPassengerCompartments != null) { + foreach (var (heatPumpType, heatPumpMode) in _inputData.HVACAux.HeatPumpPassengerCompartments) { + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeatPumpTypePassenger, heatPumpType.GetLabel())); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeatPumpModePassenger, heatPumpMode.GetLabel())); + } + } + + + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_AuxiliaryHeaterPower, _inputData.HVACAux.AuxHeaterPower?.ToXMLFormat(0))); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_DoubleGlazing, _inputData.HVACAux.DoubleGlazing)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_AdjustableAuxiliaryHeater, _inputData.HVACAux.AdjustableAuxiliaryHeater)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SeparateAirDistributionDucts, _inputData.HVACAux.SeparateAirDistributionDucts)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_WaterElectricHeater, _inputData.HVACAux.WaterElectricHeater)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_AirElectricHeater, _inputData.HVACAux.AirElectricHeater)); + hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_OtherHeatingTechnology, _inputData.HVACAux.OtherHeatingTechnology)); + dataElement.Add(hvacElement); + } + + dataElement.DescendantsAndSelf().Where(e => e.Value.IsNullOrEmpty()).Remove(); + } + + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLComponentsWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLComponentsWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..db6943a1f19d80c5993e1b9ad340085ac11eef99 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLComponentsWriter.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.IVT.VectoXML.Writer; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using EnvironmentVariableTarget = System.EnvironmentVariableTarget; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLComponentsWriter : IXMLComponentsWriter + { + protected IXMLWriterFactory _xMLWriterFactory; + + protected XElement _xElement; + + protected static string _name = "Components"; + protected static readonly string _declarationDefinition = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions"; + protected static readonly XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + protected static readonly XNamespace _v10 = _declarationDefinition + ":v1.0"; + protected static readonly XNamespace _v20 = _declarationDefinition + ":v2.0"; + protected XNamespace _defaultNamespace; + protected IVehicleComponentsDeclaration _inputData; + + + public XMLComponentsWriter(IVehicleComponentsDeclaration inputData, IXMLWriterFactory xMLWriterFactory) + { + _inputData = inputData; + _xMLWriterFactory = xMLWriterFactory; + Initialize(); + CreateComponents(); + } + + + protected abstract void CreateComponents(); + public abstract XElement GetComponents(); + public abstract void Initialize(); + + + } + + public class XMLComponentsWriter_v1_0 : XMLComponentsWriter + { + + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(ComponentsViewModel_v1_0).ToString() + }; + public XMLComponentsWriter_v1_0(IVehicleComponentsDeclaration inputData, IXMLWriterFactory xMLWriterFactory) : + base(inputData, xMLWriterFactory) + { + + } + + protected override void CreateComponents() + { + throw new NotImplementedException(); + } + + public override XElement GetComponents() + { + throw new NotImplementedException(); + } + + public override void Initialize() + { + _defaultNamespace = _v10; + } + } + + + public class XMLComponentsWriter_v2_0 : XMLComponentsWriter_v1_0 + { + public new static readonly string[] SUPPORTED_VERSIONS = { + typeof(ComponentsViewModel_v2_0).ToString() + }; + + public XMLComponentsWriter_v2_0(IVehicleComponentsDeclaration inputData, IXMLWriterFactory xMLWriterFactory) : + base(inputData, xMLWriterFactory) + { + + } + + + protected override void CreateComponents() + { + Debug.Assert(_inputData is IComponentsViewModel); + IXMLComponentWriter writer; + if (_inputData.EngineInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.EngineInputData); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.GearboxInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.GearboxInputData); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.RetarderInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.RetarderInputData); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.AxleGearInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.AxleGearInputData); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.AxleWheels != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.AxleWheels); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.AuxiliaryInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.AuxiliaryInputData); + _xElement.Add(writer.GetElement()); + } + + if (_inputData.AirdragInputData != null) { + writer = _xMLWriterFactory.CreateComponentWriter(_inputData.AirdragInputData); + _xElement.Add(writer.GetElement()); + } + } + + public override XElement GetComponents() + { + return _xElement; + } + + public override void Initialize() + { + _defaultNamespace = XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.Vehicle_Components); + _xElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, XMLNames.Components_type_attr)); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLEngineWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLEngineWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..e4a5e37542bc1d543feda92d6e24ebf6e8939969 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLEngineWriter.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +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.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLEngineWriter : IXMLComponentWriter + { + protected XElement _xElement; + protected XNamespace _defaultNameSpace; + protected readonly IEngineDeclarationInputData _inputData; + protected string id = "toDo-Add-Identifier"; + + public XMLEngineWriter(IEngineDeclarationInputData inputData) + { + _inputData = inputData; + } + + public virtual XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + _xElement.Add(this.CreateSignatureElement(_defaultNameSpace, id, _inputData.DigestValue)); + } + + return _xElement; + } + + protected abstract void Initialize(); + protected abstract void CreateDataElements(); + + + } + + public class XMLEngineWriter_v1_0 : XMLEngineWriter + { + + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(EngineViewModel_v1_0).ToString() + }; + + + public override XElement GetElement() + { + throw new NotImplementedException(); + } + + protected override void Initialize() + { + throw new NotImplementedException(); + } + + protected override void CreateDataElements() + { + throw new NotImplementedException(); + } + + public XMLEngineWriter_v1_0(IEngineDeclarationInputData inputData) : base(inputData) { } + } + + public class XMLEngineWriter_v2_0 : XMLEngineWriter + { + private static XNamespace _v20 = XML.XMLNamespaces.V20; + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(EngineViewModel_v2_0).ToString(), + }; + + protected override void Initialize() + { + _defaultNameSpace = _v20; + _xElement = new XElement(_defaultNameSpace + XMLNames.Component_Engine); + } + + protected override void CreateDataElements() + { + var _dataXElement = new XElement(_defaultNameSpace + XMLNames.ComponentDataWrapper); + _xElement.Add(_dataXElement); + _dataXElement.Add(new XAttribute(XMLNames.Component_ID_Attr, id)); + _dataXElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.Engine_Type_Attr)); + + Debug.Assert(_xElement != null); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Model, _inputData.Model)); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_CertificationNumber, + _inputData.CertificationNumber)); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Date, _inputData.Date)); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_Displacement, _inputData.Displacement.ConvertToCubicCentiMeter().ToXMLFormat(0))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_IdlingSpeed, "100")); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_RatedSpeed, _inputData.RatedSpeedDeclared.AsRPM.ToXMLFormat(0))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_RatedPower, _inputData.RatedPowerDeclared.ToXMLFormat(0))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_MaxTorque, _inputData.MaxTorqueDeclared.ToXMLFormat(0))); + + Debug.Assert(_inputData.EngineModes.Count == 1, "Only 1 Engine Mode supported in XMLEngineWriter_v2_0"); + var mode = _inputData.EngineModes[0]; + + Debug.Assert(mode.Fuels.Count == 1, "Only one fuel supported in XMLEngineWriter_v2_0"); + var fuel = mode.Fuels[0]; + + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_WHTCUrban, fuel.WHTCUrban.ToXMLFormat(4))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_WHTCRural, fuel.WHTCRural.ToXMLFormat(4))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_WHTCMotorway, fuel.WHTCMotorway.ToXMLFormat(4))); + + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_ColdHotBalancingFactor, fuel.ColdHotBalancingFactor.ToXMLFormat(4))); + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_CorrectionFactor_RegPer, fuel.CorrectionFactorRegPer.ToXMLFormat(4))); + + + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_CorrecionFactor_NCV, "1.0000")); + + _dataXElement.Add(new XElement(_defaultNameSpace + XMLNames.Engine_FuelType, fuel.FuelType.ToXMLFormat())); + + var fuelConsumptionMapElement = new XElement(_defaultNameSpace + XMLNames.Engine_FuelConsumptionMap); + var tableData = fuel.FuelConsumptionMap; + + foreach (DataRow fuelEntry in tableData.Rows) { + var entry = new XElement(_defaultNameSpace + XMLNames.Engine_FuelConsumptionMap_Entry); + entry.Add(new XAttribute(XMLNames.Engine_FuelConsumptionMap_EngineSpeed_Attr, fuelEntry.ItemArray[0])); + entry.Add(new XAttribute(XMLNames.Engine_FuelConsumptionMap_Torque_Attr, fuelEntry.ItemArray[1])); + entry.Add(new XAttribute(XMLNames.Engine_FuelConsumptionMap_FuelConsumption_Attr, fuelEntry.ItemArray[2])); + fuelConsumptionMapElement.Add(entry); + } + _dataXElement.Add(fuelConsumptionMapElement); + + var fullLoadAndDragCurveElement = new XElement(_defaultNameSpace + XMLNames.Engine_FullLoadAndDragCurve); + tableData = mode.FullLoadCurve; + foreach (DataRow loadAndDragEntry in tableData.Rows) { + var entry = new XElement(_defaultNameSpace + XMLNames.Engine_FullLoadCurve_Entry); + entry.Add(new XAttribute(XMLNames.Engine_EngineFullLoadCurve_EngineSpeed_Attr, loadAndDragEntry.ItemArray[0])); + entry.Add(new XAttribute(XMLNames.Engine_FullLoadCurve_MaxTorque_Attr, loadAndDragEntry.ItemArray[1])); + entry.Add(new XAttribute(XMLNames.Engine_FullLoadCurve_DragTorque_Attr, loadAndDragEntry.ItemArray[2])); + fullLoadAndDragCurveElement.Add(entry); + } + _dataXElement.Add(fullLoadAndDragCurveElement); + } + + + + public XMLEngineWriter_v2_0(IEngineDeclarationInputData inputData) : base(inputData) + { + + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLGearboxWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLGearboxWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..4fed42688b1d8666740e171164e99f0e9d930e58 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLGearboxWriter.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics; +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 VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLGearboxWriter : IXMLComponentWriter + { + protected IGearboxDeclarationInputData _inputData; + protected XElement _xElement; + protected XNamespace _defaultNameSpace; + protected string _uri = "toDo-Adduri"; + + public XMLGearboxWriter(IGearboxDeclarationInputData inputData) + { + + _inputData = inputData; + } + + public virtual XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + _xElement.Add(this.CreateSignatureElement(_defaultNameSpace, _uri, _inputData.DigestValue)); + } + return _xElement; + } + + protected abstract void Initialize(); + protected abstract void CreateDataElements(); + } + public class XMLGearboxWriter_v2_0 : XMLGearboxWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(GearboxViewModel_v2_0).ToString() + }; + + public XMLGearboxWriter_v2_0(IGearboxDeclarationInputData inputData) : base(inputData) + { + } + + protected override void Initialize() + { + _defaultNameSpace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNameSpace + XMLNames.Component_Gearbox); + } + + protected override void CreateDataElements() + { + var dataElement = new XElement(_defaultNameSpace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + dataElement.Add(new XAttribute(XMLNames.Component_ID_Attr, _uri)); + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.Gearbox_attr_GearboxDataDeclarationType)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Model, _inputData.Model)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_CertificationNumber, _inputData.CertificationNumber)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Date, _inputData.Date)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_TransmissionType, _inputData.Type.ToXMLFormat())); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Gearbox_CertificationMethod, _inputData.CertificationMethod.ToXMLFormat())); + + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_Gears)); + var gearsElement = dataElement.LastNode as XElement; + gearsElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, XMLNames.Gearbox_Gears_Attr_GearsDeclarationType)); + foreach (var gear in _inputData.Gears) { + gearsElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_Gears_Gear)); + var gearElement = gearsElement.LastNode as XElement; + //var gearElement = new XElement(_defaultNameSpace + XMLNames.Gearbox_Gears_Gear); + //gearsElement.Add(gearElement); + gearElement.Add(new XAttribute(XMLNames.Gearbox_Gear_GearNumber_Attr, gear.Gear)); + gearElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_Gear_Ratio, gear.Ratio.ToXMLFormat(3))); + + if (gear.MaxTorque != null) { + gearElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_Gears_MaxTorque, gear.MaxTorque)); + } + + if (gear.MaxInputSpeed != null) { + gearElement.Add(new XElement(_defaultNameSpace + XMLNames.Gearbox_Gear_MaxSpeed, gear.MaxInputSpeed)); + } + + var torqueLossMapElement = new XElement(_defaultNameSpace + XMLNames.Gearbox_Gear_TorqueLossMap); + gearElement.Add(torqueLossMapElement); + foreach (DataRow torquelossEntry in gear.LossMap.Rows) { + var entry = new XElement(_defaultNameSpace + XMLNames.Gearbox_Gear_TorqueLossMap_Entry); + torqueLossMapElement.Add(entry); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_InputSpeed_Attr, torquelossEntry[0].ToString())); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_InputTorque_Attr, torquelossEntry[1].ToString())); + entry.Add(new XAttribute(XMLNames.TransmissionLossmap_TorqueLoss_Attr, torquelossEntry[2].ToString())); + + } + } + Debug.WriteLine(_xElement.ToString()); + } + + + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLPTOWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLPTOWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..e6794a06e0ff0fee1ae506af44980f96bcb6186b --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLPTOWriter.cs @@ -0,0 +1,85 @@ +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.XML.Declaration.Reader; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLPTOWriter : IXMLComponentWriter + { + protected XElement _xElement; + protected XNamespace _defaultNamespace; + private IPTOTransmissionInputData _inputData; + + public XMLPTOWriter(IPTOTransmissionInputData inputData) + { + _inputData = inputData; + Initialize(); + CreateElements(); + } + + + + public XElement GetElement() + { + return _xElement; + } + + protected abstract void Initialize(); + protected abstract void CreateElements(); + } + + public class XMLPTOWriter_v1_0 : XMLPTOWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(PTOViewModel_V1_0).ToString() + }; + + public XMLPTOWriter_v1_0(IPTOTransmissionInputData inputData) : base(inputData) { } + + protected override void Initialize() + { + + throw new NotImplementedException(); + } + + protected override void CreateElements() + { + throw new NotImplementedException(); + } + } + + + + + public class XMLPTOWriter_v2_0 : XMLPTOWriter_v1_0 + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(PTOViewModel_V2_0).ToString() + }; + + public XMLPTOWriter_v2_0(IPTOTransmissionInputData inputData) : base(inputData) { } + + protected override void Initialize() + { + _defaultNamespace = XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.Vehicle_PTO); + _xElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, XMLNames.Component_Type_Attr_PTO)); + } + + protected override void CreateElements() + { + _xElement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_PTO_ShaftsGearWheels, "none")); + _xElement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_PTO_OtherElements, "none")); + } + } + + +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLRetarderWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLRetarderWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..f75d43a420b938fe62e3b6c374b85842c7b4999c --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLRetarderWriter.cs @@ -0,0 +1,106 @@ +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.Models; +using TUGraz.VectoCommon.Resources; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLRetarderWriter : IXMLComponentWriter + { + protected XElement _xElement; + protected IRetarderInputData _inputData; + protected XNamespace _defaultNameSpace; + protected string _uri = "toTo-Add-URI"; + + public XMLRetarderWriter(IRetarderInputData inputData) + { + _inputData = inputData; + } + + protected abstract void Initialize(); + protected abstract void CreateDataElements(); + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + _xElement.Add(this.CreateSignatureElement(_defaultNameSpace, _uri, _inputData.DigestValue)); + } + return _xElement; + } + } + + public class XMLRetarderWriter_v1_0 : XMLRetarderWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(RetarderViewModel_v1_0).ToString() + }; + + protected override void Initialize() + { + _defaultNameSpace = XML.XMLNamespaces.V10; + _xElement = new XElement(_defaultNameSpace + XMLNames.Component_Retarder); + } + + protected override void CreateDataElements() + { + var dataElement = new XElement(_defaultNameSpace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + + dataElement.Add(new XAttribute(XMLNames.Component_ID_Attr, _uri)); + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, XMLNames.Retarder_Attr_DataDeclarationType)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Model, _inputData.Model)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_CertificationNumber, _inputData.CertificationNumber)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_Date, _inputData.Date)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + dataElement.Add(new XElement(_defaultNameSpace + XMLNames.Component_CertificationMethod, _inputData.CertificationMethod.ToXMLFormat())); + + var lossMapElement = new XElement(_defaultNameSpace + XMLNames.Retarder_RetarderLossMap); + dataElement.Add(lossMapElement); + + foreach (DataRow lossMapRow in _inputData.LossMap.Rows) + { + var entryElement = new XElement(_defaultNameSpace + XMLNames.Retarder_RetarderLossMap_Entry); + entryElement.Add(new XAttribute(XMLNames.Retarder_RetarderLossmap_RetarderSpeed_Attr, lossMapRow[0].ToString())); + entryElement.Add(new XAttribute(XMLNames.Retarder_RetarderLossmap_TorqueLoss_Attr, lossMapRow[1].ToString())); + lossMapElement.Add(entryElement); + } + } + + public XMLRetarderWriter_v1_0(IRetarderInputData inputData) : base(inputData) { } + } + + + + public class XMLRetarderWriter_v2_0 : XMLRetarderWriter_v1_0 + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(RetarderViewModel_v2_0).ToString() + }; + + + public XMLRetarderWriter_v2_0(IRetarderInputData inputData) : base(inputData) + { + + } + + + + protected override void Initialize() + { + _defaultNameSpace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNameSpace + XMLNames.Component_Retarder); + } + } +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLTyreWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLTyreWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..7e10b6ed70f53fca7a91ffceefed4773135c57ff --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLTyreWriter.cs @@ -0,0 +1,100 @@ +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; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter +{ + public abstract class XMLTyreWriter : IXMLComponentWriter + { + protected ITyreDeclarationInputData _inputData; + + protected XNamespace _defaultNamespace; + protected XElement _xElement; + protected string _uri = "ToDo-Add-Id"; + + public XMLTyreWriter(ITyreDeclarationInputData inputData) + { + _inputData = inputData; + } + + public XElement GetElement() + { + if (_xElement == null) { + Initialize(); + CreateDataElements(); + _xElement.Add(this.CreateSignatureElement(_defaultNamespace, _uri, _inputData.DigestValue)); + } + + return _xElement; + } + protected abstract void Initialize(); + protected abstract void CreateDataElements(); + + + + + + } + + public class XMLTyreWriter_v2_0 : XMLTyreWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(TyreViewModel_v2_0).ToString() + }; + + public XMLTyreWriter_v2_0(ITyreDeclarationInputData inputData) : base(inputData) { } + protected override void CreateDataElements() + { + var dataElement = new XElement(_defaultNamespace + XMLNames.ComponentDataWrapper); + _xElement.Add(dataElement); + + dataElement.Add(new XAttribute(XMLNames.Component_ID_Attr, _uri)); + dataElement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Component_Type_Attr, XMLNames.Tyre_Type_Attr_TyreDataDeclarationType)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_CertificationNumber, _inputData.CertificationNumber)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, _inputData.Date)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.Component_AppVersion, _inputData.AppVersion)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_Dimension, _inputData.Dimension)); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_RRCDeclared, _inputData.RollResistanceCoefficient.ToXMLFormat(4))); + dataElement.Add(new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_FzISO, _inputData.TyreTestLoad.ToXMLFormat(0))); + } + + protected override void Initialize() + { + _defaultNamespace = XML.XMLNamespaces.V20; + _xElement = new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_Tyre); + } + + } + + public class XMLTyreWriter_v2_3 : XMLTyreWriter_v2_0 + { + public new static readonly string[] SUPPORTED_VERSIONS = { + typeof(TyreViewModel_v2_3).ToString() + }; + public XMLTyreWriter_v2_3(ITyreDeclarationInputData inputData) : base(inputData) { } + + protected override void CreateDataElements() + { + base.CreateDataElements(); + + } + + protected override void Initialize() + { + _defaultNamespace = XML.XMLNamespaces.V23; + _xElement = new XElement(_defaultNamespace + XMLNames.AxleWheels_Axles_Axle_Tyre); + } + } + +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..9be3eb5d59e8b0f9ef47495a083cd02b083c5300 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs @@ -0,0 +1,315 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Xml.Linq; +using Castle.Core.Internal; +using TUGraz.IVT.VectoXML.Writer; +using TUGraz.VectoCommon.BusAuxiliaries; +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 VECTO3GUI2020.Helper; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace VECTO3GUI2020.Util.XML.Implementation +{ + public abstract class XMLVehicleWriter : IXMLVehicleWriter + { + + + + #region XML + protected XElement _Xelement; + + protected XNamespace _defaultNamespace; + #endregion + + //Template Methods + protected abstract void Initialize(); + protected abstract void CreateElements(); + + protected readonly IVehicleDeclarationInputData _inputData; + protected IXMLWriterFactory _xmlWriterFactory; + + public XMLVehicleWriter(IVehicleDeclarationInputData inputData, IXMLWriterFactory xmlWriterFactory) + { + Debug.Assert(inputData != null); + this._inputData = inputData; + _xmlWriterFactory = xmlWriterFactory; + } + + + + public XElement GetElement() + { + if (_Xelement == null) { + Initialize(); + + CreateElements(); + } + return _Xelement; + } + } + public class XMLVehicleWriter_v1_0 : XMLVehicleWriter + { + public static readonly string[] SUPPORTEDVERSIONS = { + typeof(XMLDeclarationVehicleDataProviderV10).ToString(), + typeof(VehicleViewModel_v1_0).ToString() + }; + + public XMLVehicleWriter_v1_0(IVehicleDeclarationInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory) + { + + } + + protected override void CreateElements() + { + throw new NotImplementedException(); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer), + new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress, + _inputData.ManufacturerAddress), + new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model), + new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN), + new XElement(_defaultNamespace + XMLNames.Component_Date, _inputData.Date), + new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeClass, _inputData.LegislativeClass), + new XElement(_defaultNamespace + XMLNames.Vehicle_AxleConfiguration, + AxleConfigurationHelper.ToXMLFormat(_inputData.AxleConfiguration)), + new XElement(_defaultNamespace + XMLNames.Vehicle_CurbMassChassis, + _inputData.CurbMassChassis.ToXMLFormat()), + new XElement(_defaultNamespace + XMLNames.Vehicle_GrossVehicleMass, + _inputData.GrossVehicleMassRating.ToXMLFormat()), + new XElement(_defaultNamespace + XMLNames.Vehicle_IdlingSpeed, + _inputData.EngineIdleSpeed.ToXMLFormat())); + + //new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderType, _inputData.RetarderType.ToXMLFormat()), + + //_inputData.RetarderRatio == null ? null : new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderRatio, _inputData.RetarderRatio), + + //new XElement(_defaultNamespace + XMLNames.Vehicle_AngledriveType, _inputData.AngledriveType.ToXMLFormat()), + + + //https://stackoverflow.com/questions/24743916/how-to-convert-xmlnode-into-xelement + //Remove this when PTOType is handled correct. + //XElement.Load(_inputData.PTONode.CreateNavigator().ReadSubtree()), + + //new XElement(_defaultNamespace + XMLNames.Vehicle_Components, + // new XAttribute(_xsi + "type", ComponentsXSD)) + + + //); + + + } + + protected override void Initialize() + { + throw new NotImplementedException(); + } + } + + + public class XMLVehicleWriter_v2_0 : XMLVehicleWriter_v1_0 + { + public new static readonly string[] SUPPORTEDVERSIONS = { + typeof(XMLDeclarationVehicleDataProviderV10).ToString(), + typeof(VehicleViewModel_v2_0).ToString() + }; + + public XMLVehicleWriter_v2_0(IVehicleDeclarationInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory) + { + + + } + + protected override void CreateElements() + { + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress, + _inputData.ManufacturerAddress)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, _inputData.Date)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeClass, + _inputData.LegislativeClass)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VehicleCategory, _inputData.VehicleCategory)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_AxleConfiguration, + _inputData.AxleConfiguration.ToXMLFormat())); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_CurbMassChassis, _inputData.CurbMassChassis.ToXMLFormat(0))); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_GrossVehicleMass, + _inputData.GrossVehicleMassRating.ToXMLFormat(0))); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_IdlingSpeed, + _inputData.EngineIdleSpeed.AsRPM.ToXMLFormat(0))); + + //TODO: Remove when IVehicleDeclarationInputData is updated + if (_inputData is IVehicleViewModel viewModelInputData) { + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderType, + viewModelInputData.RetarderType.ToXMLFormat())); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderRatio, viewModelInputData.RetarderRatio.ToXMLFormat(3))); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_AngledriveType, + viewModelInputData.AngledriveType.ToXMLFormat())); + _Xelement.Add(_xmlWriterFactory.CreateComponentWriter(viewModelInputData.PTOTransmissionInputData) + .GetElement()); + } else { + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderType, + RetarderType.None.ToXMLFormat())); + //_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RetarderRatio, "1.000")); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_AngledriveType, + AngledriveType.None.ToXMLFormat())); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_PTO, + new XElement(_defaultNamespace + XMLNames.Vehicle_PTO_ShaftsGearWheels, "none"), + new XElement(_defaultNamespace + XMLNames.Vehicle_PTO_OtherElements, "none"))); + } + + + + _Xelement.Add(_xmlWriterFactory.CreateComponentsWriter(_inputData.Components).GetComponents()); + } + + protected override void Initialize() + { + _defaultNamespace = XMLNamespaces.V20; + _Xelement = new XElement(_defaultNamespace + XMLNames.Component_Vehicle); + _Xelement.Add(new XAttribute(XMLNames.Component_ID_Attr, _inputData.Identifier)); + _Xelement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, XMLNames.VehicleAttr_VehicleDeclarationType)); + } + } + + public class XMLVehicleWriter_v2_1 { } + + public class XMLVehicleWriter_v2_7 { } + + public class XMLVehicleWriter_PrimaryBus_v2_6 {} + + public class XMLVehicleWriter_ExcemptedVehicle_v2_2 { } + + public class XMLVehicleWriter_v2_8 : XMLVehicleWriter + { + public static readonly string[] SUPPORTEDVERSIONS = { + typeof(DeclarationInterimStageBusVehicleViewModel_v2_8).ToString() + }; + public XMLVehicleWriter_v2_8(IVehicleDeclarationInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory) + { + + + } + + #region Overrides of XMLVehicleWriter + + protected override void Initialize() + { + _defaultNamespace = XMLNamespaces.V28; + + _Xelement = new XElement(XMLNamespaces.V20 + XMLNames.Component_Vehicle); + + _Xelement.Add(new XAttribute(XMLNames.Component_ID_Attr, "TODO_ADDIDENTIFIER")); + _Xelement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, "InterimStageInputType")); + } + + protected override void CreateElements() + { + + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress, + _inputData.ManufacturerAddress)); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, DateTime.Today.ToXmlFormat())); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat())); + + + + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0))); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM, + _inputData.GrossVehicleMassRating?.ToXMLFormat(0))); + + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_AirdragModifiedMultistage, _inputData.AirdragModifiedMultistage)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_NgTankSystem, _inputData.TankSystem)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat())); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _inputData.NumberPassengerSeatsLowerDeck)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck, _inputData.NumberPassengersStandingLowerDeck)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _inputData.NumberPassengerSeatsUpperDeck)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck, _inputData.NumberPassengersStandingUpperDeck)); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat())); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry)); + + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeighIntegratedBody, _inputData.Height?.ConvertToMilliMeter())); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_VehicleLength, _inputData.Length?.ConvertToMilliMeter())); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_VehicleWidth, _inputData.Width?.ConvertToMilliMeter())); + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_EntranceHeight, _inputData.EntranceHeight?.ConvertToMilliMeter())); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.BusAux_PneumaticSystem_DoorDriveTechnology, + _inputData.DoorDriveTechnology != null + ? _inputData.DoorDriveTechnology.ToXMLFormat() + : null)); + + _Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_VehicleDeclarationType, _inputData.VehicleDeclarationType)); + + if (_inputData.ADAS != null) { + var adasNamespace = XMLNamespaces.V23; + var aDASElement = new XElement(_defaultNamespace + XMLNames.Vehicle_ADAS); + _Xelement.Add(aDASElement); + aDASElement.Add(new XElement(adasNamespace + XMLNames.Vehicle_ADAS_EngineStopStart, _inputData.ADAS.EngineStopStart)); + + bool ecoRollWithoutEngineStop = _inputData.ADAS.EcoRoll == EcoRollType.WithoutEngineStop; + bool ecoRollWithEngineStop = _inputData.ADAS.EcoRoll == EcoRollType.WithEngineStop; + + aDASElement.Add(new XElement(adasNamespace + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, ecoRollWithoutEngineStop)); + aDASElement.Add(new XElement(adasNamespace + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, ecoRollWithEngineStop)); + aDASElement.Add(new XElement(adasNamespace + XMLNames.Vehicle_ADAS_PCC, + _inputData.ADAS.PredictiveCruiseControl.ToXMLFormat())); + aDASElement.Add(new XElement(adasNamespace + XMLNames.Bus_ADAS_APTEcoRollReleaseLockupClutch, _inputData.ADAS?.ATEcoRollReleaseLockupClutch )); + } + _Xelement.DescendantsAndSelf().Where(e => e.Value.IsNullOrEmpty()).Remove(); + + if (_inputData.Components != null) { + var componentElement = new XElement( + _defaultNamespace + XMLNames.Vehicle_Components, + new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, + "CompletedVehicleComponentsDeclarationType")); + + //Airdrag + if (_inputData.Components.AirdragInputData != null) { + var airDragElement = _xmlWriterFactory.CreateComponentWriter(_inputData.Components.AirdragInputData) + .GetElement(); + var tempAirDragElement = new XElement(_defaultNamespace + XMLNames.Component_AirDrag); + + airDragElement.Name = tempAirDragElement.Name; + componentElement.Add(airDragElement); + } + + //auxiliaries + if (_inputData.Components.BusAuxiliaries != null) { + var auxiliaryElement = _xmlWriterFactory.CreateBuxAuxiliariesWriter(_inputData.Components.BusAuxiliaries) + .GetElement(); + + componentElement.Add(auxiliaryElement); + + } + + + _Xelement.Add(componentElement); + } + + + } + + #endregion + } + +} diff --git a/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..d89fa6b4cb93877e6eb31b0340db0e7316730f2c --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs @@ -0,0 +1,99 @@ +using System; +using System.Diagnostics; +using System.Xml; +using System.Xml.Linq; +using Castle.Components.DictionaryAdapter.Xml; +using TUGraz.IVT.VectoXML.Writer; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit; + +namespace VECTO3GUI2020.Util.XML.Implementation.DocumentWriter +{ + public abstract class XMLDeclarationJobWriter : IXMLDeclarationJobWriter + { + + protected XDocument _xDocument; + protected string _schemaVersion; + private IXMLWriterFactory _xmlWriterFactory; + + protected string LocalSchemaLocation = @"V:\VectoCore\VectoCore\Resources\XSD\"; + + //Must be overwritten by subclasses; + protected abstract void Initialize(); + + + + public XMLDeclarationJobWriter(IDeclarationJobInputData inputData, IXMLWriterFactory xmlWriterFactory) + { + _xmlWriterFactory = xmlWriterFactory; + Initialize(); + + (_xDocument.FirstNode as XElement)?.Add(_xmlWriterFactory.CreateVehicleWriter(inputData.Vehicle).GetElement()); + var rootElement = _xDocument.FirstNode as XElement; + + } + + + + + + public XDocument GetDocument() + { + return _xDocument; + } + } + + + public class XMLDeclarationJobWriter_v1_0 : XMLDeclarationJobWriter + { + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(XMLDeclarationJobInputDataProviderV10).ToString() + }; + public XMLDeclarationJobWriter_v1_0(IDeclarationJobInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory) + { + + } + protected override void Initialize() + { + throw new NotImplementedException(); + } + + + } + + public class XMLDeclarationJobWriter_v2_0 : XMLDeclarationJobWriter + { + + public static readonly string[] SUPPORTED_VERSIONS = { + typeof(DeclarationJobEditViewModel_v2_0).ToString(), + typeof(XMLDeclarationJobInputDataProviderV20).ToString() + }; + + public XMLDeclarationJobWriter_v2_0(IDeclarationJobInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory) + { + + } + + protected override void Initialize() + { + _schemaVersion = "2.0"; + _xDocument = new XDocument(); + + var xElement = new XElement(XMLNamespaces.Tns_v20 + XMLNames.VectoInputDeclaration); + _xDocument.Add(xElement); + + xElement.Add(new XAttribute("schemaVersion", _schemaVersion)); + xElement.Add(new XAttribute("xmlns", XMLNamespaces.DeclarationDefinition + ":v" + _schemaVersion)); + xElement.Add(new XAttribute(XNamespace.Xmlns + "xsi", XMLNamespaces.Xsi.NamespaceName)); + xElement.Add(new XAttribute(XNamespace.Xmlns + "tns", XMLNamespaces.Tns_v20)); + xElement.Add(new XAttribute(XMLNamespaces.Xsi + "schemaLocation", + $"{XMLNamespaces.DeclarationRootNamespace} {LocalSchemaLocation}VectoDeclarationJob.xsd")); + + Debug.WriteLine(_xDocument.ToString()); + } + } + +} diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentWriter.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..ac5bf9d65c69cbaa91fd525c159c953264fbfc2b --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentWriter.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; + +namespace VECTO3GUI2020.Util.XML.Interfaces +{ + public interface IXMLComponentWriter + { + XElement GetElement(); + } +} diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentsWriter.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentsWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..5ac14496747748a0b6138f2d71985a60969ca752 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLComponentsWriter.cs @@ -0,0 +1,9 @@ +using System.Xml.Linq; + +namespace VECTO3GUI2020.Util.XML.Interfaces +{ + public interface IXMLComponentsWriter + { + XElement GetComponents(); + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLDeclarationJobWriter.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLDeclarationJobWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..b9854e0d632f9153a06c453001a5550d1655ab0f --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLDeclarationJobWriter.cs @@ -0,0 +1,9 @@ +using System.Xml.Linq; + +namespace VECTO3GUI2020.Util.XML.Interfaces +{ + public interface IXMLDeclarationJobWriter + { + XDocument GetDocument(); + } +} diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLVehicleWriter.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLVehicleWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..6af7fe70e31c41004a7aaf81af669baabdbd809f --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLVehicleWriter.cs @@ -0,0 +1,9 @@ +using System.Xml.Linq; + +namespace VECTO3GUI2020.Util.XML.Interfaces +{ + public interface IXMLVehicleWriter + { + XElement GetElement(); + } +} diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..94c82c81bd5e50e00ded437f64ef98ca70e7fd71 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs @@ -0,0 +1,24 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; +using TUGraz.VectoCore.OutputData.XML.Engineering.Writer; +using VECTO3GUI2020.Util.XML.Implementation.ComponentWriter; + +namespace VECTO3GUI2020.Util.XML.Interfaces +{ + public interface IXMLWriterFactory + { + IXMLDeclarationJobWriter CreateJobWriter(IDeclarationJobInputData inputData); + IXMLVehicleWriter CreateVehicleWriter(IVehicleDeclarationInputData inputData); + IXMLComponentWriter CreateComponentWriter(IComponentInputData inputData); + IXMLComponentWriter CreateComponentWriter(IAuxiliariesDeclarationInputData inputData); + IXMLComponentWriter CreateComponentWriter(IAxlesDeclarationInputData inputData); + IXMLComponentWriter CreateComponentWriter(IAxleDeclarationInputData inputData); + IXMLComponentWriter CreateComponentWriter(IAirdragDeclarationInputData inputData); + + IXMLComponentWriter CreateComponentWriter(IPTOTransmissionInputData inputData); + IXMLComponentsWriter CreateComponentsWriter(IVehicleComponentsDeclaration inputData); + + IXMLBusAuxiliariesWriter CreateBuxAuxiliariesWriter(IBusAuxiliariesDeclarationData inputData); + } +} diff --git a/VECTO3GUI2020/Util/XML/XMLNamespaces.cs b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs new file mode 100644 index 0000000000000000000000000000000000000000..6c7d84fa0140d844cd795c7c8ce886fedf7933d6 --- /dev/null +++ b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using Castle.Core.Internal; + +namespace VECTO3GUI2020.Util.XML +{ + public static class XMLNamespaces + { + public static readonly string DeclarationDefinition = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions"; + public static readonly string SchemaVersion = "2.0"; + public static XNamespace Xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + public static XNamespace Tns = "urn:tugraz:ivt:VectoAPI:DeclarationInput"; + public static XNamespace Tns_v20 = Tns.NamespaceName + ":v2.0"; + public static XNamespace V26 = DeclarationDefinition + ":DEV:v2.6"; + public static XNamespace V21 = DeclarationDefinition + ":v2.1"; + public static XNamespace V23 = DeclarationDefinition + ":DEV:v2.3"; + public static XNamespace V20 = DeclarationDefinition + ":v2.0"; + public static XNamespace V10 = DeclarationDefinition + ":v1.0"; + public static XNamespace V28 = DeclarationDefinition + ":DEV:v2.8"; + public static XNamespace Di = "http://www.w3.org/2000/09/xmldsig#"; + + + public static string DeclarationRootNamespace = "urn:tugraz:ivt:VectoAPI:DeclarationJob"; + + + + private static readonly Dictionary<XNamespace, string> NamespacePrefix + = new Dictionary<XNamespace, string> { + { Xsi, "xsi" }, + { Tns, "tns" }, + { Tns_v20, "tns" }, + { V10, "v1.0"}, + { V20, "v2.0"}, + { V21, "v2.1"}, + { V23, "v2.3"}, + { V26, "v2.6"}, + { Di, "di"}, + { V28, "v2.8"}, + }; + + public static string GetPrefix(XNamespace xNamespace) + { + if (xNamespace.NamespaceName.IsNullOrEmpty()) { + return null; + } + string prefix = NamespacePrefix[xNamespace]; + return prefix; + } + + public static string GetPrefix(string nameSpaceName) + { + XNamespace ns = nameSpaceName; + return GetPrefix(ns); + } + } +} diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj new file mode 100644 index 0000000000000000000000000000000000000000..979084874e8c8c1db94549333023f156c8af2f4b --- /dev/null +++ b/VECTO3GUI2020/VECTO3GUI2020.csproj @@ -0,0 +1,796 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{7E9172D4-07E3-4077-814E-7117AB2B3E22}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>VECTO3GUI2020</RootNamespace> + <AssemblyName>VECTOMultistage</AssemblyName> + <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <WarningLevel>4</WarningLevel> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup> + <ApplicationIcon>Resources\Icons\Icon2.ico</ApplicationIcon> + </PropertyGroup> + <ItemGroup> + <Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL"> + <HintPath>..\packages\Castle.Core.4.4.1\lib\net45\Castle.Core.dll</HintPath> + </Reference> + <Reference Include="InteractiveDataDisplay.WPF, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\InteractiveDataDisplay.WPF.1.0.0\lib\net452\InteractiveDataDisplay.WPF.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Build.Framework" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="Microsoft.Maps.MapControl.WPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Maps.MapControl.WPF.1.0.0.3\lib\net40-Client\Microsoft.Maps.MapControl.WPF.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Toolkit.Mvvm, Version=7.0.0.0, Culture=neutral, PublicKeyToken=4aff67a105548ee2, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Toolkit.Mvvm.7.0.2\lib\netstandard2.0\Microsoft.Toolkit.Mvvm.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.DebuggerVisualizers, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\WindowsAPICodePack-Core.1.1.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath> + </Reference> + <Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath> + </Reference> + <Reference Include="Ninject, Version=3.3.4.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> + <HintPath>..\packages\Ninject.3.3.4\lib\net45\Ninject.dll</HintPath> + </Reference> + <Reference Include="Ninject.Extensions.ChildKernel, Version=3.3.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> + <HintPath>..\packages\Ninject.Extensions.ChildKernel.3.3.0\lib\net45\Ninject.Extensions.ChildKernel.dll</HintPath> + </Reference> + <Reference Include="Ninject.Extensions.Factory, Version=3.3.3.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> + <HintPath>..\packages\Ninject.Extensions.Factory.3.3.3\lib\net45\Ninject.Extensions.Factory.dll</HintPath> + </Reference> + <Reference Include="PresentationFramework.Aero2" /> + <Reference Include="System" /> + <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath> + </Reference> + <Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.ComponentModel.Annotations.5.0.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath> + </Reference> + <Reference Include="System.ComponentModel.DataAnnotations" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath> + </Reference> + <Reference Include="System.Numerics" /> + <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath> + </Reference> + <Reference Include="System.Reactive, Version=5.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Reactive.5.0.0\lib\net472\System.Reactive.dll</HintPath> + </Reference> + <Reference Include="System.Reactive.Core, Version=3.0.6000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Reactive.Core.5.0.0\lib\net472\System.Reactive.Core.dll</HintPath> + </Reference> + <Reference Include="System.Reactive.Linq, Version=3.0.6000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Reactive.Linq.5.0.0\lib\net472\System.Reactive.Linq.dll</HintPath> + </Reference> + <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath> + </Reference> + <Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath> + </Reference> + <Reference Include="System.Windows" /> + <Reference Include="System.Windows.Controls.DataVisualization.Toolkit, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Windows.Controls.DataVisualization.Toolkit.4.0.0.0\lib\net40-Client\System.Windows.Controls.DataVisualization.Toolkit.dll</HintPath> + </Reference> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + </ItemGroup> + <ItemGroup> + <ApplicationDefinition Include="App.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </ApplicationDefinition> + <Compile Include="Helper\ConvertedSIDummyCreator.cs" /> + <Compile Include="Helper\Converter\AlwaysVisibleConverter.cs" /> + <Compile Include="Helper\Converter\BoolToVisibilityConverter.cs" /> + <Compile Include="Helper\Converter\EnumConverter.cs" /> + <Compile Include="Helper\Converter\InvertBoolConverter.cs" /> + <Compile Include="Helper\Converter\JobTypeStringConverter.cs" /> + <Compile Include="Helper\Converter\LabledTextBoxLabelConverter.cs" /> + <Compile Include="Helper\Converter\MultistageParameterModeToVisibilityConverter.cs" /> + <Compile Include="Helper\Converter\BoolToIntConverter.cs" /> + <Compile Include="Helper\Converter\NullToUnsetValueConverter.cs" /> + <Compile Include="Helper\Converter\NullToVisibilityConverter.cs" /> + <Compile Include="Helper\Converter\LabledTextBoxConverter.cs" /> + <Compile Include="Helper\Converter\SIToUnitString.cs" /> + <Compile Include="Helper\Converter\SIValueToStringConverter.cs" /> + <Compile Include="Helper\Converter\VehicleCategoryToStringConverter.cs" /> + <Compile Include="Helper\Converter\XToBoolConverter.cs" /> + <Compile Include="Helper\DoubleValidation.cs" /> + <Compile Include="Helper\Exceptions.cs" /> + <Compile Include="Helper\EnumHelper.cs" /> + <Compile Include="Helper\IndexedStorage.cs" /> + <Compile Include="Helper\IWindowHelper.cs" /> + <Compile Include="Helper\DialogHelper.cs" /> + <Compile Include="Helper\MultistageParameterDataTemplateSelector.cs" /> + <Compile Include="Helper\MultistageParameterViewModel.cs" /> + <Compile Include="Helper\NameOfMarkUpExtension.cs" /> + <Compile Include="Helper\NameResolver.cs" /> + <Compile Include="Helper\WindowHelper.cs" /> + <Compile Include="Helper\XMLExtension.cs" /> + <Compile Include="Helper\XmlHelper.cs" /> + <Compile Include="Ninject\FactoryModule.cs" /> + <Compile Include="Ninject\IMultistageDependencies.cs" /> + <Compile Include="Ninject\MultistageLazyDependencies.cs" /> + <Compile Include="Ninject\MultistageModule.cs" /> + <Compile Include="Properties\Annotations.cs" /> + <Compile Include="Properties\BusStrings.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>BusStrings.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Version.cs"> + <DependentUpon>Version.tt</DependentUpon> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + </Compile> + <Compile Include="Test.xaml.cs"> + <DependentUpon>Test.xaml</DependentUpon> + </Compile> + <Compile Include="TestViewModel.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLBusAuxiliariesWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLPTOWriter.cs" /> + <Compile Include="ViewModel\Implementation\Document\DeclarationJobViewModel.cs" /> + <Compile Include="ViewModel\Implementation\Document\DeclarationTrailerJobDocumentViewModel.cs" /> + <Compile Include="Model\Interfaces\IAuxiliaryModelFactory.cs" /> + <Compile Include="ViewModel\Implementation\Document\SimulationOnlyDeclarationJob.cs" /> + <Compile Include="ViewModel\Implementation\MessageEntry.cs" /> + <Compile Include="ViewModel\Interfaces\Document\IDocumentViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\Document\IDocumentViewModelFactory.cs" /> + <Compile Include="ViewModel\Interfaces\Document\IJobViewModel.cs" /> + <Compile Include="Model\Interfaces\ISettingsModel.cs" /> + <Compile Include="Model\Implementation\SettingsModel.cs" /> + <Compile Include="Ninject\DocumentModule.cs" /> + <Compile Include="Ninject\JobEditModule.cs" /> + <Compile Include="Ninject\Vehicle\ComponentModule.cs" /> + <Compile Include="Ninject\XMLWriterFactoryModule.cs" /> + <Compile Include="Properties\Application.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + <DependentUpon>Application.settings</DependentUpon> + </Compile> + <Compile Include="Properties\Strings.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Strings.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.cs" /> + <Compile Include="Util\AllowedEntry.cs" /> + <Compile Include="Util\RelayCommand.cs" /> + <Compile Include="Util\SIUtils.cs" /> + <Compile Include="Ninject\Util\UseFirstArgumentAsNameInstanceProvider.cs" /> + <Compile Include="Ninject\Util\UseFirstArgumentTypeAsNameInstanceProvider.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLAirDragWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLAuxiliariesWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLAxleGearWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLAxleWheelsWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLAxleWheelWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLEngineWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLComponentsWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLGearboxWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLRetarderWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLTyreWriter.cs" /> + <Compile Include="Util\XML\Implementation\ComponentWriter\XMLVehicleWriter.cs" /> + <Compile Include="Util\XML\Implementation\DocumentWriter\XMLDeclarationJobWriter.cs" /> + <Compile Include="Util\XML\Interfaces\IXMLComponentsWriter.cs" /> + <Compile Include="Util\XML\Interfaces\IXMLDeclarationJobWriter.cs" /> + <Compile Include="Util\XML\Interfaces\IXMLComponentWriter.cs" /> + <Compile Include="Util\XML\Interfaces\IXMLVehicleWriter.cs" /> + <Compile Include="Util\XML\Interfaces\IXMLWriterFactory.cs" /> + <Compile Include="Util\XML\XMLNamespaces.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\EngineFuelViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\EngineModeViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\TorqueConverterViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IEngineFuelViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IEngineModeViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\Common\IViewModelBase.cs" /> + <Compile Include="ViewModel\Implementation\Common\ViewModelBase.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\DeclarationJobEditViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\ComponentsViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Trailer\ITrailerViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\ADASViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AirDragViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AngleDriveViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliariesViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliaryViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AxleGearViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AxleViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\AxleWheelsViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\CommonComponentViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\EngineViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\GearboxViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\GearViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\PTOViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\RetarderViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs" /> + <Compile Include="ViewModel\Implementation\JobListViewModel.cs" /> + <Compile Include="ViewModel\Implementation\MainWindowViewModel.cs" /> + <Compile Include="ViewModel\Implementation\MessageViewModel.cs" /> + <Compile Include="ViewModel\Implementation\SettingsViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\IEditViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAdasViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAirDragViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAuxiliariesViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAuxiliaryViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAxleGearViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAxleViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAxleWheelsViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ICommonComponentViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IComponentsViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IComponentViewModelFactory.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\IJobEditViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\ISettingsViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\IJobListViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\IMainViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\IMainWindowViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\IMessageViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\IJobEditViewModelFactory.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IComponentViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IEngineViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IGearBoxViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IGearViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IAngleDriveViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IRetarderViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\IPTOViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ITorqueConverterViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ITyreViewModel.cs" /> + <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\IVehicleViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\ManufacturingStageViewModel_v0_1.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\MultistageAirdragViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\MultistageAuxiliariesViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\NewMultiStageJobViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\MultistageJobViewModel_v0_1.cs" /> + <Compile Include="ViewModel\MultiStage\Interfaces\IMultistageAirdragViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Interfaces\IMultiStageViewModelFactory.cs" /> + <Compile Include="ViewModel\Implementation\OutputViewModel.cs" /> + <Compile Include="Views\CustomControls\ComboParameter.xaml.cs"> + <DependentUpon>ComboParameter.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\CustomControlExtensionMethods.cs" /> + <Compile Include="Views\CustomControls\DateTimePicker.xaml.cs"> + <DependentUpon>DateTimePicker.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\LabledCheckBoxAutomatic.xaml.cs"> + <DependentUpon>LabledCheckBoxAutomatic.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\LabledTextBox.xaml.cs"> + <DependentUpon>LabledTextBox.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\LabledTextBoxAutomatic.xaml.cs"> + <DependentUpon>LabledTextBoxAutomatic.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\LabledTextBoxUnit.xaml.cs"> + <DependentUpon>LabledTextBoxUnit.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\ScatterPlot.xaml.cs"> + <DependentUpon>ScatterPlot.xaml</DependentUpon> + </Compile> + <Compile Include="Views\CustomControls\Viewer.xaml.cs"> + <DependentUpon>Viewer.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\DeclarationJobEditView.xaml.cs"> + <DependentUpon>DeclarationJobEditView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\ADASView_v2_3.xaml.cs"> + <DependentUpon>ADASView_v2_3.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AirDragView_v2_0.xaml.cs"> + <DependentUpon>AirDragView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AngleDriveView_v2_0.xaml.cs"> + <DependentUpon>AngleDriveView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AuxiliariesView_v2_0.xaml.cs"> + <DependentUpon>AuxiliariesView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AuxiliaryView_v2_0.xaml.cs"> + <DependentUpon>AuxiliaryView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AxleGearView_v2_0.xaml.cs"> + <DependentUpon>AxleGearView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AxleView_v2_0.xaml.cs"> + <DependentUpon>AxleView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\AxleWheelsView_v2_0.xaml.cs"> + <DependentUpon>AxleWheelsView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\CommonComponentView.xaml.cs"> + <DependentUpon>CommonComponentView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\EngineFuelView.xaml.cs"> + <DependentUpon>EngineFuelView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\EngineModeViewSingleFuel.xaml.cs"> + <DependentUpon>EngineModeViewSingleFuel.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\EngineView_v2_0.xaml.cs"> + <DependentUpon>EngineView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\GearboxView_v2_0.xaml.cs"> + <DependentUpon>GearboxView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\GearView_v2_0.xaml.cs"> + <DependentUpon>GearView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\PTOView_v2_0.xaml.cs"> + <DependentUpon>PTOView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\RetarderView_v2_0.xaml.cs"> + <DependentUpon>RetarderView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\TyreView_v2_3.xaml.cs"> + <DependentUpon>TyreView_v2_3.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\Components\TyreView_v2_0.xaml.cs"> + <DependentUpon>TyreView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobEditViews\Vehicle\VehicleView_v2_0.xaml.cs"> + <DependentUpon>VehicleView_v2_0.xaml</DependentUpon> + </Compile> + <Compile Include="Views\JobListView.xaml.cs"> + <DependentUpon>JobListView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\MessageView.xaml.cs"> + <DependentUpon>MessageView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\AirDragView_v2_8.xaml.cs"> + <DependentUpon>AirDragView_v2_8.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\FilePicker.xaml.cs"> + <DependentUpon>FilePicker.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\LabledTextBoxMultistage.xaml.cs"> + <DependentUpon>LabledTextBoxMultistage.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\MultiStageParameter.xaml.cs"> + <DependentUpon>MultiStageParameter.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\MultistageParameterCheckBoxView.xaml.cs"> + <DependentUpon>MultistageParameterCheckBoxView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\MultistageParameterComboBoxView.xaml.cs"> + <DependentUpon>MultistageParameterComboBoxView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\CustomControls\MultistageParameterTextView.xaml.cs"> + <DependentUpon>MultistageParameterTextView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\ManufacturingStageAuxiliariesView.xaml.cs"> + <DependentUpon>ManufacturingStageAuxiliariesView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\MultistageAirDragView.xaml.cs"> + <DependentUpon>MultistageAirDragView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\MultiStageView.xaml.cs"> + <DependentUpon>MultiStageView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\NewMultistageFileView.xaml.cs"> + <DependentUpon>NewMultistageFileView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\ManufacturingStageView.xaml.cs"> + <DependentUpon>ManufacturingStageView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\Multistage\VehicleView_v2_8.xaml.cs"> + <DependentUpon>VehicleView_v2_8.xaml</DependentUpon> + </Compile> + <Compile Include="Views\OutputView.xaml.cs"> + <DependentUpon>OutputView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\SettingsView.xaml.cs"> + <DependentUpon>SettingsView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\XMLViewer.xaml.cs"> + <DependentUpon>XMLViewer.xaml</DependentUpon> + </Compile> + <Page Include="DataGridStyles.xaml"> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Icons\AddDocument_16x.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Resources\Icons\Add_16x.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Resources\Icons\drawables.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Icons\Trash_16x.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Resources\MultistageParameterDataTemplates.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\ObjectProvider.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Styles\ButtonStyles.xaml"> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Styles\Colors.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="MainWindow.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Compile Include="App.xaml.cs"> + <DependentUpon>App.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Compile Include="MainWindow.xaml.cs"> + <DependentUpon>MainWindow.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Page Include="Resources\Converter.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Styles\GlobalStyles.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\Templates\ErrorTemplates.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Resources\ViewModelBindings.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Test.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\ComboParameter.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\DateTimePicker.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\LabledCheckBoxAutomatic.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\LabledTextBox.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\LabledTextBoxAutomatic.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\LabledTextBoxUnit.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\ScatterPlot.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\CustomControls\Viewer.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\DeclarationJobEditView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\ADASView_v2_3.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AirDragView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AngleDriveView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AuxiliariesView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AuxiliaryView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AxleGearView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AxleView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\AxleWheelsView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\CommonComponentView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\EngineFuelView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\EngineModeViewSingleFuel.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\EngineView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\GearboxView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\GearView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\PTOView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\RetarderView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\TyreView_v2_3.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Views\JobEditViews\Vehicle\Components\TyreView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobEditViews\Vehicle\VehicleView_v2_0.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\JobListView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\MessageView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\AirDragView_v2_8.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\FilePicker.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\LabledTextBoxMultistage.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\MultiStageParameter.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\MultistageParameterCheckBoxView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\MultistageParameterComboBoxView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\CustomControls\MultistageParameterTextView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\ManufacturingStageAuxiliariesView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\MultistageAirDragView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\MultiStageView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\NewMultistageFileView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\ManufacturingStageView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\Multistage\VehicleView_v2_8.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\OutputView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\SettingsView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\XMLViewer.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <EmbeddedResource Include="Properties\BusStrings.resx"> + <Generator>PublicResXFileCodeGenerator</Generator> + <LastGenOutput>BusStrings.Designer.cs</LastGenOutput> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Strings.resx"> + <Generator>PublicResXFileCodeGenerator</Generator> + <LastGenOutput>Strings.Designer.cs</LastGenOutput> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <AdditionalFiles Include="..\DependencyValidation1\DependencyValidation1.layerdiagram"> + <Link>DependencyValidation1.layerdiagram</Link> + <Visible>False</Visible> + </AdditionalFiles> + <None Include="Documentation\InputData.cd" /> + <None Include="Properties\Application.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Application.Designer.cs</LastGenOutput> + </None> + <None Include="packages.config" /> + <None Include="Properties\Settings.settings"> + <Generator>PublicSettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <None Include="ViewModel\ClassDiagram1.cd" /> + <None Include="ViewModel\Implementation\JobEdit\ClassDiagram1.cd" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include=".NETFramework,Version=v4.8"> + <Visible>False</Visible> + <ProductName>Microsoft .NET Framework 4.8 %28x86 and x64%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> + </ItemGroup> + <ItemGroup> + <Resource Include="Resources\Icons\Icon2.ico" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\VectoCommon\VectoCommon\VectoCommon.csproj"> + <Project>{79a066ad-69a9-4223-90f6-6ed5d2d084f4}</Project> + <Name>VectoCommon</Name> + </ProjectReference> + <ProjectReference Include="..\VectoCommon\VectoHashing\VectoHashing.csproj"> + <Project>{B673E12F-D323-4C4C-8805-9915B2C72D3D}</Project> + <Name>VectoHashing</Name> + </ProjectReference> + <ProjectReference Include="..\VectoCore\VectoCoreTest\VectoCoreTest.csproj"> + <Project>{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}</Project> + <Name>VectoCoreTest</Name> + </ProjectReference> + <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj"> + <Project>{cd36938a-add9-4c65-96da-b397cdeea90a}</Project> + <Name>VectoCore</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Resource Include="Resources\Icons\folderpicker.ico" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Model\Multistage\" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Resources\Icons\Trash_16x.ico" /> + </ItemGroup> + <ItemGroup> + <None Include="Properties\Version.tt"> + <Generator>TextTemplatingFileGenerator</Generator> + <LastGenOutput>Version.cs</LastGenOutput> + </None> + </ItemGroup> + <!-- ItemGroup> + <Analyzer Include="..\packages\Microsoft.DependencyValidation.Analyzers.0.11.0\analyzers\dotnet\cs\Microsoft.DependencyValidation.Analyzers.resources.dll" /> + </-ItemGroup --> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project> \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/ClassDiagram1.cd b/VECTO3GUI2020/ViewModel/ClassDiagram1.cd new file mode 100644 index 0000000000000000000000000000000000000000..6266df25c87b5da5fcd7daf2d767bc18ebc225fe --- /dev/null +++ b/VECTO3GUI2020/ViewModel/ClassDiagram1.cd @@ -0,0 +1,566 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1"> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.Common.ViewModelBase" Collapsed="true"> + <Position X="33.75" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAEAAIAAAAAAAgAEAAAAAAAAAAAAAAAA=</HashCode> + <FileName>ViewModel\Implementation\Common\ViewModelBase.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.Document.DeclarationJobViewModel" Collapsed="true"> + <Position X="66.75" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAABAABBAAAIAAABAAAAgAAAAAAAAAAAAAAAAAAAgA=</HashCode> + <FileName>ViewModel\Implementation\Document\DeclarationJobViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.Document.DeclarationTrailerJobDocumentViewModel" Collapsed="true"> + <Position X="68.5" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAJAABBAAAAAAABAAAAgAAAAAAAAAAAAAAAAAAAgA=</HashCode> + <FileName>ViewModel\Implementation\Document\DeclarationTrailerJobDocumentViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.DeclarationJobViewModel" Collapsed="true"> + <Position X="26" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAMAAkAAAAIAABUwAAgAAAQAAAACAAAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\DeclarationJobViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.DeclarationJobViewModel_v1_0" Collapsed="true"> + <Position X="26" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\DeclarationJobViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.DeclarationJobViewModel_v2_0" Collapsed="true"> + <Position X="26" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\DeclarationJobViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer.DeclarationTrailerJobEditViewModel" Collapsed="true"> + <Position X="44" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAEAAAAAAAAUAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Trailer\DeclarationTrailerJobEditViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer.DeclarationTrailerJobEditViewModel_v2_7" Collapsed="true"> + <Position X="44" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Trailer\DeclarationTrailerJobEditViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer.TrailerViewModel" Collapsed="true"> + <Position X="0.5" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAEAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Trailer\TrailerViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer.TrailerViewModel_v2_7" Collapsed="true"> + <Position X="0.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Trailer\TrailerViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ADASViewModel" Collapsed="true"> + <Position X="5.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAEAIAIFAAAQAAAAAAjCAQAAAAAAAAAAAACAAAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ADASViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ADASViewModel_v1_0" Collapsed="true"> + <Position X="5.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAgCAAAAAAAAAAAAAACAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ADASViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ADASViewModel_v2_1" Collapsed="true"> + <Position X="5.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ADASViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ADASViewModel_v2_3" Collapsed="true"> + <Position X="5.75" Y="6.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ADASViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AirDragViewModel" Collapsed="true"> + <Position X="41.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAIYAAEgABEkAABkAEAQUAAAAiAAABAAiAREAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AirDragViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AirDragViewModel_v1_0" Collapsed="true"> + <Position X="41.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AirDragViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AirDragViewModel_v2_0" Collapsed="true"> + <Position X="41.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AirDragViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AngleDriveViewModel" Collapsed="true"> + <Position X="57.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgABYAAGgABEkQABkAEAAUAAAAiACCBAQiARFAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AngleDriveViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AngleDriveViewModel_v1_0" Collapsed="true"> + <Position X="57.5" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAACAAAAAAAAAAAAAAAAAAgACAAAQAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AngleDriveViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AngleDriveViewModel_v2_0" Collapsed="true"> + <Position X="57.5" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AngleDriveViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliariesViewModel" Collapsed="true"> + <Position X="19.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAACIAAAEAAhUAAAAAAABAQEAAAAAAAAAAAAAEAAIAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliariesViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliariesViewModel_v1_0" Collapsed="true"> + <Position X="19.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliariesViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliariesViewModel_v2_0" Collapsed="true"> + <Position X="19.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliariesViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliariesViewModel_v2_3" Collapsed="true"> + <Position X="19.25" Y="6.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliariesViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliaryViewModel" Collapsed="true"> + <Position X="46.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>ABAAIAAAEAAAAAwAACAAAAQICAAAgAAAAQAAEAAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliaryViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliaryViewModel_v1_0" Collapsed="true"> + <Position X="46.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliaryViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliaryViewModel_v2_0" Collapsed="true"> + <Position X="46.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliaryViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AuxiliaryViewModel_v2_3" Collapsed="true"> + <Position X="46.25" Y="6.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AuxiliaryViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleGearViewModel" Collapsed="true"> + <Position X="8" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgIJYAAGgABEkAABkAEAAUAAAIiACCBAAiARFAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleGearViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleGearViewModel_v1_0" Collapsed="true"> + <Position X="8" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleGearViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleGearViewModel_v2_0" Collapsed="true"> + <Position X="8" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgIAIAACgAAAAAAAAAAAAAAAAAgACABAAiAAEAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleGearViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleViewModel" Collapsed="true"> + <Position X="32.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>ICAAAAAAEAAAAggEAEQAAAQAAAQAAAAAGAAIAACAAAY=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleViewModel_v1_0" Collapsed="true"> + <Position X="32.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleViewModel_v2_0" Collapsed="true"> + <Position X="32.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleViewModel_v2_7" Collapsed="true"> + <Position X="32.75" Y="6.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleWheelsViewModel" Collapsed="true"> + <Position X="60.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAQAIAAAFAAAEAAABAABAAQAAAAAAAAAACAAAAAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleWheelsViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleWheelsViewModel_v1_0" Collapsed="true"> + <Position X="59.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleWheelsViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.AxleWheelsViewModel_v2_0" Collapsed="true"> + <Position X="62" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\AxleWheelsViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.CommonComponentViewModel" Collapsed="true"> + <Position X="21.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAAQAAAgABAgAABkAEAAAAAAACAAABAAiAREAAEAA=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\CommonComponentViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ComponentsViewModel" Collapsed="true"> + <Position X="28.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAgAEAAAABAMKBQCIAAAABhABAAAACAABAIyQKBIAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ComponentsViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ComponentsViewModel_v1_0" Collapsed="true"> + <Position X="28.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAEAAAAAAECBACAAAAABBAAAAAACAAAAAgACAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ComponentsViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.ComponentsViewModel_v2_0" Collapsed="true"> + <Position X="28.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\ComponentsViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineFuelViewModel" Collapsed="true"> + <Position X="48.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAABAAAAAAAAAAAAAIAAAYAAAAAAAABAEAAAAQAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineFuelViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.SingleFuelEngineFuelViewModel" Collapsed="true"> + <Position X="48.5" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>EAABAAIAAIAAAAAAAIAAAYCAAAAQAABEEACAAQAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineFuelViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineModeViewModel" Collapsed="true"> + <Position X="64.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AABAAAAAASAAAAAAAAAAQAAAAAAAAAAAAAAAggAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineModeViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineModeViewModelSingleFuel" Collapsed="true"> + <Position X="64.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AABAAAAAAQAAAAAAAAAARgAEAEAAAAAAAAAAggAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineModeViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineViewModel" Collapsed="true"> + <Position X="10.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>BAgAIZBQEgABEkAAB0AkAIUAABACBAADAAiAREAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineViewModel_v1_0" Collapsed="true"> + <Position X="10.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.EngineViewModel_v2_0" Collapsed="true"> + <Position X="10.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>BAgAAIBgAAAAAAAAAwAAAIAAAAABBAABAAiAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\EngineViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearboxViewModel" Collapsed="true"> + <Position X="36" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAIYAAEgABEkQABkAEAEUIABACAQQBAQiARECBEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearboxViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearboxViewModel_v1_0" Collapsed="true"> + <Position X="35" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearboxViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearboxViewModel_v2_0" Collapsed="true"> + <Position X="37.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAAIAAAgAAAAAAAAAAAEAAAAACAQABAQiAAACAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearboxViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearViewModel" Collapsed="true"> + <Position X="53" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AEAALoAAGMAAggAQgEQQBAwoAA4hACCkCABAABAAIQI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearViewModel_v1_0" Collapsed="true"> + <Position X="53" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.GearViewModel_v2_0" Collapsed="true"> + <Position X="53" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAACAAAAAAAgAAAAAgAAAAgACAEAAAAAAAAAQg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\GearViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.PTOViewModel" Collapsed="true"> + <Position X="12.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAIoAAEAAAEEAAAAAAAAQAgAAAAQAAgAAAACAAAAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\PTOViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.PTOViewModel_V1_0" Collapsed="true"> + <Position X="12.5" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\PTOViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.PTOViewModel_V2_0" Collapsed="true"> + <Position X="12.5" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\PTOViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.RetarderViewModel" Collapsed="true"> + <Position X="39.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAJYAAGgABAkQABkAEAAUAAAQCACABAQiARFAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\RetarderViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.RetarderViewModel_v1_0" Collapsed="true"> + <Position X="39.5" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAACAAAAAAAAAAAAAAAAAAAACAAAQAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\RetarderViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.RetarderViewModel_v2_0" Collapsed="true"> + <Position X="39.5" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\RetarderViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TorqueConverterViewModel" Collapsed="true"> + <Position X="55.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAAACAEkAAFgAAAEAAAAUAAAAAAAABAAiAAEAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TorqueConverterViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TorqueConverterViewModel_v1_0" Collapsed="true"> + <Position X="55.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TorqueConverterViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TorqueConverterViewModel_v2_0" Collapsed="true"> + <Position X="55.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TorqueConverterViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TyreViewModel" Collapsed="true"> + <Position X="14.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAkBAYAAEiADAkAABkIMAAUAAAACSAABAgiAREAAEAI=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TyreViewModel_v1_0" Collapsed="true"> + <Position X="14.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAIAAAAAAAAAQAAAAAAAAAAAAAo=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TyreViewModel_v2_0" Collapsed="true"> + <Position X="14.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TyreViewModel_v2_2" Collapsed="true"> + <Position X="14.75" Y="6.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components.TyreViewModel_v2_3" Collapsed="true"> + <Position X="14.75" Y="7.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AQAAAIAAAAACAAAAAAAAAAAAAAAAAAAAAAACAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\Components\TyreViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel" Collapsed="true"> + <Position X="50.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>EIqCLYIMVmCRMoIODuMVgEfEEBCCAIIBB3iAVcMIPzo=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel_v1_0" Collapsed="true"> + <Position X="50.75" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel_v2_0" Collapsed="true"> + <Position X="50.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>BIoAAAAEAgAgAMAAACAAIAIACAAAAIAFAAgARMEAAhg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobListViewModel" Collapsed="true"> + <Position X="3.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AQAIAFAARACQAAAAhGAQGAADIBAgECAAEJCIAIAgADI=</HashCode> + <FileName>ViewModel\Implementation\JobListViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.MainWindowViewModel" Collapsed="true"> + <Position X="17" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAIAAIQAAAAAAAAwAAAAAAAACABAACAAAAAAAAACA=</HashCode> + <FileName>ViewModel\Implementation\MainWindowViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.MessageViewModel" Collapsed="true"> + <Position X="23.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>ViewModel\Implementation\MessageViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.SettingsViewModel" Collapsed="true"> + <Position X="30.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAABAgAAAIAAAAAAAAAAAAAAAAEAAAAQ=</HashCode> + <FileName>ViewModel\Implementation\SettingsViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..876ef38084047d02775fd175a3c4f5df826c610d --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs @@ -0,0 +1,62 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.Interfaces.Common; + +namespace VECTO3GUI2020.ViewModel.Implementation.Common +{ + /// <summary> + /// Base Implementation of INotifyPropertyChanged + /// https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-implement-property-change-notification + /// </summary> + /// + public class ViewModelBase : INotifyPropertyChanged, IViewModelBase + { + private string _error; + public event PropertyChangedEventHandler PropertyChanged; + /// <summary> + /// Needs to be called when a Property is changed + /// </summary> + /// + /// <param name="name">Is automatically set to CallerMemberName</param> + protected void OnPropertyChanged([CallerMemberName] string name = "") + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + } + + + //borrowed from Franz Kober + protected virtual bool SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null) + { + bool propertyChanged = false; + + if (!EqualityComparer<T>.Default.Equals(field, value)) + { + field = value; + OnPropertyChanged(propertyName); + propertyChanged = true; + } + return propertyChanged; + } + + public virtual string Title { get; set; } = "No Title Set"; + + protected void CloseWindow(Window window, IDialogHelper dialogHelper, bool showDialog = true) + { + MessageBoxResult result; + if (showDialog) { + result = dialogHelper.ShowMessageBox("Do you really want to close?", "Close", MessageBoxButton.YesNo, + MessageBoxImage.Question); + } else { + result = MessageBoxResult.Yes; + } + + + if (result == MessageBoxResult.Yes) { + window?.Close(); + } + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationJobViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationJobViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..7f3cc8db43acad0a5b3e2b4ecbe8edd1a12cfbbb --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationJobViewModel.cs @@ -0,0 +1,65 @@ +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; + +namespace VECTO3GUI2020.ViewModel.Implementation.Document +{ + public class DeclarationJobViewModel : ViewModelBase, IJobViewModel + { + #region Implementation of IDocumentViewModel + public string DocumentName { get; } + + public XmlDocumentType DocumentType { get; } + + public DataSource DataSource => _jobEditViewModel.DataSource; + + + private IJobEditViewModel _jobEditViewModel; + public IJobEditViewModel JobEditViewModel { get => _jobEditViewModel; } + public IEditViewModel EditViewModel + { + get => _jobEditViewModel as IEditViewModel; + } + + public bool Selected + { + get => _selected; + set => SetProperty(ref _selected, value); + } + + public bool CanBeEdited + { + get => false; + set => throw new System.NotImplementedException(); + } + + #endregion + #region Members + + public IXMLInputDataReader _xMLInputDataReader; + private bool _selected; + + #endregion + + + public DeclarationJobViewModel(XmlDocumentType xmlDocumentType, string sourcefile, IXMLInputDataReader xMLInputDataReader, + IJobEditViewModelFactory jobEditViewModelFactory) + { + + _xMLInputDataReader = xMLInputDataReader; + DocumentType = xmlDocumentType; + + + var xmlInputDataProvider = _xMLInputDataReader.Create(sourcefile); + _jobEditViewModel = jobEditViewModelFactory.CreateJobEditViewModel(xmlInputDataProvider); + + _xMLInputDataReader.Create(sourcefile); + DocumentName = _jobEditViewModel.Name; + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationTrailerJobDocumentViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationTrailerJobDocumentViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..9362ab868a256c06784589a8304023be9c092de4 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/Document/DeclarationTrailerJobDocumentViewModel.cs @@ -0,0 +1,56 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; + +namespace VECTO3GUI2020.ViewModel.Implementation.Document +{ + public class DeclarationTrailerJobDocumentViewModel : IJobViewModel + { + private string _name = ""; + public string DocumentName { get => _name; } + + public XmlDocumentType DocumentType { get; } + + public DataSource DataSource => throw new System.NotImplementedException(); + + public string SourceFile { get; } + + public IJobEditViewModel EditViewModel { get => _jobEditViewModel; } + + public bool Selected + { + get => throw new System.NotImplementedException(); + set => throw new System.NotImplementedException(); + } + + public bool CanBeEdited + { + get => false; + set => throw new System.NotImplementedException(); + } + + IEditViewModel IDocumentViewModel.EditViewModel => throw new System.NotImplementedException(); + + private IXMLInputDataReader _xMLInputDataReader; + + private IJobEditViewModel _jobEditViewModel; + + + public DeclarationTrailerJobDocumentViewModel(XmlDocumentType xmlDocumentType, string sourcefile, IXMLInputDataReader xMLInputDataReader, + IJobEditViewModelFactory jobEditViewModelFactory) + { + + DocumentType = xmlDocumentType; + _xMLInputDataReader = xMLInputDataReader; + + SourceFile = sourcefile; + + + var xml_input_data_provider = _xMLInputDataReader.Create(sourcefile); + _jobEditViewModel = jobEditViewModelFactory.CreateJobEditViewModel(xml_input_data_provider); + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c6a69dc8fb23d839e59699d46d28fac7a7b74a5 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs @@ -0,0 +1,62 @@ +using System.Configuration; +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 +{ + public class SimulationOnlyDeclarationJob : ViewModelBase, IDocumentViewModel, IJobViewModel + { + #region Implementation of IDocumentViewModel + + public string DocumentName + { + get => _documentName; + set => _documentName = value; + } + + public XmlDocumentType DocumentType + { + get => _documentType; + set => _documentType = value; + } + + public DataSource DataSource + { + get => _dataSource; + set => _dataSource = value; + } + + public IEditViewModel EditViewModel { get; set; } + + private bool _selected; + private XmlDocumentType _documentType; + private string _documentName; + private DataSource _dataSource; + + public bool Selected + { + get => _selected; + set => SetProperty(ref _selected, value); + } + + public bool CanBeEdited + { + get => false; + set => throw new System.NotImplementedException(); + } + + #endregion + + public SimulationOnlyDeclarationJob(DataSource dataSource, string name, XmlDocumentType documentType) + { + _documentType = documentType; + _dataSource = dataSource; + _documentName = name; + } + + } + +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/ClassDiagram1.cd b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/ClassDiagram1.cd new file mode 100644 index 0000000000000000000000000000000000000000..8b25970a7d90c54eb200dac872cb4bf7a83c2ba3 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/ClassDiagram1.cd @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1"> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel"> + <Position X="2" Y="1.5" Width="2.5" /> + <TypeIdentifier> + <HashCode>QAKIJABEEkggAkAAACAAAAUAAAAQAIIAAAAAAIAIAwA=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel_v1_0" Collapsed="true"> + <Position X="5.5" Y="5.25" Width="2.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.VehicleViewModel_v2_0" Collapsed="true"> + <Position X="5.5" Y="6.25" Width="2.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg=</HashCode> + <FileName>ViewModel\Implementation\JobEdit\Vehicle\VehicleViewModel.cs</FileName> + </TypeIdentifier> + </Class> + <Interface Name="VECTO3GUI2020.ViewModel.Interfaces.JobEdit.IVehicleViewModel"> + <Position X="4.75" Y="1.5" Width="2.75" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAA=</HashCode> + <FileName>ViewModel\Interfaces\JobEdit\Vehicle\IVehicleViewModel.cs</FileName> + </TypeIdentifier> + </Interface> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..6e6b830b0fc1f34771b536e77449dc2a5867f112 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs @@ -0,0 +1,210 @@ +using Ninject; +using System; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Windows; +using System.Windows.Forms.VisualStyles; +using System.Windows.Input; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Schema; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.Util.XML.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit +{ + + /// <summary> + /// ViewModel for Declaration Jobs. + /// </summary> + public abstract class DeclarationJobEditViewModel : ViewModelBase, IJobEditViewModel, IDeclarationJobInputData + { + public string Name => _jobInputData.JobName; + public override string Title => Name; + + private IComponentViewModel _currentDetailView; + public IComponentViewModel CurrentDetailView + { + get + { + return _currentDetailView; + } + set + { + _currentDetailView = value; + OnPropertyChanged(); + } + } + + protected IDeclarationJobInputData _jobInputData; + protected IDeclarationInputDataProvider _inputData; + private IXMLWriterFactory _xmlWriterFactory; + + protected IComponentViewModelFactory _componentViewModelFactory; + + + public ObservableCollection<IComponentViewModel> ComponentViewModels { get; protected set; } = new ObservableCollection<IComponentViewModel>(); + + protected IVehicleViewModel _vehicleViewModel; + public IVehicleViewModel VehicleViewModel + { + get => _vehicleViewModel; + set => SetProperty(ref _vehicleViewModel, value); + } + + public DeclarationJobEditViewModel(IDeclarationInputDataProvider inputData, + IComponentViewModelFactory componentViewModelFactory, + IXMLWriterFactory xmlWriterFactory, + IDialogHelper dialogHelper) + { + _xmlWriterFactory = xmlWriterFactory; + _componentViewModelFactory = componentViewModelFactory; + _dialogHelper = dialogHelper; + + _jobInputData = inputData.JobInputData; + _inputData = inputData; + + DataSource = inputData.DataSource; + + + VehicleViewModel = _componentViewModelFactory.CreateVehicleViewModel(_jobInputData.Vehicle); + CurrentDetailView = VehicleViewModel; + + ComponentViewModels.Add(VehicleViewModel); + AddVehicleComponentsToCollection(); + } + + protected void AddVehicleComponentsToCollection() + { + + foreach(var component in VehicleViewModel.ComponentViewModels) + { + ComponentViewModels.Add(component); + } + } + + + #region Commands + + private ICommand _saveCommand; + private ICommand _saveAsCommand; + private DataSource _dataSource; + private IDialogHelper _dialogHelper; + private VectoSimulationJobType _jobType; + + + private void UpdateDataSource(string filename) + { + DataSource.SourceFile = filename; + OnPropertyChanged(nameof(DataSource.SourceFile)); + } + + public ICommand SaveCommand => + _saveCommand ?? new RelayCommand( + SaveExecute, () => true); + + public ICommand SaveAsCommand => _saveAsCommand ?? new RelayCommand( + SaveAsExecute, () => true); + + private void SaveAsExecute() + { + var filename = _dialogHelper.SaveToXMLDialog(DataSource.SourcePath); + Save(filename); + UpdateDataSource(filename); + } + + + private void SaveExecute() + { + var filename = _dataSource.SourceFile; + var dialogResult = _dialogHelper.ShowMessageBox(Strings.SaveExecute_Do_you_want_to_overwrite + filename + "?", "Save", + MessageBoxButton.YesNo, MessageBoxImage.Question); + + if (dialogResult == MessageBoxResult.No) { + return; + } + + Save(filename); + } + + + private void Save(string filename) + { + if (filename == null) { + return; + } + var document = _xmlWriterFactory.CreateJobWriter(this).GetDocument(); + + document.Save(filename, SaveOptions.OmitDuplicateNamespaces); + } + + #endregion + + public DataSource DataSource + { + get => _dataSource; + set => SetProperty(ref _dataSource, value); + } + + public bool SavedInDeclarationMode => _jobInputData.SavedInDeclarationMode; + + public IVehicleDeclarationInputData Vehicle => _vehicleViewModel; + + public string JobName => Name; + + public string ShiftStrategy => throw new NotImplementedException(); + + public VectoSimulationJobType JobType => _jobType; + } + + public class DeclarationJobEditViewModel_v1_0 : DeclarationJobEditViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationInputDataProviderV10).FullName; + + public DeclarationJobEditViewModel_v1_0 + (IDeclarationInputDataProvider inputData, + IComponentViewModelFactory componentViewModelFactory, + IXMLWriterFactory xmlWriterFactory, + IDialogHelper dialogHelper): + base(inputData, + componentViewModelFactory, + xmlWriterFactory, + dialogHelper) + { + //ComponentViewModels.Add(VehicleViewModel.PTOViewModel); + } + } + + public class DeclarationJobEditViewModel_v2_0 : DeclarationJobEditViewModel_v1_0 + { + public new static readonly string VERSION = typeof(XMLDeclarationInputDataProviderV20).FullName; + + public DeclarationJobEditViewModel_v2_0( + IDeclarationInputDataProvider inputData, + IComponentViewModelFactory componentViewModelFactory, + IXMLWriterFactory xmlWriterFactory, + IDialogHelper dialogHelper) : + base(inputData, + componentViewModelFactory, + xmlWriterFactory, + dialogHelper) + { + //ComponentViewModels.Add(VehicleViewModel.PTOViewModel); + } + } + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ADASViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ADASViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..81189514d53d77429ba1b261b1b9120cb21da799 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ADASViewModel.cs @@ -0,0 +1,127 @@ +using System; +using System.Xml; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class ADASViewModel : ViewModelBase, IComponentViewModel, IAdasViewModel + { + public string Name => "ADAS"; + + public bool IsPresent { get; set; } = false; + + protected IAdvancedDriverAssistantSystemDeclarationInputData _inputData; + + + public ADASViewModel(IAdvancedDriverAssistantSystemDeclarationInputData inputData) + { + _inputData = inputData; + IsPresent = true; + + + if (!IsPresent) + { + return; + } + SetProperties(); + } + + public abstract void SetProperties(); + + #region implementation of IAdvancedDriverAssistantSystemDeclarationInputData + protected bool _engineStopStart; + protected EcoRollType _ecoRoll; + protected PredictiveCruiseControlType _predictiveCruiseControl; + protected bool? _atEcoRollReleaseLockupClutch; + protected XmlNode _xmlSource; + public virtual bool EngineStopStart {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual EcoRollType EcoRoll {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual PredictiveCruiseControlType PredictiveCruiseControl {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual bool? ATEcoRollReleaseLockupClutch {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual XmlNode XMLSource {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + #endregion + } + + + public class ADASViewModel_v1_0 : ADASViewModel + { + + public static readonly string VERSION = typeof(XMLDeclarationADASDataProviderV10).FullName; + + public ADASViewModel_v1_0(IAdvancedDriverAssistantSystemDeclarationInputData inputData) : base(inputData) + { + + } + + public override void SetProperties() + { + _engineStopStart = _inputData.EngineStopStart; + _ecoRoll = _inputData.EcoRoll; + _predictiveCruiseControl = _inputData.PredictiveCruiseControl; + } + +#region implementation Overrides of Properties + public override bool EngineStopStart + { + get => _engineStopStart; + set => SetProperty(ref _engineStopStart, value); + } + public override EcoRollType EcoRoll + { + get => _ecoRoll; + set => SetProperty(ref _ecoRoll, value); + } + public override PredictiveCruiseControlType PredictiveCruiseControl + { + get => _predictiveCruiseControl; + set => SetProperty(ref _predictiveCruiseControl, value); + } +#endregion + } + + + public class ADASViewModel_v2_1 : ADASViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationADASDataProviderV21).FullName; + public ADASViewModel_v2_1(IAdvancedDriverAssistantSystemDeclarationInputData inputData) : base(inputData) + { + + } + + public override void SetProperties() + { + base.SetProperties(); + } + } + + + public class ADASViewModel_v2_3 : ADASViewModel_v2_1 + { + public static new readonly string VERSION = typeof(XMLDeclarationADASDataProviderV23).ToString(); + + + public override void SetProperties() + { + base.SetProperties(); + _atEcoRollReleaseLockupClutch = _inputData.ATEcoRollReleaseLockupClutch ?? false; + } + + public override bool? ATEcoRollReleaseLockupClutch { get => _atEcoRollReleaseLockupClutch; set => + SetProperty(ref _atEcoRollReleaseLockupClutch, value); } + + + + public ADASViewModel_v2_3(IAdvancedDriverAssistantSystemDeclarationInputData inputData) : base(inputData) + { + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..f4314ec98e0f6a2fbc1593d45c110d0182017b80 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs @@ -0,0 +1,210 @@ +using System; +using System.Diagnostics; +using System.Reflection.Emit; +using System.Xml; +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 VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AirDragViewModel : ViewModelBase, IComponentViewModel, IAirDragViewModel + { + private static readonly string _name = "AirDrag"; + + protected IAirdragDeclarationInputData _inputData; + + public XmlNode XMLSource { get; } + + private ICommonComponentViewModel _commonComponentViewModel; + public ICommonComponentViewModel CommonComponentViewModel + { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); + } + + + + + + + + + public AirDragViewModel(IXMLAirdragDeclarationInputData inputData, IComponentViewModelFactory vmFactory) + { + LabelVisible = true; + IsReadOnly = false; + _inputData = inputData as IAirdragDeclarationInputData; + Debug.Assert(_inputData != null); + _isPresent = (_inputData?.DataSource?.SourceFile != null); + + XMLSource = (inputData as AbstractCommonComponentType)?.XMLSource; + + _commonComponentViewModel = vmFactory.CreateCommonComponentViewModel(_inputData); + SetProperties(); + } + + public abstract void SetProperties(); + + public string Name { get { return _name; } } + private bool _isPresent; + public bool IsPresent { get { return _isPresent; } } + + #region Implementation of IAirDragDeclarationInputData + + protected SquareMeter _airDragArea; + protected SquareMeter _transferredAirDragArea; + protected SquareMeter _airDragArea_0; + private bool _isReadOnly; + private bool _labelVisible; + + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + + public virtual SquareMeter AirDragArea + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual SquareMeter TransferredAirDragArea { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual SquareMeter AirDragArea_0 { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #endregion + + public bool LabelVisible + { + get => _labelVisible; + set => SetProperty(ref _labelVisible, value); + } + + public bool IsReadOnly + { + get => _isReadOnly; + set => SetProperty(ref _isReadOnly, value); + } + } + + + public class AirDragViewModel_v1_0 : AirDragViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAirdragDataProviderV10).FullName; + public AirDragViewModel_v1_0(IXMLAirdragDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + public override void SetProperties() + { + throw new NotImplementedException(); + } + } + + public class AirDragViewModel_v2_0 : AirDragViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAirdragDataProviderV20).FullName; + + public AirDragViewModel_v2_0(IXMLAirdragDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + public override void SetProperties() + { + _airDragArea = _inputData.AirDragArea; + _airDragArea_0 = _inputData.AirDragArea_0; + _transferredAirDragArea = _inputData.TransferredAirDragArea; + } + + public override SquareMeter AirDragArea + { + get => _airDragArea; + set => SetProperty(ref _airDragArea, value); + } + + public override SquareMeter TransferredAirDragArea { + get => _transferredAirDragArea; + set => SetProperty(ref _transferredAirDragArea, value); + } + + public override SquareMeter AirDragArea_0 + { + get => _airDragArea_0; + set => SetProperty(ref _airDragArea_0, value); + } + } + + public class AirDragViewModel_v2_8 : AirDragViewModel_v2_0 + { + public new static readonly string VERSION = typeof(XMLDeclarationAirdragDataProviderV28).FullName; + + public AirDragViewModel_v2_8(IXMLAirdragDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + LabelVisible = false; + IsReadOnly = true; + } + + public override void SetProperties() + { + base.SetProperties(); + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AngleDriveViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AngleDriveViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f49378afa0ef1dc77f51a820d71c255fe3b8f52 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AngleDriveViewModel.cs @@ -0,0 +1,171 @@ +using System; +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AngleDriveViewModel : ViewModelBase, IComponentViewModel, IAngleDriveViewModel + { + protected IXMLAngledriveInputData _inputData; + + private ICommonComponentViewModel _commonComponentViewModel; + + public ICommonComponentViewModel CommonComponentViewModel + { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); + } + + public string Name => "Angle Drive"; + + private bool _isPresent; + public bool IsPresent { get => _isPresent; set => SetProperty(ref _isPresent, value); } + + public abstract void SetProperties(); + + public AngleDriveViewModel(IXMLAngledriveInputData inputData, IComponentViewModelFactory viewModelFactory) + { + _inputData = inputData; + if(((inputData as IXMLResource)?.DataSource.SourceFile == null) || (_inputData.Type == AngledriveType.None)) { + IsPresent = false; + } + + _commonComponentViewModel = viewModelFactory.CreateCommonComponentViewModel(inputData); + } + + #region implementation of IAngleDriveInputData + + protected AngledriveType _type; + protected double _ratio; + protected TableData _lossMap; + protected double _efficiency; + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual AngledriveType Type + { + get => _type; + set{ + Debug.WriteLine(value.ToString()); + SetProperty(ref _type, value); + IsPresent = value != AngledriveType.None; + } + } + + public virtual double Ratio {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual TableData LossMap {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual double Efficiency {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + #endregion + } + + + public class AngleDriveViewModel_v1_0 : AngleDriveViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAngledriveDataProviderV10).FullName; + + public AngleDriveViewModel_v1_0(IXMLAngledriveInputData inputData, IComponentViewModelFactory viewModelFactory) : base(inputData, viewModelFactory) + { + } + + public override void SetProperties() + { + _type = _inputData.Type; + _ratio = _inputData.Ratio; + _lossMap = _inputData.LossMap; + _efficiency = _inputData.Efficiency; + } + + public override double Ratio + { + get => _ratio; + set => SetProperty(ref _ratio, value); + } + + public override TableData LossMap + { + get => _lossMap; + set => SetProperty(ref _lossMap , value); + } + + public override double Efficiency + { + get => _efficiency; + set => SetProperty(ref _efficiency, value); + } + } + + public class AngleDriveViewModel_v2_0 : AngleDriveViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAngledriveDataProviderV20).FullName; + + public AngleDriveViewModel_v2_0(IXMLAngledriveInputData inputData, IComponentViewModelFactory viewModelFactory) : base(inputData, viewModelFactory) + { + } + + public override void SetProperties() + { + base.SetProperties(); + } + } + + + + +} + diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliariesViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..1d503d78964c94d0a946a0de8c89a60572ee5682 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliariesViewModel.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AuxiliariesViewModel : ViewModelBase, IComponentViewModel, IAuxiliariesViewModel + { + private static readonly string _name = "Auxiliaries"; + public string Name { get { return _name; } } + + protected IXMLAuxiliariesDeclarationInputData _inputData; + + protected IComponentViewModelFactory _componentViewModelFactory; + private bool _isPresent = true; + private ObservableCollection<IAuxiliaryViewModel> _auxiliaryViewModels = new ObservableCollection<IAuxiliaryViewModel>(); + + + public bool IsPresent { get { return _isPresent; } } + + public ObservableCollection<IAuxiliaryViewModel> AuxiliaryViewModels { + get => _auxiliaryViewModels; + set => SetProperty(ref _auxiliaryViewModels, value); } + + public abstract void CreateAuxiliaries(); + + protected AuxiliariesViewModel(IXMLAuxiliariesDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) + { + _inputData = inputData; + _componentViewModelFactory = componentViewModelFactory; + + Debug.Assert(_inputData != null); + CreateAuxiliaries(); + + + } + + private bool _savedInDeclarationMode; + private IList<IAuxiliaryDeclarationInputData> _auxiliaries; + public virtual bool SavedInDeclarationMode => throw new NotImplementedException(); + + public virtual IList<IAuxiliaryDeclarationInputData> Auxiliaries => _auxiliaryViewModels.Cast<IAuxiliaryDeclarationInputData>().ToList(); + } + + public class AuxiliariesViewModel_v1_0 : AuxiliariesViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAuxiliariesDataProviderV10).FullName; + + public AuxiliariesViewModel_v1_0(IXMLAuxiliariesDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) : base(inputData, componentViewModelFactory) + { + } + + public override void CreateAuxiliaries() + { + foreach (var auxiliary in _inputData.Auxiliaries) + { + Debug.Assert(auxiliary.Technology.Count == 1); + var componentViewModel = _componentViewModelFactory.CreateComponentViewModel(auxiliary as IXMLAuxiliaryDeclarationInputData); + AuxiliaryViewModels.Add(componentViewModel as IAuxiliaryViewModel); + } + } + } + + public class AuxiliariesViewModel_v2_0 : AuxiliariesViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAuxiliariesDataProviderV20).FullName; + + public AuxiliariesViewModel_v2_0(IXMLAuxiliariesDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) : base(inputData, componentViewModelFactory) + { + } + + public override void CreateAuxiliaries() + { + base.CreateAuxiliaries(); + } + } + + public class AuxiliariesViewModel_v2_3 : AuxiliariesViewModel_v2_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAuxiliariesDataProviderV23).ToString(); + + public AuxiliariesViewModel_v2_3(IXMLAuxiliariesDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) : base(inputData, componentViewModelFactory) + { + } + + public override void CreateAuxiliaries() + { + base.CreateAuxiliaries(); + } + } + + + + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliaryViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliaryViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c853ee032451d8780fb58be0a659afd7ab72a02 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AuxiliaryViewModel.cs @@ -0,0 +1,104 @@ +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Models.Declaration; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AuxiliaryViewModel : ViewModelBase, IComponentViewModel, IAuxiliaryViewModel + { + + protected string _name; + private string _technologyName; + private IList<string> _technologyList; + + public string Name + { + get => _name; + set => SetProperty(ref _name, value); + } + + public string TechnologyName + { + get => _technologyName; + set + { + _technology[0] = value; + SetProperty(ref _technologyName, value); + } + } + + public IList<string> TechnologyList + { + get => _technologyList; + } + + + + public bool IsPresent => true; + + protected IDeclarationAuxiliaryTable _auxiliaryTable; + protected IXMLAuxiliaryDeclarationInputData _inputData; + + + public AuxiliaryViewModel(IXMLAuxiliaryDeclarationInputData inputData, + IAuxiliaryModelFactory auxiliaryModelFactory) + { + _inputData = inputData; + _type = _inputData.Type; + _name = AuxiliaryTypeHelper.ToString(_type); + _technology = _inputData.Technology; + _technologyName = _inputData.Technology[0]; + Debug.Assert(_inputData.Technology.Count == 1); + + _auxiliaryTable = auxiliaryModelFactory.CreateAuxiliaryModel(_type); + _technologyList = _auxiliaryTable.GetTechnologies().ToList(); + } + + #region Implementation of IAuxiliaryDeclarationType + protected AuxiliaryType _type; + protected IList<string> _technology; + + public AuxiliaryType Type + { + get => _type; + } + + public IList<string> Technology {get => _technology; } + #endregion + } + + public class AuxiliaryViewModel_v1_0 : AuxiliaryViewModel + { + + public static readonly string VERSION = typeof(XMLAuxiliaryDeclarationDataProviderV10).FullName; + public AuxiliaryViewModel_v1_0(IXMLAuxiliaryDeclarationInputData inputData, IAuxiliaryModelFactory auxiliaryModelFactory) : base(inputData, auxiliaryModelFactory) + { + } + } + + public class AuxiliaryViewModel_v2_0 : AuxiliaryViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLAuxiliaryDeclarationDataProviderV20).FullName; + public AuxiliaryViewModel_v2_0(IXMLAuxiliaryDeclarationInputData inputData, IAuxiliaryModelFactory auxiliaryModelFactory) : base(inputData, auxiliaryModelFactory) + { + } + } + + public class AuxiliaryViewModel_v2_3 : AuxiliaryViewModel_v2_0 + { + public static new readonly string VERSION = typeof(XMLAuxiliaryDeclarationDataProviderV23).FullName; + public AuxiliaryViewModel_v2_3(IXMLAuxiliaryDeclarationInputData inputData, IAuxiliaryModelFactory auxiliaryModelFactory) : base(inputData, auxiliaryModelFactory) + { + + } + } + + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleGearViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleGearViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..d20748d4577c01de90e414cd87cefac0d0dc1e39 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleGearViewModel.cs @@ -0,0 +1,186 @@ +using System; +using System.Data; +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AxleGearViewModel : ViewModelBase, IComponentViewModel, IAxleGearViewModel + { + private readonly static string _name = "Axle Gear"; + public string Name { get { return _name; } } + + private bool _isPresent = true; + public bool IsPresent { get { return _isPresent; } } + + protected IAxleGearInputData _inputData; + protected ICommonComponentViewModel _commonComponentViewModel; + + + public ICommonComponentViewModel CommonComponentViewModel { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); } + + protected abstract void SetProperties(); + + public AxleGearViewModel(IXMLAxleGearInputData inputData, IComponentViewModelFactory vmFactory) + { + _inputData = inputData as IAxleGearInputData; + Debug.Assert(_inputData != null); + _isPresent = (_inputData?.DataSource != null); + + CommonComponentViewModel = vmFactory.CreateCommonComponentViewModel(_inputData); + + SetProperties(); + } + + #region implementation of IAxleGearInputData + protected double _ratio; + protected TableData _lossMap; + protected double _efficiency; + protected AxleLineType _lineType; + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual double Ratio {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual TableData LossMap {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual double Efficiency {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual AxleLineType LineType {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + #endregion + } + + + + public class AxleGearViewModel_v1_0 : AxleGearViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAxlegearDataProviderV10).FullName; + public AxleGearViewModel_v1_0(IXMLAxleGearInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + } + + + protected override void SetProperties() + { + throw new NotImplementedException(); + } + } + + public class AxleGearViewModel_v2_0 : AxleGearViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAxlegearDataProviderV20).FullName; + + + + public override double Ratio + { + get => _ratio; + set => SetProperty(ref _ratio, value); + } + + public override TableData LossMap + { + get => _lossMap; + set => SetProperty(ref _lossMap, value); + } + + public DataTable LossMapDT + { + get => (DataTable)_lossMap; + } + + public override AxleLineType LineType + { + get => _lineType; + set => SetProperty(ref _lineType, value); + } + + public override double Efficiency + { + get => _efficiency; + set => SetProperty(ref _efficiency, value); + } + + public AxleGearViewModel_v2_0(IXMLAxleGearInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + protected override void SetProperties() + { + _ratio = _inputData.Ratio; + _lineType = _inputData.LineType; + _lossMap = _inputData.LossMap; + + _lossMap.TableName = "Loss Map"; + // not supported in Declaration mode_efficiency = _inputData.Efficiency; + } + + #region override Properties + + + + + + + + #endregion + + } +} + diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..5d56b5bbcabb8b2947d32ae1a72dbea4963d84cf --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleViewModel.cs @@ -0,0 +1,90 @@ +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AxleViewModel : ViewModelBase, IComponentViewModel, IAxleViewModel + { + public string Name => "Axle Wheels"; + + public abstract string Version { get; } + + public bool IsPresent => true; + + protected IXMLAxleDeclarationInputData _inputData; + + private bool _twinTyres; + + public bool TwinTyres { get => _twinTyres; set => SetProperty(ref _twinTyres, value); } + + + + private AxleType _axleType; + public AxleType AxleType { get => _axleType; set => SetProperty(ref _axleType, value); } + + private int _axleNumber; + public int AxleNumber { get => _axleNumber; + set => SetProperty(ref _axleNumber, value); + } + public DataSource DataSource => _dataSource; + + private ITyreViewModel _tyreViewModel; + public ITyreViewModel TyreViewModel { + get => _tyreViewModel; + set => SetProperty(ref _tyreViewModel, value); + } + ITyreDeclarationInputData IAxleDeclarationInputData.Tyre => _tyreViewModel; + + private bool _steered; + private DataSource _dataSource; + public bool Steered { get => _steered; set => SetProperty(ref _steered, value); } + + + + public AxleViewModel(IXMLAxleDeclarationInputData inputData, IComponentViewModelFactory vmFactory) + { + _inputData = inputData; + Debug.Assert(_inputData != null); + + _axleType = _inputData.AxleType; + _twinTyres = _inputData.TwinTyres; + _axleNumber = 0; //_inputData.AxleNumber; + _steered = false; //_inputData.Steered; + _tyreViewModel = (ITyreViewModel)vmFactory.CreateComponentViewModel(_inputData.Tyre); + } + + public override string ToString() + { + return _inputData.AxleType.ToString(); + } + } + + + public class AxleViewModel_v1_0 : AxleViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAxleDataProviderV10).FullName; + + + public AxleViewModel_v1_0(IXMLAxleDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + + } + + public override string Version => VERSION; + } + + public class AxleViewModel_v2_0 : AxleViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationAxleDataProviderV20).FullName; + public AxleViewModel_v2_0(IXMLAxleDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleWheelsViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleWheelsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..97c194b88d1633123a82426ceb6421550b3cb29c --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AxleWheelsViewModel.cs @@ -0,0 +1,76 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Xml; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class AxleWheelsViewModel : ViewModelBase, IComponentViewModel, IAxleWheelsViewModel + { + private static readonly string _name = "Axle Wheels"; + public string Name { get { return _name; } } + private bool _isPresent = true; + public bool IsPresent { get { return _isPresent; } } + + protected IXMLAxlesDeclarationInputData _inputData; + + + + public ObservableCollection<IComponentViewModel> AxleViewModels { get; set; } = new ObservableCollection<IComponentViewModel>(); + private IList<IAxleDeclarationInputData> _axlesInputData; + private XmlNode _xmlSource; + + public AxleWheelsViewModel(IXMLAxlesDeclarationInputData inputData, IComponentViewModelFactory vmFactory) + { + _inputData = inputData as IXMLAxlesDeclarationInputData; + Debug.Assert(_inputData != null); + _isPresent = (_inputData?.DataSource?.SourceFile != null); + + _axlesInputData = _inputData.AxlesDeclaration as IList<IAxleDeclarationInputData>; + Debug.Assert(_axlesInputData != null); + + + + + for (int i = 0; i < _axlesInputData.Count(); i++) + { + AxleViewModels.Add(vmFactory.CreateComponentViewModel(_axlesInputData[i])); + } + } + + + public IList<IAxleDeclarationInputData> AxlesDeclaration => + AxleViewModels.Cast<IAxleDeclarationInputData>().ToList(); + + public XmlNode XMLSource => _xmlSource; + } + + public class AxleWheelsViewModel_v1_0 : AxleWheelsViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAxlesDataProviderV10).FullName; + + + + public AxleWheelsViewModel_v1_0(IXMLAxlesDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + + } + } + + public class AxleWheelsViewModel_v2_0 : AxleWheelsViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationAxlesDataProviderV20).FullName; + + public AxleWheelsViewModel_v2_0(IXMLAxlesDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/CommonComponentViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/CommonComponentViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..8227d65355c8aa60291b62a0537cea2b88f4c2ca --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/CommonComponentViewModel.cs @@ -0,0 +1,88 @@ +using Ninject; +using System; +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public class CommonComponentViewModel : ViewModelBase, ICommonComponentViewModel + { + private string _manufacturer = "No Manufacturer found"; + private string _model = "No Model found"; + private DateTime _date = new DateTime(1985, 10, 26, 01, 21, 00); + private DataSource _dataSource; + private bool _savedInDeclarationMode; + private string _appVersion; + private CertificationMethod _certificationMethod; + private string _certificationNumber; + private DigestData _digestValue; + + #region Implementation of IComponentInputData + + + public string Manufacturer { get => _manufacturer; set => SetProperty(ref _manufacturer, value); } + public string Model { get => _model; set => SetProperty(ref _model, value); } + public DateTime Date { get => _date; set => SetProperty(ref _date, value); } + + public DataSource DataSource + { + get { return _dataSource; } + set { SetProperty(ref _dataSource, value); } + } + + public bool SavedInDeclarationMode + { + get => _savedInDeclarationMode; + set => SetProperty(ref _savedInDeclarationMode, value); + } + + public string AppVersion + { + get => _appVersion; + set => SetProperty(ref _appVersion, value); + } + + public CertificationMethod CertificationMethod + { + get => _certificationMethod; + set => SetProperty(ref _certificationMethod, value); + } + + public string CertificationNumber + { + get => _certificationNumber; + set => SetProperty(ref _certificationNumber, value); + } + + public DigestData DigestValue + { + get => _digestValue; + set => SetProperty(ref _digestValue, value); + } + + #endregion + + [Inject] + public CommonComponentViewModel(IComponentInputData inputData) { + Debug.Assert(inputData != null); + try { + _manufacturer = inputData.Manufacturer; + _model = inputData.Model; + _date = inputData.Date; + _dataSource = inputData.DataSource; + _savedInDeclarationMode = inputData.SavedInDeclarationMode; + _appVersion = inputData.AppVersion; + _certificationMethod = inputData.CertificationMethod; + _certificationNumber = inputData.CertificationNumber; + _digestValue = inputData.DigestValue; + + } catch (Exception e){ + //TODO ignoring for now + } + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..3fd5661df9df2f919ad69f821b36dacca1df5d2c --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs @@ -0,0 +1,252 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class ComponentsViewModel : ViewModelBase, IComponentsViewModel + { + public ObservableCollection<IComponentViewModel> _components = new ObservableCollection<IComponentViewModel>(); + + protected IComponentViewModelFactory _componentViewModelFactory; + protected IVehicleComponentsDeclaration _inputData; + + public ObservableCollection<IComponentViewModel> Components + { + get { return _components; } + set { SetProperty(ref _components, value); } + } + + public IRetarderViewModel RetarderViewModel + { + get => _retarderViewModel; + } + + public IEngineViewModel EngineViewModel + { + get => _engineViewModel; + } + + public IAngleDriveViewModel AngleDriveViewModel + { + get => _angledriveViewModel; + } + + public IAirDragViewModel AirDragViewModel + { + get => _airdragViewModel; + } + + public IPTOViewModel PTOViewModel + { + get => _ptoViewModel; + } + + protected abstract void CreateComponents(); + + public ComponentsViewModel(IXMLVehicleComponentsDeclaration inputData, IComponentViewModelFactory vmFactory) + { + _componentViewModelFactory = vmFactory; + _inputData = inputData; + CreateComponents(); + } + + + protected IAngleDriveViewModel _angledriveViewModel; + protected IRetarderViewModel _retarderViewModel; + protected IAirDragViewModel _airdragViewModel; + protected IPTOViewModel _ptoViewModel; + protected IEngineViewModel _engineViewModel; + + #region Implementation of IVehicleComponentsdeclaration + + protected IGearboxDeclarationInputData _gearboxInputData; + protected ITorqueConverterDeclarationInputData _torqueConverterInputData; + protected IAxleGearInputData _axleGearInputData; + protected IEngineDeclarationInputData _engineInputData; + protected IAuxiliariesDeclarationInputData _auxiliaryInputData; + protected IAxlesDeclarationInputData _axleWheels; + protected IBusAuxiliariesDeclarationData _busAuxiliaries; + + + + public virtual IAirdragDeclarationInputData AirdragInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IGearboxDeclarationInputData GearboxInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual ITorqueConverterDeclarationInputData TorqueConverterInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + + } + + public virtual IAxleGearInputData AxleGearInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IAngledriveInputData AngledriveInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IEngineDeclarationInputData EngineInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IAuxiliariesDeclarationInputData AuxiliaryInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IRetarderInputData RetarderInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IPTOTransmissionInputData PTOTransmissionInputData + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IAxlesDeclarationInputData AxleWheels + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IBusAuxiliariesDeclarationData BusAuxiliaries + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public IElectricStorageDeclarationInputData ElectricStorage => throw new NotImplementedException(); + + public IElectricMachinesDeclarationInputData ElectricMachines => throw new NotImplementedException(); + + #endregion + + } + public class ComponentsViewModel_v1_0 : ComponentsViewModel + { + + public static new readonly string VERSION = typeof(XMLDeclarationComponentsDataProviderV10).FullName; + + public ComponentsViewModel_v1_0(IXMLVehicleComponentsDeclaration inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + + protected override void CreateComponents() + { + throw new NotImplementedException(); + } + } + + + public class ComponentsViewModel_v2_0 : ComponentsViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationComponentsDataProviderV20).FullName; + private IAxleGearViewModel _axlegearViewModel; + private IGearBoxViewModel _gearBoxViewModel; + private IAxleWheelsViewModel _axleWheelsViewModel; + private IAuxiliariesViewModel _auxiliaryViewModel; + + public ComponentsViewModel_v2_0(IXMLVehicleComponentsDeclaration inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + _inputData = inputData; + } + + + protected override void CreateComponents() + { + _engineViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.EngineInputData) as IEngineViewModel; + Components.Add(_engineViewModel); + + _axlegearViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.AxleGearInputData) as IAxleGearViewModel; + Components.Add(_axlegearViewModel); + + _gearBoxViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.GearboxInputData) as IGearBoxViewModel; + Components.Add(_gearBoxViewModel); + + _angledriveViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.AngledriveInputData) as IAngleDriveViewModel; + Components.Add(_angledriveViewModel); + + _retarderViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.RetarderInputData) as IRetarderViewModel; + Components.Add(_retarderViewModel); + + _axleWheelsViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.AxleWheels) as IAxleWheelsViewModel; + Components.Add(_axleWheelsViewModel); + + _auxiliaryViewModel= _componentViewModelFactory.CreateComponentViewModel(_inputData.AuxiliaryInputData) as IAuxiliariesViewModel; + Components.Add(_auxiliaryViewModel); + + _airdragViewModel = _componentViewModelFactory.CreateComponentViewModel(_inputData.AirdragInputData) as IAirDragViewModel; + Components.Add(_airdragViewModel); + + + _ptoViewModel = + _componentViewModelFactory.CreateComponentViewModel(_inputData.PTOTransmissionInputData) as + IPTOViewModel; + Components.Add(_ptoViewModel); + + + } + + #region Overrides + + public override IAirdragDeclarationInputData AirdragInputData => _airdragViewModel.IsPresent ? _airdragViewModel as IAirdragDeclarationInputData : null; + + public override IGearboxDeclarationInputData GearboxInputData => _gearBoxViewModel.IsPresent + ? _gearBoxViewModel as IGearboxDeclarationInputData + : null; + public override IAxleGearInputData AxleGearInputData => _axlegearViewModel.IsPresent ? _axlegearViewModel as IAxleGearInputData : null; + public override IAngledriveInputData AngledriveInputData => _angledriveViewModel.IsPresent ? _angledriveViewModel as IAngledriveInputData : null; + public override IEngineDeclarationInputData EngineInputData => _engineViewModel.IsPresent ? _engineViewModel as IEngineDeclarationInputData : null; + public override IAuxiliariesDeclarationInputData AuxiliaryInputData => _auxiliaryViewModel.IsPresent ? _auxiliaryViewModel as IAuxiliariesDeclarationInputData : null; + public override IRetarderInputData RetarderInputData => _retarderViewModel.IsPresent ? _retarderViewModel as IRetarderInputData : null; + public override IAxlesDeclarationInputData AxleWheels => _axleWheelsViewModel.IsPresent ? _axleWheelsViewModel as IAxlesDeclarationInputData : null; + /* + public override IPTOTransmissionInputData PTOTransmissionInputData => + _ptoViewModel.IsPresent ? _ptoViewModel as IPTOTransmissionInputData : null; + + public override ITorqueConverterDeclarationInputData TorqueConverterInputData + { + get => _torqueConverterInputData; + set => SetProperty(ref _torqueConverterInputData, value); + } + */ + + #endregion + } + + + + + + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineFuelViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineFuelViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b3fc17f7ab8ff907d2566020dcf66d44ad7fddeb --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineFuelViewModel.cs @@ -0,0 +1,84 @@ +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.InputData.FileIO.XML.Declaration.DataProvider; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public class EngineFuelViewModel : ViewModelBase, IEngineFuelViewModel + { + protected IEngineFuelDeclarationInputData _inputData; + + public EngineFuelViewModel(IEngineFuelDeclarationInputData inputData) + { + _inputData = inputData; + _fuelType = inputData.FuelType; + _whtcMotorway = inputData.WHTCMotorway; + _whtcUrban = inputData.WHTCUrban; + _whtcRural = inputData.WHTCRural; + _coldHotBalancingFactor = inputData.ColdHotBalancingFactor; + _correctionFactorRegPer = inputData.CorrectionFactorRegPer; + _fuelConsumptionMap = inputData.FuelConsumptionMap; + _fuelConsumptionMap.TableName = "Fuel Consumption Map"; + } + #region implementation of IEngineFuelDeclarationInputData + + private FuelType _fuelType; + private double _whtcMotorway; + private double _whtcRural; + private double _whtcUrban; + private double _coldHotBalancingFactor; + private double _correctionFactorRegPer; + private TableData _fuelConsumptionMap; + + + public FuelType FuelType + { + get => _fuelType; + set => _fuelType = value; + } + + public double WHTCMotorway + { + get => _whtcMotorway; + set => _whtcMotorway = value; + } + + public double WHTCRural + { + get => _whtcRural; + set => _whtcRural = value; + } + + public double WHTCUrban + { + get => _whtcUrban; + set => _whtcUrban = value; + } + + public double ColdHotBalancingFactor + { + get => _coldHotBalancingFactor; + set => _coldHotBalancingFactor = value; + } + + public double CorrectionFactorRegPer + { + get => _correctionFactorRegPer; + set => _correctionFactorRegPer = value; + } + + public TableData FuelConsumptionMap + { + get => _fuelConsumptionMap; + set => _fuelConsumptionMap = value; + } + } + #endregion +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineModeViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineModeViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b62a8b3fe8f24997b4b3a00f1a5628867c46a7f --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineModeViewModel.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data; +using System.Dynamic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class EngineModeViewModel : ViewModelBase, IEngineModeViewModel + { + protected IEngineModeDeclarationInputData _inputData; + protected IComponentViewModelFactory _componentVmFactory; + + public EngineModeViewModel(IEngineModeDeclarationInputData inputData, IComponentViewModelFactory componentVmFactory) + { + _inputData = inputData; + _componentVmFactory = componentVmFactory; + } + + #region implementation of IEngineModeDeclaration + public virtual PerSecond IdleSpeed + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + public virtual TableData FullLoadCurve + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + public virtual IList<IEngineFuelDeclarationInputData> Fuels + { + get { throw new NotImplementedException(); } + } + + public virtual IWHRData WasteHeatRecoveryDataElectrical + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + public virtual IWHRData WasteHeatRecoveryDataMechanical + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + #endregion + } + + + public class EngineModeViewModelSingleFuel : EngineModeViewModel + { + public static readonly string VERSION = + typeof(XMLDeclarationEngineDataProviderV10.XMLSingleFuelEngineMode).FullName; + + private PerSecond _idleSpeed; + private TableData _fullLoadCurve; + private IWHRData _wasteHeatRecoveryDataElectrical; + private IWHRData _wasteHeatRecoveryDataMechanical; + private ObservableCollection<IEngineFuelViewModel> _fuelViewModels; + + public EngineModeViewModelSingleFuel(IEngineModeDeclarationInputData inputData, IComponentViewModelFactory componentVmFactory) : base(inputData, + componentVmFactory) + { + + _fuelViewModels = new ObservableCollection<IEngineFuelViewModel>(); + _idleSpeed = inputData.IdleSpeed; + _fullLoadCurve = inputData.FullLoadCurve; + _wasteHeatRecoveryDataElectrical = inputData.WasteHeatRecoveryDataElectrical; + _wasteHeatRecoveryDataMechanical = inputData.WasteHeatRecoveryDataMechanical; + + _fullLoadCurve.TableName = "Full Load Curve"; + + + foreach (var fuel in inputData.Fuels) { + FuelViewModels.Add(_componentVmFactory.CreateEngineFuelViewModel(fuel)); + } + } + + public ObservableCollection<IEngineFuelViewModel> FuelViewModels { get => _fuelViewModels; set => SetProperty(ref _fuelViewModels, value); } + + public IEngineFuelViewModel FuelViewModel + { + get => FuelViewModels[0]; + } + public override PerSecond IdleSpeed + { + get => _idleSpeed; + set => SetProperty(ref _idleSpeed, value); + } + + public override TableData FullLoadCurve + { + get => _fullLoadCurve; + set => SetProperty(ref _fullLoadCurve, value); + } + + public DataTable FullLoadDT + { + get => (DataTable)_fullLoadCurve; + //get => _fullLoadCurve.AsDataView().ToTable(); + } + + public override IList<IEngineFuelDeclarationInputData> Fuels => + FuelViewModels.Cast<IEngineFuelDeclarationInputData>().ToList(); + + public override IWHRData WasteHeatRecoveryDataElectrical + { + get { return _wasteHeatRecoveryDataElectrical;} + set => SetProperty(ref _wasteHeatRecoveryDataElectrical, value); + } + + public override IWHRData WasteHeatRecoveryDataMechanical + { + get => _wasteHeatRecoveryDataMechanical; + set => SetProperty(ref _wasteHeatRecoveryDataMechanical, value); + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..de57bd636889d5c9b40d94fba8c048caf9799ede --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/EngineViewModel.cs @@ -0,0 +1,269 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +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.Models.Declaration; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class EngineViewModel : ViewModelBase, IComponentViewModel, IEngineViewModel + { + + + protected readonly IEngineDeclarationInputData _inputData; + + + private ICommonComponentViewModel _commonComponentViewModel; + public ICommonComponentViewModel CommonComponentViewModel { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); } + private static readonly string _name = "Engine"; + public string Name { get { return _name; } } + private bool _isPresent; + public bool IsPresent { get { return _isPresent; } } + + + protected abstract void SetProperties(); + + + + + + public EngineViewModel(IXMLEngineDeclarationInputData inputData, + IComponentViewModelFactory componentFactory) + { + + _inputData = inputData as IXMLEngineDeclarationInputData; + Debug.Assert(_inputData != null); + _isPresent = (_inputData != null); + _componentFactory = componentFactory; + Debug.Assert(_inputData != null); + + + SetProperties(); + } + + #region Implementation of IEngineDeclarationInputData + protected CubicMeter _displacement; + protected Watt _ratedPowerDeclared; + protected PerSecond _ratedSpeedDeclared; + protected NewtonMeter _maxTorqueDeclared; + //protected IList<IEngineModeDeclarationInputData> _engineModes; + protected WHRType _whrType; + protected IComponentViewModelFactory _componentFactory; + protected PerSecond _idlingSpeed; + + + public virtual DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual CubicMeter Displacement + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual Watt RatedPowerDeclared + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual PerSecond RatedSpeedDeclared + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual NewtonMeter MaxTorqueDeclared + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IList<IEngineModeDeclarationInputData> EngineModes + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual WHRType WHRType + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + + public virtual PerSecond IdlingSpeed + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #endregion + } + + + public class EngineViewModel_v1_0 : EngineViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationEngineDataProviderV10).FullName; + public EngineViewModel_v1_0(IXMLEngineDeclarationInputData inputData, + IComponentViewModelFactory componentFactory) : base(inputData, componentFactory) + { + + } + + protected override void SetProperties() + { + throw new NotImplementedException(); + } + } + + public class EngineViewModel_v2_0 : EngineViewModel_v1_0 + { + public new static readonly string VERSION = typeof(XMLDeclarationEngineDataProviderV20).FullName; + + + + #region overrides of used Properties + public override CubicMeter Displacement + { + get => _displacement; + set => SetProperty(ref _displacement, value); + } + + public override Watt RatedPowerDeclared + { + get => _ratedPowerDeclared; + set => SetProperty(ref _ratedPowerDeclared, value); + } + + public override PerSecond RatedSpeedDeclared + { + get => _ratedSpeedDeclared; + set => SetProperty(ref _ratedSpeedDeclared, value); + } + + public override NewtonMeter MaxTorqueDeclared + { + get => _maxTorqueDeclared; + set => SetProperty(ref _maxTorqueDeclared, value); + } + + private ObservableCollection<IEngineModeViewModel> _engineModeViewModels = new ObservableCollection<IEngineModeViewModel>(); + public ObservableCollection<IEngineModeViewModel> EngineModeViewModels + { + get => _engineModeViewModels; + set => SetProperty(ref _engineModeViewModels, value); + } + + + public override IList<IEngineModeDeclarationInputData> EngineModes + { + get => _engineModeViewModels.Cast<IEngineModeDeclarationInputData>().ToList(); + set => throw new NotImplementedException(); + } + + + public override WHRType WHRType + { + get => _whrType; + set => SetProperty(ref _whrType, value); + } + + public override PerSecond IdlingSpeed + { + get + { + return EngineModeViewModels[0].IdleSpeed; + } + set + { + EngineModeViewModels[0].IdleSpeed = value; + } + } + + #endregion + + + public EngineViewModel_v2_0(IXMLEngineDeclarationInputData inputData, + IComponentViewModelFactory componentFactory) : + base(inputData, componentFactory) + { + } + + + protected override void SetProperties() + { + CommonComponentViewModel = _componentFactory.CreateCommonComponentViewModel(_inputData); + + _displacement = _inputData.Displacement; + _ratedSpeedDeclared = _inputData.RatedSpeedDeclared; + _ratedPowerDeclared = _inputData.RatedPowerDeclared; + _maxTorqueDeclared = _inputData.MaxTorqueDeclared; + _whrType = _inputData.WHRType; + + + foreach (var engineMode in _inputData.EngineModes) { + EngineModeViewModels.Add(_componentFactory.CreateEngineModeViewModel(engineMode)); + } + + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..d72c74db4e91d4bf4c551c80d143cfc3dc3894e3 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearViewModel.cs @@ -0,0 +1,207 @@ +using System; +using System.Data; +using System.Diagnostics; +using System.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class GearViewModel : ViewModelBase, IComponentViewModel, IGearViewModel + { + IComponentViewModelFactory _vmFactory; + protected IXMLGearData _inputData; + + + + public abstract void SetProperties(); + + public double MaxTorqueLossCalculated => GetMaxTorqueLossFromTable(); + public double MinTorqueLossCalculated => GetMinTorqueLossFromTable(); + + + public double MaxInputSpeedCalculated => GetMaxInputSpeedFromTable(); + public double MinInputSpeedCalculated => GetMinInputSpeedFromTable(); + + public double MaxInputTorqueCalculated => GetMaxInputSpeedFromTable(); + + public double MinInputTorqueCalculated => GetMinInputTorqueFromTable(); + + + public DataView LossMapDataView => _lossMap.DefaultView; + + public GearViewModel(IXMLGearData inputData) + { + _inputData = inputData as IXMLGearData; + Debug.Assert(_inputData != null); + + + SetProperties(); + CalculateEfficiency(); + } + + + + private void CalculateEfficiency() + { + DataColumn efficiencyColumn = new DataColumn("Efficiency", typeof(double)); + LossMap.Columns.Add(efficiencyColumn); + foreach (DataRow row in _lossMap.Rows) + { + row[efficiencyColumn.ColumnName] = Math.Round((row.Field<string>("Torque Loss").ToDouble() + row.Field<string>("Input Torque").ToDouble()) / row.Field<string>("Input Torque").ToDouble(),2); + } + } + + + private double GetMinTorqueLossFromTable() + { + return _lossMap.Columns["Torque Loss"].Values<String>().ToDouble().Min(); + } + private double GetMaxTorqueLossFromTable() + { + return _lossMap.Columns["Torque Loss"].Values<String>().ToDouble().Max(); ; + } + private double GetMinInputSpeedFromTable() + { + return _lossMap.Columns["Input Speed"].Values<String>().ToDouble().Min(); + } + private double GetMaxInputSpeedFromTable() + { + return _lossMap.Columns["Input Speed"].Values<String>().ToDouble().Max(); + } + private double GetMaxInputTorqueFromTable() + { + return _lossMap.Columns["Torque Input"].Values<String>().ToDouble().Max(); + } + private double GetMinInputTorqueFromTable() + { + return _lossMap.Columns["Torque Input"].Values<String>().ToDouble().Min(); + + } + + protected string _name = "gear"; + public string Name => _name; + + public bool IsPresent => true; + + + #region Implementation of ITransmissionInputData + protected int _gear; + protected double _ratio; + protected TableData _lossMap; + protected double _efficiency; + protected NewtonMeter _maxTorqueInput; + protected PerSecond _maxInputSpeed; + protected TableData _shiftPolygon; + protected DataSource _dataSource; + + public virtual int Gear {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual double Ratio {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual TableData LossMap {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual double Efficiency {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual NewtonMeter MaxTorque {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual PerSecond MaxInputSpeed {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual TableData ShiftPolygon {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual DataSource DataSource {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + #endregion + } + + + + public class GearViewModel_v1_0 : GearViewModel + { + + public static readonly string VERSION = typeof(XMLGearDataV10).FullName; + public GearViewModel_v1_0(IXMLGearData inputData) : base(inputData) + { + + } + + public override void SetProperties() + { + throw new NotImplementedException(); + } + } + + public class GearViewModel_v2_0 : GearViewModel_v1_0 + { + public static readonly string VERSION = typeof(XMLGearDataV20).FullName; + + + public GearViewModel_v2_0(IXMLGearData inputData) : base(inputData) + { + + } + + public override void SetProperties() + { + _name += " " + _gear; + _gear = _inputData.Gear; + _ratio = _inputData.Ratio; + _lossMap = _inputData.LossMap; + _lossMap.TableName = "Loss Map"; + _efficiency = _inputData.Efficiency; + _maxTorqueInput = _inputData.MaxTorque; + _maxInputSpeed = _inputData.MaxInputSpeed; + _shiftPolygon = _inputData.ShiftPolygon; + } + + #region Override Properties + public override int Gear + { + get => _gear; + set => SetProperty(ref _gear, value); + } + + public override double Ratio + { + get => _ratio; + set => SetProperty(ref _ratio, value); + } + + public override TableData LossMap + { + get => _lossMap; + set => SetProperty(ref _lossMap, value); + } + + public override double Efficiency + { + get => _efficiency; + set => SetProperty(ref _efficiency, value); + } + + public override NewtonMeter MaxTorque + { + get => _maxTorqueInput; + set => SetProperty(ref _maxTorqueInput, value); + } + + public override PerSecond MaxInputSpeed + { + get => _maxInputSpeed; + set => SetProperty(ref _maxInputSpeed, value); + } + + public override TableData ShiftPolygon + { + get => _shiftPolygon; + set => SetProperty(ref _shiftPolygon, value); + } + + #endregion + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearboxViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearboxViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..4f4c491faa5b0fb3b0672919387deab5bf95ff3a --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/GearboxViewModel.cs @@ -0,0 +1,173 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using System.Collections.ObjectModel; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + + + public abstract class GearboxViewModel : ViewModelBase, IComponentViewModel, IGearBoxViewModel + { + private static readonly string _name = "Gearbox"; + public string Name { get { return _name; } } + + protected IXMLGearboxDeclarationInputData _inputData; + + + + private bool _isPresent = true; + public bool IsPresent { get { return _isPresent; } } + + protected ObservableCollection<IGearViewModel> _gearViewModels = new ObservableCollection<IGearViewModel>(); + + public ObservableCollection<IGearViewModel> GearViewModels + { + get { return _gearViewModels; } + set { SetProperty(ref _gearViewModels, value); } + } + + protected ICommonComponentViewModel _commonComponentViewModel; + + + public ICommonComponentViewModel CommonComponentViewModel + { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); + + } + + public GearboxViewModel(IXMLGearboxDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) + { + _inputData = inputData as IXMLGearboxDeclarationInputData; + Debug.Assert(_inputData != null); + if (!(_isPresent = ((IComponentInputData)_inputData).DataSource != null)) + { + return; + } + + _commonComponentViewModel = componentViewModelFactory.CreateCommonComponentViewModel(_inputData); + + + SetProperties(); + foreach (var gear in _inputData.Gears) + { + _gearViewModels.Add((IGearViewModel)componentViewModelFactory.CreateComponentViewModel(gear)); + } + } + + public abstract void SetProperties(); + + #region Implementation of IGearBoxDeclarationInputData + protected GearboxType _type; + protected IList<ITransmissionInputData> _gears; + protected bool _differentialIncluded; + protected double _axlegearRatio; + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual GearboxType Type {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public virtual IList<ITransmissionInputData> Gears {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public virtual bool DifferentialIncluded {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public virtual double AxlegearRatio {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + #endregion + } + + public class GearboxViewModel_v1_0 : GearboxViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationGearboxDataProviderV10).FullName; + + public GearboxViewModel_v1_0(IXMLGearboxDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) : base(inputData, componentViewModelFactory) + { + + + } + + public override void SetProperties() + { + throw new NotImplementedException(); + } + } + + public class GearboxViewModel_v2_0 : GearboxViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationGearboxDataProviderV20).FullName; + + public GearboxViewModel_v2_0(IXMLGearboxDeclarationInputData inputData, IComponentViewModelFactory componentViewModelFactory) : base(inputData, componentViewModelFactory) + { + + } + + public override void SetProperties() + { + _type = _inputData.Type; + //_axlegearRatio = _inputData.AxlegearRatio; + //_differentialIncluded = _inputData.DifferentialIncluded; + } + public override GearboxType Type + { + get => _type; + set => SetProperty(ref _type, value); + } + + public override IList<ITransmissionInputData> Gears + { + get => _gearViewModels.Cast<ITransmissionInputData>().ToList(); + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/PTOViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/PTOViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b6b7746d320dc6a3c24dd67b1282a8b03ec98fbb --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/PTOViewModel.cs @@ -0,0 +1,118 @@ +using System; +using System.Data; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Models.Declaration; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class PTOViewModel : ViewModelBase, IComponentViewModel, IPTOViewModel + { + + + protected IPTOTransmissionInputData _inputData; + + protected PTOTransmission ptoTransmission = new PTOTransmission(); + + private bool _isPresent = true; + public bool IsPresent { get => _isPresent; set => SetProperty(ref _isPresent, value); } + + private static readonly string _name = "PTO"; + public string Name { get { return _name; } } + + protected abstract void SetProperties(); + protected PTOViewModel(IXMLPTOTransmissionInputData inputData) + { + _inputData = inputData; + _ptoTransmissionType= _inputData.PTOTransmissionType; + if(_ptoTransmissionType == "None") + { + _isPresent = false; + return; + } + + ptoTransmission.GetTechnologies(); + + SetProperties(); + } + + + + + #region implementation of IPTOTransmissionInputData + + protected string _ptoTransmissionType; + protected TableData _ptoLossMap; + protected TableData _ptoCycle; + public virtual string PTOTransmissionType {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual TableData PTOLossMap {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public TableData PTOCycleDuringStop { get; } + public TableData PTOCycleWhileDriving { get; } + public virtual TableData PTOCycle {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual DataView PTOLossMapDataView + { + get => PTOLossMap?.DefaultView; + } + + public virtual DataView PTOCycleDataView + { + get => PTOCycle?.DefaultView; + } + +#endregion + } + + public class PTOViewModel_V1_0 : PTOViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationPTODataProviderV10).FullName; + + public PTOViewModel_V1_0(IXMLPTOTransmissionInputData inputData) : base(inputData) + { + + } + + protected override void SetProperties() + { + _ptoTransmissionType = _inputData.PTOTransmissionType; + _ptoCycle = _inputData.PTOCycleDuringStop; + _ptoLossMap = _inputData.PTOLossMap; + } + + public override string PTOTransmissionType + { + get => _ptoTransmissionType; + set => SetProperty(ref _ptoTransmissionType, value); + } + + public override TableData PTOLossMap + { + get => _ptoLossMap; + set => SetProperty(ref _ptoLossMap, value); + } + + public override TableData PTOCycle + { + get => _ptoCycle; + set => SetProperty(ref _ptoCycle, value); + } + } + + public class PTOViewModel_V2_0 : PTOViewModel_V1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationPTODataProviderV20).FullName; + public PTOViewModel_V2_0(IXMLPTOTransmissionInputData inputData) : base(inputData) + { + + } + + protected override void SetProperties() + { + base.SetProperties(); + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/RetarderViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/RetarderViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..140b7fde659943f02af1c7820da91a1e8d434366 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/RetarderViewModel.cs @@ -0,0 +1,179 @@ +using System; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class RetarderViewModel : ViewModelBase, IComponentViewModel, IRetarderViewModel + { + private static readonly string _name = "Retarder"; + public string Name { get { return _name; } } + + protected IRetarderInputData _inputData; + + + private ICommonComponentViewModel _commonComponentViewModel; + + + public ICommonComponentViewModel CommonComponentViewModel { get + => _commonComponentViewModel; + set { SetProperty(ref _commonComponentViewModel, value); } + } + + private bool _isPresent = false; + public bool IsPresent { get => _isPresent; set => SetProperty(ref _isPresent, value); } + + public DataView LossMapDataView => _lossMap?.DefaultView; + + + public abstract void SetProperties(); + + + + public RetarderViewModel(IXMLRetarderInputData inputData, IComponentViewModelFactory vmFactory) + { + _inputData = inputData as IXMLRetarderInputData; + Debug.Assert(_inputData != null); + IsPresent = _inputData?.DataSource.SourceFile != null; + + + + CommonComponentViewModel = vmFactory.CreateCommonComponentViewModel(inputData); + + + + SetProperties(); + } + + protected RetarderType _type; + protected double _ratio; + protected TableData _lossMap; + + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual RetarderType Type {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public virtual double Ratio {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public virtual TableData LossMap {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual DataTable LossMapDataTable + { + get => (DataTable)LossMap; + } + } + + public class RetarderViewModel_v1_0 : RetarderViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationRetarderDataProviderV10).FullName; + + public RetarderViewModel_v1_0(IXMLRetarderInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + + } + + public override void SetProperties() + { + if (!IsPresent) { + + _ratio = 0; + } else { + _lossMap = _inputData.LossMap; + _ratio = _inputData.Ratio; + } + _type = _inputData.Type; + } + + public override RetarderType Type + { + get => _type; + set + { + IsPresent = (value != RetarderType.None); + SetProperty(ref _type, value); + } + } + + public override double Ratio + { + get => _ratio; + set => SetProperty(ref _ratio, value); + } + + public override TableData LossMap + { + get => _lossMap; + set => SetProperty(ref _lossMap, value); + } + } + + public class RetarderViewModel_v2_0 : RetarderViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationRetarderDataProviderV20).FullName; + + public RetarderViewModel_v2_0(IXMLRetarderInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + public override void SetProperties() + { + base.SetProperties(); + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TorqueConverterViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TorqueConverterViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..4e4225dfd46cb205a5faf2600ae61bf17d27c076 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TorqueConverterViewModel.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class TorqueConverterViewModel : ViewModelBase, ITorqueConverterViewModel, IComponentViewModel + { + private IComponentViewModelFactory _vmFactory; + private ITorqueConverterDeclarationInputData _inputData; + private ICommonComponentViewModel _commonComponentViewModel; + private TableData _tcData; + private bool _isPresent; + + + public TorqueConverterViewModel(ITorqueConverterDeclarationInputData inputData, IComponentViewModelFactory vmFactory) + { + _commonComponentViewModel = + vmFactory.CreateCommonComponentViewModel(inputData); + _inputData = inputData; + _vmFactory = vmFactory; + } + + #region Implementation of ITorqueConverterDeclarationInputData + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual TableData TCData + { + get => _tcData; + set => SetProperty(ref _tcData, value); + } + + #endregion + + public string Name => "Torque Converter"; + + public bool IsPresent{ + get => _isPresent; + set => SetProperty(ref _isPresent, value); + } + } + + public class TorqueConverterViewModel_v1_0 : TorqueConverterViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationTorqueConverterDataProviderV10).FullName; + public TorqueConverterViewModel_v1_0(ITorqueConverterDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) { } + } + + public class TorqueConverterViewModel_v2_0 : TorqueConverterViewModel_v1_0 + { + public static readonly new string VERSION = typeof(XMLDeclarationTorqueConverterDataProviderV20).FullName; + + public TorqueConverterViewModel_v2_0(ITorqueConverterDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) { } + } + + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TyreViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TyreViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..ef8cd499672b844e595781ad7ffca0fe8114d386 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/TyreViewModel.cs @@ -0,0 +1,218 @@ +using System; +using System.Collections.ObjectModel; +using System.Diagnostics; +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.Models.Declaration; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components +{ + public abstract class TyreViewModel : ViewModelBase, IComponentViewModel, ITyreViewModel + { + + public string Name => "Tyre View Model"; + + public bool IsPresent => true; + + + protected IXMLTyreDeclarationInputData _inputData; + + private ICommonComponentViewModel _commonComponentViewModel; + + + public ICommonComponentViewModel CommonComponentViewModel { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); + } + + private static Wheels _wheels = new Wheels(); + + public static ObservableCollection<string> AllowedDimensions { get; } = new ObservableCollection<string>(new Wheels().GetWheelsDimensions()); + + public abstract void SetProperties(); + + public TyreViewModel(IXMLTyreDeclarationInputData inputData, IComponentViewModelFactory vmFactory) + { + _inputData = inputData as IXMLTyreDeclarationInputData; + Debug.Assert(_inputData != null); + + CommonComponentViewModel = vmFactory.CreateCommonComponentViewModel(_inputData); + + + SetProperties(); + } + + + protected string _dimension; + protected double _rollResistanceCoefficient; + protected Newton _tyreTestLoad; + protected string _fuelEfficiencyClass; + + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + public virtual string Dimension {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual double RollResistanceCoefficient {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual Newton TyreTestLoad {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + public virtual string FuelEfficiencyClass {get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + + + } + + + public class TyreViewModel_v1_0 : TyreViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationTyreDataProviderV10).FullName; + + + public TyreViewModel_v1_0(IXMLTyreDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + + } + + public override void SetProperties() + { + _dimension = _inputData.Dimension; + _rollResistanceCoefficient = _inputData.RollResistanceCoefficient; + _tyreTestLoad = _inputData.TyreTestLoad; + } + + public override string Dimension + { + get => _dimension; + set => SetProperty(ref _dimension, value); + } + + public override double RollResistanceCoefficient + { + get => _rollResistanceCoefficient; + set => SetProperty(ref _rollResistanceCoefficient, value); + } + + public override Newton TyreTestLoad + { + get => _tyreTestLoad; + set => SetProperty(ref _tyreTestLoad, value); + } + + } + + + public class TyreViewModel_v2_0 : TyreViewModel_v1_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationTyreDataProviderV20).FullName; + public TyreViewModel_v2_0(IXMLTyreDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + public override void SetProperties() + { + base.SetProperties(); + } + } + + public class TyreViewModel_v2_2 : TyreViewModel_v2_0 + { + public static new readonly string VERSION = typeof(XMLDeclarationTyreDataProviderV22).ToString(); + public TyreViewModel_v2_2(IXMLTyreDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + + } + + public override void SetProperties() + { + base.SetProperties(); + } + } + + public class TyreViewModel_v2_3 : TyreViewModel_v2_2 + { + public static new readonly string VERSION = typeof(XMLDeclarationTyreDataProviderV23).ToString(); + + + private string _tyreClass; + public string TyreClass + { + get { return _tyreClass; } + set { SetProperty(ref _tyreClass, value); } + } + + + public override string FuelEfficiencyClass + { + get { return _fuelEfficiencyClass; } + set { SetProperty(ref _fuelEfficiencyClass, value); } + } + + + + public TyreViewModel_v2_3(IXMLTyreDeclarationInputData inputData, IComponentViewModelFactory vmFactory) : base(inputData, vmFactory) + { + } + + public override void SetProperties() + { + base.SetProperties(); + _tyreClass = "TODO: TyreClass"; + _fuelEfficiencyClass = _inputData.FuelEfficiencyClass; + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..86dbd231f7e3dd335f799c6bd9ede924e857af08 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs @@ -0,0 +1,565 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Xml; +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.Models.Declaration; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle +{ + /// <summary> + /// Abstract base class for Vehicle View Models. Implements Common Methods and the IVehicleViewModel Interface. + /// All Properties of IVehicleDeclarationInputData throw an NotImplementedException and should be implemented in the derived classes. + /// + /// </summary> + public abstract class VehicleViewModel : ViewModelBase, IVehicleViewModel + { + private static readonly string _name = "Vehicle"; + protected IXMLDeclarationVehicleData _vehicleInputData; + public string Name => _name; + protected bool _isPresent; + public bool IsPresent => _isPresent; + + + + protected readonly IComponentViewModelFactory _componentViewModelFactory; + + protected ICommonComponentViewModel _commonComponentViewModel; + + //These ViewModels are displayed in the JobEditViewModel + + public ObservableCollection<IComponentViewModel> ComponentViewModels { get; set; } = new ObservableCollection<IComponentViewModel>(); + + + /// <summary> + /// Gets the Data from the InputDataProvider and sets the properties of the viewModel. Should be overridden in the dervived Classes. + /// </summary> + protected virtual void CreateVehicleProperties() { throw new NotImplementedException(); } + + public IXMLDeclarationVehicleData InputData => _vehicleInputData; + + public virtual IPTOViewModel PTOViewModel + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + + + + public VehicleViewModel( + IXMLDeclarationVehicleData vehicleDeclarationInputData, + IComponentViewModelFactory componentViewModelFactory) + { + _vehicleInputData = vehicleDeclarationInputData; + _componentViewModelFactory = componentViewModelFactory; + _isPresent = true; + + + _commonComponentViewModel = _componentViewModelFactory.CreateCommonComponentViewModel(_vehicleInputData); + + CreateVehicleProperties(); + } + + public ICommonComponentViewModel CommonComponentViewModel + { + get => _commonComponentViewModel; + set => SetProperty(ref _commonComponentViewModel, value); + } + + + #region Implementation of IVehicleViewModel, IVehicleDeclarationInputData + protected string _identifier; + protected string _vin; + protected LegislativeClass _legislativeClass; + protected VehicleCategory _vehicleCategory; + protected AxleConfiguration _axleConfiguration; + protected Kilogram _curbMassChassis; + protected Kilogram _grossVehicleMassRating; + protected string _manufacturerAddress; + protected IComponentsViewModel _components; + + + public string Manufacturer + { + get => _commonComponentViewModel.Manufacturer; + set => _commonComponentViewModel.Manufacturer = value; + } + + public string Model + { + get => _commonComponentViewModel.Model; + set => _commonComponentViewModel.Model = value; + } + + public DateTime Date + { + get => _commonComponentViewModel.Date; + set => _commonComponentViewModel.Date = value; + } + + public string CertificationNumber + { + get => _commonComponentViewModel.CertificationNumber; + set => _commonComponentViewModel.CertificationNumber = value; + } + + public CertificationMethod CertificationMethod + { + get => _commonComponentViewModel.CertificationMethod; + set => _commonComponentViewModel.CertificationMethod = value; + } + + public bool SavedInDeclarationMode + { + get => _commonComponentViewModel.SavedInDeclarationMode; + set => _commonComponentViewModel.SavedInDeclarationMode = value; + } + + public DigestData DigestValue + { + get => _commonComponentViewModel.DigestValue; + set => _commonComponentViewModel.DigestValue = value; + } + + public DataSource DataSource + { + get => _commonComponentViewModel.DataSource; + set => _commonComponentViewModel.DataSource = value; + } + + public string AppVersion => _commonComponentViewModel.AppVersion; + + + public virtual IPTOTransmissionInputData PTOTransmissionInputData => throw new NotImplementedException(); + + public virtual RetarderType RetarderType + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual double RetarderRatio + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual AngledriveType AngledriveType + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual string Identifier + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual bool ExemptedVehicle + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual string VIN + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual string LegislativeCategory => throw new NotImplementedException(); + + LegislativeClass? IVehicleDeclarationInputData.LegislativeClass { get; } + + public virtual LegislativeClass LegislativeClass + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual VehicleCategory VehicleCategory + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual AxleConfiguration AxleConfiguration + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual Kilogram CurbMassChassis + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual Kilogram GrossVehicleMassRating + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IList<ITorqueLimitInputData> TorqueLimits + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual string ManufacturerAddress + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual PerSecond EngineIdleSpeed + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual bool VocationalVehicle + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual bool SleeperCab + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public bool? AirdragModifiedMultistage => throw new NotImplementedException(); + + public virtual TankSystem? TankSystem + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual IAdvancedDriverAssistantSystemDeclarationInputData ADAS + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual bool ZeroEmissionVehicle + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual bool HybridElectricHDV + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual bool DualFuelVehicle + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual Watt MaxNetPower1 + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual Watt MaxNetPower2 + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + RegistrationClass? IVehicleDeclarationInputData.RegisteredClass { get; } + int? IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck { get; } + int? IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck { get; } + + public int? NumberPassengersStandingLowerDeck => throw new NotImplementedException(); + + public int? NumberPassengersStandingUpperDeck => throw new NotImplementedException(); + + public virtual RegistrationClass RegisteredClass + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual int NumberOfPassengersUpperDeck + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual int NumberOfPassengersLowerDeck + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual CubicMeter CargoVolume + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + VehicleCode? IVehicleDeclarationInputData.VehicleCode { get; } + bool? IVehicleDeclarationInputData.LowEntry { get; } + + public virtual VehicleCode VehicleCode + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual bool LowEntry + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual bool Articulated + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual Meter Height + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual Meter Length + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual Meter Width + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual Meter EntranceHeight + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + ConsumerTechnology? IVehicleDeclarationInputData.DoorDriveTechnology { get; } + + public VehicleDeclarationType VehicleDeclarationType => throw new NotImplementedException(); + + public virtual ConsumerTechnology DoorDriveTechnology + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + public virtual IVehicleComponentsDeclaration Components + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public virtual XmlNode XMLSource + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #endregion + } + + public class VehicleViewModel_v1_0 : VehicleViewModel + { + public static readonly string VERSION = typeof(XMLDeclarationVehicleDataProviderV10).FullName; + + + + + + + + public VehicleViewModel_v1_0( + IXMLDeclarationVehicleData inputData, + IComponentViewModelFactory componentViewModelFactory): + base( + inputData, + componentViewModelFactory) + { + + + } + + protected override void CreateVehicleProperties() + { + throw new NotImplementedException(); + } + + } + /// <summary> + /// Class that Represents the ViewModel for the VehicleDeclarationType v2.0 + /// </summary> + public class VehicleViewModel_v2_0 : VehicleViewModel_v1_0 + { + public new static readonly string VERSION = typeof(XMLDeclarationVehicleDataProviderV20).FullName; + private IAdasViewModel _aDASViewModel; + private PerSecond _engineIdleSpeed; + + + #region Implementation of present Properties + + /* + public override IList<ITorqueLimitInputData> TorqueLimits + { + get => _torqueLimits; + set => SetProperty(ref _torqueLimits, value); + } + + public IAdasViewModel ADASViewModel + { + get => _aDASViewModel; + set => SetProperty(ref _aDASViewModel, value); + } + */ + + + public override string ManufacturerAddress + { + get => _manufacturerAddress; + set => SetProperty(ref _manufacturerAddress, value); + } + + + public override VehicleCategory VehicleCategory + { + get => _vehicleCategory; + set => SetProperty(ref _vehicleCategory, value); + } + + public override AxleConfiguration AxleConfiguration + { + get => _axleConfiguration; + set => SetProperty(ref _axleConfiguration, value); + } + + public override Kilogram CurbMassChassis + { + get => _curbMassChassis; + set => SetProperty(ref _curbMassChassis, value); + } + + + public override Kilogram GrossVehicleMassRating + { + get => _grossVehicleMassRating; + set => SetProperty(ref _grossVehicleMassRating, value); + } + + + public override PerSecond EngineIdleSpeed + { + get => _engineIdleSpeed; + set => SetProperty(ref _engineIdleSpeed, value); + } + + + public override AngledriveType AngledriveType + { + get => _components.AngleDriveViewModel.Type; + set => _components.AngleDriveViewModel.Type = value; + } + + public override RetarderType RetarderType + { + get => _components.RetarderViewModel.Type; + set => _components.RetarderViewModel.Type = value; + } + + public override double RetarderRatio + { + get => _components.RetarderViewModel.Ratio; + set => _components.RetarderViewModel.Ratio = value; + } + /* + public override IPTOViewModel PTOViewModel => _components.PTOViewModel; + + public override IPTOTransmissionInputData PTOTransmissionInputData => + (IPTOTransmissionInputData)PTOViewModel; + */ + public override string VIN + { + get => _vin; + set => SetProperty(ref _vin, value); + } + + public override LegislativeClass LegislativeClass + { + get => _legislativeClass; + set => SetProperty(ref _legislativeClass, value); + } + + + + public override IVehicleComponentsDeclaration Components + { + get => _components; + set => throw new NotImplementedException(); + } + + + + public override string Identifier { get => _identifier; + set => SetProperty(ref _identifier, value); } + + #endregion + + + public VehicleViewModel_v2_0( + IXMLDeclarationVehicleData inputData, + IComponentViewModelFactory componentViewModelFactory) : + base(inputData, + componentViewModelFactory) + { + + } + + protected override void CreateVehicleProperties() + { + Debug.Assert(_vehicleInputData.LegislativeClass.HasValue); + + _manufacturerAddress = _vehicleInputData.ManufacturerAddress; + _vin = _vehicleInputData.VIN; + _legislativeClass = (LegislativeClass) _vehicleInputData.LegislativeClass; + _vehicleCategory = _vehicleInputData.VehicleCategory; + _axleConfiguration = _vehicleInputData.AxleConfiguration; + _curbMassChassis = _vehicleInputData.CurbMassChassis; + _grossVehicleMassRating = _vehicleInputData.GrossVehicleMassRating; + _identifier = _vehicleInputData.Identifier; + + + //_aDASViewModel = (IComponentViewModel)_componentViewModelFactory.CreateAdasViewModel(_vehicleInputData.ADAS as IAdvancedDriverAssistantSystemDeclarationInputData) as IAdasViewModel; + + //TorqueLimits = _vehicleInputData.TorqueLimits; + + _components = _componentViewModelFactory.CreateComponentsViewModel( + _vehicleInputData.Components as IXMLVehicleComponentsDeclaration); + + //Add the viewmodel of every component to the ComponentViewModels collection + foreach (var component in ((IComponentsViewModel)_components).Components) { + ComponentViewModels.Add(component); + } + + EngineIdleSpeed = _vehicleInputData.EngineIdleSpeed; + RetarderType = _vehicleInputData.RetarderType; + RetarderRatio = _vehicleInputData.RetarderRatio; + AngledriveType = _vehicleInputData.AngledriveType; + + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..f910a87d065547a9324f4620388b2695ddc2b74a --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs @@ -0,0 +1,850 @@ +using Microsoft.Win32; +using Ninject; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using System.Windows.Forms; +using System.Windows.Input; +using System.Xml; +using System.Xml.Linq; +using Microsoft.Toolkit.Mvvm.Input; +using Microsoft.WindowsAPICodePack.Shell.Interop; +using Microsoft.WindowsAPICodePack.Shell.PropertySystem; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.InputData.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Annotations; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Implementation.Document; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; +using VECTO3GUI2020.Views; +using IDocumentViewModel = VECTO3GUI2020.ViewModel.Interfaces.Document.IDocumentViewModel; +using RelayCommand = VECTO3GUI2020.Util.RelayCommand; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace VECTO3GUI2020.ViewModel.Implementation +{ + public class JobListViewModel : ViewModelBase, IJobListViewModel + { + #region Members and Properties + private readonly Settings _settings = Settings.Default; + + + private ICommand _addJobCommand; + private ICommand _editJobCommand; + private ICommand _removeJobCommand; + private ICommand _moveJobUpCommand; + private ICommand _moveJobDownCommand; + private ICommand _viewXMLCommand; + + private bool _isLoading = false; + public bool IsLoading + { + get => _isLoading; + set => SetProperty(ref _isLoading, value); + } + + private BackgroundWorker fileReadingBackgroundWorker; + + private object _jobsLock = new Object(); + private ObservableCollection<IDocumentViewModel> _jobs = new ObservableCollection<IDocumentViewModel>(); + public ObservableCollection<IDocumentViewModel> Jobs{ get => _jobs; set => SetProperty(ref _jobs, value);} + + private IDialogHelper _dialogHelper; + private IWindowHelper _windowHelper; + private IDocumentViewModelFactory _documentViewModelFactory; + private ICommand _newMultiStageFileCommand; + private IMultiStageViewModelFactory _multiStageViewModelFactory; + private IAsyncRelayCommand _addJobAsync; + private readonly IXMLInputDataReader _inputDataReader; + private IAsyncRelayCommand _simulationCommand; + private readonly IOutputViewModel _outputViewModel; + + + + + + #endregion + + + + + public JobListViewModel() + { + BindingOperations.EnableCollectionSynchronization(Jobs, _jobsLock); + InitFileBackGroundWorker(); + + + } + + + public JobListViewModel(IDocumentViewModelFactory documentViewModelFactory, + IXMLInputDataReader inputDataReader, + IDialogHelper dialogHelper, + IWindowHelper windowHelper, + IMultiStageViewModelFactory multiStageViewModelFactory, IOutputViewModel outputViewModel) : this() + { + _documentViewModelFactory = documentViewModelFactory; + _dialogHelper = dialogHelper; + _windowHelper = windowHelper; + _inputDataReader = inputDataReader; + _multiStageViewModelFactory = multiStageViewModelFactory; + _outputViewModel = outputViewModel; + } + + + + private void InitFileBackGroundWorker() + { + fileReadingBackgroundWorker = new BackgroundWorker + { + WorkerReportsProgress = true + }; + fileReadingBackgroundWorker.DoWork += fileworker_DoWork; + fileReadingBackgroundWorker.ProgressChanged += fileworker_ProgressChanged; + fileReadingBackgroundWorker.RunWorkerCompleted += fileworker_RunWorkerCompleted; + } + + private void fileworker_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Debug.WriteLine(e.ProgressPercentage); + } + + private CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); + private bool _simulationRunning = false; + + public bool SimulationRunning + { + get => _simulationRunning; + set + { + SetProperty(ref _simulationRunning, value); + OnPropertyChanged(nameof(SimulationCommand)); + OnPropertyChanged(nameof(CancelSimulation)); + } + } + + private ICommand _cancelSimulationCommand; + + + private async Task RunSimulationExecute() + { + cancellationTokenSource = new CancellationTokenSource(); + SimulationRunning = true; + await Task.Run(() => RunSimulationAsync(cancellationTokenSource.Token, + new Progress<MessageEntry>((message) => { _outputViewModel.AddMessage(message); }), + new Progress<int>((i) => _outputViewModel.Progress = i), + new Progress<string>((msg) => _outputViewModel.StatusMessage = msg))); + SimulationRunning = false; + _outputViewModel.Progress = 0; + cancellationTokenSource.Dispose(); + } + + private async Task RunSimulationAsync(CancellationToken ct, IProgress<MessageEntry> outputMessages, + IProgress<int> progress, IProgress<string> status) + { + progress.Report(0); + status.Report("starting..."); + + IDocumentViewModel[] jobs; + lock (_jobsLock) { + jobs = Jobs.Where(x => x.Selected).ToArray(); + if (jobs.Length == 0) { + outputMessages.Report(new MessageEntry() { + Message = "No Jobs Selected", + Time = DateTime.Now, + Type = MessageType.InfoMessage, + }); + status.Report("No jobs selected"); + return; + } + } + + var sumFileWriter = new FileOutputWriter(GetOutputDirectory(Jobs.First(x => x.Selected).DataSource.SourceFile)); + var sumContainer = new SummaryDataContainer(sumFileWriter); + var jobContainer = new JobContainer(sumContainer); + var mode = ExecutionMode.Declaration; + + var fileWriters = new Dictionary<int, FileOutputWriter>(); + var finishedRuns = new List<int>(); + + var xmlReader = _inputDataReader; + + foreach (var jobEntry in jobs) { + try + { + var fullFileName = Path.GetFullPath(jobEntry.DataSource.SourceFile); + if (!File.Exists(fullFileName)) + { + outputMessages.Report(new MessageEntry() + { + Type = MessageType.ErrorMessage, + Message = + $"File {Path.GetFileName(jobEntry.DataSource.SourceFile)} not found!" + }); + continue; + } + + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = $"Reading file {Path.GetFileName(fullFileName)}" + }); + + + + var extension = Path.GetExtension(jobEntry.DataSource.SourceFile); + IInputDataProvider input = null; + IXMLMultistageInputDataProvider multistageInput = null; + + var FileWriter = new FileOutputWriter(fullFileName); + switch (extension) { + case Constants.FileExtensions.VectoJobFile: + input = JSONInputDataFactory.ReadJsonJob(fullFileName); + var tmp = input as IDeclarationInputDataProvider; + mode = tmp?.JobInputData.SavedInDeclarationMode ?? false + ? ExecutionMode.Declaration + : ExecutionMode.Engineering; + break; + case ".xml": + var xdoc = XDocument.Load(fullFileName); + var rootNode = xdoc.Root?.Name.LocalName ?? ""; + if (XMLNames.VectoInputEngineering.Equals(rootNode, + StringComparison.InvariantCultureIgnoreCase)) { + input = xmlReader.CreateEngineering(fullFileName); + mode = ExecutionMode.Engineering; + } else if (XMLNames.VectoInputDeclaration.Equals(rootNode, + StringComparison.InvariantCultureIgnoreCase)) { + using (var reader = XmlReader.Create(fullFileName)) { + input = xmlReader.CreateDeclaration(reader); + } + + mode = ExecutionMode.Declaration; + } else if (XMLNames.VectoOutputMultistage.Equals(rootNode, + StringComparison.InvariantCultureIgnoreCase)) { + using (var reader = XmlReader.Create(fullFileName)) { + input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistageBusInputDataProvider, null); + FileWriter = new FileOutputVIFWriter(fullFileName, + (jobEntry as MultiStageJobViewModel_v0_1).ManufacturingStages?.Count ?? 0); + } + + mode = ExecutionMode.Declaration; + } + + break; + } + + if (input == null && multistageInput == null) + { + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.ErrorMessage, + Message = $"No input provider for job {Path.GetFileName(fullFileName)}" + }); + continue; + } + + var fileWriter = new FileOutputWriter(GetOutputDirectory(fullFileName)); + var runsFactory = new SimulatorFactory(mode, input, fileWriter) + { + WriteModalResults = Settings.Default.WriteModalResults, + ModalResults1Hz = Settings.Default.ModalResults1Hz, + Validate = Settings.Default.Validate, + ActualModalData = Settings.Default.ActualModalData, + SerializeVectoRunData = Settings.Default.SerializeVectoRunData, + + }; + + var stopwatch = new Stopwatch(); + stopwatch.Start(); + foreach (var runId in jobContainer.AddRuns(runsFactory)) + { + if (ct.IsCancellationRequested) { + outputMessages.Report(new MessageEntry() + { + Message = "Simulation canceled", + Type = MessageType.StatusMessage, + }); + return; + } + fileWriters.Add(runId, fileWriter); + } + stopwatch.Stop(); + + + // TODO MQ-20200525: Remove the following loop in production (or after evaluation of LAC!! + + + //if (!string.IsNullOrWhiteSpace(LookAheadMinSpeedOverride)) + //{ + // foreach (var run in jobContainer.Runs) + // { + // var tmpDriver = ((VectoRun)run.Run).GetContainer().RunData.DriverData; + // tmpDriver.LookAheadCoasting.Enabled = true; + // tmpDriver.LookAheadCoasting.MinSpeed = LookAheadMinSpeedOverride.ToDouble().KMPHtoMeterPerSecond(); + // } + //} + + + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = $"Finished reading data for job {Path.GetFileName(fullFileName)}" + }); + } + catch (Exception ex) + { + /* + MessageBox.Show( + $"ERROR running job {Path.GetFileName(jobEntry.DataSource.SourceFile)}: {ex.Message}", "Error", MessageBoxButton.OK, + MessageBoxImage.Exclamation); + */ + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.ErrorMessage, + Message = ex.Message + }); + } + } + foreach (var cycle in jobContainer.GetCycleTypes()) + { + outputMessages.Report(new MessageEntry() + { + Type = MessageType.StatusMessage, Message = $"Detected cycle {cycle.Name}: {cycle.CycleType}" + }); + } + + outputMessages.Report(new MessageEntry() { + Type = MessageType.StatusMessage, + Message = $"Starting simulation ({jobs.Length} jobs, {jobContainer.GetProgress().Count} runs)", + }); + + var start = Stopwatch.StartNew(); + jobContainer.Execute(true); + while (!jobContainer.AllCompleted) + { + if (ct.IsCancellationRequested) + { + jobContainer.Cancel(); + outputMessages.Report(new MessageEntry() { + Message = "Simulation canceled", + Type = MessageType.StatusMessage, + }); + return; + } + + var jobProgress = jobContainer.GetProgress(); + var sumProgress = jobProgress.Sum(x => x.Value.Progress); + var duration = start.Elapsed.TotalSeconds; + jobProgress.Select(x => x.Value.Progress); + + + + progress.Report(Convert.ToInt32(sumProgress * 100 / jobProgress.Count)); + status.Report(string.Format( + "Duration: {0:F1}s, Current Progress: {1:P} ({2})", duration, sumProgress / jobProgress.Count, + string.Join(", ", jobProgress.Select(x => string.Format("{0,4:P}", x.Value.Progress))))); + var justFinished = jobProgress.Where(x => x.Value.Done & !finishedRuns.Contains(x.Key)) + .ToDictionary(x => x.Key, x => x.Value); + //PrintRuns(justFinished, fileWriters); + finishedRuns.AddRange(justFinished.Select(x => x.Key)); + await Task.Delay(100, ct); + } + start.Stop(); + + var remainingRuns = jobContainer.GetProgress().Where(x => x.Value.Done && !finishedRuns.Contains(x.Key)) + .ToDictionary(x => x.Key, x => x.Value); + //PrintRuns(remainingRuns, fileWriters); + + finishedRuns.Clear(); + fileWriters.Clear(); + foreach (var progressEntry in jobContainer.GetProgress()) + { + outputMessages.Report(new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = + string.Format("{0,-60} {1,8:P} {2,10:F2}s - {3}", + $"{progressEntry.Value.RunName} {progressEntry.Value.CycleName} {progressEntry.Value.RunSuffix}", + progressEntry.Value.Progress, + progressEntry.Value.ExecTime / 1000.0, + progressEntry.Value.Success ? "Success" : "Aborted") + }); + if (!progressEntry.Value.Success) + { + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = progressEntry.Value.Error.Message + } + ); + } + } + foreach (var jobEntry in jobs) + { + var w = new FileOutputWriter(GetOutputDirectory(jobEntry.DataSource.SourceFile)); + foreach (var entry in new Dictionary<string, string>() { { w.XMLFullReportName, "XML ManufacturereReport" }, { w.XMLCustomerReportName, "XML Customer Report" }, { w.XMLVTPReportName, "VTP Report" }, { w.XMLPrimaryVehicleReportName, "Primary Vehicle Information File" } }) + { + if (File.Exists(entry.Key)) + { + outputMessages.Report( + new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = string.Format( + "{2} for '{0}' written to {1}", Path.GetFileName(jobEntry.DataSource.SourceFile), entry.Key, entry.Value), + //Link = "<XML>" + entry.Key + }); + } + } + } + + if (File.Exists(sumFileWriter.SumFileName)) + { + outputMessages.Report(new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = string.Format("Sum file written to {0}", sumFileWriter.SumFileName), + //Link = "<CSV>" + sumFileWriter.SumFileName + }); + } + + outputMessages.Report(new MessageEntry() + { + Type = MessageType.StatusMessage, + Message = string.Format("Simulation finished in {0:F1}s", start.Elapsed.TotalSeconds) + }); + + status.Report($"Simulation finished in {start.Elapsed.TotalSeconds} s"); + + } + private void PrintRuns(Dictionary<int, JobContainer.ProgressEntry> progress, Dictionary<int, FileOutputWriter> fileWriters, IProgress<MessageEntry> outputMessages) + { + foreach (var p in progress) { + var modFilename = fileWriters[p.Key] + .GetModDataFileName(p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix); + var runName = string.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix); + + // if (p.Value.Error != null) + // { + // SimulationWorker.ReportProgress(0, new VectoSimulationProgress() + // { + // Type = VectoSimulationProgress.MsgType.StatusMessage, + // Message = string.Format("Finished Run {0} with ERROR: {1}", runName, + // p.Value.Error.Message), + // Link = "<CSV>" + modFilename + // }); + // } + // else + // { + // SimulationWorker.ReportProgress(0, new VectoSimulationProgress() + // { + // Type = VectoSimulationProgress.MsgType.StatusMessage, + // Message = string.Format("Finished run {0} successfully.", runName) + // }); + // } + // if (File.Exists(modFilename)) + // { + // SimulationWorker.ReportProgress(0, new VectoSimulationProgress() + // { + // Type = VectoSimulationProgress.MsgType.StatusMessage, + // Message = string.Format("Run {0}: Modal results written to {1}", runName, modFilename), + // Link = "<CSV>" + modFilename + // }); + // } + } + } + + + private string GetOutputDirectory(string jobFilePath) + { + var outFile = jobFilePath; + var outputDirectory = Settings.Default.DefaultOutputPath; + if (string.IsNullOrWhiteSpace(outputDirectory)) { + return outFile; + } + + outFile = Path.IsPathRooted(outputDirectory) + ? Path.Combine(outputDirectory, Path.GetFileName(jobFilePath) ?? "") + : Path.Combine(Path.GetDirectoryName(jobFilePath) ?? "", outputDirectory, + Path.GetFileName(jobFilePath) ?? ""); + if (!Directory.Exists(Path.GetDirectoryName(outFile))) { + Directory.CreateDirectory(Path.GetDirectoryName(outFile)); + } + + return outFile; + } + + + #region Commands + + public ICommand CancelSimulation + { + get + { + return _cancelSimulationCommand ?? new RelayCommand(() => { + _outputViewModel.AddMessage(new MessageEntry() { + Message="Canceling Simulation", + Type=MessageType.StatusMessage, + }); + cancellationTokenSource.Cancel(); + }, + () => SimulationRunning); + } + } + + + public IAsyncRelayCommand SimulationCommand + { + get + { + return _simulationCommand ?? new AsyncRelayCommand(RunSimulationExecute, () => !SimulationRunning); + } + } + + + + public ICommand NewManufacturingStageFile + { + get + { + return _newMultiStageFileCommand ?? new RelayCommand(NewManufacturingStageFileExecute, () => { return true; }); + } + } + + private void NewManufacturingStageFileExecute() + { + _windowHelper.ShowWindow(_multiStageViewModelFactory.GetNewMultistageJobViewModel()); + } + + public IAsyncRelayCommand AddJobAsyncCommand + { + get + { + return _addJobAsync ?? new AsyncRelayCommand(AddJobExecuteAsync + , () => true); + } + } + + private async Task<IDocumentViewModel> AddJobExecuteAsync() + { + var fileName = _dialogHelper.OpenXMLFileDialog(); + if (fileName != null) { + return await AddJobAsync(fileName); + } + + return null; + + } + + public async Task<IDocumentViewModel> AddJobAsync(string fileName) + { + if (fileName != null) { + try { + var result = await LoadFileAsync(fileName); + Jobs.Add(result); + return result; + } catch (Exception e) { + var errorString = ""; + errorString = $"{fileName}\n"; + errorString += e.Message; + _dialogHelper.ShowMessageBox(errorString, "Error", MessageBoxButton.OK, MessageBoxImage.Error); + } + } + + + return null; + } + + private Task<IDocumentViewModel> LoadFileAsync([NotNull] string fileName) + { + var xElement = new System.Xml.XmlDocument(); + xElement.Load(fileName); + + var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName); + if (documentType == XmlDocumentType.MultistageOutputData) { + var inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider; + return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel); + } else if (documentType == XmlDocumentType.DeclarationJobData) { + //Remove + var inputDataProvider = _inputDataReader.CreateDeclaration(fileName); + var result = new SimulationOnlyDeclarationJob(inputDataProvider.DataSource, + inputDataProvider.JobInputData.JobName, XmlDocumentType.DeclarationJobData) as IDocumentViewModel; + return Task.FromResult(result); + + + }else { + throw new VectoXMLException($"{documentType.ToString()} not supported"); + } + + return null; + } + + + + public ICommand AddJob + { + get + { + return _addJobCommand ?? new RelayCommand(AddJobExecute, () => { return true; }); + } + private set + { + _addJobCommand = value; + OnPropertyChanged(); + } + } + + + private void AddJobExecute() + { + IsLoading = true; + var filename = _dialogHelper.OpenXMLFileDialog(); + if (filename != null) + { + LoadJob(filename); + } + else + { + IsLoading = false; + } + } + + public void LoadJob([NotNull] string fileName) + { + fileReadingBackgroundWorker.RunWorkerAsync(fileName); + } + + + public ICommand EditJob + { + get + { + return _editJobCommand ?? new Util.RelayCommand<IJobViewModel>(EditJobExecute, + (IJobViewModel jobentry) => { + var canExecute = jobentry != null && jobentry.CanBeEdited; + return canExecute; + }); + } + set + { + _editJobCommand = value; + OnPropertyChanged(); + } + } + + private void EditJobExecute(IDocumentViewModel selectedJob) + { + if (selectedJob == null) { + return; + } + _windowHelper.ShowWindow(selectedJob.EditViewModel); + } + + public ICommand ViewXMLFile + { + get + { + return _viewXMLCommand ?? new Util.RelayCommand<IJobViewModel>(ViewXMLFileExecute, + (IJobViewModel jobentry) => + { + return (jobentry != null); + }); + } + set + { + _viewXMLCommand = value; + OnPropertyChanged(); + } + } + + private void ViewXMLFileExecute(IJobViewModel selectedJob) + { + if (selectedJob == null) return; + + //TODO implement using WindowHelper. + Debug.WriteLine("open XML File Viewer"); + //_kernel.Get<XMLViewer>().Show(); + + + } + + + public ICommand RemoveJob + { + get + { + return _removeJobCommand ?? new Util.RelayCommand<IDocumentViewModel>(RemoveJobExecute, (IDocumentViewModel jobentry) => + { + return (jobentry != null); + }); + } + set + { + _removeJobCommand = value; + OnPropertyChanged(); + } + } + + private void RemoveJobExecute(IDocumentViewModel selectedDocument) + { + if (selectedDocument == null) return; + + + Jobs.Remove(selectedDocument); + OnPropertyChanged(); + } + + public ICommand moveJobUp + { + get + { + return _moveJobUpCommand ?? new Util.RelayCommand<IDocumentViewModel>(MoveJobUpExecute, (IDocumentViewModel jobentry) => + { + return (jobentry != null && Jobs.Count > 1 && Jobs.IndexOf(jobentry) != 0); + }); + } + set + { + _moveJobUpCommand = value; + OnPropertyChanged(); + } + + } + + private void MoveJobUpExecute(IDocumentViewModel selectedJob) + { + if (selectedJob == null) return; + var index = Jobs.IndexOf(selectedJob); + if (index > 0) + Jobs.Move(index, index - 1); + + } + + public ICommand moveJobDown + { + get + { + return _moveJobDownCommand ?? new Util.RelayCommand<IDocumentViewModel>(MoveJobDownExecute, (IDocumentViewModel jobentry) => + { + return (jobentry != null && Jobs.Count > 1 && Jobs.IndexOf(jobentry) != Jobs.Count - 1); + }); + } + set + { + _moveJobDownCommand = value; + OnPropertyChanged(); + } + + } + + private void MoveJobDownExecute(IDocumentViewModel selectedJob) + { + Debug.WriteLine("move down command"); + + if (selectedJob == null) return; + var index = Jobs.IndexOf(selectedJob); + if (index != Jobs.Count - 1) + Jobs.Move(index, index + 1); + + } + + #endregion Commands + + #region BackgroundworkerXMLreading + + void fileworker_DoWork(object sender, DoWorkEventArgs e) + { + string filename = e.Argument as string; + Debug.Assert(filename != null); + + try + { + var xElement = new System.Xml.XmlDocument(); + xElement.Load(filename); + + var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName); + if (documentType == null) + { + Debug.WriteLine("Unknown Document Type"); + e.Cancel = true; + return; + } + + + + + var result = _documentViewModelFactory.CreateDocumentViewModel((XmlDocumentType)documentType, filename); + e.Result = result; + } + catch (Exception) + { + e.Cancel = true; + throw; + } + } + + + void fileworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + Debug.Assert(e.Result is IDocumentViewModel); + Jobs.Add(e.Result as IDocumentViewModel); + IsLoading = false; + } + + #endregion + } + + + public class VectoSimulationProgress + { + public enum MsgType + { + StatusMessage, + InfoMessage, + Progress, + LogError, + LogWarning, + + } + + public string Message { get; set; } + + public MsgType Type { get; set; } + + public string Link { get; set; } + } + +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..ddb2e680e424c12a871fd59f19b6ea9167b75478 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs @@ -0,0 +1,103 @@ +using System; +using VECTO3GUI2020.ViewModel.Interfaces; +using Ninject; +using System.Diagnostics; +using System.Windows.Input; +using Castle.DynamicProxy.Generators.Emitters.SimpleAST; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.Views; + +namespace VECTO3GUI2020.ViewModel.Implementation +{ + public class MainWindowViewModel : ViewModelBase, IMainWindowViewModel + { + #region Member + private IJobListViewModel _jobListVm; + private IMainViewModel _bottomView; + #endregion + + #region Commands + private ICommand _openSettings; + private IWindowHelper _windowHelper; + private ISettingsViewModel _settingsViewModel; + + + #endregion + + + public MainWindowViewModel(IWindowHelper windowHelper, ISettingsViewModel settingsViewModel, IJobListViewModel jobListViewModel, IOutputViewModel outputViewModel) + { + _windowHelper = windowHelper; + _settingsViewModel = settingsViewModel; + _jobListVm = jobListViewModel; + _bottomView = outputViewModel; + //_bottomView = new TestViewModel(); + } + + public IMainViewModel CurrentViewModelTop + { + get { return _jobListVm; + + } + set { throw new NotImplementedException(); } + } + + public IMainViewModel CurrentViewModelBottom + { + get { return _bottomView; } + set { _bottomView = value; } + } + + + #region CommandImplementations + #region CommandOpenSettings + public ICommand OpenSettings + { + get{ + return _openSettings ?? (ICommand)new RelayCommand(OpenSettingsExecute); + } + private set + { + + } + } + + private void OpenSettingsExecute() + { + _windowHelper.ShowWindow(_settingsViewModel); + } + + + #region newMultiStage + + public ICommand NewInterimFile => _jobListVm.NewManufacturingStageFile; + + + + + + #endregion + + #endregion + + + + + + + + + + + + + + + + + #endregion + + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs new file mode 100644 index 0000000000000000000000000000000000000000..d1bff4229030242c6a959b12fad118562ffb7422 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs @@ -0,0 +1,54 @@ +using System; +using Microsoft.Toolkit.Mvvm.ComponentModel; + +namespace VECTO3GUI2020.ViewModel.Implementation +{ + + public enum MessageType + { + InfoMessage, + StatusMessage, + ErrorMessage, + WarningMessage, + } + + public class MessageEntry : ObservableObject + { + + + private string _message; + private DateTime _time = DateTime.Now; + private string _source; + private MessageType _type; + private string _link; + + public string Message + { + get { return _message; } + set { SetProperty(ref _message, value); } + } + + public string Link + { + get { return _link; } + set {} + } + + public MessageType Type + { + get { return _type; } + set { SetProperty(ref _type, value); } + } + + public DateTime Time + { + get { return _time; } + set { SetProperty(ref _time, value); } + } + public string Source + { + get { return _source; } + set { SetProperty(ref _source, value); } + } + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/MessageViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/MessageViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..ec24b7a861f5774dd1af325344e6f938c20dba83 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/MessageViewModel.cs @@ -0,0 +1,9 @@ +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; + +namespace VECTO3GUI2020.ViewModel.Implementation +{ + public class MessageViewModel : ViewModelBase, IMessageViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..3e41e51fdd89f701162b0f9b997869f22b7ad463 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Windows.Data; +using Microsoft.WindowsAPICodePack.Shell.Interop; +using VECTO3GUI2020.ViewModel.Implementation; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Common; + +namespace VECTO3GUI2020.ViewModel +{ + + public class OutputViewModel : ViewModelBase, IOutputViewModel + { + private object _messageLock = new Object(); + private ObservableCollection<MessageEntry> _messages = new ObservableCollection<MessageEntry>(); + private int _progress; + private string _statusMessage; + + public ObservableCollection<MessageEntry> Messages + { + get { return _messages; } + } + + public void AddMessage(MessageEntry messageEntry) + { + lock (_messageLock) { + Messages.Add(messageEntry); + } + } + + public int Progress + { + get => _progress; + set => SetProperty(ref _progress, value); + } + + public string StatusMessage + { + get { return _statusMessage; } + set { SetProperty(ref _statusMessage, value); } + } + + + public OutputViewModel() + { + BindingOperations.EnableCollectionSynchronization(Messages, _messageLock); + } + } + + public interface IOutputViewModel : IMainViewModel + { + //ObservableCollection<MessageEntry> Messages { get; } + + int Progress { get; set; } + string StatusMessage { get; set; } + void AddMessage(MessageEntry messageEntry); + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Implementation/SettingsViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/SettingsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..76246e6e1f270d47a5b61b183a99efa48c697a9a --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Implementation/SettingsViewModel.cs @@ -0,0 +1,198 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Windows; +using System.Windows.Forms; +using System.Windows.Input; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; + +namespace VECTO3GUI2020.ViewModel.Implementation +{ + public class SettingsViewModel : ViewModelBase, ISettingsViewModel + { + private Settings _settings; + + private ICommand _changePath; + private ICommand _changeOutPath; + + private IDialogHelper _dialogHelper; + + + private string _defaultFilePath; + private string _defaultOutputPath; + private bool _writeModalResults; + private bool _modalResults1Hz; + private bool _validate; + private bool _actualModalData; + private bool _serializeVectoRunData; + + public string DefaultFilePath + { + get => _defaultFilePath; + set + { + _settings.DefaultFilePath = value; + _settings.Save(); + SetProperty(ref _defaultFilePath, value, "DefaultFilePath"); + } + } + + public string DefaultOutputPath { + get => _defaultOutputPath; + set { + _settings.DefaultOutputPath = value; + _settings.Save(); + SetProperty(ref _defaultOutputPath, value, "DefaultOutputPath"); + } + } + + public SettingsViewModel(IDialogHelper dialogHelper) + { + base.Title = "Settings"; + _settings = Settings.Default; + _defaultFilePath = _settings.DefaultFilePath; + _writeModalResults = _settings.WriteModalResults; + _modalResults1Hz = _settings.ModalResults1Hz; + _validate = _settings.Validate; + _actualModalData = _settings.ActualModalData; + _serializeVectoRunData = _settings.SerializeVectoRunData; + _dialogHelper = dialogHelper; + _defaultOutputPath = _settings.DefaultOutputPath; + } + + private ICommand _closeWindowCommand; + + public ICommand CloseWindowCommand + { + get + { + return _closeWindowCommand ?? new RelayCommand<Window>(window => CloseWindow(window, _dialogHelper), window => true); + } + } + + private void CloseWindow(Window window, bool ask) + { + + } + + + + + + public ICommand ChangeFilePath + { + get + { + return _changePath ?? new RelayCommand(()=> + { + + + //C:\Users\Harry\source\repos\vecto-gui\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration + + + var new_path = _dialogHelper.OpenFolderDialog(DefaultFilePath); + + if (new_path != null) + { + DefaultFilePath = new_path; + } + + + }, () => { return true; }); + } + private set + { + _changePath = value; + OnPropertyChanged(); + } + } + + public ICommand ChangeOutputPath { + get { + return _changeOutPath ?? new RelayCommand(() => { + var new_path = _dialogHelper.OpenFolderDialog(DefaultFilePath); + if (new_path != null) { + DefaultOutputPath = new_path; + } + }, () => { return true; }); + } + private set { + _changeOutPath = value; + OnPropertyChanged(); + } + } + + public bool SerializeVectoRunData + { + get => _serializeVectoRunData; + set + { + if (SetProperty(ref _serializeVectoRunData, value)) { + _settings.SerializeVectoRunData = value; + _settings.Save(); + } + } + } + + public bool ActualModalData + { + get => _actualModalData; + set + { + if (SetProperty(ref _actualModalData, value)) { + _settings.ActualModalData = value; + _settings.Save(); + + } + } + } + + public bool Validate + { + get => _validate; + set + { + if (SetProperty(ref _validate, value)) + { + _settings.Validate = value; + _settings.Save(); + + } + } + } + + public bool ModalResults1Hz + { + get => _modalResults1Hz; + set + { + if (SetProperty(ref _modalResults1Hz, value)) + { + _settings.ModalResults1Hz = value; + _settings.Save(); + + } + } + } + + public bool WriteModalResults + { + get => _writeModalResults; + set + { + if (SetProperty(ref _writeModalResults, value)) + { + _settings.WriteModalResults = value; + _settings.Save(); + + } + } + } + + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/Common/IViewModelBase.cs b/VECTO3GUI2020/ViewModel/Interfaces/Common/IViewModelBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..39808350ec312e252e4fee1d1df3624f39f19ff1 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/Common/IViewModelBase.cs @@ -0,0 +1,9 @@ +using System.ComponentModel; + +namespace VECTO3GUI2020.ViewModel.Interfaces.Common +{ + public interface IViewModelBase : INotifyPropertyChanged + { + string Title { get; set; } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..60b6f9edecc3c4896fe5312feb8b61675b6a5afb --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModel.cs @@ -0,0 +1,18 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit; + +namespace VECTO3GUI2020.ViewModel.Interfaces.Document +{ + public interface IDocumentViewModel + { + string DocumentName { get; } + XmlDocumentType DocumentType { get; } + DataSource DataSource { get; } + + IEditViewModel EditViewModel { get; } + bool Selected { get; set; } + + bool CanBeEdited { get; set; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModelFactory.cs b/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModelFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..d9b0d9fff1c98f26dac9f6bf9430e8efb7eab7d9 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/Document/IDocumentViewModelFactory.cs @@ -0,0 +1,27 @@ +using TUGraz.VectoCore.Utils; + +namespace VECTO3GUI2020.ViewModel.Interfaces.Document +{ + public interface IDocumentViewModelFactory + { + /* + public enum XmlDocumentType + { + DeclarationJobData = 1 << 1, + PrimaryVehicleBusOutputData = 1 << 2, + DeclarationComponentData = 1 << 3, + EngineeringJobData = 1 << 4, + EngineeringComponentData = 1 << 5, + ManufacturerReport = 1 << 6, + CustomerReport = 1 << 7, + MonitoringReport = 1 << 8, + VTPReport = 1 << 9, + DeclarationTrailerJobData = 1 << 10, + } + + */ + IDocumentViewModel CreateDocumentViewModel(XmlDocumentType xmlDocumentType, string sourcefile); + + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/Document/IJobViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/Document/IJobViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..01498019d662fc153fa86ac536bec48f53f152c5 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/Document/IJobViewModel.cs @@ -0,0 +1,7 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces.Document +{ + public interface IJobViewModel : IDocumentViewModel + { + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IEditViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IEditViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..6241441a1734cb45692aa1a2143e5a35a871bdd6 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/IEditViewModel.cs @@ -0,0 +1,7 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface IEditViewModel + { + string Name { get; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..6b09b8717c8fab496c4bae1091a04c2640d9cbce --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs @@ -0,0 +1,17 @@ +using System.Collections.ObjectModel; +using System.Threading.Tasks; +using System.Windows.Input; +using VECTO3GUI2020.Model.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Document; + +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface IJobListViewModel : IMainViewModel + { + ICommand AddJob { get; } + ICommand EditJob { get; } + ObservableCollection<IDocumentViewModel> Jobs { get; } + ICommand NewManufacturingStageFile { get; } + Task<IDocumentViewModel> AddJobAsync(string fileName); + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IMainViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IMainViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..8f5cca1603353bd0881bbcd42216f7b42fc24d10 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/IMainViewModel.cs @@ -0,0 +1,6 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface IMainViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IMainWindowViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IMainWindowViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..688159a82fbef1ba6c38118537057a0f637aaa85 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/IMainWindowViewModel.cs @@ -0,0 +1,14 @@ +using System.Windows.Input; + +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface IMainWindowViewModel + { + IMainViewModel CurrentViewModelTop { get; set; } + IMainViewModel CurrentViewModelBottom { get; set; } + + #region Commands + ICommand OpenSettings { get;} + #endregion + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IMessageViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IMessageViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..619378623e45ed7588e34bdce79de5d0813a77ac --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/IMessageViewModel.cs @@ -0,0 +1,6 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface IMessageViewModel : IMainViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/ISettingsViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/ISettingsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..889bdc9b65870abd36d314e3f62200bc9b8801bd --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/ISettingsViewModel.cs @@ -0,0 +1,9 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces +{ + public interface ISettingsViewModel + { + + + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b1d938ccc2879c262faa276d0c259ef88ee3b282 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModel.cs @@ -0,0 +1,12 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit +{ + public interface IJobEditViewModel : IEditViewModel, IInputDataProvider + { + + + + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModelFactory.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModelFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..8a476f679cc0f2e286cb88ed6e82be37824ba42a --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/IJobEditViewModelFactory.cs @@ -0,0 +1,17 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit +{ + public interface IJobEditViewModelFactory + { + + + /// <summary> + /// Creates a JobEditViewModel dependent on the type of the inputdataprovider + /// </summary> + /// <param name="inputData"></param> + /// <returns></returns> + IJobEditViewModel CreateJobEditViewModel(IInputDataProvider inputData); + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Trailer/ITrailerViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Trailer/ITrailerViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..608f8ab4fd0e7a7320f587192d50e512dc7ffbd4 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Trailer/ITrailerViewModel.cs @@ -0,0 +1,7 @@ +namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Trailer +{ + public interface ITrailerViewModel + { + + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAdasViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAdasViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..49ce672c24bd6104ba323b3f970b26ef0e1331bd --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAdasViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAdasViewModel : IAdvancedDriverAssistantSystemDeclarationInputData, IComponentViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAirDragViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAirDragViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..9f49b555da963b5bdf7872909d9d99abbdf376a9 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAirDragViewModel.cs @@ -0,0 +1,12 @@ +using System.Xml; +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAirDragViewModel : IAirdragDeclarationInputData, IComponentViewModel + { + bool LabelVisible { get; set; } + bool IsReadOnly { get; set; } + XmlNode XMLSource { get; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAngleDriveViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAngleDriveViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..30fb28aa0f975ad3db9ff9b7a0ac9bcc2ecb1aac --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAngleDriveViewModel.cs @@ -0,0 +1,10 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAngleDriveViewModel : IAngledriveInputData, IComponentViewModel + { + new AngledriveType Type { get; set; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliariesViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b9999add880d7eb369ca9f9ef5649da30c4c7bb0 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliariesViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAuxiliariesViewModel : IAuxiliariesDeclarationInputData, IComponentViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliaryViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliaryViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..1710ed1706be9fb9f3d822a37ab9ba65778099d7 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAuxiliaryViewModel.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAuxiliaryViewModel : IAuxiliaryDeclarationInputData + { + string Name { get; set; } + + string TechnologyName { get; set; } + + IList<string> TechnologyList { get; } + AuxiliaryType Type { get; } + } +} + diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleGearViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleGearViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..2d7a80b828b659f49c70b517704a7321cb5deaba --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleGearViewModel.cs @@ -0,0 +1,10 @@ +using System.ComponentModel; +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAxleGearViewModel : IAxleGearInputData, IComponentViewModel + { + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..ae24ba75c428e48de1a44d94c8fccca9c06ba8c6 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IAxleViewModel : IAxleDeclarationInputData + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleWheelsViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleWheelsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..41893ae801708eed803d9f173b3e203bced40ac0 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IAxleWheelsViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + interface IAxleWheelsViewModel : IAxlesDeclarationInputData, IComponentViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ICommonComponentViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ICommonComponentViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..574bf03a86420d4448dd37c2552750af142be617 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ICommonComponentViewModel.cs @@ -0,0 +1,25 @@ +using System; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface ICommonComponentViewModel : IComponentInputData + { + new string Manufacturer { get; set; } + new string Model { get; set; } + + new DateTime Date { get; set; } + + new string CertificationNumber { get; set; } + new CertificationMethod CertificationMethod { get; set; } + new bool SavedInDeclarationMode { get; set; } + + new DigestData DigestValue { get; set; } + + new DataSource DataSource { get; set; } + + new string AppVersion { get; } + } + +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..86749ddacc34e848d22c3bf2235d421f6957c95c --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModel.cs @@ -0,0 +1,12 @@ +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IComponentViewModel + { + string Name { get; } + + bool IsPresent { get; } + + + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..a7c964dd5f27c4084768bba78732185c07be0cbb --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs @@ -0,0 +1,21 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IComponentViewModelFactory + { + /// <summary> + /// Creates a ViewModel for a component. + /// </summary> + /// <param name="inputData">The Type of the input Data is used to resolve a Named Binding and is also passed to the constructor</param> + /// <returns></returns> + IComponentViewModel CreateComponentViewModel(object inputData); + IVehicleViewModel CreateVehicleViewModel(IVehicleDeclarationInputData inputData); + IAdasViewModel CreateAdasViewModel(IAdvancedDriverAssistantSystemDeclarationInputData inputData); + IEngineModeViewModel CreateEngineModeViewModel(IEngineModeDeclarationInputData inputData); + IEngineFuelViewModel CreateEngineFuelViewModel(IEngineFuelDeclarationInputData inputData); + IComponentsViewModel CreateComponentsViewModel(IXMLVehicleComponentsDeclaration inputData); + ICommonComponentViewModel CreateCommonComponentViewModel(IComponentInputData inputData); + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentsViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentsViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..ce8273ec0d04b9c93f0afcda3eb475c60b9db4df --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentsViewModel.cs @@ -0,0 +1,19 @@ +using System.Collections.ObjectModel; +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IComponentsViewModel : IVehicleComponentsDeclaration + { + ObservableCollection<IComponentViewModel> Components { get; set; } + + IRetarderViewModel RetarderViewModel { get; } + IEngineViewModel EngineViewModel { get; } + + IPTOViewModel PTOViewModel { get; } + + IAirDragViewModel AirDragViewModel { get; } + + IAngleDriveViewModel AngleDriveViewModel { get; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineFuelViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineFuelViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..44cf39d91ab8758e75e940eada714634c2b78cc3 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineFuelViewModel.cs @@ -0,0 +1,9 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IEngineFuelViewModel : IEngineFuelDeclarationInputData + { + + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineModeViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineModeViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..79bdeadbd97f7ac0a8ddf4258e0aebcc5915e866 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineModeViewModel.cs @@ -0,0 +1,10 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IEngineModeViewModel : IEngineModeDeclarationInputData + { + new PerSecond IdleSpeed { get; set; } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..9a862254d9b60334d2bb37d37b7cbeba2c6f894f --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IEngineViewModel.cs @@ -0,0 +1,10 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IEngineViewModel : IEngineDeclarationInputData, IComponentViewModel + { + PerSecond IdlingSpeed { get; set; } + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearBoxViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearBoxViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..e6970631e5afbca19aa474069a1af69015d1adb2 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearBoxViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IGearBoxViewModel : IGearboxDeclarationInputData, IComponentViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..05158bac51cf7dc154c639b6500c64f06f0115cd --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IGearViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IGearViewModel : ITransmissionInputData + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IPTOViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IPTOViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..60defaf679a3236aead6cab358ff02571ab2df2e --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IPTOViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IPTOViewModel : IPTOTransmissionInputData, IComponentViewModel + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IRetarderViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IRetarderViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..0a42cc49261381927fa65d96777a7e0026d08cb6 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IRetarderViewModel.cs @@ -0,0 +1,13 @@ +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface IRetarderViewModel : IRetarderInputData, IComponentViewModel + { + new RetarderType Type { get; set; } + + new double Ratio { get; set; } + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITorqueConverterViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITorqueConverterViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..c232eca9fd9a8249459a434c6caa62bbc1668a2e --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITorqueConverterViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface ITorqueConverterViewModel : ITorqueConverterDeclarationInputData + { + + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITyreViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITyreViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b74b05f33f6120b8249bc6551bce4f4015087796 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/ITyreViewModel.cs @@ -0,0 +1,8 @@ +using TUGraz.VectoCommon.InputData; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components +{ + public interface ITyreViewModel : ITyreDeclarationInputData + { + } +} diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/IVehicleViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/IVehicleViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..0360dcf829e5bd985bde6007684dc0c16297b034 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/IVehicleViewModel.cs @@ -0,0 +1,24 @@ +using System.Collections.ObjectModel; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle +{ + public interface IVehicleViewModel : IComponentViewModel, IVehicleDeclarationInputData + { + IPTOViewModel PTOViewModel { get; } + + + //TODO: Move to IVehicleDeclarationInputData + RetarderType RetarderType { get; } + double RetarderRatio { get; } + AngledriveType AngledriveType { get; } + IPTOTransmissionInputData PTOTransmissionInputData { get; } + + + ObservableCollection<IComponentViewModel> ComponentViewModels { get; set; } + + } +} diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs new file mode 100644 index 0000000000000000000000000000000000000000..6acdf1436719dc0f725bed27144a42c983a09446 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -0,0 +1,1146 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Configuration; +using System.Diagnostics; +using System.Linq; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices.WindowsRuntime; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using Castle.Core.Internal; +using Microsoft.Build.Framework; +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.Models.Declaration; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Ninject; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; +using VECTO3GUI2020.Views.Multistage.CustomControls; +using Convert = System.Convert; +using EnumHelper = VECTO3GUI2020.Helper.EnumHelper; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + public enum AIRDRAGMODIFIED + { + [GuiLabel("")] + UNKNOWN = 0, + [GuiLabel("True")] + TRUE = 1, + [GuiLabel("False")] + FALSE = 2, + + } + + public static class AirdragModifiedEnumHelper + { + public static AIRDRAGMODIFIED toAirdragModifiedEnum(this bool? nullableBool) + { + if (nullableBool.HasValue) { + return nullableBool.Value == true ? AIRDRAGMODIFIED.TRUE : AIRDRAGMODIFIED.FALSE; + + } + return AIRDRAGMODIFIED.UNKNOWN; + } + + + public static bool? toNullableBool(this AIRDRAGMODIFIED airdragModified) + { + switch (airdragModified) { + case AIRDRAGMODIFIED.TRUE: + return true; + case AIRDRAGMODIFIED.FALSE: + return false; + default: + return null; + } + } + } + + public interface IMultistageVehicleViewModel : IVehicleViewModel + { + bool HasErrors { get; } + Dictionary<string, string> Errors { get; } + IMultistageAirdragViewModel MultistageAirdragViewModel { get; set; } + IMultistageAuxiliariesViewModel MultistageAuxiliariesViewModel { get; set; } + bool PrimaryVehicleHybridElectric { get; set; } + void SetVehicleInputData(IVehicleDeclarationInputData vehicleInputData); + } + + + public class DeclarationInterimStageBusVehicleViewModel_v2_8 : ViewModelBase, IMultistageVehicleViewModel, + IVehicleComponentsDeclaration, IAdvancedDriverAssistantSystemDeclarationInputData, IDataErrorInfo + { + + private readonly IMultiStageViewModelFactory _multiStageViewModelFactory; + + #region Subcomponents + private IMultistageAirdragViewModel _multistageAirdragViewModel; + private IMultistageAuxiliariesViewModel _multistageAuxiliariesViewModel; + public IMultistageAirdragViewModel MultistageAirdragViewModel + { + get => _multistageAirdragViewModel; + set => SetProperty(ref _multistageAirdragViewModel, value); + } + + public IMultistageAuxiliariesViewModel MultistageAuxiliariesViewModel + { + get => _multistageAuxiliariesViewModel; + set => SetProperty(ref _multistageAuxiliariesViewModel, value); + } + + private bool _primaryVehicleHybridElectric; + public bool PrimaryVehicleHybridElectric + { + get => _primaryVehicleHybridElectric; + set + { + SetProperty(ref _primaryVehicleHybridElectric, value); + MultistageAuxiliariesViewModel.PrimaryVehicleHybridElectric = value; + } + } + + private Dictionary<string, MultistageParameterViewModel> _parameterViewModels; + public Dictionary<string, MultistageParameterViewModel> ParameterViewModels + { + get => _parameterViewModels; + set => _parameterViewModels = value; + } + + #endregion + + public static readonly string INPUTPROVIDERTYPE = + typeof(XMLDeclarationInterimStageBusDataProviderV28).ToString(); + + public string Name => "Vehicle"; + + public bool IsPresent => true; + + public DataSource DataSource => throw new NotImplementedException(); + + public bool SavedInDeclarationMode => true; + + public ObservableCollection<IComponentViewModel> ComponentViewModels + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + + public DeclarationInterimStageBusVehicleViewModel_v2_8(IVehicleDeclarationInputData consolidatedVehicleData, + IMultiStageViewModelFactory multistageViewModelFactory) + { + ConsolidatedVehicleData = consolidatedVehicleData; + + _multiStageViewModelFactory = multistageViewModelFactory; + + MultistageAirdragViewModel = _multiStageViewModelFactory.GetMultistageAirdragViewModel(consolidatedVehicleData?.Components?.AirdragInputData); + + MultistageAirdragViewModel.AirdragViewModelChanged += ((sender, args) => { + if (sender is IMultistageAirdragViewModel vm) { + if (AirdragModifiedMultistageMandatory) { + if (vm.AirDragViewModel != null) { + AirdragModifiedMultistage = true; + } + } + } + }); + + MultistageAuxiliariesViewModel = + _multiStageViewModelFactory.GetAuxiliariesViewModel(consolidatedVehicleData?.Components? + .BusAuxiliaries); + + + CreateParameterViewModels(); + + + if (consolidatedVehicleData?.AirdragModifiedMultistage != null) + { + AirdragModifiedMultistageMandatory = true; + AirdragModifiedMultistageEditingEnabled = true; + } + + if (consolidatedVehicleData?.Components?.AirdragInputData != null) + { + AirdragModifiedMultistageMandatory = true; + AirdragModifiedMultistageEditingEnabled = true; + } + } + + private void CreateParameterViewModels() + { + _parameterViewModels = new Dictionary<string, MultistageParameterViewModel>(); + var properties = this.GetType().GetProperties(); + var backedUpParameters = new HashSet<string>() { + nameof(Manufacturer), + nameof(ManufacturerAddress), + nameof(VIN), + nameof(Model), + nameof(LegislativeClass), + nameof(CurbMassChassis), + nameof(GrossVehicleMassRating), + nameof(TankSystem), + nameof(AirdragModifiedEnum), + nameof(RegisteredClass), + nameof(NumberPassengerSeatsUpperDeck), + nameof(NumberPassengerSeatsLowerDeck), + nameof(NumberPassengersStandingLowerDeck), + nameof(NumberPassengersStandingUpperDeck), + nameof(VehicleCode), + nameof(LowEntry), + nameof(HeightInMm), + nameof(WidthInMm), + nameof(LengthInMm), + nameof(EntranceHeightInMm), + nameof(DoorDriveTechnology), + nameof(VehicleDeclarationType), + nameof(EngineStopStartNullable), + nameof(EcoRollTypeNullable), + nameof(PredictiveCruiseControlNullable), + nameof(ATEcoRollReleaseLockupClutch), + }; + + foreach (var property in properties) { + if (!backedUpParameters.Contains(property.Name)) { + continue; + } + + + object previousInputData = null; + try { + previousInputData = ConsolidatedVehicleData?.GetType().GetProperty(property.Name)? + .GetValue(ConsolidatedVehicleData); + } catch (Exception e) { + Debug.WriteLine(e.Message); + } + + _parameterViewModels.Add(property.Name, new MultistageParameterViewModel(property.Name, previousInputData, this, + resourceManagers: new ResourceManager[] { BusStrings.ResourceManager, Strings.ResourceManager } + )); + } + + _parameterViewModels[nameof(WidthInMm)].PreviousContent = ConsolidatedWidthInMm; + _parameterViewModels[nameof(WidthInMm)].DummyContent = ConvertedSIDummyCreator.CreateMillimeterDummy(); + _parameterViewModels[nameof(HeightInMm)].PreviousContent = ConsolidatedHeightInMm; + _parameterViewModels[nameof(HeightInMm)].DummyContent = ConvertedSIDummyCreator.CreateMillimeterDummy(); + _parameterViewModels[nameof(LengthInMm)].PreviousContent = ConsolidatedLengthInMm; + _parameterViewModels[nameof(LengthInMm)].DummyContent = ConvertedSIDummyCreator.CreateMillimeterDummy(); + _parameterViewModels[nameof(EntranceHeightInMm)].PreviousContent = ConsolidatedEntranceHeightInMm; + _parameterViewModels[nameof(EntranceHeightInMm)].DummyContent = ConvertedSIDummyCreator.CreateMillimeterDummy(); + + _parameterViewModels[nameof(AirdragModifiedEnum)].PreviousContent = ConsolidatedAirdragModifiedEnum; + + + ///Set up editing groups + + Action<MultistageParameterViewModel> MeasureMentsEditingGroupCallback = (MultistageParameterViewModel param) => { + MeasurementsGroupEditingEnabled = param.EditingEnabled; + }; + _parameterViewModels[nameof(WidthInMm)].EditingChangedCallback = MeasureMentsEditingGroupCallback; + _parameterViewModels[nameof(LengthInMm)].EditingChangedCallback = MeasureMentsEditingGroupCallback; + _parameterViewModels[nameof(HeightInMm)].EditingChangedCallback = MeasureMentsEditingGroupCallback; + _parameterViewModels[nameof(EntranceHeightInMm)].EditingChangedCallback = MeasureMentsEditingGroupCallback; + + Action<MultistageParameterViewModel> ADASGroupEditingCallback = (MultistageParameterViewModel param) => { + AdasEditingEnabled = param.EditingEnabled; + }; + + _parameterViewModels[nameof(EngineStopStartNullable)].EditingChangedCallback = ADASGroupEditingCallback; + _parameterViewModels[nameof(EcoRollTypeNullable)].EditingChangedCallback = ADASGroupEditingCallback; + _parameterViewModels[nameof(PredictiveCruiseControlNullable)].EditingChangedCallback = ADASGroupEditingCallback; + _parameterViewModels[nameof(ATEcoRollReleaseLockupClutch)].EditingChangedCallback = ADASGroupEditingCallback; + + Action<MultistageParameterViewModel> PassengerGroupEditingCallback = (MultistageParameterViewModel param) => { + NumberOfPassengersEditingEnabled = param.EditingEnabled; + }; + + _parameterViewModels[nameof(NumberPassengerSeatsUpperDeck)].EditingChangedCallback = + PassengerGroupEditingCallback; + _parameterViewModels[nameof(NumberPassengerSeatsLowerDeck)].EditingChangedCallback = + PassengerGroupEditingCallback; + _parameterViewModels[nameof(NumberPassengersStandingLowerDeck)].EditingChangedCallback = + PassengerGroupEditingCallback; + _parameterViewModels[nameof(NumberPassengersStandingUpperDeck)].EditingChangedCallback = + PassengerGroupEditingCallback; + + _parameterViewModels[nameof(AirdragModifiedEnum)].EditingChangedCallback = model => { + AirdragModifiedMultistageEditingEnabled = model.EditingEnabled; + }; + + //Setup allowed values + + + _parameterViewModels[nameof(VehicleCode)].AllowedItems = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, VehicleCode>((TUGraz.VectoCommon.Models.VehicleCode + .NOT_APPLICABLE)); + + _parameterViewModels[nameof(LegislativeClass)].AllowedItems = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, LegislativeClass>((TUGraz.VectoCommon.Models + .LegislativeClass.Unknown)); + + _parameterViewModels[nameof(RegisteredClass)].AllowedItems = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, RegistrationClass>(RegistrationClass.unknown); + + //Setup additional consolidatedVehicleData + _parameterViewModels[nameof(EngineStopStartNullable)].PreviousContent = + ConsolidatedVehicleData?.ADAS?.EngineStopStart; + _parameterViewModels[nameof(EcoRollTypeNullable)].PreviousContent = + ConsolidatedVehicleData?.ADAS?.EcoRoll; + _parameterViewModels[nameof(PredictiveCruiseControlNullable)].PreviousContent = + ConsolidatedVehicleData?.ADAS?.PredictiveCruiseControl; + _parameterViewModels[nameof(ATEcoRollReleaseLockupClutch)].PreviousContent = + ConsolidatedVehicleData?.ADAS?.ATEcoRollReleaseLockupClutch; + + //Set Mandatory Fields + + _parameterViewModels[nameof(Manufacturer)].Mandatory = true; + _parameterViewModels[nameof(ManufacturerAddress)].Mandatory = true; + _parameterViewModels[nameof(VIN)].Mandatory = true; + } + + #region Overrides of ViewModelBase + + protected override bool SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null) + { + var propertyChanged = base.SetProperty(ref field, value, propertyName); + + if (propertyChanged && _parameterViewModels != null && _parameterViewModels.ContainsKey(propertyName)) { + _parameterViewModels[propertyName].CurrentContent = value; + } + return propertyChanged; + } + + + + #endregion + + public IVehicleDeclarationInputData ConsolidatedVehicleData + { + get { return _consolidatedVehicleData; } + set { SetProperty(ref _consolidatedVehicleData, value); } + } + + public void SetVehicleInputData(IVehicleDeclarationInputData vehicleInputData) + { + Manufacturer = vehicleInputData.Manufacturer; + Identifier = vehicleInputData.Identifier; + ManufacturerAddress = vehicleInputData.ManufacturerAddress; + VIN = vehicleInputData.VIN; + Model = vehicleInputData.Model; + LegislativeClass = vehicleInputData.LegislativeClass; + CurbMassChassis = vehicleInputData.CurbMassChassis; + GrossVehicleMassRating = vehicleInputData.GrossVehicleMassRating; + AirdragModifiedMultistage = vehicleInputData.AirdragModifiedMultistage; + TankSystem = vehicleInputData.TankSystem; + RegisteredClass = vehicleInputData.RegisteredClass; + NumberPassengerSeatsUpperDeck = vehicleInputData.NumberPassengerSeatsUpperDeck; + NumberPassengerSeatsLowerDeck = vehicleInputData.NumberPassengerSeatsLowerDeck; + NumberPassengersStandingLowerDeck = vehicleInputData.NumberPassengersStandingLowerDeck; + NumberPassengersStandingUpperDeck = vehicleInputData.NumberPassengersStandingUpperDeck; + VehicleCode = vehicleInputData.VehicleCode; + LowEntry = vehicleInputData.LowEntry; + MeasurementsGroupEditingEnabled = + vehicleInputData.Height != null || + vehicleInputData.Width != null || + vehicleInputData.Length != null || + vehicleInputData.EntranceHeight != null; + Height = vehicleInputData.Height; + Width = vehicleInputData.Width; + Length = vehicleInputData.Length; + EntranceHeight = vehicleInputData.EntranceHeight; + DoorDriveTechnology = vehicleInputData.DoorDriveTechnology; + VehicleDeclarationType = vehicleInputData.VehicleDeclarationType; + AdasEditingEnabled = vehicleInputData.ADAS != null; + EngineStopStartNullable = vehicleInputData.ADAS?.EngineStopStart; + EcoRollTypeNullable = vehicleInputData.ADAS?.EcoRoll; + PredictiveCruiseControlNullable = vehicleInputData.ADAS?.PredictiveCruiseControl; + ATEcoRollReleaseLockupClutch = vehicleInputData.ADAS?.ATEcoRollReleaseLockupClutch; + AirdragModifiedMultistage = vehicleInputData.AirdragModifiedMultistage; + foreach (var multistageParameterViewModel in _parameterViewModels.Values) + { + multistageParameterViewModel.UpdateEditingEnabled(); + } + OnPropertyChanged(string.Empty); + } + + + + + #region Implementation used fields in IVehicleInputData + + private string _manufacturer; + private string _model; + private string _vin; + private string _manufacturerAddress; + + private bool _measurementsGroupEditingEnabled = false; + private bool _numberOfPassengersEditingEnabled = false; + private int? _numberOfPassengersUpperDeck; + private int? _numberOfPassengersLowerDeck; + private Kilogram _grossVehicleMassRating; + + private bool? _lowEntry; + private VehicleCode? _vehicleCode; + private RegistrationClass? _registeredClass; + private bool? _airdragModifiedMultistage; + private bool _airdragModifiedEditingEnabled = false; + private LegislativeClass? _legislativeClass; + private ConsumerTechnology? _doorDriveTechnology; + private TankSystem? _tankSystem; + private Kilogram _curbMassChassis; + private ConvertedSI _lengthInMm; + private ConvertedSI _heightMm; + private ConvertedSI _widthInMm; + private ConvertedSI _entranceHeightInMm; + + + + public string Manufacturer + { + get { return _manufacturer; } + set + { + SetProperty(ref _manufacturer, value); + } + } + + + public string Model + { + get { return _model; } + set { SetProperty(ref _model, value); } + } + + public string VIN + { + get { return _vin; } + set { SetProperty(ref _vin, value); } + } + + public string ManufacturerAddress + { + get { return String.IsNullOrEmpty(_manufacturerAddress) ? null : _manufacturerAddress; } + set { SetProperty(ref _manufacturerAddress, value); } + } + + #region Measurements + public bool MeasurementsGroupEditingEnabled + { + get { return _measurementsGroupEditingEnabled; } + set + { + if (SetProperty(ref _measurementsGroupEditingEnabled, value)) { + _parameterViewModels[nameof(HeightInMm)].EditingEnabled = value; + _parameterViewModels[nameof(LengthInMm)].EditingEnabled = value; + _parameterViewModels[nameof(WidthInMm)].EditingEnabled = value; + _parameterViewModels[nameof(EntranceHeightInMm)].EditingEnabled = value; + } + } + } + + public ConvertedSI HeightInMm + { + get => _heightMm; + set => SetProperty(ref _heightMm, value); + } + + public ConvertedSI ConsolidatedHeightInMm + { + get => ConsolidatedVehicleData?.Height?.ConvertToMilliMeter(); + set => throw new NotImplementedException(); + } + + public Meter Height + { + get => HeightInMm?.ConvertToMeter(); + set => HeightInMm = value?.ConvertToMilliMeter(); + } + + public ConvertedSI LengthInMm + { + get { return _lengthInMm; } + set => SetProperty(ref _lengthInMm, value); + } + + public ConvertedSI ConsolidatedLengthInMm + { + get { return ConsolidatedVehicleData?.Length?.ConvertToMilliMeter(); } + set { throw new NotImplementedException(); } + } + + + public Meter Length + { + get => LengthInMm?.ConvertToMeter(); + set => LengthInMm = value?.ConvertToMilliMeter(); + } + + public ConvertedSI WidthInMm + { + get => _widthInMm; + set => SetProperty(ref _widthInMm, value); + } + + public ConvertedSI ConsolidatedWidthInMm + { + get { return ConsolidatedVehicleData?.Width?.ConvertToMilliMeter(); } + set { throw new NotImplementedException(); } + } + + + public Meter Width + { + get => WidthInMm?.ConvertToMeter(); + set => WidthInMm = value?.ConvertToMilliMeter(); + } + + public ConvertedSI ConsolidatedEntranceHeightInMm + { + get { return ConsolidatedVehicleData?.EntranceHeight?.ConvertToMilliMeter(); } + set { throw new NotImplementedException(); } + } + + public ConvertedSI EntranceHeightInMm + { + get => _entranceHeightInMm; + set => SetProperty(ref _entranceHeightInMm, value); + } + + + public Meter EntranceHeight + { + get => EntranceHeightInMm?.ConvertToMeter(); + set => EntranceHeightInMm = value?.ConvertToMilliMeter(); + } + + #endregion + public Kilogram CurbMassChassis //Corrected Actual Mass + { + get => _curbMassChassis; + set => SetProperty(ref _curbMassChassis, value); + } + + public bool NumberOfPassengersEditingEnabled + { + get => _numberOfPassengersEditingEnabled; + set + { + if (SetProperty(ref _numberOfPassengersEditingEnabled, value)) { + _parameterViewModels[nameof(NumberPassengerSeatsUpperDeck)].EditingEnabled = value; + _parameterViewModels[nameof(NumberPassengerSeatsLowerDeck)].EditingEnabled = value; + _parameterViewModels[nameof(NumberPassengersStandingUpperDeck)].EditingEnabled = value; + _parameterViewModels[nameof(NumberPassengersStandingLowerDeck)].EditingEnabled = value; + } + + } + } + + + public int? NumberPassengerSeatsUpperDeck + { + get => _numberOfPassengersUpperDeck; + set => SetProperty(ref _numberOfPassengersUpperDeck, value); + } + + public int? NumberPassengerSeatsLowerDeck + { + get => _numberOfPassengersLowerDeck; + set => SetProperty(ref _numberOfPassengersLowerDeck, value); + } + + public int? NumberPassengersStandingLowerDeck + { + get => _numberPassengersStandingLowerDeck; + set => SetProperty(ref _numberPassengersStandingLowerDeck, value); + } + + public int? NumberPassengersStandingUpperDeck + { + get => _numberPassengersStandingUpperDeck; + set => SetProperty(ref _numberPassengersStandingUpperDeck, value); + } + + + public TankSystem? TankSystem + { + get { return _tankSystem; } + set { SetProperty(ref _tankSystem, value); } + } + + public MultistageParameterViewModel TankSystemVM + { + get => _parameterViewModels[nameof(TankSystem)]; + } + + public Kilogram GrossVehicleMassRating //Technical Permissible Maximum Laden Mass + { + get => _grossVehicleMassRating; + set => SetProperty(ref _grossVehicleMassRating, value); + } + + public ConsumerTechnology? DoorDriveTechnology + { + get => _doorDriveTechnology; + set => SetProperty(ref _doorDriveTechnology, value); + } + + public LegislativeClass? LegislativeClass + { + get => _legislativeClass; + set => SetProperty(ref _legislativeClass, value); + } + + #region AirdragModified + + private AIRDRAGMODIFIED _airdragmodifiedEnum; + public AIRDRAGMODIFIED? AirdragModifiedEnum + { + get + { + return _airdragModifiedMultistage.toAirdragModifiedEnum(); + } + set + { + var prevVal = AirdragModifiedMultistage; + var newVal = value?.toNullableBool(); + if (prevVal != newVal) { + AirdragModifiedMultistage = value?.toNullableBool(); + } + if (_parameterViewModels.ContainsKey(nameof(AirdragModifiedEnum))) + { + _parameterViewModels[nameof(AirdragModifiedEnum)].CurrentContent = value; + } + } + } + + public AIRDRAGMODIFIED? ConsolidatedAirdragModifiedEnum + { + get + { + if (_consolidatedVehicleData?.AirdragModifiedMultistage != null) { + return _consolidatedVehicleData.AirdragModifiedMultistage.toAirdragModifiedEnum(); + } else { + return null; + } + } + set => throw new NotImplementedException(); + } + + + public bool? AirdragModifiedMultistage + { + get + { + return _airdragModifiedMultistage; + } + set + { + if (SetProperty(ref _airdragModifiedMultistage, value)) { + if(value == false){ + MultistageAirdragViewModel.AirDragViewModel = null; + } else { + MultistageAirdragViewModel.RestoreAirdragViewModel(); + } + AirdragModifiedEnum = value.toAirdragModifiedEnum(); + }; + } + } + + public bool AirdragModifiedMultistageMandatory + { + get => _airdragModifiedMultistageMandatory; + set => SetProperty(ref _airdragModifiedMultistageMandatory, value); + } + + public bool AirdragModifiedMultistageEditingEnabled + { + get + { + return _airdragModifiedEditingEnabled; + } + set + { + var val = value; + if (AirdragModifiedMultistageMandatory) { + val = true; + } else { + val = false; + } + if (SetProperty(ref _airdragModifiedEditingEnabled, val)) { + + } + _parameterViewModels[nameof(AirdragModifiedEnum)].EditingEnabled = val; + } + } + + #endregion; + + public RegistrationClass? RegisteredClass + { + get => _registeredClass; + set => SetProperty(ref _registeredClass, value); + } + + public VehicleCode? VehicleCode + { + get => _vehicleCode; + set => SetProperty(ref _vehicleCode, value); + } + + + + public bool? LowEntry + { + get => _lowEntry; + set => SetProperty(ref _lowEntry, value); + } + + + + + + public VehicleDeclarationType VehicleDeclarationType + { + get => _vehicleDeclarationType; + set => SetProperty(ref _vehicleDeclarationType, value); + } + + #endregion + + + private string _identifier; + private IVehicleDeclarationInputData _consolidatedVehicleData; + private VehicleDeclarationType _vehicleDeclarationType; + + + #region implementation of IVehicleComponentsDeclaration + + public IAirdragDeclarationInputData AirdragInputData + { + get => MultistageAirdragViewModel.AirDragViewModel; + } + + public IBusAuxiliariesDeclarationData BusAuxiliaries + { + get => MultistageAuxiliariesViewModel.HasValues ? MultistageAuxiliariesViewModel : null; + } + + #region not implemented + + public string LegislativeCategory + { + get => throw new NotImplementedException(); + } + public IGearboxDeclarationInputData GearboxInputData => throw new NotImplementedException(); + + public ITorqueConverterDeclarationInputData TorqueConverterInputData => throw new NotImplementedException(); + + public IAxleGearInputData AxleGearInputData => throw new NotImplementedException(); + + public IAngledriveInputData AngledriveInputData => throw new NotImplementedException(); + + public IEngineDeclarationInputData EngineInputData => throw new NotImplementedException(); + + public IAuxiliariesDeclarationInputData AuxiliaryInputData => throw new NotImplementedException(); + + public IRetarderInputData RetarderInputData => throw new NotImplementedException(); + + public IPTOTransmissionInputData PTOTransmissionInputData => throw new NotImplementedException(); + + public IAxlesDeclarationInputData AxleWheels => throw new NotImplementedException(); + + + public IElectricStorageDeclarationInputData ElectricStorage => throw new NotImplementedException(); + + public IElectricMachinesDeclarationInputData ElectricMachines => throw new NotImplementedException(); + + #endregion + + #endregion + + + + #region implementation of IAdvancedDriverAssistantSystemDeclarationInputData + + private PredictiveCruiseControlType _predictiveCruiseControl; + private bool? _atEcoRollReleaseLockupClutch; + private EcoRollType _ecoRoll; + private bool _engineStopStart; + private bool _adasEditingEnabled; + private bool? _engineStopStartNullable; + private EcoRollType? _ecoRollTypeNullable; + private PredictiveCruiseControlType? _predictiveCruiseControlNullable; + + + + public IAdvancedDriverAssistantSystemDeclarationInputData ADAS + { + get + { + if (EngineStopStartNullable.HasValue + || EcoRollTypeNullable.HasValue + || PredictiveCruiseControlNullable.HasValue + || ATEcoRollReleaseLockupClutch.HasValue) { + return this; + } else { + return null; + } + ; + } + + + + } + + public bool AdasEditingEnabled + { + get => _adasEditingEnabled; + set + { + if(SetProperty(ref _adasEditingEnabled, value)) { + _parameterViewModels[nameof(EcoRollTypeNullable)].EditingEnabled = value; + _parameterViewModels[nameof(ATEcoRollReleaseLockupClutch)].EditingEnabled = value; + _parameterViewModels[nameof(EngineStopStartNullable)].EditingEnabled = value; + _parameterViewModels[nameof(PredictiveCruiseControlNullable)].EditingEnabled = value; + } + } + } + + public bool? EngineStopStartNullable + { + get => _engineStopStartNullable; + set + { + SetProperty(ref _engineStopStartNullable, value); + } + } + + public bool EngineStopStart + { + get + { + return _engineStopStartNullable.HasValue ? _engineStopStartNullable.Value : false; + } + } + + public EcoRollType? EcoRollTypeNullable + { + get => _ecoRollTypeNullable; + set + { + SetProperty(ref _ecoRollTypeNullable, value); + } + } + + public EcoRollType EcoRoll + { + get + { + return _ecoRollTypeNullable.HasValue ? _ecoRollTypeNullable.Value : EcoRollType.None; + } + } + + public PredictiveCruiseControlType? PredictiveCruiseControlNullable + { + get => _predictiveCruiseControlNullable; + set + { + SetProperty(ref _predictiveCruiseControlNullable, value); + } + } + + public PredictiveCruiseControlType PredictiveCruiseControl + { + get + { + return _predictiveCruiseControlNullable.HasValue + ? _predictiveCruiseControlNullable.Value + : PredictiveCruiseControlType.None; + } + } + + public bool? ATEcoRollReleaseLockupClutch + { + get => _atEcoRollReleaseLockupClutch; + set + { + SetProperty(ref _atEcoRollReleaseLockupClutch, value); + } + } + + #endregion + + + #region implementation of IVehicleDeclarationInputData; + + public DateTime Date + { + get => DateTime.Today; + } + + public string AppVersion + { + get { throw new NotImplementedException(); } + } + + public CertificationMethod CertificationMethod + { + get { throw new NotImplementedException(); } + } + + public string CertificationNumber + { + get { throw new NotImplementedException(); } + } + + public DigestData DigestValue + { + get { throw new NotImplementedException(); } + } + + public string Identifier + { + get + { + return _identifier; + } + private set + { + SetProperty(ref _identifier, value); + } + } + + public bool ExemptedVehicle + { + get { throw new NotImplementedException(); } + } + + + + public VehicleCategory VehicleCategory + { + get { throw new NotImplementedException(); } + } + + public AxleConfiguration AxleConfiguration + { + get { throw new NotImplementedException(); } + } + + + + + public IList<ITorqueLimitInputData> TorqueLimits + { + get { throw new NotImplementedException(); } + } + + + public PerSecond EngineIdleSpeed + { + get { throw new NotImplementedException(); } + } + + public bool VocationalVehicle + { + get { throw new NotImplementedException(); } + } + + public bool SleeperCab + { + get { throw new NotImplementedException(); } + } + + + + + + + + public bool ZeroEmissionVehicle + { + get { throw new NotImplementedException(); } + } + + public bool HybridElectricHDV + { + get { throw new NotImplementedException(); } + } + + public bool DualFuelVehicle + { + get { throw new NotImplementedException(); } + } + + public Watt MaxNetPower1 + { + get { throw new NotImplementedException(); } + } + + public Watt MaxNetPower2 + { + get { throw new NotImplementedException(); } + } + + + + public CubicMeter CargoVolume + { + get { throw new NotImplementedException(); } + } + + + public bool Articulated + { + get { throw new NotImplementedException(); } + } + + + + + + public IVehicleComponentsDeclaration Components + { + get + { + if (AirdragInputData != null || BusAuxiliaries != null) { + return this; + } else { + return null; + } + } + } + + + public XmlNode XMLSource + { + get { throw new NotImplementedException(); } + } + + public IPTOViewModel PTOViewModel + { + get { throw new NotImplementedException(); } + } + + public RetarderType RetarderType + { + get { throw new NotImplementedException(); } + } + + public double RetarderRatio + { + get { throw new NotImplementedException(); } + } + + public AngledriveType AngledriveType + { + get { throw new NotImplementedException(); } + } + + #endregion; + + + + #region Implementation of IDataErrorInfo + + public Dictionary<string, string> Errors { get; private set; } = new Dictionary<string, string>(); + + public string this[string propertyName] + { + get + { + string result = null; + switch (propertyName) { + case nameof(Manufacturer): + if (string.IsNullOrWhiteSpace(Manufacturer)) { + result = "Manufacturer must not be empty"; + } + + break; + case nameof(ManufacturerAddress): + if (string.IsNullOrWhiteSpace(ManufacturerAddress)) + { + result = "Manufacturer address must not be empty"; + } + break; + case nameof(VIN): + if (string.IsNullOrEmpty(VIN)) { + result = "VIN must not be empty"; + } + break; + case nameof(AirdragModifiedEnum): + if (AirdragModifiedMultistageEditingEnabled && (AirdragModifiedEnum == AIRDRAGMODIFIED.UNKNOWN)) { + result = "Air drag modified has to be set"; + } + break; + case nameof(EcoRollTypeNullable): + case nameof(EngineStopStartNullable): + case nameof(PredictiveCruiseControlNullable): + case nameof(ATEcoRollReleaseLockupClutch): + if (AdasEditingEnabled == true && this.GetType().GetProperty(propertyName).GetValue(this) == null){ + result = $"{NameResolver.ResolveName(propertyName, BusStrings.ResourceManager, Strings.ResourceManager)} has to be set if editing is enabled}}"; + } + break; + default: + if (_parameterViewModels[propertyName].EditingEnabled) { + var propertyValue = this.GetType().GetProperty(propertyName)?.GetValue(this); + if (propertyValue == null) { + result = + $"{NameResolver.ResolveName(propertyName, BusStrings.ResourceManager, Strings.ResourceManager)} has to be set if editing is enabled}}"; + } else { + if (propertyValue.GetType() == typeof(string) && string.IsNullOrWhiteSpace(propertyValue as string)) + { + result = + $"{NameResolver.ResolveName(propertyName, BusStrings.ResourceManager, Strings.ResourceManager)} has to be set if editing is enabled}}"; + } + } + } + + break; + } + //https://www.youtube.com/watch?v=5KF0GGObuAQ + + if (result == null) { + if(Errors.ContainsKey(propertyName)) + Errors.Remove(propertyName); + } else { + Errors[propertyName] = result; + } + + + return result; + } + } + + public string Error + { + get => String.Join(",", Errors.Values); + } + public bool HasErrors + { + get + { + return !Error.IsNullOrEmpty() || MultistageAuxiliariesViewModel.HasErrors; + } + } + #endregion + + private bool _airdragModifiedMultistageMandatory; + private int? _numberPassengersStandingLowerDeck; + private int? _numberPassengersStandingUpperDeck; + + + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0f8a942108ebf574af9b5dcc2d7640a11bf3dc9 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mime; +using System.Security.RightsManagement; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.Impl; +using TUGraz.VectoCore.Models.GenericModelData; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.Interfaces.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + public class ManufacturingStageViewModel_v0_1 : ViewModelBase, IManufacturingStageViewModel + { + public static readonly string INPUTPROVIDERTYPE = typeof(XMLDeclarationMultistageTypeInputDataV01).ToString(); + public static readonly string QualifiedXSD = XMLDeclarationMultistageTypeInputDataV01.QUALIFIED_XSD_TYPE; + private Dictionary<string, IViewModelBase> Components = new Dictionary<string, IViewModelBase>(StringComparer.CurrentCultureIgnoreCase); + + public DigestData HashPreviousStage + { + get => _hashPreviousStage; + set => SetProperty(ref _hashPreviousStage, value); + } + + public int StageCount + { + get => _stageCount; + set => SetProperty(ref _stageCount, value); + } + + public IVehicleDeclarationInputData Vehicle => _vehicleViewModel; + + public IViewModelBase CurrentView + { + get => _currentview; + set => SetProperty(ref _currentview, value); + } + + private IApplicationInformation _applicationInformation = new ApplicationInformation { + Date = DateTime.Today, + }; + private IMultistageVehicleViewModel _vehicleViewModel; + private IMultiStageViewModelFactory _viewModelFactory; + private IViewModelBase _currentview; + + public IMultistageVehicleViewModel VehicleViewModel + { + get => _vehicleViewModel; + set => SetProperty(ref _vehicleViewModel, value); + } + + public IApplicationInformation ApplicationInformation + { + get => _applicationInformation; + + } + + public DigestData Signature => throw new NotImplementedException(); + public void SetInputData(IVehicleDeclarationInputData vehicleInputData) + { + VehicleViewModel.SetVehicleInputData(vehicleInputData); + VehicleViewModel.MultistageAirdragViewModel.SetAirdragInputData(vehicleInputData?.Components?.AirdragInputData); + VehicleViewModel.MultistageAuxiliariesViewModel.SetAuxiliariesInputData(vehicleInputData?.Components?.BusAuxiliaries); + OnPropertyChanged(nameof(CurrentView)); + + } + + + public ManufacturingStageViewModel_v0_1(IManufacturingStageInputData consolidatedManufacturingStageInputData, IMultiStageViewModelFactory viewModelFactory) + { + Title = "Edit Manufacturing Stage"; + _viewModelFactory = viewModelFactory; + + _stageCount = consolidatedManufacturingStageInputData?.StageCount + 1 ?? 2; + + _consolidatedManufacturingStageInputData = consolidatedManufacturingStageInputData; + + + VehicleViewModel = (IMultistageVehicleViewModel)_viewModelFactory.GetInterimStageVehicleViewModel(consolidatedManufacturingStageInputData?.Vehicle); + CurrentView = VehicleViewModel as IViewModelBase; + + + Components.Add(VehicleViewModel.Name, VehicleViewModel as IViewModelBase); + + + + Components.Add("Airdrag", VehicleViewModel.MultistageAirdragViewModel as IViewModelBase); + + Components.Add("Auxiliaries", VehicleViewModel.MultistageAuxiliariesViewModel as IViewModelBase); + } + + + + private int _stageCount; + private DigestData _hashPreviousStage; + private IManufacturingStageInputData _consolidatedManufacturingStageInputData; + + #region Commands + + private ICommand _switchComponentViewCommand; + + + public ICommand SwitchComponentViewCommand + { + get { + return _switchComponentViewCommand ?? new RelayCommand<string>(SwitchViewExecute, (string s) => true); + } + } + + private void SwitchViewExecute(string viewToShow) + { + IViewModelBase newView; + var success= Components.TryGetValue(viewToShow, out newView); + if (success) { + CurrentView = newView; + } + } + + #endregion + + private class ApplicationInformationMultistage : IApplicationInformation + { + public string SimulationToolVersion => "VECTO3"; + + public DateTime Date => DateTime.Today; + } + } + + public interface IManufacturingStageViewModel : IManufacturingStageInputData + { + void SetInputData(IVehicleDeclarationInputData vehicleInputData); + IMultistageVehicleViewModel VehicleViewModel { get; } + } +} diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..03e0394b8961589b7d5c4c7af9ae954b3d84636b --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows; +using System.Windows.Input; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Schema; +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; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Ninject; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; +using ViewModelBase = VECTO3GUI2020.ViewModel.Implementation.Common.ViewModelBase; +using XmlDocumentType = System.Xml.XmlDocumentType; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + public class MultistageAirdragViewModel : ViewModelBase, IMultistageAirdragViewModel + { + private IAirDragViewModel _airdragViewModel; + + private void OnAirdragViewModelChanged() + { + AirdragViewModelChanged?.Invoke(this, EventArgs.Empty); + } + public string AirdragFilePath + { + get + { + return AirDragViewModel?.DataSource.SourceFile.ToString(); + } + set => SetProperty(ref _airdragFilePath, value); + } + + public EventHandler AirdragViewModelChanged { get; set; } + + public IAirDragViewModel AirDragViewModel + { + get => _airdragViewModel; + set + { + StoreAirdragViewModel(); + if (SetProperty(ref _airdragViewModel, value)) { + OnAirdragViewModelChanged(); + }; + } + } + + private void StoreAirdragViewModel() + { + if (AirDragViewModel != null && StoredAirdragViewModel != AirDragViewModel) { + StoredAirdragViewModel = AirDragViewModel; + } + } + + public void RestoreAirdragViewModel() + { + if (AirDragViewModel == null) { + AirDragViewModel = StoredAirdragViewModel; + } + } + + private IAirDragViewModel StoredAirdragViewModel { get; set; } = null; + + + public void SetAirdragInputData(IAirdragDeclarationInputData airdragInputData) + { + Debug.WriteLine("[MultistageAirdragViewModel] loaded AirdragInputData"); + if (airdragInputData == null) { + AirDragViewModel = null; + return; + + } + AirDragViewModel = _dependencies.ComponentViewModelFactory.CreateComponentViewModel(airdragInputData) as IAirDragViewModel; + if (AirDragViewModel != null) { + AirDragViewModel.LabelVisible = false; + AirDragViewModel.IsReadOnly = true; + } + } + + public IAirdragDeclarationInputData ConsolidatedAirdragData + { + get => _consolidatedAirdragInputData; + set => SetProperty(ref _consolidatedAirdragInputData, value); + } + + + #region Commands + + + + private ICommand _loadAirdragFileCommand; + private ICommand _removeAirdragDataCommand; + + + + private Dictionary<string, string> _validationErrors; + + private IAirdragDeclarationInputData _consolidatedAirdragInputData; + private string _airdragFilePath; + private readonly IMultistageDependencies _dependencies; + + public ICommand LoadAirdragFileCommand + { + get => _loadAirdragFileCommand ?? new RelayCommand(LoadAirdragFileCommandExecute, () => true); + } + + public void LoadAirdragFileCommandExecute() + { + var fileName =_dependencies.DialogHelper.OpenXMLFileDialog(); + if (fileName == null) { + return; + } + var success = LoadAirdragFile(fileName); + + if (success) { + AirdragFilePath = fileName; + } else { + _dependencies.DialogHelper.ShowMessageBox("Invalid input file", "Error", MessageBoxButton.OK, + MessageBoxImage.Error); + } + + } + + public bool LoadAirdragFile(string fileName) + { + var success = true; + var errorStringBuilder = new StringBuilder(); + try { + var xDoc = XDocument.Load(fileName); + var doc = new XmlDocument(); + doc.Load(fileName); + + var airdragElements = xDoc.Descendants().Where(e => e.Name.LocalName == XMLNames.Component_AirDrag); + if (airdragElements.Count() == 1) { + //GET FROM FILE + var dataProviderVersion = XMLDeclarationAirdragDataProviderV20.QUALIFIED_XSD_TYPE; + + + var validator = new XMLValidator(doc); + var valid = validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType + .DeclarationComponentData); + if (!valid) { + throw new VectoException("Invalid input file"); + } + + //dataProviderVersion = XMLHelper.GetVersion(doc.Node); + + XElement airdragElement = airdragElements.First(); + XmlNode airdragNode = airdragElement.ToXmlNode(); + + var airDragInputData = + _dependencies.InjectFactory.CreateAirdragData(dataProviderVersion, null, airdragNode, fileName); + AirDragViewModel = + _dependencies.ComponentViewModelFactory.CreateComponentViewModel(airDragInputData) as IAirDragViewModel; + AirDragViewModel.IsReadOnly = true; + AirDragViewModel.LabelVisible = false; + success = true; + } else { + success = false; + } + } catch (Exception e) { + _dependencies.DialogHelper.ShowMessageBox(e.Message, + "Invalid File", + MessageBoxButton.OK, + MessageBoxImage.Error); + success = false; + } + + return success; + } + + + private void ValidationErrorAction(XmlSeverityType arg1, ValidationEvent arg2) + { + var xmlException = arg2?.ValidationEventArgs?.Exception as XmlSchemaValidationException; + if (xmlException != null) + { + var message = xmlException.InnerException; + var sourceObject = xmlException.SourceObject as XmlElement; + var localName = sourceObject?.LocalName; + + if (sourceObject != null) + _validationErrors.Add(localName, message?.Message); + } + } + + public ICommand RemoveAirdragDataCommand{ + get => _removeAirdragDataCommand ?? new RelayCommand(() => { + RemoveAirdragComponent(); + OnPropertyChanged(nameof(AirdragFilePath)); + }, () => AirDragViewModel != null); + } + + #endregion + + public void RemoveAirdragComponent() + { + AirDragViewModel = null; + StoredAirdragViewModel = null; + OnPropertyChanged(nameof(AirdragFilePath)); + + } + + + + public MultistageAirdragViewModel(IMultistageDependencies dependencies) + { + _dependencies = dependencies; + _airdragFilePath = "Select Airdrag File - if no file is selected a default Airdrag Component is loaded"; + } + + public MultistageAirdragViewModel(IAirdragDeclarationInputData consolidatedAirdragInputData, + IMultistageDependencies multistageDependencies) : this(multistageDependencies) + { + ConsolidatedAirdragData = consolidatedAirdragInputData; + } + + public DataSource DataSource => _airdragViewModel?.DataSource; + + public bool SavedInDeclarationMode => _airdragViewModel?.SavedInDeclarationMode ?? false; + + public string Manufacturer => _airdragViewModel?.Manufacturer; + + public string Model => _airdragViewModel?.Model; + + public DateTime Date => _airdragViewModel.Date; + + public string AppVersion => _airdragViewModel.AppVersion; + + public CertificationMethod CertificationMethod => _airdragViewModel.CertificationMethod; + + public string CertificationNumber => _airdragViewModel.CertificationNumber; + + public DigestData DigestValue => _airdragViewModel.DigestValue; + + public SquareMeter AirDragArea => _airdragViewModel.AirDragArea; + + public SquareMeter TransferredAirDragArea => _airdragViewModel.TransferredAirDragArea; + + public SquareMeter AirDragArea_0 => _airdragViewModel.AirDragArea_0; + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..3b762b2fa2417a2ba5c7924235905c64392b2b0d --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs @@ -0,0 +1,875 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices.WindowsRuntime; +using System.Windows.Forms; +using System.Windows.Input; +using System.Xml; +using Castle.Core.Internal; +using Microsoft.Toolkit.Mvvm.Input; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl; +using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using EnumHelper = VECTO3GUI2020.Helper.EnumHelper; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + + public interface IMultistageAuxiliariesViewModel : IBusAuxiliariesDeclarationData, + IElectricSupplyDeclarationData, + IPneumaticSupplyDeclarationData, + IElectricConsumersDeclarationData, + IPneumaticConsumersDeclarationData, + IHVACBusAuxiliariesDeclarationData + { + void SetAuxiliariesInputData(IBusAuxiliariesDeclarationData componentsAuxiliaryInputData); + bool HasValues { get; } + object PrimaryVehicleHybridElectric { get; set; } + bool HasErrors { get; } + Dictionary<string, string> Errors { get; } + } + + + public class MultistageAuxiliariesViewModel : ViewModelBase, IMultistageAuxiliariesViewModel, IDataErrorInfo + { + + public MultistageAuxiliariesViewModel(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData) + { + ConsolidatedInputData = consolidatedAuxiliariesInputData; + if (ConsolidatedInputData?.HVACAux?.HeatPumpPassengerCompartments != null) { + _consolidatedHeatPumpConfigurationsPassenger = new ObservableCollection<HeatPumpConfiguration>(); + foreach (var (heatPumpType, heatPumpMode) in ConsolidatedInputData?.HVACAux?.HeatPumpPassengerCompartments) { + ConsolidatedHeatPumpConfigurationsPassenger.Add(new HeatPumpConfiguration() + { + HeatPumpMode = heatPumpMode, + HeatPumpType = heatPumpType, + IsReadOnly = true, + }); + } + } + + CreateParameterViewModels(); + } + + private void CreateParameterViewModels() + { + _parameterViewModels = new Dictionary<string, MultistageParameterViewModel>(); + var properties = this.GetType().GetProperties(); + var backedUpParameters = new HashSet<string>() { + nameof(InteriorLightsLED), + nameof(DayrunninglightsLED), + nameof(PositionlightsLED), + nameof(BrakelightsLED), + nameof(HeadlightsLED), + + nameof(SystemConfiguration), + nameof(HeatPumpModeDriverCompartment), + nameof(HeatPumpTypeDriverCompartment), + + nameof(AuxHeaterPower), + nameof(DoubleGlazing), + nameof(AirElectricHeater), + nameof(AdjustableAuxiliaryHeater), + nameof(SeparateAirDistributionDucts), + nameof(OtherHeatingTechnology), + nameof(WaterElectricHeater) + }; + + foreach (var property in properties) + { + if (!backedUpParameters.Contains(property.Name)) + { + continue; + } + + + object previousInputData = null; + try + { + previousInputData = ConsolidatedInputData?.GetType().GetProperty(nameof(property.Name))? + .GetValue(ConsolidatedInputData); + } + catch (Exception e) + { + Debug.WriteLine(e.Message); + } + + _parameterViewModels.Add(property.Name, new MultistageParameterViewModel(property.Name, previousInputData, this, + resourceManagers: new ResourceManager[] { BusStrings.ResourceManager, Strings.ResourceManager } + )); + } + + //Set consolidated Data + _parameterViewModels[nameof(InteriorLightsLED)].PreviousContent = + ConsolidatedInputData?.ElectricConsumers.InteriorLightsLED; + _parameterViewModels[nameof(DayrunninglightsLED)].PreviousContent = + ConsolidatedInputData?.ElectricConsumers.DayrunninglightsLED; + _parameterViewModels[nameof(PositionlightsLED)].PreviousContent = + ConsolidatedInputData?.ElectricConsumers.PositionlightsLED; + _parameterViewModels[nameof(BrakelightsLED)].PreviousContent = + ConsolidatedInputData?.ElectricConsumers.BrakelightsLED; + _parameterViewModels[nameof(HeadlightsLED)].PreviousContent = + ConsolidatedInputData?.ElectricConsumers.HeadlightsLED; + _parameterViewModels[nameof(SystemConfiguration)].PreviousContent = + ConsolidatedInputData?.HVACAux.SystemConfiguration; + _parameterViewModels[nameof(HeatPumpModeDriverCompartment)].PreviousContent = + ConsolidatedInputData?.HVACAux.HeatPumpModeDriverCompartment; + //_parameterViewModels[nameof(HeatPumpTypePassengerCompartment)].PreviousContent = + // ConsolidatedInputData?.HVACAux.HeatPumpTypePassengerCompartment; + _parameterViewModels[nameof(HeatPumpTypeDriverCompartment)].PreviousContent = + ConsolidatedInputData?.HVACAux.HeatPumpTypeDriverCompartment; + //_parameterViewModels[nameof(HeatPumpModePassengerCompartment)].PreviousContent = + // ConsolidatedInputData?.HVACAux.HeatPumpModePassengerCompartment; + _parameterViewModels[nameof(AuxHeaterPower)].PreviousContent = + ConsolidatedInputData?.HVACAux.AuxHeaterPower; + _parameterViewModels[nameof(DoubleGlazing)].PreviousContent = + ConsolidatedInputData?.HVACAux.DoubleGlazing; + _parameterViewModels[nameof(AdjustableAuxiliaryHeater)].PreviousContent = + ConsolidatedInputData?.HVACAux.AdjustableAuxiliaryHeater; + _parameterViewModels[nameof(SeparateAirDistributionDucts)].PreviousContent = + ConsolidatedInputData?.HVACAux.SeparateAirDistributionDucts; + _parameterViewModels[nameof(AirElectricHeater)].PreviousContent = + ConsolidatedInputData?.HVACAux.AirElectricHeater; + _parameterViewModels[nameof(OtherHeatingTechnology)].PreviousContent = + ConsolidatedInputData?.HVACAux.OtherHeatingTechnology; + + + //Set editinggroups + Action<MultistageParameterViewModel> HeatPumpGroupEditingEnabledCallback = model => { + HeatPumpGroupEditingEnabled = model.EditingEnabled; + }; + _parameterViewModels[nameof(SystemConfiguration)].EditingChangedCallback = + HeatPumpGroupEditingEnabledCallback; + _parameterViewModels[nameof(HeatPumpModeDriverCompartment)].EditingChangedCallback = + HeatPumpGroupEditingEnabledCallback; + _parameterViewModels[nameof(HeatPumpTypeDriverCompartment)].EditingChangedCallback = + HeatPumpGroupEditingEnabledCallback; + + //Setup AllowedValues + HeatPumpModeDriverCompartmentAllowedValues = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, HeatPumpMode>(HeatPumpMode.N_A); + + SystemConfigurationAllowedValues = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, BusHVACSystemConfiguration>( + BusHVACSystemConfiguration.Unknown); + } + + protected override bool SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null) + { + var propertyChanged = base.SetProperty(ref field, value, propertyName); + + if (propertyChanged && _parameterViewModels != null && _parameterViewModels.ContainsKey(propertyName)) + { + _parameterViewModels[propertyName].CurrentContent = value; + } + return propertyChanged; + } + + public void SetAuxiliariesInputData(IBusAuxiliariesDeclarationData componentsAuxiliaryInputData) + { + if (componentsAuxiliaryInputData == null) + { + return; + } + + HeatPumpGroupEditingEnabled = componentsAuxiliaryInputData.HVACAux != null; + SystemConfiguration = componentsAuxiliaryInputData.HVACAux?.SystemConfiguration; + HeatPumpTypeDriverCompartment = componentsAuxiliaryInputData.HVACAux?.HeatPumpTypeDriverCompartment; + HeatPumpModeDriverCompartment = componentsAuxiliaryInputData.HVACAux?.HeatPumpModeDriverCompartment; + HeatPumpConfigurationsPassenger = null; + HeatPumpConfigurationsPassenger = new ObservableCollection<HeatPumpConfiguration>(); + if (componentsAuxiliaryInputData?.HVACAux?.HeatPumpPassengerCompartments != null) + { + foreach (var (heatPumpType, heatPumpMode) in componentsAuxiliaryInputData.HVACAux.HeatPumpPassengerCompartments) + { + HeatPumpConfigurationsPassenger.Add(new HeatPumpConfiguration() + { + HeatPumpType = heatPumpType, + HeatPumpMode = heatPumpMode, + }); + } + } + + + + AuxHeaterPower = componentsAuxiliaryInputData.HVACAux?.AuxHeaterPower; + DoubleGlazing = componentsAuxiliaryInputData.HVACAux?.DoubleGlazing; + AdjustableAuxiliaryHeater = componentsAuxiliaryInputData.HVACAux?.AdjustableAuxiliaryHeater; + SeparateAirDistributionDucts = componentsAuxiliaryInputData.HVACAux?.SeparateAirDistributionDucts; + WaterElectricHeater = componentsAuxiliaryInputData.HVACAux?.WaterElectricHeater; + AirElectricHeater = componentsAuxiliaryInputData.HVACAux?.AirElectricHeater; + OtherHeatingTechnology = componentsAuxiliaryInputData.HVACAux?.OtherHeatingTechnology; + + InteriorLightsLED = componentsAuxiliaryInputData.ElectricConsumers?.InteriorLightsLED; + DayrunninglightsLED = componentsAuxiliaryInputData.ElectricConsumers?.DayrunninglightsLED; + PositionlightsLED = componentsAuxiliaryInputData.ElectricConsumers?.PositionlightsLED; + HeadlightsLED = componentsAuxiliaryInputData.ElectricConsumers?.HeadlightsLED; + BrakelightsLED = componentsAuxiliaryInputData.ElectricConsumers?.BrakelightsLED; + + foreach (var multistageParameterViewModel in _parameterViewModels.Values) + { + multistageParameterViewModel.UpdateEditingEnabled(); + } + OnPropertyChanged(String.Empty); + } + + + + private IBusAuxiliariesDeclarationData _consolidatedInputData; + + + public IBusAuxiliariesDeclarationData ConsolidatedInputData + { + get => _consolidatedInputData; + set => SetProperty(ref _consolidatedInputData, value); + } + + public bool HasValues + { + get + { + var hasValues = false; + + + //Check if one of the Implemented properties of is not null + var HVACinterfaceProperties = typeof(IHVACBusAuxiliariesDeclarationData).GetProperties(); + + var notImplemented = new List<string>(new string[] { + nameof(IHVACBusAuxiliariesDeclarationData.AdjustableCoolantThermostat), + nameof(IHVACBusAuxiliariesDeclarationData.EngineWasteGasHeatExchanger) + }); + + foreach (var propInfo in HVACinterfaceProperties) { + if (notImplemented.Contains(propInfo.Name)) continue; + hasValues = hasValues || propInfo.GetValue(this) != null; + } + + + var ElectricConsumersInterfaceProperties = typeof(IElectricConsumersDeclarationData).GetProperties(); + foreach (var propInfo in ElectricConsumersInterfaceProperties) { + hasValues = hasValues || propInfo.GetValue(this) != null; + } + + + + return hasValues; + } + } + + private object _primaryVehicleHybridElectric = false; + public object PrimaryVehicleHybridElectric + { + get => _primaryVehicleHybridElectric; + set => SetProperty(ref _primaryVehicleHybridElectric, value); + } + + private IndexedStorage<bool> _editingEnabledDictionary; + public IndexedStorage<bool> EditingEnabledDictionary + { + get + { + return _editingEnabledDictionary; + } + } + + + + #region HVAC + + private bool _heatPumpGroupEditingEnabled; + private BusHVACSystemConfiguration? _systemConfiguration; + private HeatPumpType? _heatPumpTypeDriverCompartment; + private HeatPumpMode? _heatPumpModeDriverCompartment; + + + + + public IHVACBusAuxiliariesDeclarationData HVACAux + { + get => this; + set => throw new NotImplementedException(); + } + + + private Watt _auxHeaterPower; + private bool? _doubleGlazing; + private bool? _adjustableAuxiliaryHeater; + private bool? _separateAirDistributionDucts; + private bool? _waterElectricHeater; + private bool? _airElectricHeater; + private bool? _otherHeatingTechnology; + + + + public Watt AuxHeaterPower + { + get => _auxHeaterPower; + set => SetProperty(ref _auxHeaterPower, value); + } + + public bool? DoubleGlazing + { + get => _doubleGlazing; + set => SetProperty(ref _doubleGlazing, value); + } + + public bool? AdjustableAuxiliaryHeater + { + get => _adjustableAuxiliaryHeater; + set => SetProperty(ref _adjustableAuxiliaryHeater, value); + } + + public bool? SeparateAirDistributionDucts + { + get => _separateAirDistributionDucts; + set => SetProperty(ref _separateAirDistributionDucts, value); + } + + public bool? WaterElectricHeater + { + get => _waterElectricHeater; + set => SetProperty(ref _waterElectricHeater, value); + } + + public bool? AirElectricHeater + { + get => _airElectricHeater; + set => SetProperty(ref _airElectricHeater, value); + } + + public bool? OtherHeatingTechnology + { + get => _otherHeatingTechnology; + set => SetProperty(ref _otherHeatingTechnology, value); + } + + public bool? AdjustableCoolantThermostat => throw new NotImplementedException(); + + public bool EngineWasteGasHeatExchanger => throw new NotImplementedException(); + + #region Heatpump + + private ICommand _addPassengerHeatpumpCommand; + + public ICommand AddPassengerHeatpumpCommand + { + get => _addPassengerHeatpumpCommand ?? + new RelayCommand(() => { + HeatPumpGroupEditingEnabled = true; + if (HeatPumpConfigurationsPassenger == null) { + HeatPumpConfigurationsPassenger = new ObservableCollection<HeatPumpConfiguration>(); + } + HeatPumpConfigurationsPassenger.Add(new HeatPumpConfiguration()); + }, + () => true); + } + + public ICommand _removePasssengerHeatpumpCommand; + + public ICommand RemovePassengerHeatpumpCommand + { + get => _removePasssengerHeatpumpCommand ?? + new RelayCommand<HeatPumpConfiguration>(hp => HeatPumpConfigurationsPassenger?.Remove(hp), (hp) => true); + } + + public IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments{ + get + { + IList<Tuple<HeatPumpType,HeatPumpMode>> list = null; + if (HeatPumpConfigurationsPassenger != null) { + list = new List<Tuple<HeatPumpType, HeatPumpMode>>(); + foreach (var heatPumpConfiguration in HeatPumpConfigurationsPassenger) + { + list.Add(new Tuple<HeatPumpType, HeatPumpMode>((HeatPumpType)heatPumpConfiguration.HeatPumpType, (HeatPumpMode)heatPumpConfiguration.HeatPumpMode)); + } + } + + + return list; + } + } + + public ObservableCollection<HeatPumpConfiguration> ConsolidatedHeatPumpConfigurationsPassenger + { + get => _consolidatedHeatPumpConfigurationsPassenger; + private set => SetProperty(ref _consolidatedHeatPumpConfigurationsPassenger, value); + } + + + public ObservableCollection<HeatPumpConfiguration> HeatPumpConfigurationsPassenger + { + get => _heatPumpConfigurationsPassenger; + private set => SetProperty(ref _heatPumpConfigurationsPassenger, value); + } + + public class HeatPumpConfiguration : ViewModelBase, ITuple, IDataErrorInfo + { + public MultistageParameterViewModel HeatPumpTypeVM { get; } + public MultistageParameterViewModel HeatPumpModeVM { get; } + + private HeatPumpType? _heatPumpType; + private HeatPumpMode? _heatPumpMode; + + public HeatPumpType? HeatPumpType + { + get => _heatPumpType; + set + { + if (SetProperty(ref _heatPumpType, value)) { + + if (value == TUGraz.VectoCommon.BusAuxiliaries.HeatPumpType.none) + { + HeatPumpModeVM.AllowedItems = + EnumHelper.GetValuesAsObservableCollectionIncluding<Enum, HeatPumpMode>( + items: TUGraz.VectoCommon.BusAuxiliaries.HeatPumpMode.N_A); + } + else + { + HeatPumpModeVM.AllowedItems = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, HeatPumpMode>( + items: TUGraz.VectoCommon.BusAuxiliaries.HeatPumpMode.N_A); + } + + HeatPumpTypeVM.CurrentContent = value; + } + } + } + + + public HeatPumpMode? HeatPumpMode + { + get => _heatPumpMode; + set + { + if (SetProperty(ref _heatPumpMode, value)) { + HeatPumpModeVM.CurrentContent = value; + } + } + } + public HeatPumpConfiguration() + { + HeatPumpModeVM = new MultistageParameterViewModel(nameof(HeatPumpMode), null, this, ViewMode.COMBOBOX, + mandatory: true, resourceManagers: new ResourceManager[] { + BusStrings.ResourceManager, + Strings.ResourceManager, + }) { + AllowedItems = EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, HeatPumpMode>(items: TUGraz.VectoCommon.BusAuxiliaries.HeatPumpMode.N_A) + }; + HeatPumpTypeVM = new MultistageParameterViewModel(nameof(HeatPumpType), null, this, ViewMode.COMBOBOX, + mandatory: true, resourceManagers: new ResourceManager[] { + BusStrings.ResourceManager, + Strings.ResourceManager, + }); + } + + public bool IsReadOnly + { + get => HeatPumpModeVM.IsReadOnly && HeatPumpTypeVM.IsReadOnly; + set + { + HeatPumpTypeVM.IsReadOnly = value; + HeatPumpModeVM.IsReadOnly = value; + } + } + + #region Implementation of ITuple + + int ITuple.Length => 2; + + object ITuple.this[int index] + { + get + { + return null; + } + } + + #endregion + + #region Implementation of IDataErrorInfo + + string IDataErrorInfo.this[string columnName] + { + get + { + string result = null; + switch (columnName) { + case nameof(HeatPumpType): + if (HeatPumpType == null) { + result = $"{columnName} must not be empty"; + } + break; + case nameof(HeatPumpMode): + if (HeatPumpMode == null) { + result = $"{columnName} must not be empty"; + } + break; + default: + result = null; + break; + } + + if (result == null) + { + if (Errors.ContainsKey(columnName)) + Errors.Remove(columnName); + } + else + { + Errors[columnName] = result; + } + + + + return result; + } + } + + private Dictionary<string, string> Errors { get; } = new Dictionary<string, string>(); + + public bool HasErrors + { + get => !Errors.IsNullOrEmpty(); + + } + string IDataErrorInfo.Error => String.Join(",", Errors.Values); + + #endregion + } + + public bool HeatPumpGroupEditingEnabled + { + get => _heatPumpGroupEditingEnabled; + set + { + if (SetProperty(ref _heatPumpGroupEditingEnabled, value)) { + _parameterViewModels[nameof(HeatPumpModeDriverCompartment)].EditingEnabled = value; + _parameterViewModels[nameof(HeatPumpTypeDriverCompartment)].EditingEnabled = value; + _parameterViewModels[nameof(SystemConfiguration)].EditingEnabled = value; + if (value == false) { + HeatPumpConfigurationsPassenger = null; + } + } + } + } + + private ObservableCollection<Enum> _systemConfigurationAllowedValues; + public ObservableCollection<Enum> SystemConfigurationAllowedValues + { + get => _systemConfigurationAllowedValues; + set + { + if (SetProperty(ref _systemConfigurationAllowedValues, value)) { + _parameterViewModels[nameof(SystemConfiguration)].AllowedItems = value; + } + } + } + + + public BusHVACSystemConfiguration? SystemConfiguration + { + get => _systemConfiguration; + set => SetProperty(ref _systemConfiguration, value); + } + + public HeatPumpType? HeatPumpTypeDriverCompartment + { + get => _heatPumpTypeDriverCompartment; + set + { + if (SetProperty(ref _heatPumpTypeDriverCompartment, value)) { + if (value == HeatPumpType.none) + { + HeatPumpModeDriverCompartmentAllowedValues = + EnumHelper.GetValuesAsObservableCollectionIncluding<Enum, HeatPumpMode>(items: HeatPumpMode.N_A); + + } + else + { + HeatPumpModeDriverCompartmentAllowedValues = + EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, HeatPumpMode>( + items: HeatPumpMode.N_A); + + } + + } + } + } + + public HeatPumpMode? HeatPumpModeDriverCompartment + { + get => _heatPumpModeDriverCompartment; + set => SetProperty(ref _heatPumpModeDriverCompartment, value); + } + + private ObservableCollection<Enum> _heatPumpModeDriverCompartmentAllowedValues; + + public ObservableCollection<Enum> HeatPumpModeDriverCompartmentAllowedValues + { + get + { + return _heatPumpModeDriverCompartmentAllowedValues; + } + private set + { + if (SetProperty(ref _heatPumpModeDriverCompartmentAllowedValues, value)) { + _parameterViewModels[nameof(HeatPumpModeDriverCompartment)].AllowedItems = value; + }; + } + } + + #endregion + + #endregion + #region IElectricConsumersDeclaration + + //LED lights + private bool? _interiorLightsLed; + private bool? _dayrunninglightsLed; + private bool? _positionlightsLed; + private bool? _headlightsLed; + private bool? _brakelightsLed; + + + public bool? InteriorLightsLED + { + get => _interiorLightsLed; + set + { + SetProperty(ref _interiorLightsLed, value); + if (value != null) { + OnPropertyChanged(nameof(EditingEnabledDictionary)); + } + } + } + + public bool? DayrunninglightsLED + { + get => _dayrunninglightsLed; + set => SetProperty(ref _dayrunninglightsLed, value); + } + + public bool? PositionlightsLED + { + get => _positionlightsLed; + set => SetProperty(ref _positionlightsLed, value); + } + + public bool? HeadlightsLED + { + get => _headlightsLed; + set => SetProperty(ref _headlightsLed, value); + } + + public bool? BrakelightsLED + { + get => _brakelightsLed; + set => SetProperty(ref _brakelightsLed, value); + } + + + + #endregion + #region IPneumaticSuppyDeclarationData + public IPneumaticSupplyDeclarationData PneumaticSupply + { + get => this; + set => throw new NotImplementedException(); + } + + private CompressorDrive _compressorDrive; + private Dictionary<string, MultistageParameterViewModel> _parameterViewModels; + private ObservableCollection<HeatPumpConfiguration> _consolidatedHeatPumpConfigurationsPassenger; + private ObservableCollection<HeatPumpConfiguration> _heatPumpConfigurationsPassenger; + + + public CompressorDrive CompressorDrive + { + get => _compressorDrive; + set => SetProperty(ref _compressorDrive, value); + } + + + #endregion + + + #region Implementation of interfaces (unused Properties); + + public XmlNode XMLSource => throw new NotImplementedException(); + + public string FanTechnology => throw new NotImplementedException(); + + public IList<string> SteeringPumpTechnology => throw new NotImplementedException(); + + public IElectricSupplyDeclarationData ElectricSupply + { + get => this; + set => throw new NotImplementedException(); + } + + public IElectricConsumersDeclarationData ElectricConsumers + { + get => this; + set => throw new NotImplementedException(); + } + + + + public IPneumaticConsumersDeclarationData PneumaticConsumers + { + get => this; + set => throw new NotImplementedException(); + } + + + + + + #endregion + + + #region Implementation of IElectricSupplyDeclarationData + + public AlternatorType AlternatorTechnology => throw new NotImplementedException(); + public IList<IAlternatorDeclarationInputData> Alternators => throw new NotImplementedException(); + public IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage => throw new NotImplementedException(); + + public bool SmartElectrics => throw new NotImplementedException(); + + public Watt MaxAlternatorPower => throw new NotImplementedException(); + + public WattSecond ElectricStorageCapacity => throw new NotImplementedException(); + + #endregion + + #region Implementation of IPneumaticSupplyDeclarationData + + + + public string Clutch => throw new NotImplementedException(); + + public double Ratio => throw new NotImplementedException(); + + public string CompressorSize => throw new NotImplementedException(); + + public bool SmartAirCompression => throw new NotImplementedException(); + + public bool SmartRegeneration => throw new NotImplementedException(); + + #endregion + + #region Implementation of IPneumaticConsumersDeclarationData + + public ConsumerTechnology AirsuspensionControl => throw new NotImplementedException(); + + public ConsumerTechnology AdBlueDosing => throw new NotImplementedException(); + + #endregion + + #region Implementation of IDataErrorInfo + + public Dictionary<string, string> Errors { get; private set; } = new Dictionary<string, string>(); + + public string this[string propertyName] + { + get + { + string result = null; + switch (propertyName) + { + case nameof(HeatPumpTypeDriverCompartment): + case nameof(HeatPumpModeDriverCompartment): + case nameof(SystemConfiguration): + if (HeatPumpGroupEditingEnabled == true && + this.GetType().GetProperty(propertyName).GetValue(this) == null) { + result = $"{NameResolver.ResolveName(propertyName, BusStrings.ResourceManager, Strings.ResourceManager)} has to be set if editing is enabled}}"; + } + break; + default: + if (_parameterViewModels[propertyName].EditingEnabled == true && this.GetType().GetProperty(propertyName).GetValue(this) == null) + { + result = $"{NameResolver.ResolveName(propertyName, BusStrings.ResourceManager, Strings.ResourceManager)} has to be set if editing is enabled}}"; + } + break; + } + //https://www.youtube.com/watch?v=5KF0GGObuAQ + + if (result == null) + { + if (Errors.ContainsKey(propertyName)) + Errors.Remove(propertyName); + } + else + { + Errors[propertyName] = result; + } + + + return result; + } + } + + public string Error + { + get + { + string result = string.Empty; + var auxVmError = String.Join(",", Errors.Values); + result = auxVmError; + if (HeatPumpConfigurationsPassenger != null) { + foreach (var heatPumpConfiguration in HeatPumpConfigurationsPassenger) { + if (heatPumpConfiguration.HasErrors) { + result += "," + ((IDataErrorInfo)heatPumpConfiguration).Error; + } + } + } + + return result; + } + } + + public bool HasErrors + { + get + { + var auxVmHasErrors = !Error.IsNullOrEmpty(); + var passengerHeatPumpsHaveError = false; + if (HeatPumpConfigurationsPassenger != null) { + foreach (var heatPump in HeatPumpConfigurationsPassenger) { + if (heatPump.HasErrors) { + passengerHeatPumpsHaveError = true; + break; + } + } + } + + return auxVmHasErrors || passengerHeatPumpsHaveError; + } + } + + public Dictionary<string, MultistageParameterViewModel> ParameterViewModels + { + get + { + return _parameterViewModels; + } + set + { + SetProperty(ref _parameterViewModels, value); + } + } + + #endregion + } +} \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..b9d1a2a335bd9f5b8b88a4a3674c5583d1cccd21 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -0,0 +1,442 @@ +using System; +using System.CodeDom; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Windows; +using System.Windows.Input; +using System.Windows.Navigation; +using System.Xml; +using System.Xml.Linq; +using Castle.Core.Internal; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Ninject; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.Util.XML; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.Interfaces.Common; +using VECTO3GUI2020.ViewModel.Interfaces.Document; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + + public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistageBusInputDataProvider, IJobViewModel, IEditViewModel + { + IManufacturingStageViewModel ManufacturingStageViewModel { get; } + } + + + public class MultiStageJobViewModel_v0_1 : ViewModelBase, IMultiStageJobViewModel + { + private IDeclarationMultistageJobInputData _jobInputData; + + private IManufacturingStageViewModel _manufacturingStageViewModel; + private IPrimaryVehicleInformationInputDataProvider _primaryVehicle; + private IList<IManufacturingStageInputData> _manufacturingStages; + private IManufacturingStageInputData _consolidateManufacturingStage; + private VectoSimulationJobType _jobType; + private bool _inputComplete; + private readonly IMultiStageViewModelFactory _vmFactory; + + public IManufacturingStageViewModel ManufacturingStageViewModel + { + get => _manufacturingStageViewModel; + set => SetProperty(ref _manufacturingStageViewModel, value); + } + + public MultiStageJobViewModel_v0_1(IMultistageBusInputDataProvider inputData, IMultiStageViewModelFactory vmFactory, IMultistageDependencies multistageDependencies, IXMLInputDataReader inputDataReader) + { + Title = "Edit Multistage Job"; + _dataSource = inputData.DataSource; + _jobInputData = inputData.JobInputData; + _inputData = inputData; + _vmFactory = vmFactory; + _consolidateManufacturingStage = _jobInputData.ConsolidateManufacturingStage; + _manufacturingStages = _jobInputData.ManufacturingStages; + _primaryVehicle = _jobInputData.PrimaryVehicle; + _dialogHelper = multistageDependencies.DialogHelperLazy; + _inputDataReader = inputDataReader; + _manufacturingStageViewModel = + vmFactory.GetManufacturingStageViewModel(_consolidateManufacturingStage); + + // QUESTION: HEV/PEV ? + //var hybridElectric = inputData.PrimaryVehicleData.Vehicle.HybridElectricHDV; + //_manufacturingStageViewModel.VehicleViewModel.PrimaryVehicleHybridElectric = hybridElectric; + _multistageDependencies = multistageDependencies; + } + + + #region Commands + + + + private ICommand _closeWindowCommand; + public ICommand CloseWindowCommand + { + get + { + return _closeWindowCommand ?? new RelayCommand<Window>(window => CloseWindow(window, _dialogHelper.Value), window => true); + } + } + + + private ICommand _saveVifCommand; + + public ICommand SaveVIFCommand + { + get + { + return _saveVifCommand ?? new RelayCommand(() => { + if (_manufacturingStageViewModel.Vehicle is IMultistageVehicleViewModel vehicleViewModel) + { + if (vehicleViewModel.HasErrors) { + var errorMessage = "Vehicle\n"; + var vehicleErrorInfo = vehicleViewModel as IDataErrorInfo; + errorMessage += vehicleErrorInfo.Error.Replace(",", "\n"); + + var auxiliariesErrorInfo = + vehicleViewModel.MultistageAuxiliariesViewModel as IDataErrorInfo; + if (!auxiliariesErrorInfo.Error.IsNullOrEmpty()) { + errorMessage += "Auxiliaries\n"; + errorMessage += auxiliariesErrorInfo.Error.Replace(",", "\n"); + } + + + //_dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) + // + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), + //"Error"); + + _dialogHelper.Value.ShowMessageBox(errorMessage, "Error", MessageBoxButton.OK, + MessageBoxImage.Error); + return; + } + } else { + throw new NotImplementedException(); + } + + + var outputFile = _multistageDependencies.DialogHelperLazy.Value.SaveToXMLDialog(Settings.Default.DefaultFilePath); + if (outputFile == null) { + return; + } + SaveVif(outputFile:outputFile); + }, () => true); + } + } + + public void SaveVif(string outputFile) + { + SaveVif(vifData:this, outputFile:outputFile, dialogHelper:_dialogHelper.Value); + } + + public static void SaveVif(IMultistageVIFInputData vifData, FileOutputVIFWriter writer, IDialogHelper dialogHelper = null) + { + SaveVif(vifData, null, writer, dialogHelper); + } + + public static void SaveVif(IMultistageVIFInputData vifData, string outputFile, + FileOutputVIFWriter writer = null, IDialogHelper dialogHelper = null) + { + try { + + + if (writer == null) { + var numberOfManufacturingStages = + vifData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 0; + writer = new FileOutputVIFWriter(outputFile, numberOfManufacturingStages); + } + + var inputData = + new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData); + + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + + var jobContainer = new JobContainer(new NullSumWriter()); //TODO: Replace with real sumwriter + + var runs = factory.SimulationRuns().ToList(); + foreach (var run in runs) { + jobContainer.AddRun(run); + } + + jobContainer.Execute(); + jobContainer.WaitFinished(); + + using (var reader = XmlReader.Create(writer.XMLMultistageReportFileName)) { + var validator = new XMLValidator(reader); + var valid = validator.ValidateXML(XmlDocumentType.MultistageOutputData); + if (!valid) { + dialogHelper?.ShowMessageBox($"Error writing file {validator.ValidationError}", "Error", + MessageBoxButton.OK, MessageBoxImage.Error); + Debug.WriteLine("Invalid Outputfile"); + return; + } else { + dialogHelper?.ShowMessageBox($"Written to {writer.XMLMultistageReportFileName}", "Info", + MessageBoxButton.OK, MessageBoxImage.Information); + Debug.WriteLine($"Written to {writer.XMLMultistageReportFileName}"); + } + } + + }catch (Exception e) { + dialogHelper?.ShowMessageBox($"{e.Message}", "Error writing VIF", MessageBoxButton.OK, + MessageBoxImage.Error); + + } + + } + + private ICommand _saveInputDataCommand; + private ICommand _saveInputDataAsCommand; + + public ICommand SaveInputDataCommand => + _saveInputDataCommand ?? new RelayCommand(() => { + SaveInputDataExecute(filename:_vehicleInputDataFilePath); + }, () => _vehicleInputDataFilePath != null); + + public ICommand SaveInputDataAsCommand => + _saveInputDataAsCommand ?? new RelayCommand(() => { + SaveInputDataExecute(filename:null); + }, () => true); + + private void SaveInputDataExecute(string filename) + { + if(_manufacturingStageViewModel.Vehicle is IMultistageVehicleViewModel vehicleViewModel) + { + if (vehicleViewModel.HasErrors) { + var errorMessage = "Vehicle\n"; + var vehicleErrorInfo = vehicleViewModel as IDataErrorInfo; + errorMessage += vehicleErrorInfo.Error.Replace(",", "\n"); + + var auxiliariesErrorInfo = + vehicleViewModel.MultistageAuxiliariesViewModel as IDataErrorInfo; + if (!auxiliariesErrorInfo.Error.IsNullOrEmpty()) + { + errorMessage += "\n Auxiliaries \n"; + errorMessage += auxiliariesErrorInfo.Error.Replace(",", "\n"); + } + + _dialogHelper.Value.ShowMessageBox(errorMessage, "Error", MessageBoxButton.OK, + MessageBoxImage.Error); + return; + + //_dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) + // + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), + // "Error"); + return; + } + } + + + if (filename == null) { + filename = _dialogHelper.Value.SaveToXMLDialog(Settings.Default.DefaultFilePath); + if (filename == null) { + return; + } + } + + var vehicleWriter = + _multistageDependencies.XMLWriterFactory.CreateVehicleWriter(_manufacturingStageViewModel.Vehicle); + + + + var xElement = vehicleWriter.GetElement(); + var xDoc = xElement.CreateWrapperDocument(XMLNamespaces.V28); + Debug.WriteLine(xElement.CreateWrapperDocument(XMLNamespaces.V28).ToString()); + + + var valid = false; + var validationError = ""; + try { + var validator = new XMLValidator(xDoc.ToXmlDocument()); + valid = validator.ValidateXML(XmlDocumentType.DeclarationJobData); + validationError = validator.ValidationError; + } catch (Exception e) { + _dialogHelper.Value.ShowMessageBox(messageBoxText:(e.Message + "\n" + e.InnerException), caption:"Error saving File"); + } + if (!valid) { + _dialogHelper.Value.ShowMessageBox($"Invalid Document: {validationError}", "Error"); + var tempFile = Path.GetTempFileName(); + try { + xDoc.Save(tempFile, SaveOptions.OmitDuplicateNamespaces); + LoadVehicleData(tempFile); + File.Delete(tempFile); + } catch (Exception e) { + _dialogHelper.Value.ShowMessageBox(e.Message, "Error"); + throw; + } + + + } else { + xDoc.Save(filename, SaveOptions.OmitDuplicateNamespaces); + LoadVehicleData(filename); + } + } + + + private ICommand _loadVehicleDataCommand; + private readonly Lazy<IDialogHelper> _dialogHelper; + private readonly IXMLInputDataReader _inputDataReader; + private string _vehicleInputDataFilePath = null; + private readonly IMultistageDependencies _multistageDependencies; + private readonly DataSource _dataSource; + private readonly IMultistageBusInputDataProvider _inputData; + private bool _selected; + + public ICommand LoadVehicleDataCommand + { + get + { + return _loadVehicleDataCommand ?? new RelayCommand(LoadVehicleDataExecute, () => true); + } + } + + private void LoadVehicleDataExecute() + { + var fileName = _dialogHelper.Value.OpenXMLFileDialog(); + if (fileName == null) { + return; + } + + LoadVehicleData(fileName); + return; + } + + private bool LoadVehicleData(string fileName) + { + try { + var inputData = (IDeclarationInputDataProvider)_inputDataReader.Create(fileName); + var vehicleInputData = inputData.JobInputData.Vehicle; + _manufacturingStageViewModel.SetInputData(vehicleInputData); + + VehicleInputDataFilePath = fileName; + } catch (Exception e) { + _dialogHelper.Value.ShowMessageBox(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); + return false; + } + + return true; + } + + public string VehicleInputDataFilePath + { + get => _vehicleInputDataFilePath; + set => SetProperty(ref _vehicleInputDataFilePath, value); + } + #endregion + + + + + + #region Implementation of IInputDataProvider + + public string DocumentName => Path.GetFileNameWithoutExtension(_inputData.DataSource.SourceFile); + + public XmlDocumentType DocumentType => XmlDocumentType.MultistageOutputData; + + public DataSource DataSource => _dataSource; + + public IEditViewModel EditViewModel => this; + + public bool Selected + { + get => _selected; + set => SetProperty(ref _selected, value); + } + + public bool CanBeEdited + { + get => true; + set => throw new NotImplementedException(); + } + + #endregion + + #region Implementation of IMultistageVIFInputData + + public IVehicleDeclarationInputData VehicleInputData => _manufacturingStageViewModel.Vehicle; + + public IMultistageBusInputDataProvider MultistageJobInputData => this; + + + #endregion + + #region Implementation of IDeclarationInputDataProvider + + + public IDeclarationMultistageJobInputData JobInputData => _jobInputData; + + IDeclarationJobInputData IDeclarationInputDataProvider.JobInputData => throw new NotImplementedException(); + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData => _primaryVehicle; + + public XElement XMLHash => throw new NotImplementedException(); + + #endregion + + #region Implementation of IDeclarationMultistageJobInputData + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle + { + get => _primaryVehicle; + set => _primaryVehicle = value; + } + + public IList<IManufacturingStageInputData> ManufacturingStages + { + get => _manufacturingStages; + set => _manufacturingStages = value; + } + + public IManufacturingStageInputData ConsolidateManufacturingStage + { + get => _consolidateManufacturingStage; + set => _consolidateManufacturingStage = value; + } + + public VectoSimulationJobType JobType + { + get => _jobType; + set => _jobType = value; + } + + public bool InputComplete + { + get => _inputComplete; + set => _inputComplete = value; + } + + + #endregion + + #region Implementation of IEditViewModel + + public string Name => "Multistage"; + + #endregion + } + + public class NullSumWriter : SummaryDataContainer + { + public override void Write(IModalDataContainer modData, int jobNr, int runNr, VectoRunData runData) { } + + public override void Finish() { } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..0468834e7dd0d4b08022fa0fe555d6139a270432 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs @@ -0,0 +1,108 @@ +using System; +using System.CodeDom; +using System.Diagnostics; +using System.Linq; +using System.Linq.Expressions; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Util; +using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + public class NewMultiStageJobViewModel : ViewModelBase + { + private readonly Settings _settings = Settings.Default; + private ICommand _addVifCommand; + private string _vifPath; + private IDialogHelper _dialogHelper; + private IXMLInputDataReader _inputDataReader; + private IMultiStageViewModelFactory _vmFactory; + private IMultiStageJobViewModel _multistageJobViewModel; + public string VifPath { get => _vifPath; set => SetProperty(ref _vifPath, value); } + + + public IMultiStageJobViewModel MultiStageJobViewModel + { + get { return _multistageJobViewModel; } + set + { + OnPropertyChanged(nameof(MultiStageJobViewModel)); + SetProperty(ref _multistageJobViewModel, value); + } + } + + + + public NewMultiStageJobViewModel(IDialogHelper dialogHelper, + IXMLInputDataReader inputDataReader, + IMultiStageViewModelFactory vmFactory) + { + _inputDataReader = inputDataReader; + _dialogHelper = dialogHelper; + _vmFactory = vmFactory; + Title = "New Multistage File"; + VifPath = "Select VIF File"; + } + + + + #region AddVifCommand + + public ICommand AddVifFile + { + get => _addVifCommand ?? new RelayCommand(AddVifFileExecute, () => true); + } + + private void AddVifFileExecute() + { + + var fileName = _dialogHelper.OpenXMLFileDialog(); + if (fileName == null) { + return; + } + IMultistageBusInputDataProvider inputDataProvider = null; + try { + inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider; + } + catch(Exception e) { + _dialogHelper.ShowMessageBox(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); + } + + if (inputDataProvider == null) { + + _dialogHelper.ShowMessageBox("invalid input file", "Error", MessageBoxButton.OK, MessageBoxImage.Error); + return; + } + + MultiStageJobViewModel = null; + MultiStageJobViewModel = + _vmFactory.GetMultiStageJobViewModel(inputDataProvider); + VifPath = fileName; + } + + + private ICommand _closeWindow; + + public ICommand CloseWindow + { + get => _closeWindow ?? new RelayCommand<Window>(window => base.CloseWindow(window, _dialogHelper, false), + (window) => MultiStageJobViewModel == null); + } + + + + #endregion + + } +} diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..90e54e472247409ce253f842c908ea3e585edc53 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.ViewModel.Interfaces.Common; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces +{ + public interface IMultiStageViewModelFactory + { + IViewModelBase GetNewMultistageJobViewModel(); + + IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData); + + IVehicleViewModel GetInterimStageVehicleViewModel(); + + IVehicleViewModel GetInterimStageVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData); + + IManufacturingStageViewModel GetManufacturingStageViewModel(IManufacturingStageInputData consolidatedManufacturingStageInputData); + IMultistageAirdragViewModel GetMultistageAirdragViewModel(); + + IMultistageAirdragViewModel GetMultistageAirdragViewModel( + IAirdragDeclarationInputData consolidatedAirdragInputData); + + IMultistageAuxiliariesViewModel GetAuxiliariesViewModel( + IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData); + //IViewModelBase CreateNewMultiStageJobViewModel(); + + //IMultiStageJobViewModel CreateMultiStageJobViewModel(string inputProviderType, IMultistageBusInputDataProvider inputData); + + //IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType); + + //IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType, IVehicleDeclarationInputData prevStageInputData); + + //IManufacturingStageViewModel CreateManufacturingStageViewModel(string inputProviderType, IManufacturingStageInputData consolidatedManufacturingStageInputData); + + //IMultistageAirdragViewModel CreateMultistageAirdragViewModel(); + } +} diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultistageAirdragViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..865e3d14f189454ac9ff688b01ac2a99a07d5909 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultistageAirdragViewModel.cs @@ -0,0 +1,18 @@ +using System; +using TUGraz.VectoCommon.InputData; +using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces +{ + public interface IMultistageAirdragViewModel : IAirdragDeclarationInputData + { + EventHandler AirdragViewModelChanged { get; set; } + IAirDragViewModel AirDragViewModel { get; set; } + + void SetAirdragInputData(IAirdragDeclarationInputData airdragInputData); + bool LoadAirdragFile(string fileName); + void RestoreAirdragViewModel(); + + void RemoveAirdragComponent(); + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml b/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml new file mode 100644 index 0000000000000000000000000000000000000000..06f76a1a5c826f4149240a2198c4dbe13efbe8b6 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml @@ -0,0 +1,32 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.ComboParameter" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="30" d:DesignWidth="200" + Name="comboparameter"> + <Grid HorizontalAlignment="Stretch"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Label Grid.Column="0" + Content="{Binding Label, ElementName=comboparameter}" + Margin="2" + Padding="2"/> + <ComboBox Grid.Column="1" + Margin="2" + SelectedValue="{Binding Content, Mode=TwoWay, ElementName=comboparameter}" + ItemsSource="{Binding ListItems, ElementName=comboparameter}" + IsEditable="False" + IsReadOnly="True" + /> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml.cs b/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..7abdeb6559212013378d1c0223583fd1373a551d --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/ComboParameter.xaml.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Resources; +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.Properties; + +namespace VECTO3GUI2020.Views.CustomControls +{ + public partial class ComboParameter : UserControl + { + ResourceManager _resourceManager; + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", typeof(string), typeof(ComboParameter), new PropertyMetadata("")); + + + + public List<object> ListItems + { + get { return (List<object>)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + + // Using a DependencyProperty as the backing store for ListItems. This enables animation, styling, binding, etc... + public static readonly DependencyProperty ListItemsProperty = + DependencyProperty.Register("ListItems", typeof(List<object>), typeof(ComboParameter), + new FrameworkPropertyMetadata(AvailableItemsChanged) { BindsTwoWayByDefault = true }); + + public static void AvailableItemsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) + { + var newVal = e.NewValue; + //Console.WriteLine("Items Changed..."); + } + + + + public object SelectedItem + { + get { return (object)GetValue(SelectedItemProperty); } + set { SetValue(SelectedItemProperty, value); } + } + + // Using a DependencyProperty as the backing store for SelectedItem. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SelectedItemProperty = + DependencyProperty.Register("SelectedItem", typeof(object), typeof(ComboParameter), new FrameworkPropertyMetadata(AvailableItemsChanged) { BindsTwoWayByDefault = true }); + + + + public new object Content + { + get { return (object)GetValue(ContentProperty); } + set + { + SetCurrentValue(ContentProperty, value); + } + } + + public static new readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", + typeof(object), + typeof(ComboParameter), + new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(ContentChanged))); + + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + ComboParameter comboParameter = (ComboParameter)d; + comboParameter.UpdateLabel(e); + comboParameter.UpdateComboBox(e); + + + } + + private void UpdateLabel(DependencyPropertyChangedEventArgs e) + { + + if ((e.NewValue == e.OldValue)) + { + return; //Check if this can happen + } + Content = e.NewValue; + + var Binding = this.GetBindingExpression(ContentProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + if (PropertyName == null || Binding == null) + { + //Debug.WriteLine("Binding or Property name == null"); + return; + } + //Debug.WriteLine("PropertyName: " + PropertyName); + + Label = _resourceManager?.GetString(PropertyName) ?? PropertyName; + + } + + private void UpdateComboBox(DependencyPropertyChangedEventArgs e) + { + + if ((e.NewValue == e.OldValue)) + { + return; //Check if this can happen + } + + var Binding = this.GetBindingExpression(ContentProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + if (PropertyName == null || Binding == null) + { + //Debug.WriteLine("Binding or Property name == null"); + return; + } + + var data = Binding.ResolvedSource.GetType().GetProperty(PropertyName).GetValue(Binding.DataItem); + //Console.WriteLine("Selected Item:" + data); + + + var items = Enum.GetValues(data.GetType()).Cast<object>().ToList<object>(); + ListItems = items; + SelectedItem = data; + + } + + + public ComboParameter() + { + InitializeComponent(); + _resourceManager = Strings.ResourceManager; + + } + + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/CustomControlExtensionMethods.cs b/VECTO3GUI2020/Views/CustomControls/CustomControlExtensionMethods.cs new file mode 100644 index 0000000000000000000000000000000000000000..2ec0293c978e8bb63c3d7dcaec5299690c3ee1e0 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/CustomControlExtensionMethods.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net.NetworkInformation; +using System.Resources; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Annotations; + +namespace VECTO3GUI2020.Views.CustomControls +{ + public static class CustomControlExtensionMethods + { + + private static string unresolved = "unresolved"; + private static string _suffix = "_"; //used to mark properties; + + /// <summary> + /// Looks up the Label by the name the Property that is used for the binding + /// </summary> + /// <param name="dependencyProperty"></param> + /// <param name="resourceManagers">The resourceManagers where the name of the property will be looked up if</param> + /// <returns></returns> + public static string GetLabelByPropertyName(this UserControl userControl, DependencyProperty dependencyProperty, params ResourceManager[] resourceManagers) + { + + string name = null; + var binding = userControl.GetBindingExpression(dependencyProperty); + var propertyName = binding?.ResolvedSourcePropertyName; + + + if (propertyName == null || binding == null) { + var status = binding?.Status; + throw new VectoException("Could not resolve binding"); + return name; + } + + foreach (var resourceManager in resourceManagers) { + var resolvedName = resourceManager?.GetString(propertyName); + if (resolvedName != null) { + name = resolvedName; + return name; + } + } + + + name = propertyName + _suffix; + + //var extendedPropertyName = binding?.ResolvedSource.GetType().Name + "_" + propertyName; + //name = resourceManager?.GetString(extendedPropertyName) ?? resourceManager?.GetString(propertyName) ?? (propertyName + "_"); //_Postfix to label Property Names that are not in strings.resx + + return name; + } + + public static string GetLabelByPropertyName(this UserControl userControl, DependencyProperty dependencyProperty, + [NotNull] ResourceManager resourceManager) + { + return GetLabelByPropertyName(userControl, dependencyProperty, resourceManagers:resourceManager); + } + + public static Type GetPropertyType(this UserControl userControl, DependencyProperty dependencyProperty) + { + var Binding = userControl.GetBindingExpression(dependencyProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + + if (PropertyName == null || Binding == null) { + return typeof(object); + } + var PropertyType = Binding?.ResolvedSource?.GetType().GetProperty(PropertyName).PropertyType; + return PropertyType; + } + + public static object CreateDummyContent(this UserControl userControl, DependencyPropertyChangedEventArgs e, bool createEnum = false) + { + var type = userControl.GetPropertyType(e.Property); + if (type == null) + { + return null; + } + try + { + dynamic dynType = type; + var baseType = dynType.BaseType; + //Create SI Dummy + + if (baseType?.BaseType != null && baseType.BaseType == typeof(SI)) + { + var createMethod = baseType.GetMethod("Create"); + var dummyContent = createMethod?.Invoke(null, new object[] { (new double()) }); + return dummyContent; + } + else if(createEnum) + { + var bindingProperty = userControl.GetBindingExpression(e.Property); + var dataItemType = bindingProperty?.DataItem.GetType(); + var sourcePropertyType = + dataItemType?.GetProperty(bindingProperty?.ResolvedSourcePropertyName)?.PropertyType; + + var underlyingType = Nullable.GetUnderlyingType(dynType); + Enum dummyEnum; + if (underlyingType != null) + { + dummyEnum = Enum.Parse(underlyingType, underlyingType.GetEnumNames()[0]); + } + else + { + dummyEnum = Enum.Parse(dynType, dynType.GetEnumNames()[0]); + } + + return dummyEnum; + } + + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return null; + } + + return null; + } + + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml b/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml new file mode 100644 index 0000000000000000000000000000000000000000..25dd36e6b6fb0b363a5d6ddfa25519c7c8f9a1ac --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml @@ -0,0 +1,33 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.DateTimePicker" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="30" d:DesignWidth="200" + Name="customDateTimePicker" + > + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <TextBlock Grid.Column="0" + Margin="2 2 2 2" + Padding="2 2 2 2" + Text="{Binding Label, ElementName=customDateTimePicker}" + Visibility="Visible"/> + <DatePicker Grid.Column="1" Background="White" + Margin="2 2 2 2" + Padding="2 2 2 2" + SelectedDate="{Binding Date, + ElementName=customDateTimePicker, + Mode=TwoWay}" + Visibility="Visible" + BorderThickness="1" + BorderBrush="DarkGray"/> + </Grid> + +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml.cs b/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..2b6b389778fd8c571554daa15e2c26df8d0d6548 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/DateTimePicker.xaml.cs @@ -0,0 +1,75 @@ +using System; +using System.Resources; +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.Properties; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaction logic for DateTimePicker.xaml + /// </summary> + public partial class DateTimePicker : UserControl + { + + + ResourceManager _resourceManager; + + + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", typeof(string), typeof(DateTimePicker), new PropertyMetadata("")); + + + + + public DateTime Date + { + get { return (DateTime)GetValue(DateProperty); } + set { SetCurrentValue(DateProperty, value); } + } + + // Using a DependencyProperty as the backing store for Date. This enables animation, styling, binding, etc... + public static readonly DependencyProperty DateProperty = + DependencyProperty.Register("Date", typeof(DateTime), typeof(DateTimePicker), new PropertyMetadata(DateTime.Now, new PropertyChangedCallback(ContentChanged))); + + + public DateTimePicker() + { + InitializeComponent(); + _resourceManager = Strings.ResourceManager; + } + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if ((e.NewValue == e.OldValue)) + { + return; + } + DateTimePicker dateTimePicker = (DateTimePicker)d; + dateTimePicker.UpdateLabel(e); + } + + + private void UpdateLabel(DependencyPropertyChangedEventArgs e) + { + + var Binding = this.GetBindingExpression(DateProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + if (PropertyName == null || Binding == null) + { + //Debug.WriteLine("Binding or Property name == null"); + return; + } + //Debug.WriteLine("PropertyName: " + PropertyName); + + Label = _resourceManager?.GetString(PropertyName) ?? PropertyName; + } + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml b/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml new file mode 100644 index 0000000000000000000000000000000000000000..40c0ee2183f3c0cc0adebcda7cc802358acf6334 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml @@ -0,0 +1,26 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.LabledCheckBoxAutomatic" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + Name="labledcheckboxautomatic" + mc:Ignorable="d" d:DesignWidth="748.458" Height="30"> + <Grid HorizontalAlignment="Stretch"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Label Grid.Column="0" + Padding="2 2 2 2" + Margin="2 2 2 2" + Content="{Binding Label, ElementName=labledcheckboxautomatic}" /> + + <CheckBox Grid.Column="1" + Padding="2 2 2 2" + Margin="2 2 2 2" + IsChecked="{Binding Content, ElementName=labledcheckboxautomatic}" /> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml.cs b/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..66274b7dd6ef5d4cf16aa490a3985e8b177b3cd5 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledCheckBoxAutomatic.xaml.cs @@ -0,0 +1,76 @@ +using System.Diagnostics; +using System.Resources; +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.Properties; + + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaction logic for LabledCheckBoxAutomatic.xaml + /// </summary> + public partial class LabledCheckBoxAutomatic : UserControl + { + + + private readonly ResourceManager _resourceManager; + + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", + typeof(string), + typeof(LabledCheckBoxAutomatic), + new PropertyMetadata("")); + + public new object Content + { + get { return (object)GetValue(ContentProperty); } + set + { + SetCurrentValue(ContentProperty, value); + } + } + + // Using a DependencyProperty as the backing store for MyObject. This enables animation, styling, binding, etc... + public static new readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", + typeof(object), + typeof(LabledCheckBoxAutomatic), + new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(ContentChanged))); + + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + + LabledCheckBoxAutomatic labledCheckBox = (LabledCheckBoxAutomatic)d; + labledCheckBox.UpdateContent(e); + } + + private void UpdateContent(DependencyPropertyChangedEventArgs e) + { + var Binding = this.GetBindingExpression(ContentProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + if (PropertyName == null || Binding == null) + { + return; + } + + var ExtendedPropertyName = Binding?.ResolvedSource.GetType().Name + "_" + PropertyName; + Label = _resourceManager?.GetString(ExtendedPropertyName) ?? _resourceManager?.GetString(PropertyName) ?? (PropertyName + "_"); //_Postfix to label Property Names that are not in strings.resx + + } + + public LabledCheckBoxAutomatic() + { + InitializeComponent(); + _resourceManager = Strings.ResourceManager; + } + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml b/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml new file mode 100644 index 0000000000000000000000000000000000000000..1bad4a8bc96f0dead14de7ef669bd754cd2e39fd --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml @@ -0,0 +1,23 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.LabledTextBox" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + Name="labledtextbox" + d:DesignHeight="30" d:DesignWidth="200"> + <Grid> + <!-- https://www.youtube.com/watch?v=h7ZrdGiOm3E Toskers Corner --> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Label Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0" + Content="{Binding Label, ElementName=labledtextbox}" /> + <TextBox Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" + Text="{Binding Text, ElementName=labledtextbox}" /> + </Grid> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml.cs b/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b2abb3d833cf1faf770e63aa72d207b190fe6ae --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBox.xaml.cs @@ -0,0 +1,42 @@ +using System.Windows; +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaktionslogik für LabledTextBox.xaml + /// </summary> + public partial class LabledTextBox : UserControl + { + + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", typeof(string), typeof(LabledTextBox), new PropertyMetadata("Label")); + + + + public string Text + { + get { return (string)GetValue(TextProperty); } + set { SetValue(TextProperty, value); } + } + + // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... + public static readonly DependencyProperty TextProperty = + DependencyProperty.Register("Text", typeof(string), typeof(LabledTextBox), new PropertyMetadata("Text")); + + + + + public LabledTextBox() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml new file mode 100644 index 0000000000000000000000000000000000000000..0235378b67a9962962d021926c87cd98a48effe5 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml @@ -0,0 +1,40 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.LabledTextBoxAutomatic" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="30" d:DesignWidth="200" Height="30" + Name="labledtextboxautomatic" + HorizontalAlignment="Stretch"> + <Grid HorizontalAlignment="Stretch"> + <!-- https://www.youtube.com/watch?v=h7ZrdGiOm3E Toskers Corner --> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Label Grid.Column="0" + Padding="2 2 2 2" + Margin="2 2 2 2" + Content="{Binding Label, ElementName=labledtextboxautomatic, + Converter={StaticResource LabledTextBoxLabelConverter} }" /> + + <TextBox Grid.Column="1" + Padding="2 2 2 2" + Margin="2 2 2 2" + Text="{Binding Content, ElementName=labledtextboxautomatic, + Converter={StaticResource LabledTextBoxConverter} }" /> + <!-- UpdateSourceTrigger=PropertyChanged, --> + + <Label Grid.Column="2" x:Name="AutoUnitLabel" + Content="{Binding Content, ElementName=labledtextboxautomatic, + Converter={StaticResource SIToUnitStringConverter}, ConverterParameter=int }"> + </Label> + <Label Grid.Column="2" x:Name ="UserUnitLabel" + Content="{Binding UserUnit, ElementName=labledtextboxautomatic}" Visibility="Hidden"> + </Label> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml.cs b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..68b75d7835221f32aed5f74f7e7ac4a712d84618 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxAutomatic.xaml.cs @@ -0,0 +1,142 @@ +using System.Resources; +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.Properties; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaction logic for LabledTextBoxAutomatic.xaml + /// </summary> + public partial class LabledTextBoxAutomatic : UserControl + { + + private readonly ResourceManager _resourceManager; + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", + typeof(string), + typeof(LabledTextBoxAutomatic), + new PropertyMetadata("")); + + + public string Text + { + get { return (string)GetValue(TextProperty); } + set { SetValue(TextProperty, value); } + } + + // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... + public static readonly DependencyProperty TextProperty = + DependencyProperty.Register("Text", + typeof(string), + typeof(LabledTextBoxAutomatic), + new FrameworkPropertyMetadata() { BindsTwoWayByDefault = true }); + + public string UnitText + { + get { return (string)GetValue(UnitTextProperty); } + set { SetValue(UnitTextProperty, value); } + } + + + + // Using a DependencyProperty as the backing store for UnitText. This enables animation, styling, binding, etc... + public static readonly DependencyProperty UnitTextProperty = + DependencyProperty.Register("UnitText", + typeof(string), + typeof(LabledTextBoxAutomatic), + new PropertyMetadata("")); + + public string UserUnit + { + get { return (string)GetValue(UserUnitProperty); } + set { SetValue(UserUnitProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty UserUnitProperty = + DependencyProperty.Register("UserUnit", + typeof(string), + typeof(LabledTextBoxAutomatic), + new PropertyMetadata("")); + + + public new object Content + { + get { return (object)GetValue(ContentProperty); } + set + { + SetCurrentValue(ContentProperty, value); + } + } + + // Using a DependencyProperty as the backing store for MyObject. This enables animation, styling, binding, etc... + public static new readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", + typeof(object), + typeof(LabledTextBoxAutomatic), + new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(ContentChanged))); + + public LabledTextBoxAutomatic() + { + InitializeComponent(); + + _resourceManager = Strings.ResourceManager; + } + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + + LabledTextBoxAutomatic labledTextBox = (LabledTextBoxAutomatic)d; + labledTextBox.UpdateContent(e); + } + + private void UpdateContent(DependencyPropertyChangedEventArgs e) + { + var Binding = this.GetBindingExpression(ContentProperty); + var PropertyName = Binding?.ResolvedSourcePropertyName; + if(PropertyName == null || Binding == null) + { + return; + } + + var ExtendedPropertyName = Binding?.ResolvedSource.GetType().Name + "_" + PropertyName; + + Label = _resourceManager?.GetString(ExtendedPropertyName) ??_resourceManager?.GetString(PropertyName) ?? (PropertyName + "_"); //_Postfix to label Property Names that are not in strings.resx + + var data = Binding.ResolvedSource.GetType().GetProperty(PropertyName).GetValue(Binding.DataItem); + if (data == null) return; + + if (UserUnit != "") + { + //UserUnit Visibility + this.AutoUnitLabel.Visibility = Visibility.Hidden; + this.UserUnitLabel.Visibility = Visibility.Visible; + } + + /* + if (data is SI SIUnit) + { + UnitText = SIUnit.UnitString; + Text = SIUnit.ToGUIFormat(); + } + else if (data is string || data is double){ + Text = Content?.ToString(); + }else + { + Debug.Assert(false, "Unsopported Property Type" + data.GetType().ToString()); + } + */ + + } + + + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml new file mode 100644 index 0000000000000000000000000000000000000000..6c820b82661e20497984de560edaa971ef10db78 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml @@ -0,0 +1,24 @@ +<UserControl x:Class="VECTO3GUI2020.Views.CustomControls.LabledTextBoxUnit" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + Name="labledtextboxunit" + d:DesignHeight="30" d:DesignWidth="200"> + <!-- https://www.youtube.com/watch?v=h7ZrdGiOm3E Toskers Corner --> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*" /> + </Grid.ColumnDefinitions> + <Label Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0" + Content="{Binding Label, ElementName=labledtextboxunit}" /> + <TextBox Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" + Text="{Binding Text, ElementName=labledtextboxunit}" /> + <Label Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0" + Content="{Binding SIUnit, ElementName=labledtextboxunit}"/> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml.cs b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..5f096a159a75af2b3c746311861587690c83e682 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/LabledTextBoxUnit.xaml.cs @@ -0,0 +1,53 @@ +using System.Windows; +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaktionslogik für LabledTextBoxUnit.xaml + /// </summary> + public partial class LabledTextBoxUnit : UserControl + { + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + // Using a DependencyProperty as the backing store for Label. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LabelProperty = + DependencyProperty.Register("Label", typeof(string), typeof(LabledTextBoxUnit), new PropertyMetadata("Label")); + + + + public string Text + { + get { return (string)GetValue(TextProperty); } + set { SetValue(TextProperty, value); } + } + + // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... + public static readonly DependencyProperty TextProperty = + DependencyProperty.Register("Text", typeof(string), typeof(LabledTextBoxUnit), new PropertyMetadata("Text")); + + public string SIUnit + { + get { return (string)GetValue(SIUnitProperty); } + set { SetValue(SIUnitProperty, value); } + } + + // Using a DependencyProperty as the backing store for SIUnit. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SIUnitProperty = + DependencyProperty.Register("SIUnit", typeof(string), typeof(LabledTextBoxUnit), new PropertyMetadata("SI")); + + + + + + + public LabledTextBoxUnit() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml b/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml new file mode 100644 index 0000000000000000000000000000000000000000..56839097559460975426d2750bcd82a251fa9a73 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml @@ -0,0 +1,36 @@ +<UserControl + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:wpf="clr-namespace:InteractiveDataDisplay.WPF;assembly=InteractiveDataDisplay.WPF" + xmlns:System="clr-namespace:System;assembly=mscorlib" x:Class="VECTO3GUI2020.Views.CustomControls.ScatterPlot" + mc:Ignorable="d" + x:Name="scatter" + d:DesignHeight="450" d:DesignWidth="800" Height="300" Width="auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" + Background="White"> + + + <Grid > + <DockPanel> + <wpf:Chart IsVerticalNavigationEnabled="False" + IsAutoFitEnabled="True" + IsHorizontalNavigationEnabled="False" + x:Name="chart" + LegendVisibility="Collapsed" + Title="{Binding Title, ElementName=scatter}" + BottomTitle="{Binding BottomTitle, ElementName=scatter}" + LeftTitle="{Binding LeftTitle, ElementName=scatter}" + RightTitle=" " + + Margin="20" Padding="20" Foreground="Black" Background="White" + DockPanel.Dock="Top" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ClipToBounds="False"> + <wpf:Plot x:Name="plot" IsAutoFitEnabled="True" > + <wpf:CircleMarkerGraph IsAutoFitEnabled="True" x:Name="circles" Stroke="Black" StrokeThickness="0.3" + ColorDescription="{Binding ColorDescription, ElementName=scatter}"/> + </wpf:Plot> + </wpf:Chart> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml.cs b/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..73e56c8499ce2d3a55dbf67fe251d76aceb9c75a --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/ScatterPlot.xaml.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics; +using System.Linq; +using System.Resources; +using System.Security.RightsManagement; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using InteractiveDataDisplay.WPF; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Properties; +using Color = System.Drawing.Color; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaction logic for ScatterPlot.xaml + /// </summary> + public partial class ScatterPlot : UserControl + { + + + public bool SwitchAxis + { + get { return (bool)GetValue(SwitchAxisProperty); } + set { SetValue(SwitchAxisProperty, value); } + } + + // Using a DependencyProperty as the backing store for SwitchAxis. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SwitchAxisProperty = + DependencyProperty.Register("SwitchAxis", typeof(bool), typeof(ScatterPlot), new PropertyMetadata(false)); + + + + public DataTable MyDataTable + { + get { return (DataTable)GetValue(MyDataTableProperty); } + set { SetValue(MyDataTableProperty, value); } + } + + // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... + public static readonly DependencyProperty MyDataTableProperty = + DependencyProperty.Register("MyDataTable", + typeof(DataTable), + typeof(ScatterPlot), new FrameworkPropertyMetadata( + new DataTable("DefaultDataTable"), + FrameworkPropertyMetadataOptions.None, + ContentChanged)); + + private ResourceManager _resourceManager; + + private string _yLabel; + private string _xLabel; + + private DataColumn _xColumn; + private DataColumn _yColumn; + private DataColumn _cColumn; + private DataColumn _sColumn; + + private bool _hasThirdCol = false; + + + + + public string Title + { + get { return (string)GetValue(TitleProperty); } + set { SetValue(TitleProperty, value); } + } + + // Using a DependencyProperty as the backing store for Title. This enables animation, styling, binding, etc... + public static readonly DependencyProperty TitleProperty = + DependencyProperty.Register("Title", typeof(string), typeof(ScatterPlot), new PropertyMetadata("Title")); + + + + + public string LeftTitle + { + get { return (string)GetValue(LeftTitleProperty); } + set { SetValue(LeftTitleProperty, value); } + } + + // Using a DependencyProperty as the backing store for LeftTitle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LeftTitleProperty = + DependencyProperty.Register("LeftTitle", typeof(string), typeof(ScatterPlot), new PropertyMetadata("y_axis_label")); + + + + + + public string BottomTitle + { + get { return (string)GetValue(BottomTitleProperty); } + set { SetValue(BottomTitleProperty, value); } + } + + // Using a DependencyProperty as the backing store for BottomTitle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty BottomTitleProperty = + DependencyProperty.Register("BottomTitle", typeof(string), typeof(ScatterPlot), new PropertyMetadata("x_axis_label")); + + + + + public string Description + { + get { return (string)GetValue(DescriptionProperty); } + set { SetValue(DescriptionProperty, value); } + } + + // Using a DependencyProperty as the backing store for Description. This enables animation, styling, binding, etc... + public static readonly DependencyProperty DescriptionProperty = + DependencyProperty.Register("Description", typeof(string), typeof(ScatterPlot), new PropertyMetadata(null)); + + + + + public string ColorDescription + { + get { return (string)GetValue(ColorDescriptionProperty); } + set { SetValue(ColorDescriptionProperty, value); } + } + + // Using a DependencyProperty as the backing store for ColorDescription. This enables animation, styling, binding, etc... + public static readonly DependencyProperty ColorDescriptionProperty = + DependencyProperty.Register("ColorDescription", typeof(string), typeof(ScatterPlot), new PropertyMetadata("")); + + + + public ScatterPlot() + { + InitializeComponent(); + _resourceManager = Strings.ResourceManager; + } + + + + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + ScatterPlot plot = (ScatterPlot)d; + if (plot.MyDataTable == null || plot.MyDataTable.TableName == "DefaultDataTable") + { + return; + } + + plot.SetColumns(); + plot.SetLabels(); + } + + private void SetColumns() + { + + Debug.Assert(MyDataTable.Columns.Count > 2); + if (SwitchAxis) { + _xColumn = MyDataTable.Columns[1]; + _yColumn = MyDataTable.Columns[0]; + } else { + _xColumn = MyDataTable.Columns[0]; + _yColumn = MyDataTable.Columns[1]; + } + + _hasThirdCol = MyDataTable.Columns.Count >= 3; + + + uint N = (uint)MyDataTable.Rows.Count; + object[] xData = new object[N]; + object[] yData = new object[N]; + + if (_hasThirdCol) { + uint i = 0; + object[] cData = new object[N]; + _cColumn = MyDataTable.Columns[2]; + foreach (DataRow row in MyDataTable.Rows) + { + xData[i] = row[_xColumn].ToString().ToDouble(); + yData[i] = row[_yColumn].ToString().ToDouble(); + cData[i] = row[_cColumn].ToString().ToDouble(); + i++; + } + circles.PlotColor(xData, yData, cData); + } else { + uint i = 0; + foreach (DataRow row in MyDataTable.Rows) + { + xData[i] = row[_xColumn].ToString().ToDouble(); + yData[i] = row[_yColumn].ToString().ToDouble(); + i++; + } + circles.PlotXY(xData, yData); + } + } + + private void SetLabels() + { + Title = MyDataTable.TableName; + LeftTitle = _yColumn.ColumnName; + BottomTitle = _xColumn.ColumnName; + Description = _yColumn.ColumnName; + if (_hasThirdCol) { + ColorDescription = _cColumn.ColumnName; + } + + + + } + + + + /* + * double[] x = new double[N]; + double[] y = new double[N]; + double[] c = new double[N]; + double[] d = new double[N]; + + Random rand = new Random(); + //circles + for (int i = 0; i < N; i++) + { + x[i] = rand.Next(M); + y[i] = rand.Next(M); + c[i] = rand.NextDouble(); + d[i] = 20 * rand.NextDouble(); + } + + circles.PlotColorSize(x, y, c, d); + //diamonds + x = new double[N]; + y = new double[N]; + c = new double[N]; + d = new double[N]; + + for (int i = 0; i < N; i++) + { + x[i] = rand.Next(M); + y[i] = rand.Next(M); + c[i] = rand.NextDouble(); + d[i] = 20 * rand.NextDouble(); + } + diamonds.PlotColorSize(x, y, c, d); + * + * + * + * + * + */ + + } +} diff --git a/VECTO3GUI2020/Views/CustomControls/Viewer.xaml b/VECTO3GUI2020/Views/CustomControls/Viewer.xaml new file mode 100644 index 0000000000000000000000000000000000000000..91de05bebcc58f79d0d6340268758ec1ec212bb0 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/Viewer.xaml @@ -0,0 +1,110 @@ +<!-- Template: https://www.codeproject.com/Articles/71069/A-Simple-WPF-XML-Document-Viewer-Control --> + <UserControl x:Class="VECTO3GUI2020.Views.CustomControls.Viewer" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:xmlstack="clr-namespace:System.Xml;assembly=System.Xml" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + + <UserControl.Resources> + <SolidColorBrush Color="Blue" x:Key="xmlValueBrush"/> + <SolidColorBrush Color="Red" x:Key="xmAttributeBrush"/> + <SolidColorBrush Color="DarkMagenta" x:Key="xmlTagBrush"/> + <SolidColorBrush Color="Blue" x:Key="xmlMarkBrush"/> + + <DataTemplate x:Key="attributeTemplate"> + <StackPanel Orientation="Horizontal" + + Margin="3,0,0,0" HorizontalAlignment="Center"> + <TextBlock Text="{Binding Path=Name}" + + Foreground="{StaticResource xmAttributeBrush}"/> + <TextBlock Text="="" + + Foreground="{StaticResource xmlMarkBrush}"/> + <TextBlock Text="{Binding Path=Value}" + + Foreground="{StaticResource xmlValueBrush}"/> + <TextBlock Text=""" + + Foreground="{StaticResource xmlMarkBrush}"/> + </StackPanel> + </DataTemplate> + + <Style TargetType="{x:Type TreeViewItem}"> + <Setter Property="IsExpanded" Value="True"/> + </Style> + + <HierarchicalDataTemplate x:Key="treeViewTemplate" + + ItemsSource="{Binding XPath=child::node()}"> + <StackPanel Orientation="Horizontal" Margin="3,0,0,0" + + HorizontalAlignment="Center"> + <TextBlock Text="<" HorizontalAlignment="Center" + + Foreground="{StaticResource xmlMarkBrush}" + + x:Name="startTag"/> + + <TextBlock Text="{Binding Path=Name}" + + Margin="0" + + HorizontalAlignment="Center" + + x:Name="xmlTag" + + Foreground="{StaticResource xmlTagBrush}"/> + + <ItemsControl + + ItemTemplate="{StaticResource attributeTemplate}" + + ItemsSource="{Binding Path=Attributes}" + + HorizontalAlignment="Center"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal"/> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + </ItemsControl> + + <TextBlock Text=">" HorizontalAlignment="Center" + + Foreground="{StaticResource xmlMarkBrush}" + + x:Name="endTag"/> + </StackPanel> + + <HierarchicalDataTemplate.Triggers> + <DataTrigger Binding="{Binding NodeType}"> + <DataTrigger.Value> + <xmlstack:XmlNodeType>Text</xmlstack:XmlNodeType> + </DataTrigger.Value> + <Setter Property="Text" Value="{Binding InnerText}" + + TargetName="xmlTag"/> + <Setter Property="Foreground" Value="Blue" + + TargetName="xmlTag"/> + <Setter Property="Visibility" Value="Collapsed" + + TargetName="startTag"/> + <Setter Property="Visibility" Value="Collapsed" + + TargetName="endTag"/> + </DataTrigger> + + <DataTrigger Binding="{Binding HasChildNodes}" Value="False"> + <Setter Property="Text" Value="/>" TargetName="endTag"/> + </DataTrigger> + </HierarchicalDataTemplate.Triggers> + </HierarchicalDataTemplate> + </UserControl.Resources> + + <Grid> + <TreeView Grid.Row="2" Grid.ColumnSpan="2" Name="xmlTree" + + ItemTemplate="{StaticResource treeViewTemplate}"/> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/CustomControls/Viewer.xaml.cs b/VECTO3GUI2020/Views/CustomControls/Viewer.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..05920e5973b2fa60d36dd7da2c80c636055e30f1 --- /dev/null +++ b/VECTO3GUI2020/Views/CustomControls/Viewer.xaml.cs @@ -0,0 +1,47 @@ +using System.Windows.Controls; +using System.Windows.Data; +using System.Xml; + +namespace VECTO3GUI2020.Views.CustomControls +{ + /// <summary> + /// Interaktionslogik für Viewer.xaml + /// </summary> + public partial class Viewer : UserControl + { + + private XmlDocument _xmldocument; + public Viewer() + { + InitializeComponent(); + } + + + public XmlDocument xmlDocument + { + get { return _xmldocument; } + set + { + _xmldocument = value; + BindXMLDocument(); + } + } + + private void BindXMLDocument() + { + if (_xmldocument == null) + { + xmlTree.ItemsSource = null; + return; + } + + XmlDataProvider provider = new XmlDataProvider(); + provider.Document = _xmldocument; + Binding binding = new Binding(); + binding.Source = provider; + binding.XPath = "child::node()"; + xmlTree.SetBinding(TreeView.ItemsSourceProperty, binding); + } + + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml b/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..00111fd1d0fbdcb2333e0f5d9370d8d0c704acc8 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml @@ -0,0 +1,61 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.DeclarationJobEditView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + + + <Grid Background="#e6f7ff"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="4*"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + </Grid.RowDefinitions> + <ListView + Grid.Column="0" Grid.RowSpan="2" + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch" + Name="ComponentList" + ItemsSource="{Binding ComponentViewModels}" + SelectedItem ="{Binding CurrentDetailView, Mode=TwoWay}" SelectedIndex="1" + > + <ListView.Resources> + <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" /> + <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" /> + <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> + + </ListView.Resources> + + <ListView.ItemTemplate> + <DataTemplate> + <Label Content="{Binding Name}"/> + </DataTemplate> + </ListView.ItemTemplate> + <ListView.ItemContainerStyle> + <Style TargetType="{x:Type ListViewItem}"> + <Setter Property="Visibility" + Value="{Binding IsPresent, + Converter={StaticResource BooleanToVisibilityConverter}}"/> + <Setter Property="Focusable" Value="{Binding IsPresent}"/> + </Style> + </ListView.ItemContainerStyle> + </ListView> + <ContentControl Grid.Column="1" Grid.Row="0" Margin="10 10 10 10" Content="{Binding CurrentDetailView}"/> + <DockPanel Grid.Column="1" Grid.Row="1" LastChildFill="False" Background="White"> + <Button DockPanel.Dock="Right" Content="Save" Margin="2 2 2 2" Padding="5 0" + Command="{Binding SaveCommand}" Style="{StaticResource MainViewButton}"/> + <Button DockPanel.Dock="Right" Content="Save as ..." Margin="2 2 2 2" Padding="5 0" + Command="{Binding SaveAsCommand}" Style="{StaticResource MainViewButton}"/> + <Button DockPanel.Dock="Right" Content="Save Component to File" Margin="2 2 2 2 " Padding="5 0" IsEnabled="False" Style="{StaticResource MainViewButton}"></Button> + <Button DockPanel.Dock="Right" Content="Load XML File" Margin="2 2 2 2" Padding="5 0" IsEnabled="False" Style="{StaticResource MainViewButton}"></Button> + <Button DockPanel.Dock="Right" Content="Validate" Margin="2 2 2 2" Padding="5 0" IsEnabled="False" Style="{StaticResource MainViewButton}"></Button> + </DockPanel> + </Grid> +</UserControl> \ No newline at end of file diff --git a/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..29452909d04aa44699e797c2f04c5285aa280b09 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/DeclarationJobEditView.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews +{ + /// <summary> + /// Interaction logic for JobEditView.xaml + /// </summary> + public partial class DeclarationJobEditView : UserControl + { + public DeclarationJobEditView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml new file mode 100644 index 0000000000000000000000000000000000000000..e533a6e0cf88cc5ba0622bb7c4d4fe14605ec772 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml @@ -0,0 +1,34 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.ADASView_v2_3" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + + + <Grid> + <StackPanel> + <Label Content="Advanced Driving Assistant Systems" Style="{StaticResource LabelStyleSubView}"></Label> + <custom:ComboParameter Content="{Binding EcoRoll}"></custom:ComboParameter> + <custom:ComboParameter Content="{Binding PredictiveCruiseControl}"></custom:ComboParameter> + <custom:LabledCheckBoxAutomatic Content="{Binding EngineStopStart}"/> + + + <!-- https://stackoverflow.com/questions/9893825/mvvm-hiding-a-control-when-bound-property-is-not-present --> + + <custom:LabledCheckBoxAutomatic Content="{Binding ATEcoRollReleaseLockupClutch}" + Visibility="{Binding ATEcoRollReleaseLockupClutch, + Converter={StaticResource AlwaysVisibleConverter}, + FallbackValue=Collapsed}"/> + + <!-- + <CheckBox Content="Eco Roll Release Lockup Clutch" + IsChecked="{Binding ATEcoRollReleaseLockupClutch, FallbackValue=true}" + Visibility="{Binding ATEcoRollReleaseLockupClutch, Converter={StaticResource AlwaysVisibleConverter}, + FallbackValue=Collapsed}"/> --> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c61bea4e37e7a97abf233e46043610005148b54 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/ADASView_v2_3.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for ADASView_v2_3.xaml + /// </summary> + public partial class ADASView_v2_3 : UserControl + { + public ADASView_v2_3() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..9d16bc0317faba0f5800d3bc097b7b1fd4e49041 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml @@ -0,0 +1,19 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AirDragView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + > + <Grid> + <StackPanel Orientation="Vertical"> + <Label HorizontalAlignment="Stretch" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"></Label> + <ContentControl Content="{Binding CommonComponentViewModel}"/> + <Separator/> + <custom:LabledTextBoxAutomatic Content="{Binding AirDragArea}"/> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..1f93054e155ffb282871de8715296723408c4ce4 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AirDragView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaktionslogik für AirDragView_v2_0.xaml + /// </summary> + public partial class AirDragView_v2_0 : UserControl + { + public AirDragView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..af6514836e3a7cf3df1830c3f3cc30eba5ab3804 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml @@ -0,0 +1,16 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AngleDriveView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <DockPanel> + <ContentControl Content="{Binding CommonComponentViewModel}" DockPanel.Dock="Top"/> + <customControls:ScatterPlot MyDataTable="{Binding LossMap}"></customControls:ScatterPlot> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..9f079ca06e9865791c4ca5f1f44cdbc4674b1209 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AngleDriveView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for AngleDriveView.xaml + /// </summary> + public partial class AngleDriveView_v2_0 : UserControl + { + public AngleDriveView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..63b4740ca395657e0e1d065db1b7d3ea318f3e94 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml @@ -0,0 +1,42 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AuxiliariesView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <DockPanel> + <Label HorizontalAlignment="Stretch" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5" DockPanel.Dock="Top"></Label> + <ScrollViewer DockPanel.Dock="Top" VerticalScrollBarVisibility="Auto"> + <ItemsControl ItemsSource="{Binding AuxiliaryViewModels}" Name="AxleList" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" x:Name="StackPanel"> + <ContentControl Margin="5 5 5 5" Content="{Binding .}"/> + <Rectangle HorizontalAlignment="Stretch" Height="10" x:Name="Separator"/> + </StackPanel> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter TargetName="StackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.9"/> + </Setter.Value> + </Setter> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter TargetName="StackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.3"/> + </Setter.Value> + </Setter> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </ScrollViewer> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..896afcd981a92dc70aaad1620fe7af854d6bcd48 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliariesView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaktionslogik für AuxiliariesView_v2_0.xaml + /// </summary> + public partial class AuxiliariesView_v2_0 : UserControl + { + public AuxiliariesView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..4fc975869a8e07e177ca983012d5c358a9785f5f --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml @@ -0,0 +1,16 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AuxiliaryView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls"> + <Grid> + <StackPanel> + <Label Content="{Binding Name, FallbackValue='Auxiliary'}" Style="{DynamicResource LabelStyleSubView}" /> + <ComboBox ItemsSource="{Binding TechnologyList}" SelectedItem="{Binding TechnologyName, Mode=TwoWay}"></ComboBox> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..222b0896ebdeb8c496d0d0bae97fc787f33377c3 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AuxiliaryView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for AuxiliaryView.xaml + /// </summary> + public partial class AuxiliaryView_v2_0 : UserControl + { + public AuxiliaryView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..4e56af8bde299d8efe6314453dc3bffe870a974b --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml @@ -0,0 +1,26 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AxleGearView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + + <Grid> + <DockPanel> + <Label DockPanel.Dock="Top" HorizontalAlignment="Stretch" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"/> + <ScrollViewer DockPanel.Dock="Top" HorizontalContentAlignment="Stretch" Padding="0 10 30 10"> + <DockPanel> + <ContentControl Content="{Binding CommonComponentViewModel}" DockPanel.Dock="Top"/> + <Separator DockPanel.Dock="Top"/> + <!--custom:LabledTextBoxAutomatic Content="{Binding Efficiency}" DockPanel.Dock="Top"/--> + <custom:LabledTextBoxAutomatic Content="{Binding Ratio}" DockPanel.Dock="Top"/> + <custom:ComboParameter Content="{Binding LineType}" DockPanel.Dock="Top"/> + <custom:ScatterPlot Height="300" MyDataTable="{Binding LossMapDT}" DockPanel.Dock="Top"></custom:ScatterPlot> + </DockPanel> + </ScrollViewer> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..36296f61bbdee217ab93c168915669d33460eefc --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleGearView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for AxleGearView_v2_0.xaml + /// </summary> + public partial class AxleGearView_v2_0 : UserControl + { + public AxleGearView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..df60ce660dc8158a8be4a02e151b84954f18a16e --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml @@ -0,0 +1,32 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AxleView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="150" d:DesignWidth="150" > + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + + <StackPanel> + <Label Style="{StaticResource LabelStyleSubView}">Axle</Label> + <custom:ComboParameter Grid.Column="0" Grid.Row="1" Content="{Binding AxleType}"/> + </StackPanel> + + + <StackPanel Grid.Column="1"> + <custom:LabledCheckBoxAutomatic Content="{Binding TwinTyres}"></custom:LabledCheckBoxAutomatic> + <custom:LabledCheckBoxAutomatic Content="{Binding Steered}"></custom:LabledCheckBoxAutomatic> + </StackPanel> + <ContentControl Grid.Row="1" Grid.ColumnSpan="2" Margin="10" Content="{Binding TyreViewModel}"></ContentControl> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..0aa1db44430ffcdd0e942afc7c708c5d0d4a087c --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for AxleView.xaml + /// </summary> + public partial class AxleView_v2_0 : UserControl + { + public AxleView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..32c48e3af7df86cdc5ef19b7de535597de879f8f --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml @@ -0,0 +1,45 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.AxleWheelsView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + > + <Grid> + <DockPanel> + <Label HorizontalAlignment="Stretch" DockPanel.Dock="Top" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"></Label> + <ScrollViewer DockPanel.Dock="Top" VerticalScrollBarVisibility="Auto" Padding="0 10 30 10"> + <ItemsControl ItemsSource="{Binding AxleViewModels}" Name="AxleList" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" x:Name="AxleStackPanel"> + <ContentControl Margin="5 5 5 5" Content="{Binding .}"/> + <Rectangle HorizontalAlignment="Stretch" Height="10" x:Name="Separator"/> + </StackPanel> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter TargetName="AxleStackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.9"/> + </Setter.Value> + </Setter> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter TargetName="AxleStackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.0"/> + </Setter.Value> + </Setter> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </ScrollViewer> + </DockPanel> + + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..787484d5d8872edfff8a46d148f309fe39487a26 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/AxleWheelsView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for AxleWheelsView_v2_0.xaml + /// </summary> + public partial class AxleWheelsView_v2_0 : UserControl + { + public AxleWheelsView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..8e4af5cbfca8d135d3001a7a943c3a0a9a1d374d --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml @@ -0,0 +1,19 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.CommonComponentView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <StackPanel Orientation="Vertical"> + <custom:LabledTextBoxAutomatic Content="{Binding Manufacturer}"/> + <custom:LabledTextBoxAutomatic Content="{Binding Model}"/> + <custom:DateTimePicker Date="{Binding Date}"/> + <custom:ComboParameter Content="{Binding CertificationMethod}"></custom:ComboParameter> + <custom:LabledTextBoxAutomatic Content="{Binding CertificationNumber}"></custom:LabledTextBoxAutomatic> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..db4b49c30c1f40518e2617a2cbcf4b88c80b791a --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/CommonComponentView.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for CommonComponentViewModel.xaml + /// </summary> + public partial class CommonComponentView : UserControl + { + public CommonComponentView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..06901d40435428a9ddcbf90629ec444e2c7ba5a4 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml @@ -0,0 +1,27 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.EngineFuelView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper" + xmlns:d3="clr-namespace:InteractiveDataDisplay.WPF;assembly=InteractiveDataDisplay.WPF" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" Background="Transparent"> + <Grid> + <DockPanel> + <customControls:ComboParameter Content="{Binding FuelType}" DockPanel.Dock="Top"/> + <customControls:LabledTextBoxAutomatic Content="{Binding WHTCMotorway}" DockPanel.Dock="Top"/> + <customControls:LabledTextBoxAutomatic Content="{Binding WHTCRural}" DockPanel.Dock="Top"/> + <customControls:LabledTextBoxAutomatic Content="{Binding WHTCUrban}" DockPanel.Dock="Top"/> + <customControls:LabledTextBoxAutomatic Content="{Binding ColdHotBalancingFactor}" DockPanel.Dock="Top"/> + + + <customControls:ScatterPlot HorizontalAlignment="Stretch" DockPanel.Dock="Top" Height="300" MyDataTable="{Binding FuelConsumptionMap}" SwitchAxis="False"/> + + <DataGrid ItemsSource="{Binding FuelConsumptionMap}" + Width="Auto" Margin="0" DockPanel.Dock="Top" IsReadOnly="True" Height="300" ColumnWidth="*" /> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..6e77bd53108bd670433c6dd3114c03f08a258bec --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineFuelView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for EngineFuelView.xaml + /// </summary> + public partial class EngineFuelView : UserControl + { + public EngineFuelView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml new file mode 100644 index 0000000000000000000000000000000000000000..ad2ed1197126666cd1c18b75f979475b4ea5de46 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml @@ -0,0 +1,52 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.EngineModeViewSingleFuel" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <StackPanel> + <!--custom:LabledTextBoxAutomatic Content="{Binding IdleSpeed}"/--> + <StackPanel Visibility="{Binding WasteHeatRecoveryDataMechanical, Converter={StaticResource NullToVisibilityConverter}}" IsEnabled="False"> + <Separator></Separator> + <Label Content="Wast Heat Recovery Mechanical"/> + <custom:LabledTextBoxAutomatic Content="{Binding WasteHeatRecoveryDataElectrical.UrbanCorrectionFactor}"/> + <custom:LabledTextBoxAutomatic Content="{Binding WasteHeatRecoveryDataElectrical.RuralCorrectionFactor}"/> + </StackPanel> + <!-- Visibility="{Binding WasteHeatRecoveryDataElectrical, Converter={StaticResource NullToVisibilityConverter}}" --> + <StackPanel Visibility="{Binding WasteHeatRecoveryDataElectrical, Converter={StaticResource NullToVisibilityConverter}}" > + <Separator></Separator> + <Label Content="Wast Heat Recovery Electrical"/> + <custom:LabledTextBoxAutomatic Content="{Binding WasteHeatRecoveryDataElectrical.UrbanCorrectionFactor}"/> + <custom:LabledTextBoxAutomatic Content="{Binding WasteHeatRecoveryDataElectrical.RuralCorrectionFactor}"/> + </StackPanel> + <!--Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type Grid}}, Mode=OneWay}"--> + + <custom:ScatterPlot Height="300" MyDataTable="{Binding FullLoadDT}"></custom:ScatterPlot> + <StackPanel> + <Separator/> + <ItemsControl ItemsSource="{Binding FuelViewModels}" Name="Fuels" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" x:Name="FuelStackpanel"> + <ContentControl Margin="5 5 5 5" Content="{Binding .}"/> + <Rectangle HorizontalAlignment="Stretch" Height="10" x:Name="Separator"/> + </StackPanel> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter Property="Background" TargetName="FuelStackpanel" Value="Transparent"/> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter Property="Background" TargetName="FuelStackpanel" Value="Transparent"/> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..42e160cb18d19e0eb56a6baa34ff81dd9bb03dc3 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineModeViewSingleFuel.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for EngineModeViewSingleFuel.xaml + /// </summary> + public partial class EngineModeViewSingleFuel : UserControl + { + public EngineModeViewSingleFuel() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..33bb367970f6b28db0ce7cc392da81abf4075603 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml @@ -0,0 +1,54 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.EngineView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + HorizontalAlignment="Stretch"> + <Grid> + <DockPanel> + <Label HorizontalAlignment="Stretch" DockPanel.Dock="Top" + Content="{Binding Name}" + Background="Aquamarine" + FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"></Label> + <ScrollViewer DockPanel.Dock="Top" VerticalScrollBarVisibility="Auto" Padding="0 10 30 10"> + <StackPanel> + <StackPanel HorizontalAlignment="Stretch" DockPanel.Dock="Top"> + + <ContentControl Content="{Binding CommonComponentViewModel}"/> + <Separator/> + <custom:LabledTextBoxAutomatic Content="{Binding RatedPowerDeclared}"/> + <custom:LabledTextBoxAutomatic Content="{Binding Displacement}"/> + <custom:LabledTextBoxAutomatic Content="{Binding IdlingSpeed}"/> + <custom:LabledTextBoxAutomatic Content="{Binding RatedSpeedDeclared}"/> + <custom:LabledTextBoxAutomatic Content="{Binding MaxTorqueDeclared}"/> + <custom:ComboParameter Content="{Binding WHRType}"/> + <Separator/> + </StackPanel> + + <ItemsControl ItemsSource="{Binding EngineModeViewModels}" Name="EngineMode" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" x:Name="EngineModeStackpanel"> + <ContentControl Margin="5 5 5 5" Content="{Binding .}"/> + <Rectangle HorizontalAlignment="Stretch" Height="10" x:Name="Separator"/> + </StackPanel> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter Property="Background" TargetName="EngineModeStackpanel" Value="Transparent"/> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter Property="Background" TargetName="EngineModeStackpanel" Value="Transparent"/> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + </ScrollViewer> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..f474564cc915f1c4498d8ff7e4ed70657f256340 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/EngineView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for EngineView_v2_0.xaml + /// </summary> + public partial class EngineView_v2_0 : UserControl + { + public EngineView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..a07412f3bd56620d5f99ee263500242338f7e769 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml @@ -0,0 +1,74 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.GearView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" + mc:Ignorable="d" + d:DesignHeight="1600" d:DesignWidth="800"> + + <Grid> + <StackPanel> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="100"/> + <ColumnDefinition/> + <ColumnDefinition/> + </Grid.ColumnDefinitions> + + <Grid.RowDefinitions> + <RowDefinition/> + <RowDefinition/> + <RowDefinition/> + </Grid.RowDefinitions> + + <StackPanel Orientation="Horizontal" Grid.RowSpan="3" VerticalAlignment="Center"> + <Label Grid.RowSpan="3" Content="Gear:" DockPanel.Dock="Left" Style="{StaticResource LabelStyleSubView}"/> + <Label Content="{Binding Gear}" DockPanel.Dock="Left" Style="{StaticResource LabelStyleSubView}"/> + </StackPanel> + <StackPanel Orientation="Horizontal" Grid.Column="1"> + <Label Content="Torque Loss: " DockPanel.Dock="Left" Padding="0 0 0 0" /> + <Label Content="{Binding MinTorqueLossCalculated}" Padding="0 0 0 0"/> + <Label Content=" - " Padding="0 0 0 0" /> + <Label Content="{Binding MaxTorqueLossCalculated}" Padding="0 0 0 0"/> + </StackPanel> + <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="1"> + <Label Content="Input Speed: " Padding="0 0 0 0"/> + <Label Content="{Binding MinInputSpeedCalculated}" Padding="0 0 0 0"/> + <Label Content=" - " Padding="0 0 0 0"/> + <Label Content="{Binding MaxInputSpeedCalculated}" Padding="0 0 0 0"/> + </StackPanel> + <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="2"> + <Label Content="Input Speed: " Padding="0 0 0 0"/> + <Label Content="{Binding MinInputSpeedCalculated}" Padding="0 0 0 0"/> + <Label Content=" - " Padding="0 0 0 0"/> + <Label Content="{Binding MaxInputSpeedCalculated}" Padding="0 0 0 0"/> + </StackPanel> + + <CheckBox Grid.Column="3" Grid.RowSpan="3" VerticalAlignment="Center" + Name="btn_toggletableview" + Content="Show Details" + IsChecked="False" HorizontalAlignment="Right" Width="87.898"/> + </Grid> + + + <DockPanel Visibility="{Binding IsChecked, + ElementName=btn_toggletableview, + Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20"> + + <custom:ScatterPlot DockPanel.Dock="Top" MyDataTable="{Binding LossMap}" Height="300"></custom:ScatterPlot> + <DataGrid ItemsSource="{Binding LossMapDataView}" + DockPanel.Dock="Top" + Width="Auto" + VerticalScrollBarVisibility="Visible" + IsReadOnly="True" + Height="200" + HorizontalContentAlignment="Stretch" ColumnWidth="*"> + </DataGrid> + </DockPanel> + + </StackPanel> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..89109a2b053470f355fc520f7d47f5ce4e939d2d --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for GearView_v2_0.xaml + /// </summary> + public partial class GearView_v2_0 : UserControl + { + public GearView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..3bf8d49b23e34de15683bd9cfb0f8e1c030d54d8 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml @@ -0,0 +1,59 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.GearboxView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls"> + + <Grid> + <DockPanel> + <Label HorizontalAlignment="Stretch" + Content="{Binding Name}" + Background="Aquamarine" + FontSize="20" + Height="40" + FontWeight="DemiBold" + Padding="10 5 5 5" + DockPanel.Dock="Top"/> + <ScrollViewer DockPanel.Dock="Top" VerticalScrollBarVisibility="Visible" Padding="0 10 30 10"> + <StackPanel DockPanel.Dock="Top"> + <ContentControl Content="{Binding CommonComponentViewModel}"/> + <Separator/> + <!--custom:LabledTextBoxAutomatic Content="{Binding AxlegearRatio}"/--> + <!--custom:LabledCheckBoxAutomatic Content="{Binding DifferentialIncluded}"/--> + <custom:ComboParameter Content="{Binding Type}"/> + <Separator/> + <ItemsControl ItemsSource="{Binding GearViewModels}" Name="GearsList" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" x:Name="GearStackPanel"> + <ContentControl Margin="5 5 5 5" Content="{Binding .}"/> + <Rectangle HorizontalAlignment="Stretch" Height="10" x:Name="Separator"/> + </StackPanel> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter TargetName="GearStackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.7"/> + </Setter.Value> + </Setter> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter TargetName="GearStackPanel" Property="Background"> + <Setter.Value> + <SolidColorBrush Color="White" Opacity="0.1"/> + </Setter.Value> + </Setter> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + </ScrollViewer> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..b1513406cc7c7bb91bf9888957119820d76ff912 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/GearboxView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaktionslogik für GearboxView_v2_0.xaml + /// </summary> + public partial class GearboxView_v2_0 : UserControl + { + public GearboxView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..51c6a0ff3f9197fe1215101e2c392ff6c0e3812f --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml @@ -0,0 +1,22 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.PTOView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <StackPanel> + <Label Content="Power-take-off" Style="{StaticResource LabelStyleSubView}"></Label> + <custom:LabledTextBoxAutomatic Content="{Binding PTOTransmissionType}"/> + <DataGrid ItemsSource="{Binding PTOCycleDataView}" + Visibility="{Binding PTOCycleDataView, + Converter={StaticResource NullToVisibilityConverter}}" + IsReadOnly="True" /> + <DataGrid ItemsSource="{Binding PTOLossMapDataView}" + Visibility="{Binding PTOLossMapDataView, + Converter={StaticResource NullToVisibilityConverter}}" IsReadOnly="True"/> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..6977b9b98228c17873bcf8d4012c0bef656b325a --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/PTOView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for PTOView_v2_0.xaml + /// </summary> + public partial class PTOView_v2_0 : UserControl + { + public PTOView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..28d8a183dc79982a8608b085473ed0e82ed5fbad --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml @@ -0,0 +1,33 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.RetarderView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:dvc="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + d:DesignHeight="450" d:DesignWidth="800" + > + <Grid> + <StackPanel> + <Label DockPanel.Dock="Top" HorizontalAlignment="Stretch" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"></Label> + <ScrollViewer DockPanel.Dock="Top" VerticalScrollBarVisibility="Visible" CanContentScroll="True" Padding="0 10 30 10"> + <DockPanel> + <ContentControl DockPanel.Dock="Top" Content="{Binding CommonComponentViewModel}"/> + <custom:LabledTextBoxAutomatic DockPanel.Dock="Top" Content="{Binding Ratio}"></custom:LabledTextBoxAutomatic> + <custom:ComboParameter IsEnabled="False" DockPanel.Dock="Top" Content="{Binding Type }"></custom:ComboParameter> + <custom:ScatterPlot Content="{Binding LossMap}"></custom:ScatterPlot> + <DataGrid ItemsSource="{Binding LossMapDataView}" + IsReadOnly="True" /> + </DockPanel> + </ScrollViewer> + + + + <!-- https://docs.microsoft.com/en-us/answers/questions/10086/draw-chart-with-systemwindowscontrolsdatavisualiza.html --> + + + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..2640b2a2c53b9bdd7b4d2b4588ada11f77d177cb --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/RetarderView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for RetarderView_v2_0.xaml + /// </summary> + public partial class RetarderView_v2_0 : UserControl + { + public RetarderView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..fa9ea307013fc0945a2a386f471d3a9b3ba21114 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml @@ -0,0 +1,43 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.TyreView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + <StackPanel Grid.ColumnSpan="2"> + <Separator></Separator> + <Label Style="{StaticResource LabelStyleSubView}">Tyre</Label> + </StackPanel> + + + <StackPanel Grid.Row="1"> + <ContentControl Content="{Binding CommonComponentViewModel}"/> + + </StackPanel> + <StackPanel Grid.Row="1" Grid.Column="1"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Label Content="Dimension "></Label> + <ComboBox Grid.Column="1" Margin="2 2 2 2" ItemsSource="{Binding AllowedDimensions}" SelectedItem="{Binding Dimension, Mode=TwoWay}"></ComboBox> + </Grid> + <custom:LabledTextBoxAutomatic Content="{Binding RollResistanceCoefficient}" UserUnit="N/N"/> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b3206bea5338835d0c30b8aac072e7676f7303d --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for TyreView_v2_0.xaml + /// </summary> + public partial class TyreView_v2_0 : UserControl + { + public TyreView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml new file mode 100644 index 0000000000000000000000000000000000000000..6327bc6f7e017f118828fdeebd0111059baadfaf --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml @@ -0,0 +1,38 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.Components.TyreView_v2_3" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + </Grid.ColumnDefinitions> + <StackPanel> + <ContentControl Content="{Binding Path=base}"/> + <custom:LabledTextBoxAutomatic Content="{Binding TyreClass}"/> + <custom:LabledTextBoxAutomatic Content="{Binding FuelEfficiencyClass}"/> + + + <!--custom:LabledTextBoxAutomatic Content="{Binding Dimension}"/--> + + + </StackPanel> + <StackPanel Grid.Column="1"> + <Grid Grid.Column="1"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="3*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Label Content="Dimension "></Label> + <ComboBox Grid.Column="1" Margin="2 2 2 2" ItemsSource="{Binding AllowedDimensions}" SelectedItem="{Binding Dimension, Mode=TwoWay}"></ComboBox> + </Grid> + <custom:LabledTextBoxAutomatic Content="{Binding RRC}" UserUnit="N/N" /> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..eafe2a25be8728b00e80d075ee6c6994fe884644 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/Components/TyreView_v2_3.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle.Components +{ + /// <summary> + /// Interaction logic for TyreView_v2_0.xaml + /// </summary> + public partial class TyreView_v2_3 : UserControl + { + public TyreView_v2_3() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml b/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml new file mode 100644 index 0000000000000000000000000000000000000000..50f29987e2ea53401d0b0707854567a41bcf2cc1 --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml @@ -0,0 +1,46 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobEditViews.Vehicle.VehicleView_v2_0" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle" + xmlns:System="clr-namespace:System;assembly=mscorlib" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + + <Grid> + <DockPanel> + <Label DockPanel.Dock="Top" HorizontalAlignment="Stretch" Content="{Binding Name}" Background="Aquamarine" FontSize="20" Height="40" FontWeight="DemiBold" Padding="10 5 5 5"/> + <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" DockPanel.Dock="Top" Padding="0 10 30 10"> + <DockPanel> + + + <ContentControl Content="{Binding CommonComponentViewModel}" DockPanel.Dock="Top"/> + <Separator DockPanel.Dock="Top"></Separator> + <StackPanel DockPanel.Dock="Top"> + <custom:LabledTextBoxAutomatic Content="{Binding ManufacturerAddress}"/> + <custom:LabledTextBoxAutomatic Content="{Binding VIN}" /> + <custom:ComboParameter Content="{Binding LegislativeClass}" /> + <custom:ComboParameter Content="{Binding VehicleCategory}" /> + <custom:ComboParameter Content="{Binding AxleConfiguration}" /> + <custom:LabledTextBoxAutomatic Content="{Binding CurbMassChassis}"/> + <custom:LabledTextBoxAutomatic Content="{Binding GrossVehicleMassRating}"/> + <custom:LabledTextBoxAutomatic Content="{Binding EngineIdleSpeed}" /> + <custom:ComboParameter Content="{Binding AngledriveType}"></custom:ComboParameter> + <custom:ComboParameter Content="{Binding RetarderType}"></custom:ComboParameter> + <custom:LabledTextBoxAutomatic Content="{Binding RetarderRatio}"></custom:LabledTextBoxAutomatic> + <Separator/> + </StackPanel> + + <!--ContentControl Content="{Binding ADASViewModel}" DockPanel.Dock="Top"/> + <Separator DockPanel.Dock="Top"/> + <ContentControl Content="{Binding PTOViewModel}" DockPanel.Dock="Top"/> + <Separator DockPanel.Dock="Top"/--> + <!--Label Content="Torque Limits" DockPanel.Dock="Top" Style="{StaticResource LabelStyleSubView}"/> + <DataGrid ItemsSource="{Binding TorqueLimits}" DockPanel.Dock="Top" IsReadOnly="True" CanUserAddRows="False" CanUserResizeColumns="False" Margin="10 10 20 10" ColumnWidth="*" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch"/ --> + </DockPanel> + </ScrollViewer> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml.cs b/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..3cbcfeb256931476b6a9ab01731ecd763396a8fa --- /dev/null +++ b/VECTO3GUI2020/Views/JobEditViews/Vehicle/VehicleView_v2_0.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.JobEditViews.Vehicle +{ + /// <summary> + /// Interaction logic for VehicleBaseView_v2_0.xaml + /// </summary> + public partial class VehicleView_v2_0 : UserControl + { + public VehicleView_v2_0() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/JoblistView.xaml b/VECTO3GUI2020/Views/JoblistView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..d0f691c0a4e7068dd7a99da7317d765d81417634 --- /dev/null +++ b/VECTO3GUI2020/Views/JoblistView.xaml @@ -0,0 +1,108 @@ +<UserControl x:Class="VECTO3GUI2020.Views.JobListView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + xmlns:converter="clr-namespace:VECTO3GUI2020.Helper.Converter" xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" d:DataContext="{d:DesignInstance Type=implementation:JobListViewModel}" + mc:Ignorable="d" + AutomationProperties.Name="JobListView" + d:DesignHeight="450" d:DesignWidth="1000"> + + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition MinWidth="140" Width="1*"/> + <ColumnDefinition Name="MiddleColumn" Width="6*"/> + <ColumnDefinition MinWidth="140" Width="1*"/> + </Grid.ColumnDefinitions> + + <Border BorderBrush="Transparent" BorderThickness="1"> + <Grid> + <StackPanel HorizontalAlignment="Stretch"> + <Button x:Name="button" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding SimulationCommand}">Simulation</Button> + <Button Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding CancelSimulation}">Stop</Button> + <Button x:Name="button1" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding moveJobUp}" + CommandParameter="{Binding ElementName=JobDataGrid, Path=SelectedItem}">Up</Button> + <Button x:Name="button2" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding moveJobDown}" + CommandParameter="{Binding ElementName=JobDataGrid, Path=SelectedItem}">Down</Button> + </StackPanel> + </Grid> + </Border> + <Grid Grid.Column="1"> + <Border BorderBrush="{StaticResource AccentColorButton}" BorderThickness="0" > + <DataGrid ItemsSource="{Binding Jobs}" + BorderBrush ="{StaticResource AccentColorButton}" BorderThickness="1" + Name="JobDataGrid" + HorizontalAlignment="Stretch" + + CanUserReorderColumns="False" + AutoGenerateColumns="False" + SelectionMode="Single" + GridLinesVisibility="None" + HorizontalScrollBarVisibility="Disabled" + RowHeaderWidth="0" + ColumnHeaderHeight="30" + VerticalAlignment="Stretch" + VerticalContentAlignment="Stretch" + AllowDrop="True" Drop="JobDataGrid_OnDrop" + PreviewDrop = "JobDataGrid_OnPreviewDrop" + ColumnHeaderStyle="{StaticResource JobListDataGridHeaderStyle}" + + RowHeight="30" + AlternatingRowBackground="LightGray" CellStyle="{DynamicResource DataGridCellStyle1}" + > + <DataGrid.Columns> + <DataGridCheckBoxColumn IsReadOnly="False" Header="Simulate" Binding="{Binding Selected}" Width="1*"></DataGridCheckBoxColumn> + <DataGridTextColumn IsReadOnly="True" Header="Name" Binding="{Binding DocumentName}" Width="4*"></DataGridTextColumn> + <DataGridTextColumn IsReadOnly ="True" Header="Type" Binding="{Binding DocumentType}" Width="4*"></DataGridTextColumn> + + </DataGrid.Columns> + <DataGrid.RowDetailsTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical"> + <Label x:Name="label" Content="Filename"/> + <TextBlock x:Name="textBlock" Text="{Binding DataSource.SourceFile}" TextWrapping="Wrap" Margin="10" /> + </StackPanel> + </DataTemplate> + </DataGrid.RowDetailsTemplate> + <DataGrid.InputBindings> + <MouseBinding + MouseAction="LeftDoubleClick" + Command="{Binding EditJob}" + CommandParameter="{Binding ElementName=JobDataGrid, Path=SelectedItem}"></MouseBinding> + </DataGrid.InputBindings> + </DataGrid> + <!--<Label x:Name="label" Content="Loading . . ." Visibility="{Binding IsLoading, Converter={StaticResource BooleanToVisibilityConverter}}"/>--> + </Border> + </Grid> + <Grid Grid.Column="2"> + <Border BorderBrush="Transparent" BorderThickness="1"> + <StackPanel > + <Button x:Name="button3" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding AddJobAsyncCommand}" Background="#FFDDDDDD"> + Add Job</Button> + <Button x:Name="button4" Margin ="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding EditJob}" + CommandParameter="{Binding ElementName=JobDataGrid, Path=SelectedItem}">Edit Job</Button> + <Button x:Name="button5" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding NewManufacturingStageFile}" AutomationProperties.AutomationId="JobListViewNewManufacturingStageFileButton">New Multistage Job</Button> + <Button x:Name="button6" Margin="4" HorizontalAlignment="Stretch" + Style="{StaticResource MultiStageButtonStyle1}" + Command="{Binding RemoveJob}" + CommandParameter="{Binding ElementName=JobDataGrid, Path=SelectedItem}">Remove Job</Button> + </StackPanel> + </Border> + </Grid> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/JoblistView.xaml.cs b/VECTO3GUI2020/Views/JoblistView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..b64cacf114f17b87aeb375903b41251c696ad156 --- /dev/null +++ b/VECTO3GUI2020/Views/JoblistView.xaml.cs @@ -0,0 +1,50 @@ +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.ViewModel.Implementation; +using VECTO3GUI2020.ViewModel.Interfaces; + +namespace VECTO3GUI2020.Views +{ + /// <summary> + /// Interaction logic for JobListView.xaml + /// </summary> + public partial class JobListView : UserControl + { + + public JobListView() + { + InitializeComponent(); + + } + + + private void JobDataGrid_OnDrop(object sender, DragEventArgs e) + { + var success = true; + if (e.Data.GetDataPresent(DataFormats.FileDrop)) { + + + var fileNames = e.Data.GetData(DataFormats.FileDrop, true) as string[]; + if (fileNames != null) { + foreach (var fileName in fileNames) { + ((JobListViewModel)this.DataContext).AddJobAsync(fileName); + } + } + + } else { + success = false; + } + + if (!success) { + e.Effects = DragDropEffects.None; //DO NOT ACCEPT THE DROP + } + } + + private void JobDataGrid_OnPreviewDrop(object sender, DragEventArgs e) + { + if (!e.Data.GetDataPresent(DataFormats.FileDrop)) { + e.Effects = DragDropEffects.None; + } + } + } +} diff --git a/VECTO3GUI2020/Views/MessageView.xaml b/VECTO3GUI2020/Views/MessageView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..5544353b64c5ba12ab0cb58266bc42bf3bc07126 --- /dev/null +++ b/VECTO3GUI2020/Views/MessageView.xaml @@ -0,0 +1,12 @@ +<UserControl x:Class="VECTO3GUI2020.Views.MessageView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid Background="Aqua"> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/MessageView.xaml.cs b/VECTO3GUI2020/Views/MessageView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..af1134c7da717fce2fa98387dda965cd945512fb --- /dev/null +++ b/VECTO3GUI2020/Views/MessageView.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views +{ + /// <summary> + /// Interaction logic for MessageView.xaml + /// </summary> + public partial class MessageView : UserControl + { + public MessageView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml b/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml new file mode 100644 index 0000000000000000000000000000000000000000..f09fcfaecd01282da28029b2559b740a029aaecc --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml @@ -0,0 +1,35 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.AirDragView_v2_8" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components" d:DataContext="{d:DesignInstance Type=implementation:AirDragViewModel_v2_8}" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <StackPanel> + <Label + Visibility="{Binding LabelVisible, Converter={StaticResourceExtension BooleanToVisibilityConverter}}">Airdrag</Label> + <customControls:LabledTextBoxMultistage + Content="{Binding Manufacturer}" + ReadOnly="{Binding IsReadOnly}"/> + <customControls:LabledTextBoxMultistage + Content="{Binding Model}" + ReadOnly="{Binding IsReadOnly}"/> + <customControls:LabledTextBoxMultistage + Content="{Binding CertificationNumber}" + ReadOnly="{Binding IsReadOnly}"/> + <customControls:LabledTextBoxMultistage + Content="{Binding AirDragArea}" + ReadOnly="{Binding IsReadOnly}"/> + <customControls:LabledTextBoxMultistage + Content="{Binding AirDragArea_0}" + ReadOnly="{Binding IsReadOnly}"/> + <customControls:LabledTextBoxMultistage + Content="{Binding TransferredAirDragArea}" + ReadOnly="{Binding IsReadOnly}"/> + </StackPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml.cs b/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..581e3209f91c2731f29a91b6a9a7809575b6fb3e --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/AirDragView_v2_8.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for AirDragView_v2_8.xaml + /// </summary> + public partial class AirDragView_v2_8 : UserControl + { + public AirDragView_v2_8() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml new file mode 100644 index 0000000000000000000000000000000000000000..614ebbf578717fae433d5e08887404b7c31095a6 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml @@ -0,0 +1,25 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.FilePicker" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + d:DesignHeight="30" d:DesignWidth="800" Name="filepickercustomcontrol" MinHeight="40" MinWidth="400"> + <Grid Margin="4" VerticalAlignment="Stretch"> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition></ColumnDefinition> + <ColumnDefinition Width="30px"></ColumnDefinition> + </Grid.ColumnDefinitions> + <TextBox x:Name="textBox" VerticalContentAlignment="Center" Padding="4" Margin = "0 0 0 0" IsReadOnly="True" + Text="{Binding Text, ElementName=filepickercustomcontrol}" HorizontalAlignment="Stretch" TextWrapping="Wrap" + Style="{DynamicResource TextBoxStyle1}"/> + <Button x:Name="button" Padding="4" Margin="4 0 0 0" Grid.Column="1" ContentTemplate="{DynamicResource AddDocumentIcon}" + Command="{Binding Command, ElementName=filepickercustomcontrol}" Style="{DynamicResource FilePickerButtonStyle}"> + + </Button> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..8fe20e035718c3aed625d9204a7007086d28dae3 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/FilePicker.xaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + /// <summary> + /// Interaction logic for FilePicker.xaml + /// </summary> + public partial class FilePicker : UserControl + { + + public static readonly DependencyProperty CommandProperty = DependencyProperty.Register( + "Command", typeof(ICommand), typeof(FilePicker), new PropertyMetadata(default(ICommand))); + + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + + public static readonly DependencyProperty TextProperty = DependencyProperty.Register( + "Text", typeof(string), typeof(FilePicker), new PropertyMetadata(default(string))); + + public string Text + { + get { return (string)GetValue(TextProperty); } + set { SetValue(TextProperty, value); } + } + + public FilePicker() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml new file mode 100644 index 0000000000000000000000000000000000000000..9bd3572f1d5e855052e4ab90d30054417ef7751e --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml @@ -0,0 +1,35 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.LabledTextBoxMultistage" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + Name="labledTextBoxMultistage" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions> + + <Label> + <PriorityBinding> + <Binding Path="Label" ElementName="labledTextBoxMultistage" Converter="{StaticResource NullToUnsetValue}"></Binding> + <Binding Path="GeneratedLabelText" ElementName="labledTextBoxMultistage"></Binding> + </PriorityBinding> + </Label> + + <TextBox Grid.Column="1" Name ="TextBoxContent" VerticalAlignment="Center" Margin="2 0 2 0" + Text="{Binding ElementName=labledTextBoxMultistage, Path=Content, + Converter={StaticResourceExtension SIValueToStringConverter}, + ValidatesOnExceptions=True, + UpdateSourceTrigger=PropertyChanged}" + Style="{DynamicResource TextBoxStyle1}" + IsReadOnly="{Binding ElementName=labledTextBoxMultistage, Path=ReadOnly}"/> + <Label Grid.Column="2" x:Name="AutoUnitLabel" + Content="{Binding DummyContent, ElementName=labledTextBoxMultistage, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..35a572c648b1d766b4c146d8c4e04d1baa79c903 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/LabledTextBoxMultistage.xaml.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Views.CustomControls; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + + + + + /// <summary> + /// Interaction logic for LabledTextBoxMultistage.xaml + /// </summary> + public partial class LabledTextBoxMultistage : UserControl + { + #region Dependency Properties + + public static readonly DependencyProperty ReadOnlyProperty = DependencyProperty.Register( + "ReadOnly", typeof(bool), typeof(LabledTextBoxMultistage), new PropertyMetadata(default(bool))); + + public bool ReadOnly + { + get { return (bool)GetValue(ReadOnlyProperty); } + set { SetValue(ReadOnlyProperty, value); } + } + + + public static readonly DependencyProperty DummyContentProperty = DependencyProperty.Register( + "DummyContent", typeof(object), typeof(LabledTextBoxMultistage), new PropertyMetadata(default(object))); + + public object DummyContent + { + get { return (object)GetValue(DummyContentProperty); } + set { SetValue(DummyContentProperty, value); } + } + + public new static readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", + typeof(object), + typeof(LabledTextBoxMultistage), + new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(ContentChanged))); //TODO Default value null breaks it for SIs default value "" for strings + + public new object Content + { + get { return (object)GetValue(ContentProperty); } + set + { + SetCurrentValue(ContentProperty, value); + } + } + + + public static readonly DependencyProperty GeneratedLabelTextProperty = DependencyProperty.Register( + "GeneratedLabelText", typeof(string), typeof(LabledTextBoxMultistage), new PropertyMetadata(null)); + + public string GeneratedLabelText + { + get { return (string)GetValue(GeneratedLabelTextProperty); } + set { SetValue(GeneratedLabelTextProperty, value); } + } + + public static readonly DependencyProperty ModeProperty = DependencyProperty.Register( + "Mode", typeof(MultistageParameterViewMode), typeof(LabledTextBoxMultistage), new PropertyMetadata(default(MultistageParameterViewMode))); + + public MultistageParameterViewMode Mode + { + get { return (MultistageParameterViewMode)GetValue(ModeProperty); } + set { SetValue(ModeProperty, value); } + } + + #endregion + + private static void ContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var labledTextBoxMultistage = (CustomControls.LabledTextBoxMultistage)d; + + + labledTextBoxMultistage.DummyContent = labledTextBoxMultistage.CreateDummyContent(e, + createEnum:labledTextBoxMultistage.Mode == MultistageParameterViewMode.COMBOBOX); + + if (labledTextBoxMultistage.GeneratedLabelText != null) + { + return; + } + labledTextBoxMultistage.GeneratedLabelText = labledTextBoxMultistage.GetLabelByPropertyName( + LabledTextBoxMultistage.ContentProperty, + Strings.ResourceManager); + } + + public LabledTextBoxMultistage() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml new file mode 100644 index 0000000000000000000000000000000000000000..cefd5441326ba274af6d6b3db9febf11749a0be0 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml @@ -0,0 +1,173 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.MultiStageParameter" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" Name="MultistageParameterControl"> + + + + <Grid> + + <!-- _____________________________________________ Text mode ___________________________________________________________________--> + <Grid Visibility="{Binding ElementName=MultistageParameterControl, + Path=Mode, + Converter={StaticResource ParameterModeToVisibilityConverter}, ConverterParameter={x:Static local:MultistageParameterViewMode.TEXTBOX}}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions> + + <Label x:Name="label" > + <PriorityBinding> + <Binding ElementName="MultistageParameterControl" Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <Binding ElementName="MultistageParameterControl" Path="GeneratedLabelText"></Binding> + </PriorityBinding> + </Label> + <CheckBox Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Name="CheckBox" + Visibility="{Binding ShowCheckBox, + ElementName=MultistageParameterControl, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + ElementName=MultistageParameterControl, + Mode=TwoWay}"/> + + <TextBox x:Name="textBox" Grid.Column="2" VerticalAlignment="Center" Margin="2 0 2 0" IsReadOnly="True" IsTabStop="False" + Text="{Binding ElementName=MultistageParameterControl, Path=PreviousContent, Converter={StaticResource SIValueToStringConverter}}" + + Style="{DynamicResource TextBoxStyle1}" + Visibility="{Binding Optional, + ElementName=MultistageParameterControl, Converter={StaticResource BooleanToVisibilityConverter}, UpdateSourceTrigger=PropertyChanged}"/> + + <TextBox Grid.Column="3" Name ="TextBoxContent" VerticalAlignment="Center" Margin="2 0 2 0" + Text="{Binding Content, + ElementName=MultistageParameterControl, + Converter={StaticResource SIValueToStringConverter}, + UpdateSourceTrigger=PropertyChanged}" + Style="{DynamicResource TextBoxStyle1}" + IsReadOnly="{Binding ElementName=MultistageParameterControl, + Path=EditingEnabled, Converter={StaticResource InvertBoolConverter}}" MouseDoubleClick="Control_OnMouseDoubleClick"/> + + <Label Grid.Column="4" x:Name="AutoUnitLabel" + Content="{Binding DummyContent, ElementName=MultistageParameterControl, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + </Grid> + + + <!--_________________________________________________ComboBoxMode____________________________________________________________________--> + <Grid Visibility="{Binding ElementName=MultistageParameterControl, + Path=Mode, + Converter={StaticResource ParameterModeToVisibilityConverter}, ConverterParameter={x:Static local:MultistageParameterViewMode.COMBOBOX}}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions> + + <Label x:Name="label1"> + <PriorityBinding> + <Binding ElementName="MultistageParameterControl" Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <Binding ElementName="MultistageParameterControl" Path="GeneratedLabelText"></Binding> + </PriorityBinding> + </Label> + <CheckBox Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Name="CheckBoxCombo" + Visibility="{Binding ShowCheckBox, + ElementName=MultistageParameterControl, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + ElementName=MultistageParameterControl, + Mode=TwoWay}"/> + + <ComboBox x:Name="comboBox" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="2 0 2 0" IsTabStop="False" Visibility="{Binding Optional, + ElementName=MultistageParameterControl, + Converter={StaticResource BooleanToVisibilityConverter}}" IsHitTestVisible="False" Focusable="False" IsEditable="False" + SelectedValue="{Binding PreviousContent, Mode=TwoWay, ElementName=MultistageParameterControl}" + ItemsSource="{Binding GeneratedListItems, ElementName=MultistageParameterControl}"> + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock x:Name="textBlock" Text="{Binding Converter={StaticResource EnumConverter}}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + + <!--SelectedIndex="{Binding EditingEnabled, ElementName=MultistageParameterControl, Converter={StaticResource BoolToIntConverter}}"--> + <!--ItemsSource="{Binding ListItems, ElementName=MultistageParameterControl}"--> + <ComboBox x:Name="comboBoxCurrent" Grid.Column="3" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="2 0 2 0" + SelectedItem="{Binding Content, Mode=TwoWay, ElementName=MultistageParameterControl, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" + IsEnabled="{Binding EditingEnabled, ElementName=MultistageParameterControl}" + IsEditable="False" MouseDoubleClick="Control_OnMouseDoubleClick"> + <ComboBox.ItemsSource> + <PriorityBinding> + <Binding Path="ListItems" ElementName="MultistageParameterControl" Converter="{StaticResource NullToUnsetValue}" UpdateSourceTrigger="PropertyChanged"/> + <Binding Path="GeneratedListItems" ElementName="MultistageParameterControl" UpdateSourceTrigger="PropertyChanged"/> + </PriorityBinding> + </ComboBox.ItemsSource> + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock x:Name="textBlock" Text="{Binding Converter={StaticResource EnumConverter}}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + + + <Label x:Name="label2" Grid.Column="4" + Content="{Binding DummyContent, ElementName=MultistageParameterControl, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + </Grid> + + <!--_________________________________________________CheckBoxMode____________________________________________________________________--> + <Grid Visibility="{Binding ElementName=MultistageParameterControl, + Path=Mode, + Converter={StaticResource ParameterModeToVisibilityConverter}, ConverterParameter={x:Static local:MultistageParameterViewMode.CHECKBOX}}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions> + + <Label x:Name="label3"> + <PriorityBinding> + <Binding ElementName="MultistageParameterControl" Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <Binding ElementName="MultistageParameterControl" Path="GeneratedLabelText"></Binding> + </PriorityBinding> + </Label> + <CheckBox Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Name="CheckBoxCheckBox" + Visibility="{Binding ShowCheckBox, + ElementName=MultistageParameterControl, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + ElementName=MultistageParameterControl, + Mode=TwoWay}" + /> + + <CheckBox x:Name="checkBox" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" IsTabStop="False" IsChecked="{Binding ElementName=MultistageParameterControl, + Path=PreviousContent, + Converter={StaticResource XToBoolConverter}}" IsEnabled="False" + > + </CheckBox> + + <CheckBox x:Name="checkBox1" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" + IsEnabled="{Binding ElementName=MultistageParameterControl, + Path=EditingEnabled, UpdateSourceTrigger=PropertyChanged}" + IsChecked="{Binding Content, ElementName=MultistageParameterControl, Mode=TwoWay, ValidatesOnExceptions=True, Converter={StaticResource XToBoolConverter}, + UpdateSourceTrigger=PropertyChanged}"> + + </CheckBox> + <Label x:Name="label4" Grid.Column="4" + Content="{Binding DummyContent, ElementName=MultistageParameterControl, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + </Grid> + + <!-- DatePicker Mode --> + + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..cea3f705e061f51681b1cfbf0a3571897e3bab9e --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultiStageParameter.xaml.cs @@ -0,0 +1,516 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Forms.VisualStyles; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Castle.Components.DictionaryAdapter.Xml; +using Microsoft.Build.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.Annotations; +using VECTO3GUI2020.Helper.Converter; +using VECTO3GUI2020.Properties; +using VECTO3GUI2020.Views.CustomControls; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + + public enum MultistageParameterViewMode + { + TEXTBOX, + CHECKBOX, + COMBOBOX + } + + + /// <summary> + /// Interaction logic for MultiStageParameter.xaml + /// </summary> + public partial class MultiStageParameter : UserControl, INotifyPropertyChanged + { + + #region Dependency Properties + + + public static readonly DependencyProperty PreviousContentProperty = DependencyProperty.Register( + "PreviousContent", typeof(object), typeof(MultiStageParameter), new PropertyMetadata(default(object))); + + public object PreviousContent + { + get { return (object)GetValue(PreviousContentProperty); } + set { SetValue(PreviousContentProperty, value); } + } + + + public static readonly DependencyProperty OptionalProperty = DependencyProperty.Register( + "Optional", typeof(bool), typeof(MultiStageParameter), new PropertyMetadata(true, new PropertyChangedCallback(OptionalChanged))); + + private static void OptionalChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + MultiStageParameter multiStageParameter = (MultiStageParameter)d; + if ((bool)e.NewValue == false) { + multiStageParameter.EditingEnabled = true; + multiStageParameter.ShowCheckBox = false; + } else { + multiStageParameter.ShowCheckBox = true; + } + } + + public bool Optional + { + get { return (bool)GetValue(OptionalProperty); } + set + { + SetValue(OptionalProperty, value); + } + } + + public static readonly DependencyProperty ModeProperty = DependencyProperty.Register( + "Mode", typeof(MultistageParameterViewMode), typeof(MultiStageParameter), + new PropertyMetadata(MultistageParameterViewMode.TEXTBOX, propertyChangedCallback:ModeChanged)); + + private static void ModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var param = (MultiStageParameter)d; + if(param.GetBindingExpression(e.Property)?.Status != BindingStatus.Active) + { + return; + } + param.OnModeChanged((MultistageParameterViewMode)e.NewValue); + } + + public void OnModeChanged(MultistageParameterViewMode mode) + { + if (mode != MultistageParameterViewMode.CHECKBOX) { + checkBox1.SetValue(CheckBox.IsCheckedProperty, DependencyProperty.UnsetValue); + } + + + + } + + public MultistageParameterViewMode Mode + { + get { return (MultistageParameterViewMode)GetValue(ModeProperty); } + set { SetValue(ModeProperty, value); } + } + + public static readonly DependencyProperty LabelProperty = DependencyProperty.Register( + "Label", typeof(string), typeof(MultiStageParameter), new PropertyMetadata(default(string))); + + public string Label + { + get { return (string)GetValue(LabelProperty); } + set { SetValue(LabelProperty, value); } + } + + + //public static readonly DependencyProperty GeneratedLabelTextProperty = DependencyProperty.Register( + // "GeneratedLabelText", typeof(string), typeof(MultiStageParameter), new PropertyMetadata(null)); + + //public string GeneratedLabelText + //{ + // get { return (string)GetValue(GeneratedLabelTextProperty); } + // set { SetValue(GeneratedLabelTextProperty, value); } + //} + + private string _generatedLabelText; + public string GeneratedLabelText + { + get { return _generatedLabelText; } + set + { + _generatedLabelText = value; + OnPropertyChanged(nameof(GeneratedLabelText)); + } + } + + + public static readonly DependencyProperty NameLookUpResourceManagerProperty = DependencyProperty.Register( + "NameLookUpResourceManager", typeof(ResourceManager), typeof(MultiStageParameter), new PropertyMetadata(default(ResourceManager), NameLookUpResourceManagerChanged)); + + private static void NameLookUpResourceManagerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var multistageParameter = (MultiStageParameter)d; + multistageParameter.SetLabelText(); + } + + public ResourceManager NameLookUpResourceManager + { + get { return (ResourceManager)GetValue(NameLookUpResourceManagerProperty); } + set { SetValue(NameLookUpResourceManagerProperty, value); } + } + + + public static readonly DependencyProperty EditingEnabledProperty = DependencyProperty.Register( + "EditingEnabled", typeof(bool), typeof(MultiStageParameter), new FrameworkPropertyMetadata( + false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(EditingEnabledChanged))); + + public bool EditingEnabled + { + get + { + return (bool)GetValue(EditingEnabledProperty); + } + set + { + SetCurrentValue(EditingEnabledProperty, value); + //OnPropertyChanged(nameof(EditingEnabled)); + } + } + + public static readonly DependencyProperty DummyContentProperty = DependencyProperty.Register( + "DummyContent", typeof(object), typeof(MultiStageParameter), + new FrameworkPropertyMetadata(null)); + + public object DummyContent + { + get { return (object)GetValue(DummyContentProperty); } + set { SetCurrentValue(DummyContentProperty, value); } + } + + private object _dummyContent = null; + public object DummyContentGenerated + { + get { return _dummyContent;} + set + { + _dummyContent = value; + OnPropertyChanged(nameof(DummyContentGenerated)); + } + } + + + public static readonly DependencyProperty ShowCheckBoxProperty = DependencyProperty.Register( + "ShowCheckBox", typeof(bool), typeof(MultiStageParameter), new PropertyMetadata(true)); + + public bool ShowCheckBox + { + get { return (bool)GetValue(ShowCheckBoxProperty); } + set { SetValue(ShowCheckBoxProperty, value); } + } + + + // Using a DependencyProperty as the backing store for MyObject. This enables animation, styling, binding, etc... + public new static readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", + typeof(object), + typeof(MultiStageParameter), + new FrameworkPropertyMetadata(defaultValue: null, + flags: FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, + propertyChangedCallback: OnContentChanged, + coerceValueCallback: ContentCoerced)); //TODO Default value null breaks it for SIs default value "" for strings + + private static object ContentCoerced(DependencyObject d, object basevalue) + { + var multiStageParameter = ((MultiStageParameter)d); + var binding = multiStageParameter.GetBindingExpression(ContentProperty); + + + + if (binding?.Status != BindingStatus.Active) + { + return basevalue; + } + + + if (multiStageParameter.resolvedContentProperty == true) + { + return basevalue; + } + + if (multiStageParameter.DummyContent == null) + { + multiStageParameter.DummyContent = multiStageParameter.CreateDummyContent(); + } + + if (multiStageParameter.Content != null && multiStageParameter.EditingEnabled == false) + { + multiStageParameter.EditingEnabled = true; + } + + if (multiStageParameter.Mode == MultistageParameterViewMode.COMBOBOX) + { + multiStageParameter.GenerateListItemsAndSetComboboxValue(); + } + + + if (multiStageParameter.GeneratedLabelText == null) + { + multiStageParameter.SetLabelText(); + } + + multiStageParameter.resolvedContentProperty = true; + + + + + + + + + return basevalue; + } + + public new object Content + { + get { return (object)GetValue(ContentProperty); } + set + { + SetCurrentValue(ContentProperty, value); + OnPropertyChanged(nameof(Content)); + } + } + + public static readonly DependencyProperty ListItemsProperty = DependencyProperty.Register( + "ListItems", typeof(ObservableCollection<Enum>), typeof(MultiStageParameter), + new FrameworkPropertyMetadata(defaultValue:default(ObservableCollection<Enum>), propertyChangedCallback:ListItemsChanged)); + + private static void ListItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + return; + + var listItems = e.NewValue as ObservableCollection<Enum>; + var multistageParameter = (MultiStageParameter)d; + if (multistageParameter.Mode == MultistageParameterViewMode.COMBOBOX && listItems != null) { + if (!listItems.Contains(multistageParameter.Content as Enum)) { + multistageParameter.Content = listItems[0]; + } + } + + + } + + public ObservableCollection<Enum> ListItems + { + get { return (ObservableCollection<Enum>)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + + + public static readonly DependencyProperty GeneratedListItemsProperty = DependencyProperty.Register( + "GeneratedListItems", typeof(List<object>), typeof(MultiStageParameter), new PropertyMetadata(defaultValue:null)); + + + + public List<object> GeneratedListItems + { + get { return (List<object>)GetValue(GeneratedListItemsProperty); } + set { SetCurrentValue(GeneratedListItemsProperty, value); } + } + + private object StoredContent { get; set; } = null; + + + public bool resolvedContentProperty { get; set; } = false; + + #endregion + + private static void OnContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + ((MultiStageParameter)d).ContentChanged(); + } + + public void ContentChanged() + { + var multiStageParameter = (CustomControls.MultiStageParameter)this; + var binding = multiStageParameter.GetBindingExpression(ContentProperty); + + if (binding?.Status != BindingStatus.Active) { + return; + } + + if (multiStageParameter.Content != null) + { + multiStageParameter.EditingEnabled = true; + } + + } + + + public void SetLabelText() + { + var binding = this.GetBindingExpression(ContentProperty); + if (Label == null && binding != null) { + this.GeneratedLabelText = this.GetLabelByPropertyName( + MultiStageParameter.ContentProperty, + this.NameLookUpResourceManager, + Strings.ResourceManager); + } + } + + private void GenerateListItemsAndSetComboboxValue() + { + if (Mode != MultistageParameterViewMode.COMBOBOX) + return; + + if (GeneratedListItems == null) { + if (DummyContent is Enum dummyEnum) { + var enType = dummyEnum.GetType(); + GeneratedListItems = Enum.GetValues(enType).Cast<object>().ToList(); + + + }else if (Content is Enum contentEnum) { + var enType = contentEnum.GetType(); + GeneratedListItems = Enum.GetValues(enType).Cast<object>().ToList(); + + } + } + } + + private object CreateDummyContent() + { + var type = this.GetPropertyType(ContentProperty); + if (type == null) { + return null; + } + + try { + dynamic dynType = type; + var baseType = dynType.BaseType; + //Create SI Dummy + + + + + if (baseType?.BaseType != null && baseType.BaseType == typeof(SI)) { + var createMethod = baseType.GetMethod("Create"); + var dummyContent = createMethod?.Invoke(null, new object[] { (new double()) }); + return dummyContent; + } + + + + + if(Mode == MultistageParameterViewMode.COMBOBOX) { + var bindingProperty = this.GetBindingExpression(ContentProperty); + var dataItemType = bindingProperty?.DataItem?.GetType(); + var sourcePropertyType = + dataItemType?.GetProperty(bindingProperty?.ResolvedSourcePropertyName)?.PropertyType; + + var underlyingType = Nullable.GetUnderlyingType(dynType); + Enum dummyEnum; + try { + if (underlyingType != null) { + dummyEnum = Enum.Parse(underlyingType, underlyingType.GetEnumNames()[0]); + } else { + dummyEnum = Enum.Parse(dynType, dynType.GetEnumNames()[0]); + } + } catch (Exception ex) { + Debug.WriteLine(ex.Message); + return null; + } + return dummyEnum; + } + + } catch (Exception ex) { + Debug.WriteLine(ex.Message); + return null; + } + + return null; + } + + private static void EditingEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + ((MultiStageParameter) d).EditingEnabledChanged((bool)e.NewValue); + } + + public void EditingEnabledChanged(bool editingEnabled) + { + if (GetBindingExpression(EditingEnabledProperty)?.Status != BindingStatus.Active) { + return; + } + + this.CoerceValue(ContentProperty); + this.CoerceValue(ListItemsProperty); + MultiStageParameter multistageParameter = this; + if (editingEnabled == false) + { + //Temporary store current value + if (!Validation.GetHasError(multistageParameter.TextBoxContent)) + { + multistageParameter.StoredContent = multistageParameter.Content; + } + + if (multistageParameter.Content != null) { + multistageParameter.Content = null; + } + + } + else + { + if (Content == null) { + if (multistageParameter.StoredContent != null) + { + //Restore previous value + multistageParameter.Content = multistageParameter.StoredContent; + } + else + { + if (multistageParameter.Mode == MultistageParameterViewMode.COMBOBOX) + { + //Set default value; + //multistageParameter.GetBindingExpression(ListItemsProperty)?.UpdateTarget(); + //multistageParameter.GetBindingExpression(ContentProperty)?.UpdateTarget(); + + + /* + multistageParameter.Content = multistageParameter.ListItems?[0] ?? + multistageParameter.GeneratedListItems?[0]; + //Debug.Assert(false); + */ + } + else + { + if (multistageParameter.Content == null && multistageParameter.DummyContent != null) + { + multistageParameter.Content = multistageParameter.DummyContent; + } + } + } + } + } + } + + + + + + + public MultiStageParameter() + { + InitializeComponent(); + + } + + private void Control_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) + { + EditingEnabled = true; + } + + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..08282aadb40ed4c467e1203e425d931f7078a23d --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml @@ -0,0 +1,48 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.MultistageParameterCheckBoxView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <UniformGrid Rows="1" Margin="0 0 10 2"> + <!--<Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions>--> + <DockPanel Margin="5 0 "> + <Label x:Name="label3"> + <PriorityBinding> + <Binding Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <Binding Path="GeneratedLabelText"></Binding> + </PriorityBinding> + </Label> + <CheckBox Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Name="CheckBoxCheckBox" + Visibility="{Binding ShowCheckBox, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + Mode=TwoWay}" + /> + </DockPanel> + + <CheckBox x:Name="checkBox" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" IsTabStop="False" IsChecked="{Binding + Path=PreviousContent, + Converter={StaticResource XToBoolConverter}}" IsEnabled="False"> + </CheckBox> + + <CheckBox x:Name="checkBox1" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" + IsEnabled="{Binding + Path=EditingEnabled, UpdateSourceTrigger=PropertyChanged}" + IsChecked="{Binding CurrentContent, Mode=TwoWay, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, Converter={StaticResource XToBoolConverter}, + UpdateSourceTrigger=PropertyChanged}"> + + </CheckBox> + </UniformGrid> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..2e75ad6d41815c0cb4848005ce55ebe2a47eb5fe --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterCheckBoxView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + /// <summary> + /// Interaction logic for MultistageParameterCheckBoxView.xaml + /// </summary> + public partial class MultistageParameterCheckBoxView : UserControl + { + public MultistageParameterCheckBoxView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..04884c5f67220fc0b9dafa6482d300983964c6d6 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml @@ -0,0 +1,82 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.MultistageParameterComboBoxView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance helper:MultistageParameterViewModel }" x:Name="ComboboxView"> + <Grid> + <!--<Grid> + <Grid.ColumnDefinitions> + --><!--<ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/>--><!-- + <ColumnDefinition SharedSizeGroup=""></ColumnDefinition> + <ColumnDefinition SharedSizeGroup=""></ColumnDefinition> + <ColumnDefinition SharedSizeGroup=""></ColumnDefinition> + <ColumnDefinition SharedSizeGroup=""></ColumnDefinition> + <ColumnDefinition SharedSizeGroup=""></ColumnDefinition> + </Grid.ColumnDefinitions>--> + + <UniformGrid Rows="1" Margin="0 0 10 2"> + <DockPanel Margin="5 0"> + <Label x:Name="label1" DockPanel.Dock="Left"> + <PriorityBinding> + <Binding Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <!--<Binding Path="GeneratedLabelText"></Binding>--> + </PriorityBinding> + </Label> + <CheckBox DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center" Name="CheckBoxCombo" + Visibility="{Binding ShowCheckBox, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + Mode=TwoWay}" Checked="CheckBoxCombo_OnChecked"/> + </DockPanel> + <ComboBox x:Name="comboBox" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="2 0 2 0" IsTabStop="False" + Visibility="{Binding Optional, + Converter={StaticResource BooleanToVisibilityConverter}}" IsHitTestVisible="False" Focusable="False" IsEditable="False" + SelectedValue="{Binding PreviousContent, Mode=TwoWay}" + ItemsSource="{Binding GeneratedListItems}"> + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock x:Name="textBlock" Text="{Binding Converter={StaticResource EnumConverter}}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + + <DockPanel LastChildFill="True"> + <Label DockPanel.Dock="Right" x:Name="label2" Grid.Column="4" + Content="{Binding DummyContent, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + <ComboBox DockPanel.Dock="Left" x:Name="comboBoxCurrent" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="2 0 0 0" + SelectedValue="{Binding CurrentContent, + Mode=TwoWay, + ValidatesOnExceptions=True, + ValidatesOnDataErrors=True, + UpdateSourceTrigger=PropertyChanged}" + IsEnabled="{Binding ValueFieldIsEditable}" + IsEditable="False"> + <ComboBox.ItemsSource> + <PriorityBinding> + <Binding Path="AllowedItems" Converter="{StaticResource NullToUnsetValue}" UpdateSourceTrigger="PropertyChanged"/> + <Binding Path="GeneratedListItems" UpdateSourceTrigger="PropertyChanged"/> + </PriorityBinding> + </ComboBox.ItemsSource> + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock x:Name="textBlock" Text="{Binding Converter={StaticResource EnumConverter}}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + + + </DockPanel> + </UniformGrid> + </Grid> + + <!--</Grid>--> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..16f4c32de7f7901d47cf3c8c30d0b667f73574d2 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterComboBoxView.xaml.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + /// <summary> + /// Interaction logic for MultistageParameterComboBoxView.xaml + /// </summary> + public partial class MultistageParameterComboBoxView : UserControl + { + public static readonly DependencyProperty SharedSizeGroupLabelColumnProperty = DependencyProperty.Register( + "SharedSizeGroupLabelColumn", typeof(string), typeof(MultistageParameterComboBoxView), new PropertyMetadata(default(string))); + + //public string SharedSizeGroupLabelColumn + //{ + // get { return (string)GetValue(SharedSizeGroupLabelColumnProperty); } + // set { SetValue(SharedSizeGroupLabelColumnProperty, value); } + //} + + //public static readonly DependencyProperty SharedSizeGroupCheckboxColumnProperty = DependencyProperty.Register( + // "SharedSizeGroupCheckboxColumn", typeof(string), typeof(MultistageParameterComboBoxView), new PropertyMetadata(default(string))); + + //public string SharedSizeGroupCheckboxColumn + //{ + // get { return (string)GetValue(SharedSizeGroupCheckboxColumnProperty); } + // set { SetValue(SharedSizeGroupCheckboxColumnProperty, value); } + //} + + //public static readonly DependencyProperty SharedSizeGroupConsolidatedColumnProperty = DependencyProperty.Register( + // "SharedSizeGroupConsolidatedColumn", typeof(string), typeof(MultistageParameterComboBoxView), new PropertyMetadata(default(string))); + + //public string SharedSizeGroupConsolidatedColumn + //{ + // get { return (string)GetValue(SharedSizeGroupConsolidatedColumnProperty); } + // set { SetValue(SharedSizeGroupConsolidatedColumnProperty, value); } + //} + + //public static readonly DependencyProperty SharedSizeGroupContentColumnProperty = DependencyProperty.Register( + // "SharedSizeGroupContentColumn", typeof(string), typeof(MultistageParameterComboBoxView), new PropertyMetadata(default(string))); + + //public string SharedSizeGroupContentColumn + //{ + // get { return (string)GetValue(SharedSizeGroupContentColumnProperty); } + // set { SetValue(SharedSizeGroupContentColumnProperty, value); } + //} + + //public static readonly DependencyProperty SharedSizeGroupUnitColumnProperty = DependencyProperty.Register( + // "SharedSizeGroupUnitColumn", typeof(string), typeof(MultistageParameterComboBoxView), new PropertyMetadata(default(string))); + + //public string SharedSizeGroupUnitColumn + //{ + // get { return (string)GetValue(SharedSizeGroupUnitColumnProperty); } + // set { SetValue(SharedSizeGroupUnitColumnProperty, value); } + //} + + + public MultistageParameterComboBoxView() + { + InitializeComponent(); + } + + private void CheckBoxCombo_OnChecked(object sender, RoutedEventArgs e) + { + + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..67bba1d5e8f6ad9eeb7a5dd18cce77b480c96bc1 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml @@ -0,0 +1,59 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.CustomControls.MultistageParameterTextView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:helper="clr-namespace:VECTO3GUI2020.Helper" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <UniformGrid Rows="1" Margin="0 0 10 2"> + <!--<Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="4*" SharedSizeGroup="W"/> + <ColumnDefinition Width="1*" SharedSizeGroup="N"/> + </Grid.ColumnDefinitions>--> + + <DockPanel Margin="5 0"> + <Label x:Name="label" DockPanel.Dock="Left" > + <PriorityBinding> + <Binding Path="Label" Converter="{StaticResource NullToUnsetValue}"></Binding> + <!--<Binding Path="GeneratedLabelText"></Binding>--> + </PriorityBinding> + </Label> + <CheckBox DockPanel.Dock="Right" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Name="EditingEnabledCheckBox" + Visibility="{Binding ShowCheckBox, + Converter={StaticResource BooleanToVisibilityConverter}}" + IsChecked="{Binding EditingEnabled, + Mode=TwoWay}"/> + </DockPanel> + <TextBox x:Name="textBox" Grid.Column="2" VerticalAlignment="Center" Margin="2 0 2 0" IsReadOnly="True" IsTabStop="False" + Text="{Binding Path=PreviousContent, + Converter={StaticResource SIValueToStringConverter}}" + + Style="{DynamicResource TextBoxStyle1}" + Visibility="{Binding Optional, + Converter={StaticResource BooleanToVisibilityConverter}, UpdateSourceTrigger=PropertyChanged}"/> + + <DockPanel> + <Label DockPanel.Dock="Right" Grid.Column="4" x:Name="AutoUnitLabel" + Content="{Binding DummyContent, Converter={StaticResource SIToUnitStringConverter}}"> + </Label> + <TextBox DockPanel.Dock="Left" Grid.Column="3" Name ="TextBoxContent" VerticalAlignment="Center" Margin="2 0 2 0" + Text="{Binding CurrentContent, Mode=TwoWay, + Converter={StaticResource SIValueToStringConverter}, + UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" + Style="{DynamicResource TextBoxStyle1}" + IsReadOnly="{Binding + Path=EditingEnabled, + Converter={StaticResource InvertBoolConverter}}" MouseDoubleClick="Control_OnMouseDoubleClick"/> + + + </DockPanel> + </UniformGrid> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml.cs b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..910d88640054797fbea853f94b84549b6bafce96 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/CustomControls/MultistageParameterTextView.xaml.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage.CustomControls +{ + /// <summary> + /// Interaction logic for MultistageParameterTextView.xaml + /// </summary> + public partial class MultistageParameterTextView : UserControl + { + public MultistageParameterTextView() + { + InitializeComponent(); + } + + private void Control_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) + { + EditingEnabledCheckBox.IsChecked = true; + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml b/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..ec56c6569599d4ddea8043b81f2840a355aaa1ef --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml @@ -0,0 +1,123 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.ManufacturingStageAuxiliariesView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:impl="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:properties="clr-namespace:VECTO3GUI2020.Properties" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" BorderBrush="{DynamicResource ButtonHighlightColor}" BorderThickness="3" Margin="4" + d:DataContext="{d:DesignInstance impl:MultistageAuxiliariesViewModel}"> + <UserControl.Resources> + <Style TargetType="customControls:MultiStageParameter"> + <Setter Property="NameLookUpResourceManager" Value="{x:Static properties:BusStrings.ResourceManager}"/> + <Setter Property="Validation.ErrorTemplate" Value="{DynamicResource multistageParameterControlErrorTemplate}"/> + </Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplateSelector" Value="{DynamicResource MultistageParameterTemplateSelector}"/> + <Setter Property="IsTabStop" Value="False"/> + </Style> + </UserControl.Resources> + <Grid> + <ScrollViewer> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <Label Style="{DynamicResource LabelStyle1}" FontSize="15" HorizontalAlignment="Stretch">AUXILIARIES</Label> + <Label Style="{DynamicResource LabelStyle1}">LED Lights</Label> + + <ContentControl Content="{Binding ParameterViewModels[InteriorLightsLED]}"/> + <ContentControl Content="{Binding ParameterViewModels[DayrunninglightsLED]}"/> + <ContentControl Content="{Binding ParameterViewModels[PositionlightsLED]}"/> + <ContentControl Content="{Binding ParameterViewModels[BrakelightsLED]}"/> + <ContentControl Content="{Binding ParameterViewModels[HeadlightsLED]}"/> + + + <Label Style="{DynamicResource LabelStyle1}">Heating, Ventilation and Air Conditioning</Label> + <ContentControl Content="{Binding ParameterViewModels[SystemConfiguration]}"/> + <ContentControl Content="{Binding ParameterViewModels[HeatPumpTypeDriverCompartment]}"/> + <ContentControl Content="{Binding ParameterViewModels[HeatPumpModeDriverCompartment]}"/> + <Border Margin="5 0" BorderBrush="{DynamicResource ButtonHighlightColor}" BorderThickness="2" > + <StackPanel Margin="0"> + <Label Margin="0" Style="{DynamicResource LabelStyle1}">Heat Pumps Passenger Compartment</Label> + <Label Padding="10 4 0 4" Style="{DynamicResource LabelStyle1}">Consolidated Data</Label> + <ItemsControl AlternationCount="2" + Visibility="{Binding ConsolidatedHeatPumpConfigurationsPassenger, Converter={StaticResource NullToVisibilityConverter}}" + ItemsSource="{Binding ConsolidatedHeatPumpConfigurationsPassenger}" + HorizontalContentAlignment="Stretch" + Padding="5 5 29 5 " > + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border BorderThickness="1"> + <DockPanel LastChildFill="true" x:Name="ItemsDockPanel"> + <UniformGrid DockPanel.Dock="Left" Columns="2"> + <ContentControl Grid.Column="0" DockPanel.Dock="Top" Content="{Binding Path=HeatPumpTypeVM}"/> + <ContentControl Grid.Column="1" DockPanel.Dock="Top" Content="{Binding Path=HeatPumpModeVM}"/> + </UniformGrid> + </DockPanel> + </Border> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter Property="Background" Value="White" TargetName="ItemsDockPanel"/> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter Property="Background" Value="LightGray" TargetName="ItemsDockPanel"/> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + <Label Visibility="{Binding ConsolidatedHeatPumpConfigurationsPassenger, + Converter={StaticResource NullToVisibilityConverter}, + ConverterParameter=invert}" + HorizontalAlignment="Center">No consolidated data available</Label> + <DockPanel LastChildFill="true"> + <Button DockPanel.Dock="right" ContentTemplate="{DynamicResource AddIcon}" Command="{Binding AddPassengerHeatpumpCommand}"> + + </Button> + <Label Style="{DynamicResource LabelStyle1}" Padding="10 4 0 4">Current Stage</Label> + </DockPanel> + + <ItemsControl ItemsSource="{Binding HeatPumpConfigurationsPassenger}" HorizontalContentAlignment="Stretch" + Padding="5" AlternationCount="2"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border BorderThickness="1"> + <DockPanel LastChildFill="true" x:Name="ItemsDockPanel"> + <Button DockPanel.Dock="Right" Height="24" + ContentTemplate="{DynamicResource TrashIcon}" + Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, + Path=DataContext.RemovePassengerHeatpumpCommand}" + CommandParameter="{Binding }"/> + <UniformGrid DockPanel.Dock="Left" Columns="2"> + <ContentControl Grid.Column="0" DockPanel.Dock="Top" Content="{Binding Path=HeatPumpTypeVM}"/> + <ContentControl Grid.Column="1" DockPanel.Dock="Top" Content="{Binding Path=HeatPumpModeVM}"/> + </UniformGrid> + </DockPanel> + </Border> + <DataTemplate.Triggers> + <Trigger Property="ItemsControl.AlternationIndex" Value="0"> + <Setter Property="Background" Value="White" TargetName="ItemsDockPanel"/> + </Trigger> + <Trigger Property="ItemsControl.AlternationIndex" Value="1"> + <Setter Property="Background" Value="LightGray" TargetName="ItemsDockPanel"/> + </Trigger> + </DataTemplate.Triggers> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + </Border> + + + <ContentControl Content="{Binding ParameterViewModels[AuxHeaterPower]}"/> + <ContentControl Content="{Binding ParameterViewModels[DoubleGlazing]}"/> + <ContentControl Content="{Binding ParameterViewModels[AdjustableAuxiliaryHeater]}"/> + <ContentControl Content="{Binding ParameterViewModels[SeparateAirDistributionDucts]}"/> + <Separator/> + </StackPanel> + </DockPanel> + </ScrollViewer> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml.cs b/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..1f8b74075cc13d319c4ada8b36a13fcff22ce931 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/ManufacturingStageAuxiliariesView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for ManufacturingStageAuxiliariesView.xaml + /// </summary> + public partial class ManufacturingStageAuxiliariesView : UserControl + { + public ManufacturingStageAuxiliariesView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..9d8137454ca38e97b76c0d0a162239683443eb07 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml @@ -0,0 +1,35 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.ManufacturingStageView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance implementation:ManufacturingStageViewModel_v0_1 }"> + <Grid> + <DockPanel> + <Grid Margin="4" DockPanel.Dock="Top"> + <Grid.ColumnDefinitions> + <ColumnDefinition></ColumnDefinition> + <ColumnDefinition Width="30px"></ColumnDefinition> + </Grid.ColumnDefinitions> + </Grid> + <DockPanel Grid.Row="1" LastChildFill="False" DockPanel.Dock="Top" > + <Button Width="100" DockPanel.Dock="Left" Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Vehicle">Vehicle</Button> + <Button Width="100" DockPanel.Dock="Left" Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Airdrag">Airdrag</Button> + <Button Width="100" DockPanel.Dock="Left" Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Auxiliaries">Auxiliaries</Button> + + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right"> + <Label>Manufacturing Stage</Label> + <Label Content="{Binding StageCount}"/> + </StackPanel> + + </DockPanel> + <ContentControl DockPanel.Dock="Top" Content="{Binding CurrentView}"/> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml.cs b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..5a5bb7da44d3652c16cbe90d0a0339cd6a5d50a1 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for InterimStageView.xaml + /// </summary> + public partial class ManufacturingStageView : UserControl + { + public ManufacturingStageView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml b/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..449554b41c18f989dc1709a95bfe4b9e3eedfd0e --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml @@ -0,0 +1,52 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.MultiStageView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance implementation:MultiStageJobViewModel_v0_1}"> + <Grid> + <DockPanel> + <customControls:FilePicker + DockPanel.Dock="Top" + Command="{Binding LoadVehicleDataCommand}" + Text="{Binding VehicleInputDataFilePath, TargetNullValue=Select Vehicle Input Data . . .}"></customControls:FilePicker> + <Border BorderThickness="1" BorderBrush="{DynamicResource ButtonHighlightColor}" Height="40" DockPanel.Dock="Bottom"> + <DockPanel LastChildFill="False"> + <Button DockPanel.Dock="Right" + Width="100" + Command="{Binding CloseWindowCommand}" + CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" + Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" + Padding="4">Close</Button> + <Button DockPanel.Dock="Right" + Width="100" + Command="{Binding SaveVIFCommand}" + Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" + Padding="4">Save as new VIF</Button> + <Button + DockPanel.Dock="Right" + Width="100" + Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" + Padding="4" + Command="{Binding SaveInputDataCommand}">Save Input</Button> + <Button + DockPanel.Dock="Right" + Width="100" + Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" + Padding="4" + Command="{Binding SaveInputDataAsCommand}">Save Input As ... </Button> + </DockPanel> + </Border> + <ContentControl DockPanel.Dock="Top" Content="{Binding ManufacturingStageViewModel}"/> + + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml.cs b/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..a41d99d5898e04a3128159a2f9285e517e753587 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/MultiStageView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for MultiStageView.xaml + /// </summary> + public partial class MultiStageView : UserControl + { + public MultiStageView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml b/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..2b7cf405dff4475dcd99a4fea093e590e40558b9 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml @@ -0,0 +1,54 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.MultistageAirDragView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:customControlsMultistage="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.CustomControls" + xmlns:impl="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:properties="clr-namespace:VECTO3GUI2020.Properties" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" BorderBrush="{DynamicResource ButtonHighlightColor}" BorderThickness="2" Margin="4" + d:DataContext="{d:DesignInstance impl:MultistageAirdragViewModel}"> + <Grid> + <ScrollViewer> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <Label Content="AIRDRAG" HorizontalAlignment="Stretch" Background="{DynamicResource ButtonHighlightColor}" Style="{DynamicResource LabelStyle1}"/> + <DockPanel HorizontalAlignment="Stretch" > + <Button Width="30" Margin="4" DockPanel.Dock="Right" + Style="{DynamicResource FilePickerButtonStyle}" + ContentTemplate="{DynamicResource TrashIcon}" + Command="{Binding RemoveAirdragDataCommand}"> + + </Button> + <customControlsMultistage:FilePicker + DockPanel.Dock="Left" + Text="{Binding AirdragFilePath, TargetNullValue=Select Airdrag Input Data}" + Command="{Binding LoadAirdragFileCommand}"/> + </DockPanel> + + <StackPanel HorizontalAlignment="Stretch" Margin="4" > + <Label Style="{DynamicResource LabelStyle1}">Consolidated Airdrag Data</Label> + <StackPanel Visibility="{Binding ConsolidatedAirdragData, Converter={StaticResource NullToVisibilityConverter}}"> + <customControlsMultistage:LabledTextBoxMultistage Content="{Binding ConsolidatedAirdragData.Manufacturer, Mode=OneWay}" ReadOnly="True"/> + <customControlsMultistage:LabledTextBoxMultistage Content="{Binding ConsolidatedAirdragData.Model, Mode=OneWay}" ReadOnly="True"/> + <customControlsMultistage:LabledTextBoxMultistage Content="{Binding ConsolidatedAirdragData.AirDragArea, Mode=OneWay}" ReadOnly="True"/> + </StackPanel> + <Label Visibility="{Binding ConsolidatedAirdragData, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=invert}">No data set</Label> + <Label Style="{DynamicResource LabelStyle1}">Data from File</Label> + <ContentControl Content="{Binding AirDragViewModel}" + Visibility="{Binding AirDragViewModel, Converter={StaticResource NullToVisibilityConverter}}"> + <ContentControl.ContentTemplate> + <DataTemplate> + <local:AirDragView_v2_8 DataContext="{Binding }"/> + </DataTemplate> + </ContentControl.ContentTemplate> + </ContentControl> + </StackPanel> + </StackPanel> + </DockPanel> + </ScrollViewer> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml.cs b/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..ed0d09985fd82b73f7c8b6ce4048321064ff1f10 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/MultistageAirDragView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for MultistageAirDragView.xaml + /// </summary> + public partial class MultistageAirDragView : UserControl + { + public MultistageAirDragView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml b/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..6a1b5a60b56e2d1d75ddb51485e77be92c81ed8f --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml @@ -0,0 +1,37 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.NewMultistageFileView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + mc:Ignorable="d" + d:DesignHeight="450" x:Name="NewMultistageJobView" d:DesignWidth="800" d:DataContext="{d:DesignInstance implementation:NewMultiStageJobViewModel }"> + <Grid> + <Grid MaxWidth="900"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <customControls:FilePicker x:Name="NewMultistageFilePicker" Grid.Row="0" Text="{Binding VifPath}" HorizontalAlignment="Stretch" Command="{Binding AddVifFile}"/> + </Grid> + <Button Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" DockPanel.Dock="Bottom" + Visibility="{Binding MultiStageJobViewModel, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=invert}" + Command="{Binding CloseWindow}" + CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"> + Cancel + </Button> + <ContentControl Grid.Row="2"> + <Binding Path="MultiStageJobViewModel" Mode="TwoWay" > + <Binding.TargetNullValue> + <Grid HorizontalAlignment="Center" VerticalAlignment="Stretch"> + <TextBlock>Load VIF File to add new manufacturing Stage</TextBlock> + </Grid> + </Binding.TargetNullValue> + </Binding> + </ContentControl> + + </DockPanel> + </Grid> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml.cs b/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f1b271281312e5cd208da0bfdd26784a991444c --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/NewMultistageFileView.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for NewMultistageFileView.xaml + /// </summary> + public partial class NewMultistageFileView : UserControl + { + public NewMultistageFileView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml new file mode 100644 index 0000000000000000000000000000000000000000..99ef7e8b6b34a4334df68cbb32b3faacb0f29968 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml @@ -0,0 +1,135 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.VehicleView_v2_8" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation" + xmlns:properties="clr-namespace:VECTO3GUI2020.Properties" + xmlns:resources="clr-namespace:System.Resources;assembly=mscorlib" + d:DataContext="{d:DesignInstance Type=implementation:DeclarationInterimStageBusVehicleViewModel_v2_8}" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" BorderBrush="{DynamicResource ButtonHighlightColor}" BorderThickness="2px" Margin="4px"> + <UserControl.Resources> + <Style TargetType="custom:MultiStageParameter"> + <Setter Property="NameLookUpResourceManager" Value="{x:Static properties:BusStrings.ResourceManager}"/> + <Setter Property="Validation.ErrorTemplate" Value="{StaticResource multistageParameterControlErrorTemplate}"/> + </Style> + + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplateSelector" Value="{DynamicResource MultistageParameterTemplateSelector}"/> + <Setter Property="IsTabStop" Value="False"></Setter> + </Style> + </UserControl.Resources> + + <!--RelativeSource={x:Static RelativeSource.Self}, {Binding RelativeSource={x:Static RelativeSource.Self}, Path=Name}] + Path=(Validation.Errors)/ErrorContent}--> + <Grid> + <ScrollViewer> + <DockPanel> + <StackPanel> + <Label Content="VEHICLE DATA" HorizontalAlignment="Stretch" FontSize="15" VerticalAlignment="Stretch" + Style="{DynamicResource LabelStyle1}"/> + + + <ContentControl Content="{Binding ParameterViewModels[Manufacturer]}" > + </ContentControl> + + + <ContentControl Content="{Binding ParameterViewModels[ManufacturerAddress]}"/> + + <ContentControl Content="{Binding ParameterViewModels[VIN]}"/> + + + <ContentControl Content="{Binding ParameterViewModels[Model]}"/> + + + <ContentControl Content="{Binding ParameterViewModels[LegislativeClass]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[CurbMassChassis]}"/> + + <ContentControl Content="{Binding + ParameterViewModels[GrossVehicleMassRating]}"></ContentControl> + + + <ContentControl Visibility="{Binding AirdragModifiedMultistageMandatory, Converter={StaticResource BooleanToVisibilityConverter}}" + Content="{Binding ParameterViewModels[AirdragModifiedEnum]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[TankSystem]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[RegisteredClass]}"/> + + + <Label Style="{DynamicResource LabelStyle1}">Number of Passengers</Label> + <ContentControl + Content="{Binding ParameterViewModels[NumberPassengerSeatsLowerDeck]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[NumberPassengerSeatsUpperDeck]}"/> + + + + <ContentControl + Content="{Binding ParameterViewModels[NumberPassengersStandingLowerDeck]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[NumberPassengersStandingUpperDeck]}"/> + + + <Separator/> + + <ContentControl + Content="{Binding ParameterViewModels[VehicleCode]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[LowEntry]}"/> + <Separator/> + + <ContentControl + Content="{Binding ParameterViewModels[HeightInMm]}"/> + + + + <ContentControl + Content="{Binding ParameterViewModels[WidthInMm]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[LengthInMm]}"/> + + + + + <ContentControl + Content="{Binding ParameterViewModels[EntranceHeightInMm]}"/> + <Separator/> + + <ContentControl + Content="{Binding ParameterViewModels[DoorDriveTechnology]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[VehicleDeclarationType]}"/> + + <Label Content="ADAS" Style="{DynamicResource LabelStyle1}"/> + + <ContentControl + Content="{Binding ParameterViewModels[EngineStopStartNullable]}"/> + + + + <ContentControl + Content="{Binding ParameterViewModels[EcoRollTypeNullable]}"/> + + + <ContentControl + Content="{Binding ParameterViewModels[PredictiveCruiseControlNullable]}"/> + + <ContentControl + Content="{Binding ParameterViewModels[ATEcoRollReleaseLockupClutch]}"/> + </StackPanel> + </DockPanel> + </ScrollViewer> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml.cs b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..d6fd6cd162dee012ad85dab6f613054d986438db --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage +{ + /// <summary> + /// Interaction logic for VehicleView_v2_8.xaml + /// </summary> + public partial class VehicleView_v2_8 : UserControl + { + public VehicleView_v2_8() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/OutputView.xaml b/VECTO3GUI2020/Views/OutputView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..7f8015871ae09214136d3b87940a49dff23249c6 --- /dev/null +++ b/VECTO3GUI2020/Views/OutputView.xaml @@ -0,0 +1,91 @@ +<UserControl x:Class="VECTO3GUI2020.Views.OutputView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + xmlns:impl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" + xmlns:viewModel="clr-namespace:VECTO3GUI2020.ViewModel" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignData Type=viewModel:IOutputViewModel}"> + <Grid> + <DockPanel LastChildFill="False"> + <ProgressBar DockPanel.Dock="Top" + Minimum="0" + Maximum="100" + Value="{Binding Progress}"/> + <StatusBar DockPanel.Dock="Bottom" MinHeight="30"> + <TextBlock Text="{Binding StatusMessage}" TextWrapping="Wrap"/> + </StatusBar> + <DataGrid + VerticalAlignment="Stretch" + VerticalScrollBarVisibility="Auto" + DockPanel.Dock="Top" + ItemsSource="{Binding Messages, IsAsync=True}" + BorderThickness="1" + CanUserAddRows="False" + AutoGenerateColumns="False" + SelectionUnit="FullRow" + IsReadOnly="True" + HeadersVisibility="All" + RowHeaderWidth="5" + Name="MessageList"> + <DataGrid.Columns> + <DataGridTemplateColumn Header="Message" Width="*"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <StackPanel> + <TextBlock Text="{Binding Message}" Visibility="{Binding Message, Converter={StaticResource NullToVisibilityConverter}}" + TextWrapping="Wrap"/> + <TextBlock Text="{Binding Link}" Visibility="{Binding Message, Converter={StaticResource NullToVisibilityConverter}}" + TextWrapping="Wrap"/> + </StackPanel> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTextColumn Header="Time" Binding="{Binding Time}" Width="130" /> + </DataGrid.Columns> + <DataGrid.RowStyle> + <Style TargetType="DataGridRow"> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.StatusMessage}"> + <Setter Property="Background" Value="AliceBlue"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.InfoMessage}"> + <Setter Property="Background" Value="LemonChiffon"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.ErrorMessage}"> + <Setter Property="Background" Value="Red"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.WarningMessage}"> + <Setter Property="Background" Value="Gold"/> + </DataTrigger> + </Style.Triggers> + </Style> + </DataGrid.RowStyle> + <DataGrid.CellStyle> + <Style TargetType="DataGridCell"> + <Setter Property="FontFamily" Value="Courier New"/> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.StatusMessage}"> + <Setter Property="Foreground" Value="Black"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.InfoMessage}"> + <Setter Property="Foreground" Value="DimGray"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.ErrorMessage}"> + <Setter Property="Foreground" Value="White"/> + <Setter Property="FontWeight" Value="Bold"/> + </DataTrigger> + <DataTrigger Binding="{Binding Type}" Value="{x:Static impl:MessageType.WarningMessage}"> + <Setter Property="Foreground" Value="Black"/> + <Setter Property="FontWeight" Value="Bold"/> + </DataTrigger> + </Style.Triggers> + </Style> + </DataGrid.CellStyle> + </DataGrid> + + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/OutputView.xaml.cs b/VECTO3GUI2020/Views/OutputView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..c9eab7dc568a76159f596d5818f783f5ba58ec51 --- /dev/null +++ b/VECTO3GUI2020/Views/OutputView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views +{ + /// <summary> + /// Interaction logic for OutputView.xaml + /// </summary> + public partial class OutputView : UserControl + { + public OutputView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/SettingsView.xaml b/VECTO3GUI2020/Views/SettingsView.xaml new file mode 100644 index 0000000000000000000000000000000000000000..225d9506482e2c5aa0e773fb63623bc488f283da --- /dev/null +++ b/VECTO3GUI2020/Views/SettingsView.xaml @@ -0,0 +1,93 @@ +<UserControl x:Class="VECTO3GUI2020.Views.SettingsView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + xmlns:customControls="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" + xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" + mc:Ignorable="d" Height="450" Width="800" d:DataContext="{d:DesignInstance implementation:SettingsViewModel }"> + <UserControl.Resources> + <Style TargetType="Label"> + <Setter Property="Margin" Value="4 4 4 4"></Setter> + <Setter Property="Padding" Value="4 4 4 4"></Setter> + </Style> + <Style TargetType="CheckBox"> + <Setter Property="Margin" Value="4 4 4 4"></Setter> + <Setter Property="Padding" Value="4 4 4 4"></Setter> + <Setter Property="VerticalAlignment" Value="Center"></Setter> + </Style> + </UserControl.Resources> + + <Grid> + <DockPanel LastChildFill="False"> + <Grid DockPanel.Dock="Top"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="1*"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="30"></RowDefinition> + <RowDefinition Height="30"></RowDefinition> + <RowDefinition Height="30"></RowDefinition> + </Grid.RowDefinitions> + + + <Label Grid.Row="0" Grid.Column="0" DockPanel.Dock="Left">Default Path</Label> + <customControls:FilePicker Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" DockPanel.Dock="Right" + Text="{Binding DefaultFilePath}" + HorizontalAlignment="Stretch" Command="{Binding ChangeFilePath}"/> + + <Label Grid.Row="1" Grid.Column="0" DockPanel.Dock="Left">Default Path</Label> + <Grid Grid.Row="1" Grid.Column="1" Margin="4" VerticalAlignment="Stretch" Grid.ColumnSpan="3" DockPanel.Dock="Right"> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition></ColumnDefinition> + <ColumnDefinition Width="30px"></ColumnDefinition> + </Grid.ColumnDefinitions> + <TextBox x:Name="textBox" VerticalContentAlignment="Center" Padding="4" Margin = "0 0 0 0" IsReadOnly="false" + Text="{Binding DefaultOutputPath}" HorizontalAlignment="Stretch" TextWrapping="Wrap" + Style="{DynamicResource TextBoxStyle1}"/> + <Button x:Name="button" Padding="4" Margin="4 0 0 0" Grid.Column="1" ContentTemplate="{DynamicResource AddDocumentIcon}" + Command="{Binding ChangeOutputPath}" Style="{DynamicResource FilePickerButtonStyle}"> + + </Button> + </Grid> + <!--<customControls:FilePicker Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" DockPanel.Dock="Right" + Text="{Binding DefaultOutputPath}" + HorizontalAlignment="Stretch" Command="{Binding ChangeOutputPath}"/>--> + + + <Label Grid.Row="2" Grid.Column="0">Serialize Vecto Run Data</Label> + <CheckBox Grid.Row="2" Grid.Column="1" IsChecked="{Binding SerializeVectoRunData}"></CheckBox> + + <Label Grid.Row="3" Grid.Column="2">Write Modal Results</Label> + <CheckBox Grid.Row="3" Grid.Column="3" IsChecked="{Binding WriteModalResults}"></CheckBox> + + <Label Grid.Row="3" Grid.Column="0">Validate</Label> + <CheckBox Grid.Row="3" Grid.Column="1" IsChecked="{Binding Validate}"></CheckBox> + + <Label Grid.Row="4" Grid.Column="2">Actual Modal Data</Label> + <CheckBox Grid.Row="4" Grid.Column="3" IsChecked="{Binding ActualModalData}"></CheckBox> + + <Label Grid.Row="4" Grid.Column="0">ModalResults1Hz</Label> + <CheckBox Grid.Row="4" Grid.Column="1" IsChecked="{Binding ModalResults1Hz}"></CheckBox> + </Grid> + <!--<DockPanel DockPanel.Dock="Bottom" LastChildFill="False"> + <Button DockPanel.Dock="Right" + Width="100" + Command="{Binding CloseWindowCommand}" + CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" + Style="{DynamicResource MultiStageButtonStyle1}" + Margin="4" + Padding="4">Close</Button> + </DockPanel>--> + </DockPanel> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/SettingsView.xaml.cs b/VECTO3GUI2020/Views/SettingsView.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..92484cfb87fbcce333ddbb4db53dc92588ffff01 --- /dev/null +++ b/VECTO3GUI2020/Views/SettingsView.xaml.cs @@ -0,0 +1,19 @@ +using System.Windows; +using System.Windows.Controls; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.Implementation; +using VECTO3GUI2020.ViewModel.Interfaces; + +namespace VECTO3GUI2020.Views +{ + /// <summary> + /// Interaction logic for Settings.xaml + /// </summary> + public partial class SettingsView : UserControl + { + public SettingsView() + { + InitializeComponent(); + } + } +} diff --git a/VECTO3GUI2020/Views/XMLViewer.xaml b/VECTO3GUI2020/Views/XMLViewer.xaml new file mode 100644 index 0000000000000000000000000000000000000000..6e8fa920b6af45f13957fa6d74b954b88df1a1a0 --- /dev/null +++ b/VECTO3GUI2020/Views/XMLViewer.xaml @@ -0,0 +1,31 @@ +<Window x:Class="VECTO3GUI2020.Views.XMLViewer" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:VECTO3GUI2020.Views" + xmlns:custom="clr-namespace:VECTO3GUI2020.Views.CustomControls" + mc:Ignorable="d" + Title="XML Viewer" Height="750" Width="800" WindowStartupLocation="CenterScreen"> + <Grid> + <Grid Margin="10, 10, 10, 10"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="5"/> + <RowDefinition Height="*"/> + </Grid.RowDefinitions> + + <Grid Grid.Row="0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*" /> + </Grid.ColumnDefinitions> + + <TextBox Name="txtFilePath" IsReadOnly="True" + Grid.Column="0" HorizontalAlignment="Stretch" /> + </Grid> + + <custom:Viewer x:Name="vXMLViwer" Grid.Row="2" /> + </Grid> + + </Grid> +</Window> diff --git a/VECTO3GUI2020/Views/XMLViewer.xaml.cs b/VECTO3GUI2020/Views/XMLViewer.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..73fa8387fdf115af3836e6a38aeb1d316b4ce835 --- /dev/null +++ b/VECTO3GUI2020/Views/XMLViewer.xaml.cs @@ -0,0 +1,16 @@ +using System.Windows; + +namespace VECTO3GUI2020.Views +{ + /// <summary> + /// Interaction logic for XMLViewer.xaml + /// </summary> + public partial class XMLViewer : Window + { + public XMLViewer() + { + InitializeComponent(); + } + + } +} diff --git a/VECTO3GUI2020/packages.config b/VECTO3GUI2020/packages.config new file mode 100644 index 0000000000000000000000000000000000000000..858916a3f79f42e0406d5119d5d69b34c14416a4 --- /dev/null +++ b/VECTO3GUI2020/packages.config @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Castle.Core" version="4.4.1" targetFramework="net48" /> + <package id="InteractiveDataDisplay.WPF" version="1.0.0" targetFramework="net48" /> + <package id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" targetFramework="net48" /> + <package id="Microsoft.Maps.MapControl.WPF" version="1.0.0.3" targetFramework="net48" /> + <package id="Microsoft.Toolkit.Mvvm" version="7.0.2" targetFramework="net48" /> + <package id="Ninject" version="3.3.4" targetFramework="net48" /> + <package id="Ninject.Extensions.ChildKernel" version="3.3.0" targetFramework="net48" /> + <package id="Ninject.Extensions.Factory" version="3.3.3" targetFramework="net48" /> + <package id="System.Buffers" version="4.5.1" targetFramework="net48" /> + <package id="System.ComponentModel.Annotations" version="5.0.0" targetFramework="net48" /> + <package id="System.Memory" version="4.5.4" targetFramework="net48" /> + <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" /> + <package id="System.Reactive" version="5.0.0" targetFramework="net48" /> + <package id="System.Reactive.Core" version="5.0.0" targetFramework="net48" /> + <package id="System.Reactive.Linq" version="5.0.0" targetFramework="net48" /> + <package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net48" /> + <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" /> + <package id="System.Windows.Controls.DataVisualization.Toolkit" version="4.0.0.0" targetFramework="net48" /> + <package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net48" /> + <package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net48" /> +</packages> \ No newline at end of file diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/AlternatorMapMock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/AlternatorMapMock.vb index dfa0194b82a3d1e005fb963526c5f09d3d4cb025..03712ad620c5936d2943be4a2e916751a61466bb 100644 --- a/VECTOAux/VectoAuxiliariesTests/Mocks/AlternatorMapMock.vb +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/AlternatorMapMock.vb @@ -1,4 +1,5 @@  +Imports TUGraz.VectoCommon.BusAuxiliaries Imports TUGraz.VectoCommon.Utils Imports TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces Imports TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics @@ -21,12 +22,6 @@ Namespace Mocks Return 0.0 End Function - Public ReadOnly Property Technologies As IList(Of String) Implements IAlternatorMap.Technologies - get - Return New List(Of string) - End Get - End Property - public ReadOnly property Source As String Implements IAlternatorMap.Source get Return "" diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb index 4f517297a6937b84db7f63d46d7affbd677f5993..2675bc3e2b12373fed208c08c1d51315a813ee5c 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb @@ -1,5 +1,6 @@ Imports System.IO Imports NUnit.Framework +Imports TUGraz.VectoCommon.BusAuxiliaries Imports TUGraz.VectoCommon.Utils Imports TUGraz.VectoCore.InputData.Reader.ComponentData Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb index 4781a11a5cbd735a07db3e280ace7a6f8f0a34fb..d105b72d978cf37c95db18b485f302bdc3275675 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb @@ -1,6 +1,7 @@ Imports NUnit.Framework Imports TUGraz.VectoCommon.Utils Imports System.IO +Imports TUGraz.VectoCommon.BusAuxiliaries Imports TUGraz.VectoCore.InputData.Reader.ComponentData Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb index 50502100bca5620039ba2de133facabfeb7c9085..a2c8195bc288abf46750a4bb63b1bf9d2ee8a0f9 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb @@ -76,7 +76,7 @@ Namespace UnitTests Dim mission As New Mission With { .BusParameter = New BusParameters() With { - .HVACCompressorType = ACCompressorType.TwoStage, + .HVACCompressorType = HeatPumpType.non_R_744_2_stage, .HVACAuxHeaterPower = 30000.0.SI(Of Watt), .HVACConfiguration = BusHVACSystemConfiguration.Configuration6, .DoubleDecker = False, @@ -150,7 +150,7 @@ Namespace UnitTests If section = "AC-System" Then 'AC-SYSTEM '********* - Assert.AreEqual(ACCompressorType.TwoStage, target.ACSystem.HVACCompressorType) + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, target.ACSystem.HVACCompressorType) Assert.AreEqual(15.5567, target.ACSystem.HVACMaxCoolingPower.Value()/1000.0, 1e-3) Assert.AreEqual(3.5, target.ACSystem.COP) End If @@ -584,7 +584,7 @@ Namespace UnitTests Dim mission As New Mission With { .MissionType = MissionType.HeavyUrban, .BusParameter = New BusParameters() With { - .HVACCompressorType = ACCompressorType.TwoStage, + .HVACCompressorType = HeatPumpType.non_R_744_2_stage, .HVACAuxHeaterPower = 18000.0.SI(Of Watt), .HVACConfiguration = BusHVACSystemConfiguration.Configuration6, .DoubleDecker = False, diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb index 6cd70dd5527a222734c593e521ba7b6f126a348c..9bcf3b9f811f9730537501cd7711db352278ed92 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb @@ -138,7 +138,7 @@ Public Class Utils .HeatingBoundaryTemperature = 18.0.DegCelsiusToKelvin(), .CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(), .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast (Of JoulePerCubicMeter), - .HVACCompressorType = ACCompressorType.TwoStage, + .HVACCompressorType = HeatPumpType.non_R_744_2_stage, .HVACMaxCoolingPower = 18.si(Unit.SI.kilo.watt).Cast (of Watt), .AuxHeaterEfficiency = 0.84, .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast (Of Watt), diff --git a/Vecto3GUI2020Test/AllTestWithoutUI.testsession b/Vecto3GUI2020Test/AllTestWithoutUI.testsession new file mode 100644 index 0000000000000000000000000000000000000000..09c416848ccbebfc94be4fd3f62e8923f6fd29a7 --- /dev/null +++ b/Vecto3GUI2020Test/AllTestWithoutUI.testsession @@ -0,0 +1,14 @@ +<SessionState ContinuousTestingMode="0" IsActive="True" Name="AllTestWithoutUI" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <TestAncestor> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VIFTests.LoadPrimaryVehicleAndStageInputThenCreateVif</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VehicleViewModelTests.airdragNotModifiedInPreviousStages</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VIFTests.loadPrimaryVehicleOnlyAndCreateNewVIF</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VIFTests.TestAirdragLoad</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.LoadAndSaveVehicleData.SaveVehicleDataWithMissingFields</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.LoadAndSaveVehicleData.loadPrimaryAndSaveVehicleData</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.LoadAndSaveVehicleData.loadInputFileMultipleStage</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.LoadAndSaveVehicleData</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VIFTests</TestId> + <TestId>NUnit3x::7F4FF473-96B3-461E-9CE6-76D3B75F87CB::.NETFramework,Version=v4.8::Vecto3GUI2020Test.ViewModelTests.VehicleViewModelTests</TestId> + </TestAncestor> +</SessionState> \ No newline at end of file diff --git a/Vecto3GUI2020Test/UI/DesktopSession.cs b/Vecto3GUI2020Test/UI/DesktopSession.cs new file mode 100644 index 0000000000000000000000000000000000000000..d71ebdb97973fcb2f1a3d58f490d86c721289fce --- /dev/null +++ b/Vecto3GUI2020Test/UI/DesktopSession.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using OpenQA.Selenium.Appium; +using OpenQA.Selenium.Appium.Windows; +using OpenQA.Selenium.Remote; + +namespace Vecto3GUI2020Test +{ + public class DesktopSession + { + private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723/"; + WindowsDriver<WindowsElement> desktopSession; + + public DesktopSession() + { + var process = Process.Start(@"C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe"); + + var appCapabilities = new AppiumOptions(); + appCapabilities.AddAdditionalCapability("app", "Root"); + appCapabilities.AddAdditionalCapability("deviceName", "WindowsPC"); + desktopSession = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities); + } + + ~DesktopSession() + { + desktopSession.Quit(); + } + + public WindowsDriver<WindowsElement> DesktopSessionElement + { + get { return desktopSession; } + } + + public WindowsElement FindElementByAbsoluteXPath(string xPath, int nTryCount = 15) + { + WindowsElement uiTarget = null; + + while (nTryCount-- > 0) { + try { + uiTarget = desktopSession.FindElementByXPath(xPath); + } catch { + } + + if (uiTarget != null) { + break; + } else { + System.Threading.Thread.Sleep(200); + } + } + + return uiTarget; + } + } +} diff --git a/Vecto3GUI2020Test/UI/UITests.cs b/Vecto3GUI2020Test/UI/UITests.cs new file mode 100644 index 0000000000000000000000000000000000000000..969b9c5a054b5ede41a07d6416946dee45b1bfdd --- /dev/null +++ b/Vecto3GUI2020Test/UI/UITests.cs @@ -0,0 +1,268 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using NUnit.Framework; +using OpenQA.Selenium; +using OpenQA.Selenium.Appium.Android; +using OpenQA.Selenium.Appium.Windows; +using OpenQA.Selenium.Interactions; +using Vecto3GUI2020Test.UI; + +namespace Vecto3GUI2020Test +{/// <summary> +/// The Application under Test has to run on a Windows 10 Machine on a Desktop called "VE +/// </summary> + [TestFixture] + public class UITests : VECTO3GUI2020Session + { + [SetUp] + public void Setup() + { + Setup(TestContext.CurrentContext); + } + + [Ignore("ignored UI test")] + [Test] + public void LoadFileSession() + { + session.FindElementByXPath( + "//Button[@Name=\"New Multistage File\"][@AutomationId=\"JobListViewNewManufacturingStageFileButton\"]").Click(); //open new multistageWindow + + + session.SwitchTo().Window(session.WindowHandles.Last()); + Assert.AreEqual(2, session.WindowHandles.Count); + + + session.FindElementByXPath( + ".//Custom[@AutomationId=\"NewMultistageJobView\"]/Custom[@AutomationId=\"NewMultistageFilePicker\"]/Button[@AutomationId=\"button\"]").Click(); + + + + Assert.AreEqual(3, session.WindowHandles); + + + + Thread.Sleep(100000); + } + + + + + #region DesktopSessionTests + + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFile() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_multiple_stages.xml"); + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFileAirdrag() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_multiple_stages_airdrag.xml"); + + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFileheatPump() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_multiple_stages_heatPump.xml"); + + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFilehev() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_multiple_stages_hev.xml"); + + //} + + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFileNGTankSystem() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml"); + //} + + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFileConsolidatedOneStage() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_one_stage.xml"); + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFileConsolidatedTwoStages() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_two_stages.xml"); + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFilePrimaryVehicleOnly() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_primary_vehicle_only.xml"); + //} + + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFilePrimaryVehicleStage_2_3() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_consolidated_one_stage.xml"); + //} + //[Ignore("disabled Desktop Session tests")] + //[Test] + //public void LoadFilePrimaryVehicleOnlyAndCheckFields() + //{ + // LoadFileThroughUIWithDesktopSession(fileName: "vecto_multistage_primary_vehicle_only.xml"); + // //Check vehicle fields + // SelectVehicleTab(); + // focusToActiveWindow(); + // //var element = session.FindElementByXPath() + //} + + //private void LoadFileThroughUIWithDesktopSession(string fileName) + //{ + // // LeftClick on Button "New Multistage File" at (65,28) + // // LeftClick on Button "New Multistage File" at (87,25) + // Console.WriteLine("LeftClick on Button \"New Multistage File\" at (87,25)"); + // string xpath_LeftClickButtonNewMultist_87_25 = "/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][@Name=\"Vecto\"]/Custom[@ClassName=\"JobListView\"]/Button[@Name=\"New Multistage File\"][@AutomationId=\"JobListViewNewManufacturingStageFileButton\"]"; + // var winElem_LeftClickButtonNewMultist_87_25 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftClickButtonNewMultist_87_25); + + // if (winElem_LeftClickButtonNewMultist_87_25 != null) + // { + // winElem_LeftClickButtonNewMultist_87_25.Click(); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftClickButtonNewMultist_87_25}"); + // } + // Assert.NotNull(winElem_LeftClickButtonNewMultist_87_25); + + // // LeftDblClick on Button "" at (11,11) + // Console.WriteLine("LeftDblClick on Button \"\" at (11,11)"); + // string xpath_LeftDblClickButton_11_11 = "/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][starts-with(@Name,\"VECTO3GUI2020.ViewModel.MultiStage.Implementation.NewMultiStageJ\")]/Custom[@AutomationId=\"NewMultistageJobView\"]/Custom[@AutomationId=\"NewMultistageFilePicker\"]/Button[@AutomationId=\"button\"]"; + // var winElem_LeftDblClickButton_11_11 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftDblClickButton_11_11); + + // if (winElem_LeftDblClickButton_11_11 != null) { + // desktopSession.DesktopSessionElement.Mouse.MouseMove(winElem_LeftDblClickButton_11_11.Coordinates); + // desktopSession.DesktopSessionElement.Mouse.DoubleClick(null); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftDblClickButton_11_11}"); + + // } + // Assert.NotNull(winElem_LeftDblClickButton_11_11); + + // // LeftDblClick on Edit "Name" at (284,8) + // Console.WriteLine("LeftDblClick on Edit \"Name\" at (284,8)"); + // string xpath_LeftDblClickEditName_284_8 = $"/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][starts-with(@Name,\"VECTO3GUI2020.ViewModel.MultiStage.Implementation.NewMultiStageJ\")]/Window[@ClassName=\"#32770\"][@Name=\"Öffnen\"]/Pane[@ClassName=\"DUIViewWndClassName\"]/Pane[@Name=\"Shellordneransicht\"][@AutomationId=\"listview\"]/List[@ClassName=\"UIItemsView\"][@Name=\"Elementansicht\"]/ListItem[@ClassName=\"UIItem\"][@Name={fileName}]/Edit[@Name=\"Name\"][@AutomationId=\"System.ItemNameDisplay\"]"; + // var winElem_LeftDblClickEditName_284_8 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftDblClickEditName_284_8); + // if (winElem_LeftDblClickEditName_284_8 != null) + // { + // desktopSession.DesktopSessionElement.Mouse.MouseMove(winElem_LeftDblClickEditName_284_8.Coordinates); + // desktopSession.DesktopSessionElement.Mouse.DoubleClick(null); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftDblClickEditName_284_8}"); + // } + // Assert.NotNull(winElem_LeftDblClickEditName_284_8); + + + + // SelectAirdragTab(); + // SelectAuxiliariesTab(); + // SelectVehicleTab(); + // SelectAuxiliariesTab(); + // SelectAirdragTab(); + + + + + + //} + + + //private void SelectVehicleTab() + //{ + // // LeftClick on Text "Vehicle" at (13,14) + // Console.WriteLine("LeftClick on Text \"Vehicle\" at (13,14)"); + // string xpath_LeftClickTextVehicle_13_14 = "/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][starts-with(@Name,\"VECTO3GUI2020.ViewModel.MultiStage.Implementation.NewMultiStageJ\")]/Custom[@AutomationId=\"NewMultistageJobView\"]/Custom[@ClassName=\"MultiStageView\"]/Custom[@ClassName=\"ManufacturingStageView\"]/Button[@ClassName=\"Button\"][@Name=\"Vehicle\"]/Text[@ClassName=\"TextBlock\"][@Name=\"Vehicle\"]"; + // var winElem_LeftClickTextVehicle_13_14 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftClickTextVehicle_13_14); + // if (winElem_LeftClickTextVehicle_13_14 != null) + // { + // winElem_LeftClickTextVehicle_13_14.Click(); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftClickTextVehicle_13_14}"); + // } + // Assert.NotNull(winElem_LeftClickTextVehicle_13_14); + //} + + //private void SelectAirdragTab() + //{ + // // LeftClick on Text "Airdrag" at (21,13) + // Console.WriteLine("LeftClick on Text \"Airdrag\" at (21,13)"); + // string xpath_LeftClickTextAirdrag_21_13 = "/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][starts-with(@Name,\"VECTO3GUI2020.ViewModel.MultiStage.Implementation.NewMultiStageJ\")]/Custom[@AutomationId=\"NewMultistageJobView\"]/Custom[@ClassName=\"MultiStageView\"]/Custom[@ClassName=\"ManufacturingStageView\"]/Button[@ClassName=\"Button\"][@Name=\"Airdrag\"]/Text[@ClassName=\"TextBlock\"][@Name=\"Airdrag\"]"; + // var winElem_LeftClickTextAirdrag_21_13 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftClickTextAirdrag_21_13); + // if (winElem_LeftClickTextAirdrag_21_13 != null) + // { + // winElem_LeftClickTextAirdrag_21_13.Click(); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftClickTextAirdrag_21_13}"); + // return; + // } + // Assert.NotNull(winElem_LeftClickTextAirdrag_21_13); + //} + + //private void SelectAuxiliariesTab() + //{ + // // LeftClick on Button "Auxiliaries" at (9,13) + // Console.WriteLine("LeftClick on Button \"Auxiliaries\" at (9,13)"); + // string xpath_LeftClickButtonAuxiliarie_9_13 = "/Pane[@ClassName=\"#32769\"][@Name=\"Vecto\"]/Window[@ClassName=\"Window\"][starts-with(@Name,\"VECTO3GUI2020.ViewModel.MultiStage.Implementation.NewMultiStageJ\")]/Custom[@AutomationId=\"NewMultistageJobView\"]/Custom[@ClassName=\"MultiStageView\"]/Custom[@ClassName=\"ManufacturingStageView\"]/Button[@ClassName=\"Button\"][@Name=\"Auxiliaries\"]"; + // var winElem_LeftClickButtonAuxiliarie_9_13 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftClickButtonAuxiliarie_9_13); + // if (winElem_LeftClickButtonAuxiliarie_9_13 != null) + // { + // winElem_LeftClickButtonAuxiliarie_9_13.Click(); + // } + // else + // { + // Console.WriteLine($"Failed to find element using xpath: {xpath_LeftClickButtonAuxiliarie_9_13}"); + // } + // Assert.NotNull(winElem_LeftClickButtonAuxiliarie_9_13); + + + //} + + + #endregion + + + [TearDown] + public void OneTimeTeardown() + { + TearDown(); + Thread.Sleep(0); + } + + + + private void focusToActiveWindow() + { + session.SwitchTo().ActiveElement(); + + } + + + + } +} diff --git a/Vecto3GUI2020Test/UI/VECTO3GUI2020Session.cs b/Vecto3GUI2020Test/UI/VECTO3GUI2020Session.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f9abe2cbe98cdafea63a517581c16353c2479c5 --- /dev/null +++ b/Vecto3GUI2020Test/UI/VECTO3GUI2020Session.cs @@ -0,0 +1,85 @@ +using System; +using System.Diagnostics; +using NUnit.Framework; +using OpenQA.Selenium; +using OpenQA.Selenium.Appium.Windows; +using VECTO3GUI2020.Properties; + +namespace Vecto3GUI2020Test.UI +{ + [TestFixture] + public class VECTO3GUI2020Session + { + protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; + private const string NotepadAppId = @"C:\Windows\System32\notepad.exe"; + + private const string vectoLocation = + @"C:\Users\Harry\source\repos\vecto-dev\VECTO3GUI2020\bin\Debug\VECTO3GUI2020.exe"; + + private static Process winappDriverProcess; + + internal static WindowsDriver<WindowsElement> session; + internal static DesktopSession desktopSession; + + public WindowsDriver<WindowsElement> DesktopSessionElement + { + get { return session; } + } + + public static void Setup(TestContext context) + { + // Launch a new instance of VECTO application + if (session == null) { + winappDriverProcess = Process.Start(@"C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe"); + // Create a new session to launch Notepad application + + + var appiumOptions = new OpenQA.Selenium.Appium.AppiumOptions(); + appiumOptions.AddAdditionalCapability("app", @"C:\Users\Harry\source\repos\vecto-dev\VECTO3GUI2020\bin\Debug\VECTO3GUI2020.exe"); + appiumOptions.AddAdditionalCapability("deviceName", "WindowsPC"); + session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appiumOptions); + session.ActivateApp(vectoLocation); + + // Use the session to control the app + Assert.IsNotNull(session); + Assert.IsNotNull(session.SessionId); + + + // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times + session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); + } + + desktopSession = new DesktopSession(); + } + + + public static void TearDown() + { + // Close the application and delete the session + if (session != null) + { + session.CloseApp(); + winappDriverProcess.Kill(); + + session = null; + } + } + + public void TestInitialize() + { + // Select all text and delete to clear the edit box + } + + protected static string SanitizeBackslashes(string input) => input.Replace("\\", Keys.Alt + Keys.NumberPad9 + Keys.NumberPad2 + Keys.Alt); + + } + + public static class SessionExtensions{ + + public static void DoubleCLick(this WindowsElement element) + { + element.Click(); + element.Click(); + } + } +} diff --git a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj new file mode 100644 index 0000000000000000000000000000000000000000..61e6686bd13a15f88e9aba5aa5ff5159c7136733 --- /dev/null +++ b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj @@ -0,0 +1,102 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>net48</TargetFramework> + + <IsPackable>false</IsPackable> + </PropertyGroup> + + <ItemGroup> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml" Link="Testdata\vecto_vehicle-exempted_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries01-sample.xml" Link="Testdata\vecto_vehicle-exempted_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries02-sample.xml" Link="Testdata\vecto_vehicle-exempted_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_mandatory_entries.xml" Link="Testdata\vecto_vehicle-exempted_input_only_mandatory_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml" Link="Testdata\vecto_vehicle-stage_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries01-sample.xml" Link="Testdata\vecto_vehicle-stage_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries02-sample.xml" Link="Testdata\vecto_vehicle-stage_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_component_nullable_entries.xml" Link="Testdata\vecto_vehicle-stage_input_only_component_nullable_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_entries.xml" Link="Testdata\vecto_vehicle-stage_input_only_mandatory_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml" Link="Testdata\vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\AidragComponent.xml" Link="Testdata\AidragComponent.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\AirdragLoadTestFile.xml" Link="Testdata\AirdragLoadTestFile.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml" Link="Testdata\vecto_multistage_consolidated_multiple_stages.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_airdrag.xml" Link="Testdata\vecto_multistage_consolidated_multiple_stages_airdrag.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_heatPump.xml" Link="Testdata\vecto_multistage_consolidated_multiple_stages_heatPump.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_hev.xml" Link="Testdata\vecto_multistage_consolidated_multiple_stages_hev.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml" Link="Testdata\vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_one_stage.xml" Link="Testdata\vecto_multistage_consolidated_one_stage.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_two_stages.xml" Link="Testdata\vecto_multistage_consolidated_two_stages.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_only.xml" Link="Testdata\vecto_multistage_primary_vehicle_only.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_3.xml" Link="Testdata\vecto_multistage_primary_vehicle_stage_2_3.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_full.xml" Link="Testdata\vecto_multistage_primary_vehicle_stage_2_full.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="..\VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_mandatory.xml" Link="Testdata\vecto_multistage_primary_vehicle_stage_2_mandatory.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + </ItemGroup> + + <ItemGroup> + <PackageReference Include="Appium.WebDriver" Version="4.3.1" /> + <PackageReference Include="Moq" Version="4.16.1" /> + <PackageReference Include="Ninject" Version="3.3.4" /> + <PackageReference Include="NUnit" Version="3.12.0" /> + <PackageReference Include="NUnit3TestAdapter" Version="3.16.1" /> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\VECTO3GUI2020\VECTO3GUI2020.csproj" /> + <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" /> + </ItemGroup> + + <ItemGroup> + <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework"> + <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</HintPath> + </Reference> + <Reference Include="PresentationFramework" /> + </ItemGroup> + +</Project> diff --git a/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..2aadd6117d635ea7a42f50356528eb49a07e4182 --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs @@ -0,0 +1,280 @@ +using NUnit.Framework; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class AirdragTests : ViewModelTestBase + { + /* + * Airdrag component loaded -> Airdragmodified true (if mandatory) + Airdrag component deleted -> Airdragmodified unchanged + Airdrag modified false -> Airdragcomponent set to null (& temporarily saved) + Airdrag modified true -> Airdragcomponent unchanged + * + * + */ + + #region Airdrag + [Test] + public void airdragModifiedInPreviousStages() + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleVM = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsTrue(vehicleVM.AirdragModifiedMultistageEditingEnabled); + + //try to change to false + + vehicleVM.AirdragModifiedMultistage = false; //should not change the value + Assert.IsTrue(vehicleVM.AirdragModifiedMultistageEditingEnabled); + } + + [Test] + public void airdragNotModifiedInPreviousStages() + { + var vm = loadFile(consolidated_multiple_stages); + + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + } + + /// <summary> + /// 1st interim stage adds AirDrag component + /// => 'AirdragModifiedMultistage' not present in input, VIF 2, Airdrag Component in VIF + /// => 'AirdragModifiedMultistage' required in all consecutive stages + /// </summary> + [Test] + public void airdragComponentLoadedFirstTime() + { + ///Load VIF without airdrag + + var vm = loadFile(primary_vehicle_only); + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + + var airdragViewModel = vehicleVM.MultistageAirdragViewModel as MultistageAirdragViewModel; + Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile))); + + Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + + vehicleVM.AirdragModifiedMultistageEditingEnabled = true; + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + + Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + + //Set Mandatory Fields + vehicleVM.Manufacturer = "testManufacturer"; + vehicleVM.ManufacturerAddress = "Address"; + vehicleVM.VIN = "123456789"; + + //Save as new VIF + var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + var outputName = "AidragLoadedInFirstStage"; + multistageJobViewModel.SaveVif(GetFullPath($"{outputName}.xml")); + + var resultFile = $"{outputName}.VIF_Report_2.xml"; + Assert.IsTrue(checkFileNameExists(resultFile)); + var secondstageVM = loadFile(resultFile); + Assert.IsNotNull(secondstageVM); + var secondStageVehicleVM = + (secondstageVM.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel) as + DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled); + Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageMandatory); + Assert.IsNull(secondStageVehicleVM.ConsolidatedVehicleData.AirdragModifiedMultistage); + + //try to disable AirdragModified + secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled = false; + Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled); + } + /// <summary> + /// no airdrag component set in VIF => AirdragModifiedMultistage is disabled + /// </summary> + [Test] + public void airdragModifiedDisabled() + { + var vm = loadFile(primary_vehicle_only); + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + + Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + + var airdragViewModel = vehicleVM.MultistageAirdragViewModel; + Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)), "Airdrag file not loaded"); + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + + vehicleVM.AirdragModifiedMultistageEditingEnabled = true; + Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + + } + /// <summary> + /// airdrag component is in VIF set => AirdragModifiedMultistage is mandatory + /// </summary> + [Test] + + public void airdragModifiedMandatory() + { + //var vm = loadFile(primary_vehicle_only); + //var vehicleVM = + // vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + // DeclarationInterimStageBusVehicleViewModel_v2_8; + + //Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + + //Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + //Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + + //vehicleVM.AirdragModifiedMultistageEditingEnabled = true; + //Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + + } + + [Test] + public void temporarySaveAirdragComponent1() + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleViewModel.AirdragModifiedMultistage); + + + //Load airdrag file + var airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); + var loadedAirdragComponent = vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel; + Assert.IsTrue(airdragLoaded, "Airdrag file was not loaded"); + + //Airdrag modified set to true if a component is loaded and the field is mandatory + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistage); + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistageMandatory); + Assert.AreEqual( + AIRDRAGMODIFIED.TRUE, + vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + + vehicleViewModel.AirdragModifiedMultistage = false; + Assert.AreEqual(AIRDRAGMODIFIED.FALSE,vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + Assert.IsNull(vehicleViewModel.Components?.AirdragInputData); + Assert.IsNull(vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel); + + vehicleViewModel.AirdragModifiedMultistage = true; + Assert.AreEqual(loadedAirdragComponent, vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel); + + } + + [Test] + public void temporarySaveAirdragComponent2() + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleViewModel.AirdragModifiedMultistage); + + + //Load input file + var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + var mockDialogHelper = setMockDialogHelper(stageInputFullSample, null); + multistageJobViewModel.LoadVehicleDataCommand.Execute(null); + + + + + var loadedAirdragComponent = vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel; + Assert.NotNull(loadedAirdragComponent); + + //Airdrag modified set to true if a component is loaded and the field is mandatory + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistage); + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistageMandatory); + Assert.AreEqual( + AIRDRAGMODIFIED.TRUE, + vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + + vehicleViewModel.AirdragModifiedMultistage = false; + Assert.AreEqual(AIRDRAGMODIFIED.FALSE, vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + Assert.IsNull(vehicleViewModel.Components?.AirdragInputData); + Assert.IsNull(vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel); + + vehicleViewModel.AirdragModifiedMultistage = true; + Assert.AreEqual(loadedAirdragComponent, vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel); + + } + + [Test] + public void removeAirdragComponent() + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleViewModel.AirdragModifiedMultistage); + + + //Load input file + var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + var mockDialogHelper = setMockDialogHelper(stageInputFullSample, null); + multistageJobViewModel.LoadVehicleDataCommand.Execute(null); + + + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistage); + vehicleViewModel.MultistageAirdragViewModel.RemoveAirdragComponent(); //remove airdrag viewmodel; + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistage); + + + + } + + + + + [Test] + public void airdragModifiedSetToTrueWhenComponentIsLoaded() + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleViewModel.AirdragModifiedMultistage); + + + //Load airdrag file + var airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); + Assert.IsTrue(airdragLoaded, "Airdrag file was not loaded"); + + //Airdrag modified set to true if a component is loaded and the field is mandatory + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistage); + Assert.IsTrue(vehicleViewModel.AirdragModifiedMultistageMandatory); + Assert.AreEqual( + AIRDRAGMODIFIED.TRUE, + vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + + + //AirdragComponent is removed when airdragmodified is set to false; + //Load airdrag file + airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); + Assert.IsTrue(airdragLoaded, "Airdrag file was not loaded"); + + vehicleViewModel.AirdragModifiedMultistage = false; + Assert.IsNull(vehicleViewModel.MultistageAirdragViewModel.AirDragViewModel); + + + } + + #endregion + + + } +} diff --git a/Vecto3GUI2020Test/ViewModelTests/ExtensionTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExtensionTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..50d9531a52b15491bf75126f42deb6ff1e0c3818 --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/ExtensionTests.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.ObjectModel; +using NUnit.Framework; +using TUGraz.VectoCommon.Models; +using VECTO3GUI2020.Helper; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class ExtensionTests + { + + [Test] + public void TestGetValuesAsObservableCollectionEnumExtension() + { + + VehicleCode? vehicleCode = null; + var collection1 = EnumHelper.GetValuesAsObservableCollectionExcluding<Enum, VehicleCode>(VehicleCode.NOT_APPLICABLE, VehicleCode.CF); + + Assert.False(collection1.Contains(VehicleCode.NOT_APPLICABLE)); + Assert.False(collection1.Contains(VehicleCode.CF)); + + Assert.True(collection1.Contains(VehicleCode.CA)); + + Assert.True(collection1.Contains(VehicleCode.CB)); + Assert.True(collection1.Contains(VehicleCode.CC)); + Assert.True(collection1.Contains(VehicleCode.CD)); + Assert.True(collection1.Contains(VehicleCode.CE)); + Assert.True(collection1.Contains(VehicleCode.CG)); + Assert.True(collection1.Contains(VehicleCode.CH)); + Assert.True(collection1.Contains(VehicleCode.CI)); + Assert.True(collection1.Contains(VehicleCode.CJ)); + + + + var collection2 = EnumHelper.GetValuesAsObservableCollectionIncluding<Enum, VehicleCode>(VehicleCode.CA); + Assert.True(collection2.Contains(VehicleCode.CA)); + Assert.False(collection2.Contains(VehicleCode.NOT_APPLICABLE)); + } + + + } +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs new file mode 100644 index 0000000000000000000000000000000000000000..8758db065c94b238396213ab54a6c184dae73b8c --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs @@ -0,0 +1,468 @@ +using System; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Xml; +using Castle.Core.Internal; +using Castle.DynamicProxy.Generators.Emitters.SimpleAST; +using Moq; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.SimulationComponent.Strategies; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace Vecto3GUI2020Test +{ + [TestFixture] + public class LoadAndSaveVehicleData : ViewModelTestBase + { + [Test] + public void loadInputFileMultipleStage() + { + loadFile(consolidated_multiple_stages); + } + + [Test] + public void loadPrimaryAndSaveVehicleData() + { + //Load Primary Vehicle VIF + var newMultiStageJob = loadFile(primary_vehicle_only); + var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.NotNull(vehicle); + vehicle.Manufacturer = "test1"; + vehicle.ManufacturerAddress = "testAddress2"; + vehicle.VIN = "VIN123456789"; + + + + var manufacturingStage = + newMultiStageJob.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + + Assert.NotNull(manufacturingStage); + + + var fileName = primary_vehicle_only.Replace(".xml", "") + "_output.xml"; + deleteFile(fileName); + setMockDialogHelper(null, fileToSave: fileName); + + + manufacturingStage.SaveInputDataAsCommand.Execute(null); + Assert.True(checkFileNameExists(fileName)); + } + + [Test] + public void loadPrimaryAndSave() + { + //load file + var newMultiStageJob = loadFile(primary_vehicle_only); + var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; + + + + } + + + + + [Ignore("Validation is only performed with gui")] + [TestCase(primary_vehicle_only)] + [TestCase(consolidated_multiple_stages)] + [TestCase(consolidated_one_stage)] + public void SaveVehicleDataWithMissingFields(string fileName) + { + var newMultistageJobViewModel = loadFile(fileName); + var manstage = newMultistageJobViewModel.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + Assert.NotNull(manstage); + + var saveFileName = fileName.Replace(".xml", "") + "_output.xml"; + deleteFile(saveFileName); + _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper(fileToSave: saveFileName).Object); + manstage.SaveInputDataAsCommand.Execute(null); + + Assert.False(checkFileNameExists(saveFileName)); + + } + + [Test] + public void reloadInputFile() + { + var newMultistageJobViewModel = loadFile(consolidated_multiple_stages_airdrag) as NewMultiStageJobViewModel; + + var vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.NotNull(vehicle); + + + Assert.True(vehicle.AirdragModifiedMultistageEditingEnabled); + + var mockDialog = setMockDialogHelper(consolidated_multiple_stages_hev); + newMultistageJobViewModel.AddVifFile.Execute(null); + Assert.AreEqual(mockDialog.Object.OpenXMLFileDialog(null), newMultistageJobViewModel.VifPath); + vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.IsFalse(vehicle.AirdragModifiedMultistageEditingEnabled); + + + + } + + + [Test] + public void loadInputFileMultipleStageAirdrag() + { + loadFile(consolidated_multiple_stages_airdrag); + } + + [Test] + public void loadAndSaveFullInputDataSample() + { + var vm = loadFile(primary_vehicle_only); + var multiStageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + + + var fileToSave = "loadAndSaveFullInputDataTest.xml"; + var mockDialogHelper = setMockDialogHelper(stageInputFullSample, fileToSave); + multiStageJobViewModel.LoadVehicleDataCommand.Execute(null); + + var manufacturingStageViewModel = + multiStageJobViewModel.ManufacturingStageViewModel as ManufacturingStageViewModel_v0_1; + + var vehicleViewModel = + manufacturingStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + + vehicleViewModel.AirdragModifiedMultistage = true; + Assert.AreEqual(ConsumerTechnology.Electrically, vehicleViewModel.DoorDriveTechnology); + Assert.AreEqual(ConsumerTechnology.Electrically, vm.MultiStageJobViewModel.VehicleInputData.DoorDriveTechnology); + + Assert.IsNotNull(multiStageJobViewModel.VehicleInputData.ManufacturerAddress); + + var fileExists = checkFilePathExists(mockDialogHelper.Object.OpenXMLFileDialog()); + Assert.IsTrue(fileExists); + File.Delete(mockDialogHelper.Object.SaveToXMLDialog()); + + + } + + [Test] + public void loadVehicleInputDataOnly() + { + string inputPath = Path.Combine(DirPath, stageInputFullSample); + var inputDataReader = _kernel.Get<IXMLInputDataReader>(); + var inputData = (IDeclarationInputDataProvider)inputDataReader.Create(inputPath); + var vehicleInputData = inputData.JobInputData.Vehicle; + //_manufacturingStageViewModel.SetInputData(vehicleInputData); + + + Assert.AreEqual(ConsumerTechnology.Electrically, vehicleInputData.DoorDriveTechnology); + } + + [Test] + public void loadInputFileConsolidatedOneStage() + { + loadFile(consolidated_one_stage); + } + + [Test] + public void loadInputFilePrimaryOnly() + { + var vm = loadFile(primary_vehicle_only); + Assert.AreEqual(2, vm.MultiStageJobViewModel.ManufacturingStageViewModel.StageCount); + + var primaryVehicle = vm.MultiStageJobViewModel.PrimaryVehicle; + Assert.NotNull(primaryVehicle); + + var vehicleViewModel = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as IMultistageVehicleViewModel; + Assert.NotNull(vehicleViewModel); + Assert.IsTrue(vehicleViewModel.Manufacturer.IsNullOrEmpty()); + Assert.IsTrue(vehicleViewModel.ManufacturerAddress.IsNullOrEmpty()); + Assert.IsTrue(vehicleViewModel.VIN.IsNullOrEmpty()); + Assert.IsNull(vehicleViewModel.Model); + + var vehicleViewModel_v2_8 = vehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.NotNull(vehicleViewModel_v2_8); + + Assert.Null(vehicleViewModel_v2_8.HeightInMm); + Assert.Null(vehicleViewModel_v2_8.LengthInMm); + Assert.Null(vehicleViewModel_v2_8.WidthInMm); + Assert.Null(vehicleViewModel_v2_8.EntranceHeightInMm); + + + + Assert.Null(vehicleViewModel_v2_8.ConsolidatedHeightInMm); + Assert.Null(vehicleViewModel_v2_8.ConsolidatedLengthInMm); + Assert.Null(vehicleViewModel_v2_8.ConsolidatedWidthInMm); + Assert.Null(vehicleViewModel_v2_8.ConsolidatedEntranceHeightInMm); + + + Assert.IsFalse(vehicleViewModel_v2_8.AirdragModifiedMultistageEditingEnabled); + + Assert.IsNull(vehicleViewModel_v2_8.AirdragModifiedMultistage); + Assert.IsNull(vehicleViewModel_v2_8.ConsolidatedAirdragModifiedEnum); + Assert.IsTrue(vehicleViewModel_v2_8.AirdragModifiedEnum == AIRDRAGMODIFIED.UNKNOWN || vehicleViewModel_v2_8.AirdragModifiedEnum == null); + + + + Assert.AreEqual(vehicleViewModel_v2_8.AirdragModifiedMultistageEditingEnabled, false); + + Assert.Null(vehicleViewModel_v2_8.BusAuxiliaries); + + + var vifInputData = vm.MultiStageJobViewModel as IMultistageVIFInputData; + + Assert.Null(vifInputData.VehicleInputData.Components); + } + + [TestCase(consolidated_multiple_stages_airdrag, true)] + [TestCase(consolidated_multiple_stages, null)] + [TestCase(consolidated_one_stage, null)] + [TestCase(primary_vehicle_only, null)] + public void loadAirdragComponentAndSaveVehicleData(string fileName, object expectedAirdragModifiedValue) + { + var vm = loadFile(fileName); + + var vehicleVm = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + + var airdragLoadResult = vehicleVm.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); + Assert.IsTrue(airdragLoadResult, "Airdrag file not loaded"); + + + //TODO: Set mandatory fields + vehicleVm.Manufacturer = "TestManufacturer"; + vehicleVm.ManufacturerAddress = "ManufacturerADDRESS"; + vehicleVm.VIN = "1234567890"; + + + + var fileToSave = "stageInput.xml"; + + var mockDialogHelper = setMockDialogHelper(null, fileToSave: fileToSave); + + TestContext.Write("Saving file with loaded Airdrag Component ... "); + var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + multistageJobViewModel.SaveInputDataAsCommand.Execute(null); + + var savePath = mockDialogHelper.Object.SaveToXMLDialog(); + Assert.IsTrue(File.Exists(savePath)); + TestContext.WriteLine("Done!"); + + TestContext.WriteLine("Checking saved File ... "); + var inputData = (IDeclarationInputDataProvider)_kernel.Get<IXMLInputDataReader>().Create(savePath); + + Assert.NotNull(inputData.JobInputData.Vehicle.Components.AirdragInputData, "No Airdrag Component loaded"); + var airdragData = inputData.JobInputData.Vehicle.Components.AirdragInputData; + + Assert.AreEqual(expectedAirdragModifiedValue, vehicleVm.AirdragModifiedMultistage); + + + + + TestContext.WriteLine("Done!"); + + + File.Delete(savePath); + + + + + } + + + + + + + + + + [Test] + public void loadVehicleDataTest() + { + + + TestContext.WriteLine($"Loading {consolidated_multiple_stages}"); + + var newMultistageJobViewModel = loadFile(consolidated_multiple_stages); + + //var dialogMockConsolidatedMultipleStage = new Mock<IDialogHelper>(); + //dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(multiplestages); + //dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(multiplestages); + //_kernel.Rebind<IDialogHelper>().ToConstant(dialogMockConsolidatedMultipleStage.Object); + + + //var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); + //newMultistageJobViewModel.AddVifFile.Execute(null); + Assert.NotNull(newMultistageJobViewModel.MultiStageJobViewModel); + + var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as IMultistageVehicleViewModel; + Assert.NotNull(manstageVehicleViewModel); + + var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel; + Assert.NotNull(auxiliariesViewModel); + + var multiStageViewModel = + newMultistageJobViewModel.MultiStageJobViewModel as + MultiStageJobViewModel_v0_1; + Assert.NotNull(multiStageViewModel); + + var manStageViewModel = multiStageViewModel.ManufacturingStageViewModel as ManufacturingStageViewModel_v0_1; + + var vehicleInputData = "vecto_vehicle-stage_input_full-sample.xml"; + var mockDialogHelper = setMockDialogHelper(fileToLoad: vehicleInputData, fileToSave: null); + var vehicleInputDataFilePath = mockDialogHelper.Object.OpenXMLFileDialog(); + TestContext.WriteLine($"Loading {vehicleInputDataFilePath}"); + Assert.IsTrue(File.Exists(vehicleInputDataFilePath)); + + + + //var vehicleInputDataFiledialogMock = new Mock<IDialogHelper>(); + //vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(vehicleInputData); + //vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(vehicleInputData); + //_kernel.Rebind<IDialogHelper>().ToConstant(vehicleInputDataFiledialogMock.Object); + + multiStageViewModel.LoadVehicleDataCommand.Execute(null); + + var vehicleViewModel = manStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.NotNull(vehicleViewModel); + //Assert.IsFalse(getMockDialogHelper().Verify); + + Assert.AreEqual("VEH-1234567890", vehicleViewModel.Identifier); + Assert.AreEqual("Some Manufacturer", vehicleViewModel.Manufacturer); + Assert.AreEqual("Some Manufacturer Address", vehicleViewModel.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", vehicleViewModel.VIN); + Assert.AreEqual(DateTime.Today, vehicleViewModel.Date); + Assert.AreEqual("Sample Bus Model", vehicleViewModel.Model); + Assert.AreEqual(LegislativeClass.M3, vehicleViewModel.LegislativeClass); + Assert.AreEqual(500, vehicleViewModel.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(3500, vehicleViewModel.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(false, vehicleViewModel.AirdragModifiedMultistage); + Assert.AreEqual(AIRDRAGMODIFIED.FALSE, vehicleViewModel.AirdragModifiedEnum); + Assert.AreEqual(AIRDRAGMODIFIED.FALSE, vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.AirdragModifiedEnum)].CurrentContent); + Assert.AreEqual(TankSystem.Compressed, vehicleViewModel.TankSystem);//NgTankSystem + Assert.AreEqual(RegistrationClass.II_III, vehicleViewModel.RegisteredClass);//ClassBus + Assert.AreEqual(1, vehicleViewModel.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(10, vehicleViewModel.NumberPassengersStandingLowerDeck); + Assert.AreEqual(11, vehicleViewModel.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(2, vehicleViewModel.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, vehicleViewModel.VehicleCode); + Assert.AreEqual(false, vehicleViewModel.LowEntry); + Assert.AreEqual(2.5, vehicleViewModel.Height.Value());//HeightIntegratedBody + Assert.AreEqual(9.5, vehicleViewModel.Length.Value()); + Assert.AreEqual(2.5, vehicleViewModel.Width.Value()); + + Assert.AreEqual(2500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.HeightInMm)].CurrentContent as ConvertedSI).Value); + Assert.AreEqual(9500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.LengthInMm)].CurrentContent as ConvertedSI).Value); + Assert.AreEqual(2500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.WidthInMm)].CurrentContent as ConvertedSI).Value); + + + Assert.AreEqual(2, vehicleViewModel.EntranceHeight.Value()); + Assert.AreEqual(ConsumerTechnology.Electrically, vehicleViewModel.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicleViewModel.VehicleDeclarationType); + + + Assert.AreEqual(newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle.DoorDriveTechnology, vehicleViewModel.DoorDriveTechnology); + + + var airdrag = vehicleViewModel.MultistageAirdragViewModel; + Assert.NotNull(airdrag.AirDragViewModel.XMLSource); + + + TestADASInput(vehicleViewModel); + TestComponents(vehicleViewModel.Components); + TestAirdragComponent(vehicleViewModel.Components.AirdragInputData); + TestAuxiliariesComponent(vehicleViewModel.BusAuxiliaries); + + + + + } + + private void TestADASInput(IVehicleDeclarationInputData vehicle) + { + Assert.AreEqual(true, vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.None, vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.None, vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, vehicle.ADAS.ATEcoRollReleaseLockupClutch); + } + + private void TestComponents(IVehicleComponentsDeclaration components) + { + TestAirdragComponent(components.AirdragInputData); + TestAuxiliariesComponent(components.BusAuxiliaries); + } + + private void TestAirdragComponent(IAirdragDeclarationInputData airdrag) + { + Assert.AreEqual("Generic Manufacturer", airdrag.Manufacturer); + Assert.AreEqual("Generic Model", airdrag.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", airdrag.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-03-24T15:00:00Z").ToUniversalTime(), airdrag.Date); + Assert.AreEqual("Vecto AirDrag x.y", airdrag.AppVersion); + Assert.AreEqual(6.34, airdrag.AirDragArea.Value()); + } + + private void TestAuxiliariesComponent(IBusAuxiliariesDeclarationData busAux) + { + TestLedLightsComponent(busAux.ElectricConsumers); + TestHVACComponent(busAux.HVACAux); + } + + private void TestLedLightsComponent(IElectricConsumersDeclarationData electricConsumer) + { + Assert.AreEqual(false, electricConsumer.InteriorLightsLED); + Assert.AreEqual(true, electricConsumer.DayrunninglightsLED); + Assert.AreEqual(true, electricConsumer.PositionlightsLED); + Assert.AreEqual(true, electricConsumer.BrakelightsLED); + Assert.AreEqual(false, electricConsumer.HeadlightsLED); + } + + private void TestHVACComponent(IHVACBusAuxiliariesDeclarationData hvacAux) + { + Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); + Assert.AreEqual(HeatPumpType.none, hvacAux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); + + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2); + + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[1].Item2); + + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[2].Item2); + + Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value()); + Assert.AreEqual(false, hvacAux.DoubleGlazing); + Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvacAux.SeparateAirDistributionDucts); + Assert.AreEqual(true, hvacAux.WaterElectricHeater); + Assert.AreEqual(false, hvacAux.AirElectricHeater); + Assert.AreEqual(false, hvacAux.OtherHeatingTechnology); + } + + + + + + + #region Helper + + #endregion + } + +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..07c2f96cb70c838b6c2e0afb2353d3f83328556b --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class MultistageAuxiliariesViewModelTests : ViewModelTestBase + { + + + + [Test] + public void TestAllowedValuesHeatPumpModePassenger() + { + + //var auxVm = new MultistageAuxiliariesViewModel(null); + //auxVm.HeatPumpTypePassengerCompartment = HeatPumpType.none; + //Assert.IsTrue(auxVm.HeatPumpModePassengerCompartmentAllowedValues.Contains(HeatPumpMode.N_A)); + //Assert.IsFalse(auxVm.HeatPumpModePassengerCompartmentAllowedValues.Contains(HeatPumpMode.cooling)); + //Assert.IsFalse(auxVm.HeatPumpModePassengerCompartmentAllowedValues.Contains(HeatPumpMode.heating)); + //Assert.IsFalse(auxVm.HeatPumpModePassengerCompartmentAllowedValues.Contains(HeatPumpMode.heating_and_cooling)); + + + //auxVm.HeatPumpTypePassengerCompartment = HeatPumpType.R_744; + //Assert.IsFalse(auxVm.HeatPumpModePassengerCompartmentAllowedValues.Contains(HeatPumpMode.N_A)); + } + + [Test] + public void TestAllowedValuesHeatPumpModeDriver() + { + var auxVm = new MultistageAuxiliariesViewModel(null); + auxVm.HeatPumpTypeDriverCompartment = HeatPumpType.none; + Assert.IsTrue(auxVm.HeatPumpModeDriverCompartmentAllowedValues.Contains(HeatPumpMode.N_A)); + Assert.IsFalse(auxVm.HeatPumpModeDriverCompartmentAllowedValues.Contains(HeatPumpMode.cooling)); + Assert.IsFalse(auxVm.HeatPumpModeDriverCompartmentAllowedValues.Contains(HeatPumpMode.heating)); + Assert.IsFalse(auxVm.HeatPumpModeDriverCompartmentAllowedValues.Contains(HeatPumpMode.heating_and_cooling)); + + + auxVm.HeatPumpTypeDriverCompartment = HeatPumpType.R_744; + Assert.IsFalse(auxVm.HeatPumpModeDriverCompartmentAllowedValues.Contains(HeatPumpMode.N_A)); + } + + + [Test] + public void TestEnumParameters() + { + var auxVm = new MultistageAuxiliariesViewModel(null); + auxVm.HeatPumpTypeDriverCompartment = HeatPumpType.none; + Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled); + auxVm.HeatPumpTypeDriverCompartment = HeatPumpType.R_744; + Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled); + + auxVm.HeatPumpGroupEditingEnabled = false; + auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeDriverCompartment)].CurrentContent = + HeatPumpType.R_744; + Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled); + + auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeDriverCompartment)].CurrentContent = + HeatPumpType.none; + + + Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled); + + } + + [Test] + public void TestEnum() + { + var auxVm = new MultistageAuxiliariesViewModel(null); + auxVm.HeatPumpTypeDriverCompartment = HeatPumpType.none; + auxVm.HeatPumpModeDriverCompartment = HeatPumpMode.N_A; + auxVm.HeatPumpGroupEditingEnabled = false; + auxVm.HeatPumpGroupEditingEnabled = true; + Assert.AreEqual(HeatPumpMode.N_A, auxVm.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpMode.N_A, + auxVm.ParameterViewModels[nameof(auxVm.HeatPumpModeDriverCompartment)].CurrentContent); + + } + + + + + + + } +} diff --git a/Vecto3GUI2020Test/ViewModelTests/MultistageParameterViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/MultistageParameterViewModelTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..7d75d07611250678ca960b4d7bfc859afb046ab1 --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/MultistageParameterViewModelTests.cs @@ -0,0 +1,20 @@ +using NUnit.Framework; +using VECTO3GUI2020.Annotations; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class MultistageParameterViewModelTests + { + [Test] + public void EditingEnabledOnContentChanged() + { + + + } + + + + + } +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/ViewModelTests/TestExtensions.cs b/Vecto3GUI2020Test/ViewModelTests/TestExtensions.cs new file mode 100644 index 0000000000000000000000000000000000000000..fbfecc557a577226d4337272c181ed4d244963ab --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/TestExtensions.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + internal class TestExtensions + { + + + } +} diff --git a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..03af649bf3d27161e6d8ab4794dc7ee91c4a8161 --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs @@ -0,0 +1,102 @@ +using System.IO; +using System.Xml; +using Moq; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Utils; +using VECTO3GUI2020.Helper; + +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + public class VIFTests : ViewModelTestBase + { + + [Test] + public void loadPrimaryVehicleOnlyAndCreateNewVIF() + { + var multistagevm = loadFile(primary_vehicle_only).MultiStageJobViewModel; + var stage = multistagevm.ManufacturingStageViewModel.StageCount; + + Assert.AreEqual(2, stage); + + //Set Necessary Fields + var vehicle = + multistagevm.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; + vehicle.ManufacturerAddress = "Address"; + vehicle.Manufacturer = "Manufacturer"; + vehicle.VIN = "VIN12345678"; + + var writer = GetFileOutputVIFWriter(multistagevm); + + deleteFile(writer.XMLMultistageReportFileName); + setMockDialogHelper(null, writer.XMLMultistageReportFileName); + _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper(null, writer.XMLMultistageReportFileName).Object); + + MultiStageJobViewModel_v0_1.SaveVif(multistagevm, writer); + + Assert.IsTrue(File.Exists(writer.XMLMultistageReportFileName)); + + var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); + Assert.True(validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType.MultistageOutputData)); + } + + + [Test] + public void TestAirdragLoadAndSave() + { + + + setMockDialogHelper(consolidated_multiple_stages, null); + + var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); + newMultistageJobViewModel.AddVifFile.Execute(null); + Assert.NotNull(newMultistageJobViewModel.MultiStageJobViewModel); + + var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as IMultistageVehicleViewModel; + Assert.NotNull(manstageVehicleViewModel); + + var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel; + Assert.NotNull(auxiliariesViewModel); + + var multiStageViewModel = newMultistageJobViewModel.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + Assert.NotNull(multiStageViewModel); + + setMockDialogHelper(stageInputFullSample, null); + + multiStageViewModel.LoadVehicleDataCommand.Execute(null); + + var vehicle = + multiStageViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; + vehicle.ManufacturerAddress = "Address"; + vehicle.Manufacturer = "Manufacturer"; + vehicle.VIN = "VIN12345678"; + vehicle.AirdragModifiedMultistage = true; + vehicle.VehicleDeclarationType = VehicleDeclarationType.interim; + + var writer = GetFileOutputVIFWriter(multiStageViewModel); + + deleteFile(writer.XMLMultistageReportFileName); + setMockDialogHelper(null, writer.XMLMultistageReportFileName); + + MultiStageJobViewModel_v0_1.SaveVif(multiStageViewModel, writer); + + var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); + Assert.True(validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType.MultistageOutputData)); + } + + + private FileOutputVIFWriter GetFileOutputVIFWriter(IMultiStageJobViewModel multistageViewModel) + { + var outputFileName = primary_vehicle_only.Replace(".xml", "_vif_output_mandatory_fields.xml"); + var outputFilePath = Path.Combine(DirPath, outputFileName); + + var currentStageCount = multistageViewModel.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 0; + return new FileOutputVIFWriter(outputFilePath, currentStageCount); + } + + } +} diff --git a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..7f5d3ef5692cb23875978161f14ebb06728a06db --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML; +using VECTO3GUI2020.Annotations; +using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class VehicleViewModelTests : ViewModelTestBase + { + [Test] + public void restoreValuesWhenEditingAgain() + { + var vm = loadFile(primary_vehicle_only); + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + var enteredString = "test"; + var modelParam = vehicleVM.ParameterViewModels[nameof(vehicleVM.Model)]; + //Null after loading + Assert.IsNull(vehicleVM.Model); + + + //Enable Editing + modelParam.EditingEnabled = true; + Assert.IsNotNull(vehicleVM.Model); + + //Enter Value + modelParam.CurrentContent = enteredString; + + //Stored To VM + Assert.AreEqual(vehicleVM.Model, enteredString); + + //DisableEditing + modelParam.EditingEnabled = false; + //Currentvalue stored in storedcontent + Assert.AreEqual(enteredString, modelParam.StoredContent); + + + //Value is null again + Assert.IsNull(vehicleVM.Model); + + modelParam.EditingEnabled = true; + Assert.AreEqual(modelParam.CurrentContent, enteredString); + + //Change value + var enteredString2 = "test2"; + modelParam.CurrentContent = enteredString2; + modelParam.EditingEnabled = false; + modelParam.EditingEnabled = true; + Assert.AreEqual(enteredString2, modelParam.CurrentContent); + + + //modify through CurrentContentProperty + modelParam.EditingEnabled = false; + modelParam.CurrentContent = enteredString; + Assert.AreEqual(modelParam.CurrentContent, enteredString); + Assert.IsTrue(modelParam.EditingEnabled); + + } + + [Test] + public void SIDummyCreation() + { + + var vm = loadFile(primary_vehicle_only); + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + Assert.IsNull(vehicleVM.CurbMassChassis?.Value()); + var curbMassParameter = vehicleVM.ParameterViewModels[nameof(vehicleVM.CurbMassChassis)]; + + Assert.IsNotNull(curbMassParameter.DummyContent); + Assert.IsTrue(curbMassParameter.DummyContent is Kilogram); + + curbMassParameter.EditingEnabled = true; + Assert.IsNotNull(vehicleVM.CurbMassChassis); + } + + + + [Test] + public void loadVehicleDataAgainUnset() + { + + + + } + + [Test] + public void NoErrorAfterDataLoading() + { + var vm = loadFile(primary_vehicle_only); + var vehicleVM = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + setMockDialogHelper(stageInputFullSample); + var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + vmConc.LoadVehicleDataCommand.Execute(null); + Assert.IsFalse(vmConc.ManufacturingStageViewModel.VehicleViewModel.HasErrors); + + } + + //[Test] + //public void groupEditing() + //{ + // var vm = loadFile(primary_vehicle_only); + // var vehicleVM = + // vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + // DeclarationInterimStageBusVehicleViewModel_v2_8; + + // vehicleVM.NumberOfPassengersUpperDeck = 2; + + // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); + // Assert.AreEqual(2, vehicleVM.NumberOfPassengersUpperDeck); + // vehicleVM.NumberOfPassengersLowerDeck = 3; + // Assert.AreEqual(3, vehicleVM.NumberOfPassengersLowerDeck); + //} + + + //[Test] + //public void automaticallyEnableEditingWhenContentIsSet() + //{ + // var vm = loadFile(primary_vehicle_only); + // var vehicleVM = + // vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + // DeclarationInterimStageBusVehicleViewModel_v2_8; + + + // vehicleVM.NumberOfPassengersUpperDeck = 2; + // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); + + // vehicleVM.NumberOfPassengersUpperDeck = null; + + // getMockDialogHelper(stageInputFullSample); + // var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + // vmConc.LoadVehicleDataCommand.Execute(null); + + + // Assert.IsTrue(vehicleVM.ParameterViewModels[nameof(vehicleVM.NumberOfPassengersUpperDeck)].EditingEnabled); + // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); + //} + + + + + #region ADAS + [Test] + public void loadPrimaryAndEdit() + { + var vm = loadFile(primary_vehicle_only); + Assert.NotNull(vm); + + var vehicleViewModel = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + var vehicleData = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle; + + vehicleViewModel.EcoRollTypeNullable = EcoRollType.WithEngineStop; + Assert.NotNull(vehicleData.ADAS); + + vehicleViewModel.EcoRollTypeNullable = null; + Assert.Null(vehicleData.ADAS); + + } + + + + + + + + #endregion + + + + + } +} diff --git a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..de58ab608a5806d62e56487de319ef3759104b57 --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs @@ -0,0 +1,171 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Windows; +using Moq; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCore; +using TUGraz.VectoCore.InputData.FileIO.XML; +using VECTO3GUI2020.Helper; +using VECTO3GUI2020.Ninject; +using VECTO3GUI2020.Ninject.Vehicle; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; +using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; + +namespace Vecto3GUI2020Test +{ + public class ViewModelTestBase + { + protected const string DirPath = @"Testdata\"; + protected const string consolidated_multiple_stages = "vecto_multistage_consolidated_multiple_stages.xml"; + + protected const string consolidated_multiple_stages_airdrag = + "vecto_multistage_consolidated_multiple_stages_airdrag.xml"; + + protected const string consolidated_multiple_stages_hev = + "vecto_multistage_consolidated_multiple_stages_hev.xml"; + + protected const string consolidated_one_stage = "vecto_multistage_consolidated_one_stage.xml"; + protected const string primary_vehicle_only = "vecto_multistage_primary_vehicle_only.xml"; + + + + protected const string stageInputFullSample = "vecto_vehicle-stage_input_full-sample.xml"; + + protected const string airdragLoadTestFile = "AirdragLoadTestFile.xml"; + + //protected IXMLInputDataReader xmlInputReader; + protected IKernel _kernel; + private Mock<IDialogHelper> _mockDialogHelper = new Mock<IDialogHelper>(); + + + [SetUp] + public void OneTimeSetUp() + { + _kernel = new StandardKernel( + new VectoNinjectModule(), + new JobEditModule(), + new ComponentModule(), + new DocumentModule(), + new XMLWriterFactoryModule(), + new FactoryModule(), + new MultistageModule() + ); + //xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + _kernel.Rebind<IDialogHelper>().ToConstant(_mockDialogHelper.Object); + + } + + [TearDown] + public void TearDown() + { + _kernel.Dispose(); + _kernel = null; + } + + public bool checkFileNameExists(string fileName) + { + var filePath = Path.GetFullPath(DirPath + fileName); + return checkFilePathExists(filePath); + } + + public bool checkFilePathExists(string filePath) + { + var exists = File.Exists(filePath); + if (exists) + { + Console.WriteLine(filePath + @" exists"); + } + else + { + Console.WriteLine(filePath + @" not existing"); + } + + return exists; + } + + public void deleteFile(string fileName) + { + var filePath = Path.GetFullPath(DirPath + fileName); + File.Delete(fileName); + } + + public NewMultiStageJobViewModel loadFile(string fileName) + { + var mockDialogHelper = setMockDialogHelper(fileName); + + var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); + newMultistageJobViewModel.AddVifFile.Execute(null); + + Assert.NotNull(newMultistageJobViewModel.MultiStageJobViewModel); + + var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.NotNull(manstageVehicleViewModel); + + var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel; + Assert.NotNull(auxiliariesViewModel); + + + + + var airdragViewModel = (manstageVehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8)?.MultistageAirdragViewModel; + Assert.NotNull(airdragViewModel); + + Assert.AreEqual(mockDialogHelper.Object.OpenXMLFileDialog(), newMultistageJobViewModel.VifPath); + + + + return newMultistageJobViewModel; + } + + protected Mock<IDialogHelper> setMockDialogHelper(string fileToLoad = null, string fileToSave = null) + { + if (_mockDialogHelper == null) { + _mockDialogHelper = new Mock<IDialogHelper>(); + _mockDialogHelper.Setup(dialogHelper => dialogHelper.ShowMessageBox(It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<MessageBoxButton>(), + It.IsAny<MessageBoxImage>())).Returns(MessageBoxResult.OK) + .Callback<string, string, MessageBoxButton, MessageBoxImage>(( + (message, caption, button, image) => { + TestContext.WriteLine($"{caption}\n {message}"); + })); + } + if (fileToLoad != null) { + var filePath = Path.GetFullPath(DirPath + fileToLoad); + + Assert.NotNull(filePath); + _mockDialogHelper.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(filePath); + _mockDialogHelper.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(filePath); + + TestContext.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for OpenXMLFileDialog()"); + } + + if (fileToSave != null) { + var filePath = Path.GetFullPath(DirPath + fileToSave); + _mockDialogHelper.Setup(dialogHelper => + dialogHelper.SaveToXMLDialog(It.IsAny<string>())).Returns(filePath); + _mockDialogHelper.Setup(dialogHelper => + dialogHelper.SaveToXMLDialog(null)).Returns(filePath); + + TestContext.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for SaveToXMLFileDialog()"); + } + + + return _mockDialogHelper; + } + + protected Mock<IDialogHelper> getMockDialogHelper() + { + return _mockDialogHelper; + } + + protected string GetFullPath(string fileName) + { + var path = Path.GetFullPath(DirPath + fileName); + Debug.WriteLine(path); + return path; + } + } +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/inputdata/final.VIF_Report_4.xml b/Vecto3GUI2020Test/inputdata/final.VIF_Report_4.xml new file mode 100644 index 0000000000000000000000000000000000000000..094ccf10ca1d8f2bb5702912eeb5772ef2facb59 --- /dev/null +++ b/Vecto3GUI2020Test/inputdata/final.VIF_Report_4.xml @@ -0,0 +1,783 @@ +<?xml version="1.0" encoding="utf-8"?> +<vif0.1:VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputMultistage.0.1.xsd"> + <vif0.1:PrimaryVehicle> + <vif0.1:Data xsi:type="PrimaryVehicleDataType" id="PIF-0cfb413a8bf1457a8dcd"> + <vif0.1:Vehicle xsi:type="VehiclePIFType"> + <vif0.1:ManufacturerPrimaryVehicle>Generic Bus Manufacturer</vif0.1:ManufacturerPrimaryVehicle> + <vif0.1:ManufacturerAddressPrimaryVehicle>Street, ZIP City</vif0.1:ManufacturerAddressPrimaryVehicle> + <vif0.1:Model>Generic Model</vif0.1:Model> + <vif0.1:VIN>VEH-1234567890_nonSmart</vif0.1:VIN> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:LegislativeCategory>M3</vif0.1:LegislativeCategory> + <vif0.1:ChassisConfiguration>Bus</vif0.1:ChassisConfiguration> + <vif0.1:AxleConfiguration>4x2</vif0.1:AxleConfiguration> + <vif0.1:Articulated>false</vif0.1:Articulated> + <vif0.1:TechnicalPermissibleMaximumLadenMass>20000</vif0.1:TechnicalPermissibleMaximumLadenMass> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:RetarderType>Transmission Output Retarder</vif0.1:RetarderType> + <vif0.1:RetarderRatio>1.000</vif0.1:RetarderRatio> + <vif0.1:AngledriveType>None</vif0.1:AngledriveType> + <vif0.1:ZeroEmissionVehicle>false</vif0.1:ZeroEmissionVehicle> + <vif0.1: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> + </vif0.1:ADAS> + <vif0.1: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" /> + </vif0.1:TorqueLimits> + <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Engine> + <vif0.1:Data xsi:type="EngineDataPIFType"> + <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 Engine</vif0.1:Model> + <vif0.1:CertificationNumber>e12*0815/8051*2017/05E0000*00</vif0.1:CertificationNumber> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>VectoEngine x.y</vif0.1:AppVersion> + <vif0.1:Displacement>7700</vif0.1:Displacement> + <vif0.1:RatedSpeed>2200</vif0.1:RatedSpeed> + <vif0.1:RatedPower>200000</vif0.1:RatedPower> + <vif0.1:MaxEngineTorque>1100</vif0.1:MaxEngineTorque> + <vif0.1:WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </vif0.1:WHRType> + <vif0.1:Mode> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:FullLoadAndDragCurve> + <vif0.1:Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <vif0.1:Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <vif0.1:Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <vif0.1:Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <vif0.1:Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <vif0.1:Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <vif0.1:Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <vif0.1:Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <vif0.1:Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <vif0.1:Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <vif0.1:Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <vif0.1:Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </vif0.1:FullLoadAndDragCurve> + <vif0.1:Fuels> + <vif0.1:FuelType>Diesel CI</vif0.1:FuelType> + </vif0.1:Fuels> + </vif0.1:Mode> + </vif0.1:Data> + </vif0.1:Engine> + <vif0.1:Transmission> + <vif0.1:Data xsi:type="TransmissionDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>AT 6 Gear</vif0.1:Model> + <vif0.1:MainCertificationMethod>Standard values</vif0.1:MainCertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:TransmissionType>APT-S</vif0.1:TransmissionType> + <vif0.1:Gears xsi:type="TransmissionGearsPIFType"> + <vif0.1:Gear number="1"> + <vif0.1:Ratio>3.364</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="2"> + <vif0.1:Ratio>1.909</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="3"> + <vif0.1:Ratio>1.421</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="4"> + <vif0.1:Ratio>1.000</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="5"> + <vif0.1:Ratio>0.720</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="6"> + <vif0.1:Ratio>0.615</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + </vif0.1:Gears> + </vif0.1:Data> + </vif0.1:Transmission> + <vif0.1:Axlegear> + <vif0.1:Data xsi:type="AxlegearDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 AxleGear</vif0.1:Model> + <vif0.1:CertificationMethod>Standard values</vif0.1:CertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:LineType>Single portal axle</vif0.1:LineType> + <vif0.1:Ratio>6.500</vif0.1:Ratio> + </vif0.1:Data> + </vif0.1:Axlegear> + <vif0.1:AxleWheels> + <vif0.1:Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </vif0.1:Data> + </vif0.1:AxleWheels> + <vif0.1:Auxiliaries> + <vif0.1:Data xsi:type="AuxiliaryDataPIFType"> + <vif0.1:Fan> + <vif0.1:Technology>Hydraulic driven - Constant displacement pump</vif0.1:Technology> + </vif0.1:Fan> + <vif0.1:SteeringPump> + <vif0.1:Technology axleNumber="1">Variable displacement elec. controlled</vif0.1:Technology> + </vif0.1:SteeringPump> + <vif0.1:ElectricSystem> + <vif0.1:AlternatorTechnology>smart</vif0.1:AlternatorTechnology> + <vif0.1:SmartAlternator> + <vif0.1:RatedCurrent>310</vif0.1:RatedCurrent> + <vif0.1:RatedVoltage>48</vif0.1:RatedVoltage> + </vif0.1:SmartAlternator> + <vif0.1:Battery> + <vif0.1:BatteryTechnology>li-ion battery - high power</vif0.1:BatteryTechnology> + <vif0.1:RatedCapacity>1</vif0.1:RatedCapacity> + <vif0.1:NominalVoltage>48</vif0.1:NominalVoltage> + </vif0.1:Battery> + <vif0.1:SupplyFromHEVPossible>false</vif0.1:SupplyFromHEVPossible> + </vif0.1:ElectricSystem> + <vif0.1:PneumaticSystem> + <vif0.1:SizeOfAirSupply>Large Supply 2-stage</vif0.1:SizeOfAirSupply> + <vif0.1:CompressorDrive>mechanically</vif0.1:CompressorDrive> + <vif0.1:Clutch>none</vif0.1:Clutch> + <vif0.1:CompressorRatio>1.000</vif0.1:CompressorRatio> + <vif0.1:SmartCompressionSystem>false</vif0.1:SmartCompressionSystem> + <vif0.1:SmartRegenerationSystem>false</vif0.1:SmartRegenerationSystem> + <vif0.1:AirsuspensionControl>electronically</vif0.1:AirsuspensionControl> + <vif0.1:PneumaticSCRReagentDosing>true</vif0.1:PneumaticSCRReagentDosing> + </vif0.1:PneumaticSystem> + <vif0.1:HVAC> + <vif0.1:AdjustableCoolantThermostat>true</vif0.1:AdjustableCoolantThermostat> + <vif0.1:EngineWasteGasHeatExchanger>true</vif0.1:EngineWasteGasHeatExchanger> + </vif0.1:HVAC> + </vif0.1:Data> + </vif0.1:Auxiliaries> + </vif0.1:Components> + </vif0.1:Vehicle> + <vif0.1:InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W1n8NZVFsw4QrL7Dy/rJ1J02Xk4UvfMfBfZ+lO5x2i4=</di:DigestValue> + </di:Reference> + </vif0.1:InputDataSignature> + <vif0.1:ManufacturerRecordSignature> + <di:Reference URI="#RESULT-0f8290ebb0b8446c9841"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vo6X6Me6wrxqosr7cAnrliB6kTd8RVmvw5AJ86ezzD4=</di:DigestValue> + </di:Reference> + </vif0.1:ManufacturerRecordSignature> + <vif0.1:Results> + <vif0.1:Status>success</vif0.1:Status> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.26127</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1411.89</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">23.36173</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1712.46</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.79525</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1157.82</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.17590</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1405.63</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.24764</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1044.38</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">17.32635</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1270.06</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13050.44</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1075.44</vif0.1:Payload> + <vif0.1:PassengerCount>15.15</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.66038</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">928.03</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15494.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.98543</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1025.16</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.31731</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1489.30</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">24.95584</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1829.32</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">16.66413</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1221.52</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.46277</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1499.96</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.85984</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1089.26</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">18.25391</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1338.05</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14225.44</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1075.44</vif0.1:Payload> + <vif0.1:PassengerCount>15.15</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.84841</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">941.82</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16669.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.17565</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1039.10</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14244.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1094.99</vif0.1:Payload> + <vif0.1:PassengerCount>15.42</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.06324</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">810.96</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15887.48</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2737.48</vif0.1:Payload> + <vif0.1:PassengerCount>38.56</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.51205</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">843.86</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14662.82</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1262.82</vif0.1:Payload> + <vif0.1:PassengerCount>17.79</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.25759</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">971.81</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17609.41</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4209.41</vif0.1:Payload> + <vif0.1:PassengerCount>59.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.86026</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1089.29</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14747.01</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1347.01</vif0.1:Payload> + <vif0.1:PassengerCount>18.97</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.54039</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">845.93</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16767.53</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3367.53</vif0.1:Payload> + <vif0.1:PassengerCount>47.43</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.07723</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">885.29</vif0.1:CO2> + </vif0.1:Result> + </vif0.1:Results> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.6.1.2050-DEV !!NOT FOR CERTIFICATION!!</vif0.1:SimulationToolVersion> + <vif0.1:Date>2020-08-12T12:05:05.0183214Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#PIF-0cfb413a8bf1457a8dcd"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W7emEpfo1jlRFXGEtgmzLL1NyY0CLxWmWXeEAPjXpks=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:PrimaryVehicle> + <vif0.1:ManufacturingStage stageCount="2"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-61bb1be640414611890a"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#PIF-0cfb413a8bf1457a8dcd"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W7emEpfo1jlRFXGEtgmzLL1NyY0CLxWmWXeEAPjXpks=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-9d733334cd9f41e0acad"> + <v2.8:Manufacturer>TUG</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-06T22:00:00Z</v2.8:Date> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>250</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns:v2.0="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>4.90</v2.0:CdxA_0> + <v2.0:TransferredCdxA>4.90</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>4.90</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-07T14:16:34.4975457Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-61bb1be640414611890a"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vksf02b9s63N8XzYQOI05wWEBGuGKNzvDoPPZZdtmc4=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> + <vif0.1:ManufacturingStage stageCount="3"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-233e115924334252b720"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#MST-61bb1be640414611890a"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vksf02b9s63N8XzYQOI05wWEBGuGKNzvDoPPZZdtmc4=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-c29d3888e9b04ae6bb76"> + <v2.8:Manufacturer>IVT</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-06T22:00:00Z</v2.8:Date> + <v2.8:AirdragModifiedMultistage>false</v2.8:AirdragModifiedMultistage> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>false</v2.8:Interiorlights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Headlights>false</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>0</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>cooling</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 4-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-07T14:19:48.8765868Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-233e115924334252b720"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>UDttJZ/1Z3Q4jX4SH20+AQXUB8V/DGfSpGoHyF1MqQ0=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> + <vif0.1:ManufacturingStage stageCount="4"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-cccd4fc555204aaab963"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#MST-233e115924334252b720"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>UDttJZ/1Z3Q4jX4SH20+AQXUB8V/DGfSpGoHyF1MqQ0=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-1f24ad93d65d42858e0e"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-06-06T22:00:00Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>10680</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>18000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>86</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>0</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>0</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CE</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>10633</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>270</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <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>4.90</CdxA_0> + <TransferredCdxA>4.90</TransferredCdxA> + <DeclaredCdxA>4.90</DeclaredCdxA> + </Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>6</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>none</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>N.A.</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>15000</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>false</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-07T14:20:29.2200233Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-cccd4fc555204aaab963"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>tIady8bCsDpxkxIqZG33mOcE2m8UwigTEdV60fDA8R8=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> +</vif0.1:VectoOutputMultistage> \ No newline at end of file diff --git a/Vecto3GUI2020Test/inputdata/interim2.VIF_Report_3.xml b/Vecto3GUI2020Test/inputdata/interim2.VIF_Report_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..c181235c609cf5f861714f5fdde607e340a464df --- /dev/null +++ b/Vecto3GUI2020Test/inputdata/interim2.VIF_Report_3.xml @@ -0,0 +1,684 @@ +<?xml version="1.0" encoding="utf-8"?> +<vif0.1:VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputMultistage.0.1.xsd"> + <vif0.1:PrimaryVehicle> + <vif0.1:Data xsi:type="PrimaryVehicleDataType" id="PIF-0cfb413a8bf1457a8dcd"> + <vif0.1:Vehicle xsi:type="VehiclePIFType"> + <vif0.1:ManufacturerPrimaryVehicle>Generic Bus Manufacturer</vif0.1:ManufacturerPrimaryVehicle> + <vif0.1:ManufacturerAddressPrimaryVehicle>Street, ZIP City</vif0.1:ManufacturerAddressPrimaryVehicle> + <vif0.1:Model>Generic Model</vif0.1:Model> + <vif0.1:VIN>VEH-1234567890_nonSmart</vif0.1:VIN> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:LegislativeCategory>M3</vif0.1:LegislativeCategory> + <vif0.1:ChassisConfiguration>Bus</vif0.1:ChassisConfiguration> + <vif0.1:AxleConfiguration>4x2</vif0.1:AxleConfiguration> + <vif0.1:Articulated>false</vif0.1:Articulated> + <vif0.1:TechnicalPermissibleMaximumLadenMass>20000</vif0.1:TechnicalPermissibleMaximumLadenMass> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:RetarderType>Transmission Output Retarder</vif0.1:RetarderType> + <vif0.1:RetarderRatio>1.000</vif0.1:RetarderRatio> + <vif0.1:AngledriveType>None</vif0.1:AngledriveType> + <vif0.1:ZeroEmissionVehicle>false</vif0.1:ZeroEmissionVehicle> + <vif0.1: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> + </vif0.1:ADAS> + <vif0.1: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" /> + </vif0.1:TorqueLimits> + <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Engine> + <vif0.1:Data xsi:type="EngineDataPIFType"> + <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 Engine</vif0.1:Model> + <vif0.1:CertificationNumber>e12*0815/8051*2017/05E0000*00</vif0.1:CertificationNumber> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>VectoEngine x.y</vif0.1:AppVersion> + <vif0.1:Displacement>7700</vif0.1:Displacement> + <vif0.1:RatedSpeed>2200</vif0.1:RatedSpeed> + <vif0.1:RatedPower>200000</vif0.1:RatedPower> + <vif0.1:MaxEngineTorque>1100</vif0.1:MaxEngineTorque> + <vif0.1:WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </vif0.1:WHRType> + <vif0.1:Mode> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:FullLoadAndDragCurve> + <vif0.1:Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <vif0.1:Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <vif0.1:Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <vif0.1:Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <vif0.1:Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <vif0.1:Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <vif0.1:Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <vif0.1:Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <vif0.1:Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <vif0.1:Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <vif0.1:Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <vif0.1:Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </vif0.1:FullLoadAndDragCurve> + <vif0.1:Fuels> + <vif0.1:FuelType>Diesel CI</vif0.1:FuelType> + </vif0.1:Fuels> + </vif0.1:Mode> + </vif0.1:Data> + </vif0.1:Engine> + <vif0.1:Transmission> + <vif0.1:Data xsi:type="TransmissionDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>AT 6 Gear</vif0.1:Model> + <vif0.1:MainCertificationMethod>Standard values</vif0.1:MainCertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:TransmissionType>APT-S</vif0.1:TransmissionType> + <vif0.1:Gears xsi:type="TransmissionGearsPIFType"> + <vif0.1:Gear number="1"> + <vif0.1:Ratio>3.364</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="2"> + <vif0.1:Ratio>1.909</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="3"> + <vif0.1:Ratio>1.421</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="4"> + <vif0.1:Ratio>1.000</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="5"> + <vif0.1:Ratio>0.720</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="6"> + <vif0.1:Ratio>0.615</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + </vif0.1:Gears> + </vif0.1:Data> + </vif0.1:Transmission> + <vif0.1:Axlegear> + <vif0.1:Data xsi:type="AxlegearDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 AxleGear</vif0.1:Model> + <vif0.1:CertificationMethod>Standard values</vif0.1:CertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:LineType>Single portal axle</vif0.1:LineType> + <vif0.1:Ratio>6.500</vif0.1:Ratio> + </vif0.1:Data> + </vif0.1:Axlegear> + <vif0.1:AxleWheels> + <vif0.1:Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </vif0.1:Data> + </vif0.1:AxleWheels> + <vif0.1:Auxiliaries> + <vif0.1:Data xsi:type="AuxiliaryDataPIFType"> + <vif0.1:Fan> + <vif0.1:Technology>Hydraulic driven - Constant displacement pump</vif0.1:Technology> + </vif0.1:Fan> + <vif0.1:SteeringPump> + <vif0.1:Technology axleNumber="1">Variable displacement elec. controlled</vif0.1:Technology> + </vif0.1:SteeringPump> + <vif0.1:ElectricSystem> + <vif0.1:AlternatorTechnology>smart</vif0.1:AlternatorTechnology> + <vif0.1:SmartAlternator> + <vif0.1:RatedCurrent>310</vif0.1:RatedCurrent> + <vif0.1:RatedVoltage>48</vif0.1:RatedVoltage> + </vif0.1:SmartAlternator> + <vif0.1:Battery> + <vif0.1:BatteryTechnology>li-ion battery - high power</vif0.1:BatteryTechnology> + <vif0.1:RatedCapacity>1</vif0.1:RatedCapacity> + <vif0.1:NominalVoltage>48</vif0.1:NominalVoltage> + </vif0.1:Battery> + <vif0.1:SupplyFromHEVPossible>false</vif0.1:SupplyFromHEVPossible> + </vif0.1:ElectricSystem> + <vif0.1:PneumaticSystem> + <vif0.1:SizeOfAirSupply>Large Supply 2-stage</vif0.1:SizeOfAirSupply> + <vif0.1:CompressorDrive>mechanically</vif0.1:CompressorDrive> + <vif0.1:Clutch>none</vif0.1:Clutch> + <vif0.1:CompressorRatio>1.000</vif0.1:CompressorRatio> + <vif0.1:SmartCompressionSystem>false</vif0.1:SmartCompressionSystem> + <vif0.1:SmartRegenerationSystem>false</vif0.1:SmartRegenerationSystem> + <vif0.1:AirsuspensionControl>electronically</vif0.1:AirsuspensionControl> + <vif0.1:PneumaticSCRReagentDosing>true</vif0.1:PneumaticSCRReagentDosing> + </vif0.1:PneumaticSystem> + <vif0.1:HVAC> + <vif0.1:AdjustableCoolantThermostat>true</vif0.1:AdjustableCoolantThermostat> + <vif0.1:EngineWasteGasHeatExchanger>true</vif0.1:EngineWasteGasHeatExchanger> + </vif0.1:HVAC> + </vif0.1:Data> + </vif0.1:Auxiliaries> + </vif0.1:Components> + </vif0.1:Vehicle> + <vif0.1:InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W1n8NZVFsw4QrL7Dy/rJ1J02Xk4UvfMfBfZ+lO5x2i4=</di:DigestValue> + </di:Reference> + </vif0.1:InputDataSignature> + <vif0.1:ManufacturerRecordSignature> + <di:Reference URI="#RESULT-0f8290ebb0b8446c9841"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vo6X6Me6wrxqosr7cAnrliB6kTd8RVmvw5AJ86ezzD4=</di:DigestValue> + </di:Reference> + </vif0.1:ManufacturerRecordSignature> + <vif0.1:Results> + <vif0.1:Status>success</vif0.1:Status> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.26127</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1411.89</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">23.36173</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1712.46</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.79525</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1157.82</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.17590</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1405.63</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.24764</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1044.38</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">17.32635</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1270.06</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13050.44</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1075.44</vif0.1:Payload> + <vif0.1:PassengerCount>15.15</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.66038</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">928.03</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15494.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.98543</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1025.16</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.31731</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1489.30</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">24.95584</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1829.32</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">16.66413</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1221.52</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.46277</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1499.96</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.85984</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1089.26</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">18.25391</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1338.05</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14225.44</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1075.44</vif0.1:Payload> + <vif0.1:PassengerCount>15.15</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.84841</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">941.82</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16669.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.17565</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1039.10</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14244.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1094.99</vif0.1:Payload> + <vif0.1:PassengerCount>15.42</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.06324</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">810.96</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15887.48</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2737.48</vif0.1:Payload> + <vif0.1:PassengerCount>38.56</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.51205</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">843.86</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14662.82</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1262.82</vif0.1:Payload> + <vif0.1:PassengerCount>17.79</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.25759</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">971.81</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17609.41</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4209.41</vif0.1:Payload> + <vif0.1:PassengerCount>59.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.86026</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1089.29</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14747.01</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1347.01</vif0.1:Payload> + <vif0.1:PassengerCount>18.97</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.54039</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">845.93</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16767.53</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3367.53</vif0.1:Payload> + <vif0.1:PassengerCount>47.43</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.07723</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">885.29</vif0.1:CO2> + </vif0.1:Result> + </vif0.1:Results> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.6.1.2050-DEV !!NOT FOR CERTIFICATION!!</vif0.1:SimulationToolVersion> + <vif0.1:Date>2020-08-12T12:05:05.0183214Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#PIF-0cfb413a8bf1457a8dcd"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W7emEpfo1jlRFXGEtgmzLL1NyY0CLxWmWXeEAPjXpks=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:PrimaryVehicle> + <vif0.1:ManufacturingStage stageCount="2"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-61bb1be640414611890a"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#PIF-0cfb413a8bf1457a8dcd"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>W7emEpfo1jlRFXGEtgmzLL1NyY0CLxWmWXeEAPjXpks=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-9d733334cd9f41e0acad"> + <v2.8:Manufacturer>TUG</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-06T22:00:00Z</v2.8:Date> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>250</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns:v2.0="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>4.90</v2.0:CdxA_0> + <v2.0:TransferredCdxA>4.90</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>4.90</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-07T14:16:34.4975457Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-61bb1be640414611890a"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vksf02b9s63N8XzYQOI05wWEBGuGKNzvDoPPZZdtmc4=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> + <vif0.1:ManufacturingStage stageCount="3"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-233e115924334252b720"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#MST-61bb1be640414611890a"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>vksf02b9s63N8XzYQOI05wWEBGuGKNzvDoPPZZdtmc4=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-c29d3888e9b04ae6bb76"> + <v2.8:Manufacturer>IVT</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-06T22:00:00Z</v2.8:Date> + <v2.8:AirdragModifiedMultistage>false</v2.8:AirdragModifiedMultistage> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>false</v2.8:Interiorlights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Headlights>false</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>0</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>cooling</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 4-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-06-07T14:19:48.8765868Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-233e115924334252b720"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>UDttJZ/1Z3Q4jX4SH20+AQXUB8V/DGfSpGoHyF1MqQ0=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> +</vif0.1:VectoOutputMultistage> \ No newline at end of file diff --git a/Vecto3GUI2020Test/inputdata/vecto_vehicle-completed_heavyBus_31b.xml b/Vecto3GUI2020Test/inputdata/vecto_vehicle-completed_heavyBus_31b.xml new file mode 100644 index 0000000000000000000000000000000000000000..f617c5c3545e266d7e7cbfae03eb933abcb5199a --- /dev/null +++ b/Vecto3GUI2020Test/inputdata/vecto_vehicle-completed_heavyBus_31b.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>10680</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II</ClassBus> + <NumberPassengerSeatsLowerDeck>86</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CE</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>10633</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>270</EntranceHeight> + <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <AirDrag> + <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>4.90</CdxA_0> + <TransferredCdxA>4.90</TransferredCdxA> + <DeclaredCdxA>4.90</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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>true</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>true</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>6</SystemConfiguration> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>N.A.</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>15000</AuxiliaryHeaterPower> + <DoubleGlazing>true</DoubleGlazing> + <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/Vecto3GUITest/Properties/AssemblyInfo.cs b/Vecto3GUITest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000000000000000000000000000000000..aad2a9d5c3bcf2306838c1dfa404e8f115551cbb --- /dev/null +++ b/Vecto3GUITest/Properties/AssemblyInfo.cs @@ -0,0 +1,20 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Vecto3GUITest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Vecto3GUITest")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +[assembly: Guid("31248c1a-85a9-4d4c-9ddb-0d56e1599c7e")] + +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Vecto3GUITest/UITests.cs b/Vecto3GUITest/UITests.cs new file mode 100644 index 0000000000000000000000000000000000000000..6592c853be0489172401ef3d927fd055013c9ff7 --- /dev/null +++ b/Vecto3GUITest/UITests.cs @@ -0,0 +1,32 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Threading; +using OpenQA.Selenium; + +namespace Vecto3GUITest +{ + [TestClass] + public class StartUpScenario : VECTO3GUI2020Session + { + [TestMethod] + public void LoadFile() + { + //session.FindElementByAccessibilityId("Register").FindElementByClassName("Button").Click(); + session.FindElementByName("New Multistage File").Click(); + + + } + + [ClassInitialize] + public static void ClassInitialize(TestContext context) + { + Setup(context); + } + + [ClassCleanup] + public static void ClassCleanup() + { + TearDown(); + } + } +} diff --git a/Vecto3GUITest/VECTO3GUI2020Session.cs b/Vecto3GUITest/VECTO3GUI2020Session.cs new file mode 100644 index 0000000000000000000000000000000000000000..3df9ac7ce21362c0cee55db7ddd63cd33c9480ff --- /dev/null +++ b/Vecto3GUITest/VECTO3GUI2020Session.cs @@ -0,0 +1,58 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.Appium.Windows; +using OpenQA.Selenium.Remote; +using OpenQA.Selenium; +using System; +using OpenQA.Selenium.Appium; + +namespace Vecto3GUITest +{ + [TestClass] + public class VECTO3GUI2020Session + { + protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; + private const string NotepadAppId = @"C:\Windows\System32\notepad.exe"; + + protected static WindowsDriver<WindowsElement> session; + + public static void Setup(TestContext context) + { + // Launch a new instance of Notepad application + if (session == null) + { + // Create a new session to launch Notepad application + var appiumOptions = new OpenQA.Selenium.Appium.AppiumOptions(); + appiumOptions.AddAdditionalCapability("app", @"C:\Users\Harry\source\repos\vecto-dev\VECTO3GUI2020\bin\Debug\VECTO3GUI2020.exe"); + appiumOptions.AddAdditionalCapability("deviceName", "WindowsPC"); + session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appiumOptions); + + // Use the session to control the app + Assert.IsNotNull(session); + Assert.IsNotNull(session.SessionId); + + + // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times + session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); + } + } + + public static void TearDown() + { + // Close the application and delete the session + if (session != null) + { + session.Close(); + session.Quit(); + session = null; + } + } + + [TestInitialize] + public void TestInitialize() + { + // Select all text and delete to clear the edit box + } + + protected static string SanitizeBackslashes(string input) => input.Replace("\\", Keys.Alt + Keys.NumberPad9 + Keys.NumberPad2 + Keys.Alt); + } +} diff --git a/Vecto3GUITest/Vecto3GUITest.csproj b/Vecto3GUITest/Vecto3GUITest.csproj new file mode 100644 index 0000000000000000000000000000000000000000..8a1a54e6e5f121a1a99274aab4b3224c8d2c4743 --- /dev/null +++ b/Vecto3GUITest/Vecto3GUITest.csproj @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.props')" /> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{31248C1A-85A9-4D4C-9DDB-0D56E1599C7E}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Vecto3GUITest</RootNamespace> + <AssemblyName>Vecto3GUITest</AssemblyName> + <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion> + <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath> + <IsCodedUITest>False</IsCodedUITest> + <TestProjectType>UnitTest</TestProjectType> + <NuGetPackageImportStamp> + </NuGetPackageImportStamp> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Appium.Net, Version=4.3.1.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\Appium.WebDriver.4.3.1\lib\net45\Appium.Net.dll</HintPath> + </Reference> + <Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL"> + <HintPath>..\packages\Castle.Core.4.4.1\lib\net45\Castle.Core.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\MSTest.TestFramework.2.2.3\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\MSTest.TestFramework.2.2.3\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="Ninject"> + <HintPath>..\..\..\..\.nuget\packages\ninject\3.3.4\lib\net45\Ninject.dll</HintPath> + </Reference> + <Reference Include="SeleniumExtras.PageObjects, Version=3.11.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\DotNetSeleniumExtras.PageObjects.3.11.0\lib\net45\SeleniumExtras.PageObjects.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Configuration" /> + <Reference Include="System.Core" /> + <Reference Include="System.Drawing" /> + <Reference Include="WebDriver, Version=3.141.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\Selenium.WebDriver.3.141.0\lib\net45\WebDriver.dll</HintPath> + </Reference> + <Reference Include="WebDriver.Support, Version=3.141.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\Selenium.Support.3.141.0\lib\net45\WebDriver.Support.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="UITests.cs" /> + <Compile Include="VECTO3GUI2020Session.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="XMLWriterTest.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj"> + <Project>{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}</Project> + <Name>VectoCore</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" /> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.props'))" /> + <Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.targets'))" /> + </Target> + <Import Project="..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.3\build\net45\MSTest.TestAdapter.targets')" /> +</Project> \ No newline at end of file diff --git a/Vecto3GUITest/XMLWriterTest.cs b/Vecto3GUITest/XMLWriterTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..2d1c01ee2cb67b074d546ce218b7ce25273f7ec6 --- /dev/null +++ b/Vecto3GUITest/XMLWriterTest.cs @@ -0,0 +1,27 @@ +using System.IO; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Ninject; +using TUGraz.VectoCore; +using TUGraz.VectoCore.InputData.FileIO.XML; + + +namespace Vecto3GUITest +{ + [TestClass] + public class WriterTests + { + private StandardKernel _kernel; + private IXMLInputDataReader _xmlInputReader; + + + public void Setup() + { + _kernel = new StandardKernel(new VectoNinjectModule()); + _xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + + + } + +} \ No newline at end of file diff --git a/Vecto3GUITest/app.config b/Vecto3GUITest/app.config new file mode 100644 index 0000000000000000000000000000000000000000..fdc60f6f83437dedadf5df7aad3f232919b15e36 --- /dev/null +++ b/Vecto3GUITest/app.config @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> \ No newline at end of file diff --git a/Vecto3GUITest/packages.config b/Vecto3GUITest/packages.config new file mode 100644 index 0000000000000000000000000000000000000000..34fc3dad972f72368ab1e8087afbd9b245797fca --- /dev/null +++ b/Vecto3GUITest/packages.config @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Appium.WebDriver" version="4.3.1" targetFramework="net48" /> + <package id="Castle.Core" version="4.4.1" targetFramework="net48" /> + <package id="DotNetSeleniumExtras.PageObjects" version="3.11.0" targetFramework="net48" /> + <package id="MSTest.TestAdapter" version="2.2.3" targetFramework="net48" /> + <package id="MSTest.TestFramework" version="2.2.3" targetFramework="net48" /> + <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" /> + <package id="Ninject" version="3.3.4" targetFramework="net48" /> + <package id="Selenium.Support" version="3.141.0" targetFramework="net48" /> + <package id="Selenium.WebDriver" version="3.141.0" targetFramework="net48" /> +</packages> \ No newline at end of file diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs index 3eaf29d7a014f36b2076a88e0dbef5ab5c6967d4..9da7b984e8b8f9e1a06e83cfdd5f9ad665ca4417 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs @@ -5,16 +5,40 @@ using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCommon.BusAuxiliaries { public enum BusHVACSystemConfiguration { + [GuiLabel("Unknown")] Unknown, + + [GuiLabel("Configuration 0")] + Configuration0, + + [GuiLabel("Configuration 1")] Configuration1, + + [GuiLabel("Configuration 2")] Configuration2, + + [GuiLabel("Configuration 3")] Configuration3, + + [GuiLabel("Configuration 4")] Configuration4, + + [GuiLabel("Configuration 5")] Configuration5, + + [GuiLabel("Configuration 6")] Configuration6, + + [GuiLabel("Configuration 7")] Configuration7, + + [GuiLabel("Configuration 8")] Configuration8, + + [GuiLabel("Configuration 9")] Configuration9, + + [GuiLabel("Configuration 10")] Configuration10, } @@ -22,12 +46,12 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { { private const string Prefix = "Configuration"; - public static BusHVACSystemConfiguration Parse(string text) + public static BusHVACSystemConfiguration? Parse(string text) { return (Prefix + text).ParseEnum<BusHVACSystemConfiguration>(); } - public static string GetLabel(this BusHVACSystemConfiguration hvacConfiguration) + public static string GetLabel(this BusHVACSystemConfiguration? hvacConfiguration) { if (hvacConfiguration == BusHVACSystemConfiguration.Unknown) { return BusHVACSystemConfiguration.Unknown.ToString(); @@ -36,7 +60,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { return Prefix + " " + hvacConfiguration.ToString().Replace(Prefix, ""); } - public static string GetName(this BusHVACSystemConfiguration hvacConfig) + public static string GetName(this BusHVACSystemConfiguration? hvacConfig) { if (hvacConfig == BusHVACSystemConfiguration.Unknown) { return "Unknown"; @@ -45,7 +69,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { return hvacConfig.ToString().Replace(Prefix, ""); } - public static string GetXmlFormat(this BusHVACSystemConfiguration hvacConfiguration) + public static string GetXmlFormat(this BusHVACSystemConfiguration? hvacConfiguration) { if (hvacConfiguration == BusHVACSystemConfiguration.Unknown) { return "0"; @@ -54,8 +78,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { return GetName(hvacConfiguration); } - public static bool RequiresDriverAC(this BusHVACSystemConfiguration hvacConfig) + public static bool RequiresDriverAC(this BusHVACSystemConfiguration? hvacConfig) { + if (hvacConfig == null) { + return false; + } switch (hvacConfig) { case BusHVACSystemConfiguration.Configuration2: case BusHVACSystemConfiguration.Configuration4: @@ -67,8 +94,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { return false; } - public static bool RequiresPassengerAC(this BusHVACSystemConfiguration hvacConfig) + public static bool RequiresPassengerAC(this BusHVACSystemConfiguration? hvacConfig) { + if (hvacConfig == null) { + return false; + } switch (hvacConfig) { case BusHVACSystemConfiguration.Configuration1: case BusHVACSystemConfiguration.Configuration2: diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IAlternatorMap.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IAlternatorMap.cs index 748ac019dd85da4e1b11563ca0e6e581701c26b6..5b3a5efa42fa94bb6dfeebd3a74aab6482cb63ad 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IAlternatorMap.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IAlternatorMap.cs @@ -9,10 +9,9 @@ // // See the LICENSE.txt for the specific language governing permissions and limitations. -using System.Collections.Generic; using TUGraz.VectoCommon.Utils; -namespace TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics +namespace TUGraz.VectoCommon.BusAuxiliaries { public interface IAlternatorMap { @@ -26,8 +25,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.El /// <remarks></remarks> double GetEfficiency(PerSecond rpm, Ampere currentDemand); - IList<string> Technologies { get; } - string Source { get; } } } diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IElectricsUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IElectricsUserInputsConfig.cs index ba2d478cb1baef7ccefc6f978d5d885a222428cd..4b711a75c8a495045f157a5cb6f309b117d3cb69 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IElectricsUserInputsConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IElectricsUserInputsConfig.cs @@ -12,7 +12,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics; + namespace TUGraz.VectoCommon.BusAuxiliaries { public interface IElectricsUserInputsConfig diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs index 7aff80b0834809467196ef9c47639516f8af5a9f..64cfc89dbeae1793e69383ffda23e90654b54d3f 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs @@ -18,7 +18,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries ConsumerTechnology AirSuspensionControl { get; } // mechanical or electrical ConsumerTechnology AdBlueDosing { get; } // pnmeumatic or electric - ConsumerTechnology Doors { get; } // pneumatic or electric + ConsumerTechnology? Doors { get; } // pneumatic or electric } public enum ConsumerTechnology @@ -47,14 +47,14 @@ namespace TUGraz.VectoCommon.BusAuxiliaries case "pneumatically": case "pneumatic": return ConsumerTechnology.Pneumatically; - case "mixed": + case "mixed": return ConsumerTechnology.Mixed; default: return ConsumerTechnology.Unknown; } } - public static string GetLabel(this ConsumerTechnology technology) + public static string GetLabel(this ConsumerTechnology? technology) { switch (technology) { case ConsumerTechnology.Electrically: @@ -63,12 +63,14 @@ namespace TUGraz.VectoCommon.BusAuxiliaries return "Mechanic"; case ConsumerTechnology.Pneumatically: return "Pneumatic"; + case ConsumerTechnology.Mixed: + return "Mixed"; default: return ConsumerTechnology.Unknown.ToString(); } } - public static string ToXMLFormat(this ConsumerTechnology technology) + public static string ToXMLFormat(this ConsumerTechnology? technology) { return technology.GetLabel().ToLowerInvariant(); } diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs index ca7767c75bd8166ba3ecd79b87c3cc99a54a34aa..f38ab1e7611420243f5f411006a2d76a001d518e 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using TUGraz.VectoCommon.Utils; @@ -87,7 +88,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries public interface IACSystem { // AC-system - ACCompressorType HVACCompressorType { get; } + HeatPumpType HVACCompressorType { get; } Watt HVACMaxCoolingPower { get; } @@ -105,89 +106,248 @@ namespace TUGraz.VectoCommon.BusAuxiliaries } - public enum ACCompressorType + //public enum ACCompressorType + //{ + // Unknown, + // None, + // TwoStage, + // ThreeStage, + // FourStage, + // Continuous + //} + + //public static class ACCompressorTypeExtensions + //{ + // public static ACCompressorType ParseEnum(string txt) + // { + // switch (txt) { + // case "2-stage": return ACCompressorType.TwoStage; + // case "3-stage": return ACCompressorType.ThreeStage; + // case "4-stage": return ACCompressorType.FourStage; + // default: return txt.ParseEnum<ACCompressorType>(); + // } + // } + + // public static string ToString(this ACCompressorType type) + // { + // switch (type) { + // case ACCompressorType.TwoStage: return "2-stage"; + // case ACCompressorType.ThreeStage: return "3-stage"; + // case ACCompressorType.FourStage: return "4-stage"; + // default: return type.ToString().ToLowerInvariant(); + // } + // } + + // public static string GetName(this ACCompressorType type) + // { + // return type.ToString(); + // } + + // public static string GetLabel(this ACCompressorType type) + // { + // switch (type) + // { + // case ACCompressorType.TwoStage: return "2-stage"; + // case ACCompressorType.ThreeStage: return "3-stage"; + // case ACCompressorType.FourStage: return "4-stage"; + // default: return type.ToString(); + // } + // } + + + // public static bool IsElectrical(this ACCompressorType type) + // { + // return type == ACCompressorType.Continuous; + // } + + // public static bool IsMechanical(this ACCompressorType type) + // { + // return type != ACCompressorType.Continuous; + // } + + // public static double COP(this ACCompressorType type, FloorType floortype) + // { + // var cop = 3.5; + + // switch (type) { + // case ACCompressorType.None: + // case ACCompressorType.Unknown: return 0; + // case ACCompressorType.TwoStage: return cop; + // case ACCompressorType.ThreeStage: + // case ACCompressorType.FourStage: return cop * 1.02; + // case ACCompressorType.Continuous: + // return floortype == FloorType.LowFloor + // ? cop * 1.04 + // : cop * 1.06; + // default: throw new ArgumentOutOfRangeException(); + // } + // } + //} + + public interface IAuxHeater { - Unknown, - None, - TwoStage, - ThreeStage, - FourStage, - Continuous + Watt FuelFiredHeaterPower { get; } + double FuelEnergyToHeatToCoolant { get; } + double CoolantHeatTransferredToAirCabinHeater { get; } + } + + + public enum HeatPumpType + { + [GuiLabel("None")] + none, + + [GuiLabel("R 744")] + R_744, + + [GuiLabel("non R 744: 2-stage")] + non_R_744_2_stage, + + [GuiLabel("non R 744: 3-stage")] + non_R_744_3_stage, + + [GuiLabel("non R 744: 4-stage")] + non_R_744_4_stage, + + [GuiLabel("non R 744: continuous")] + non_R_744_continuous } - public static class ACCompressorTypeExtensions + public static class HeatPumpTypeHelper { - public static ACCompressorType ParseEnum(string txt) + private const string NONE = "none"; + private const string R_744 = "R-744"; + private const string NON_R_744_2_STAGE = "non R-744 2-stage"; + private const string NON_R_744_3_STAGE = "non R-744 3-stage"; + private const string NON_R_744_4_STAGE = "non R-744 4-stage"; + private const string NON_R_744_CONTINUOUS = "non R-744 continuous"; + + public static HeatPumpType Parse(string parse) { - switch (txt) { - case "2-stage": return ACCompressorType.TwoStage; - case "3-stage": return ACCompressorType.ThreeStage; - case "4-stage": return ACCompressorType.FourStage; - default: return txt.ParseEnum<ACCompressorType>(); + switch (parse) + { + case NONE: return HeatPumpType.none; + case R_744: return HeatPumpType.R_744; + case NON_R_744_2_STAGE: return HeatPumpType.non_R_744_2_stage; + case NON_R_744_3_STAGE: return HeatPumpType.non_R_744_3_stage; + case NON_R_744_4_STAGE: return HeatPumpType.non_R_744_4_stage; + case NON_R_744_CONTINUOUS: return HeatPumpType.non_R_744_continuous; + // to support old input parametersd + case "2-stage": return HeatPumpType.non_R_744_2_stage; + case "3-stage": return HeatPumpType.non_R_744_3_stage; + case "4-stage": return HeatPumpType.non_R_744_4_stage; + default: throw new InvalidEnumArgumentException("HeatPumpType"); } } - public static string ToString(this ACCompressorType type) + public static string GetLabel(this HeatPumpType? type) { + if (type == null) { + return "~null~"; + } switch (type) { - case ACCompressorType.TwoStage: return "2-stage"; - case ACCompressorType.ThreeStage: return "3-stage"; - case ACCompressorType.FourStage: return "4-stage"; - default: return type.ToString().ToLowerInvariant(); + case HeatPumpType.none: return NONE; + case HeatPumpType.R_744: return R_744; + case HeatPumpType.non_R_744_2_stage: return NON_R_744_2_STAGE; + case HeatPumpType.non_R_744_3_stage: return NON_R_744_3_STAGE; + case HeatPumpType.non_R_744_4_stage: return NON_R_744_4_STAGE; + case HeatPumpType.non_R_744_continuous: return NON_R_744_CONTINUOUS; + default: return null; } } - public static string GetName(this ACCompressorType type) + public static string GetLabel(this HeatPumpType type) { - return type.ToString(); + return GetLabel(type as HeatPumpType?); } - public static string GetLabel(this ACCompressorType type) + public static string GetName(this HeatPumpType type) { - switch (type) - { - case ACCompressorType.TwoStage: return "2-stage"; - case ACCompressorType.ThreeStage: return "3-stage"; - case ACCompressorType.FourStage: return "4-stage"; - default: return type.ToString(); - } + return type.ToString(); } - - public static bool IsElectrical(this ACCompressorType type) + public static bool IsElectrical(this HeatPumpType type) { - return type == ACCompressorType.Continuous; + return type == HeatPumpType.R_744 || type == HeatPumpType.non_R_744_continuous; } - public static bool IsMechanical(this ACCompressorType type) + public static bool IsMechanical(this HeatPumpType type) { - return type != ACCompressorType.Continuous; + return !type.IsElectrical(); } - public static double COP(this ACCompressorType type, FloorType floortype) + public static double COP(this HeatPumpType type, FloorType floortype) { var cop = 3.5; switch (type) { - case ACCompressorType.None: - case ACCompressorType.Unknown: return 0; - case ACCompressorType.TwoStage: return cop; - case ACCompressorType.ThreeStage: - case ACCompressorType.FourStage: return cop * 1.02; - case ACCompressorType.Continuous: + case HeatPumpType.none: + //case HeatPumpType.Unknown: + return 0; + case HeatPumpType.non_R_744_2_stage: + return cop; + case HeatPumpType.non_R_744_3_stage: + case HeatPumpType.non_R_744_4_stage: + return cop * 1.02; + case HeatPumpType.non_R_744_continuous: + case HeatPumpType.R_744: return floortype == FloorType.LowFloor ? cop * 1.04 : cop * 1.06; - default: throw new ArgumentOutOfRangeException(); + default: + throw new ArgumentOutOfRangeException(); } } } - public interface IAuxHeater + public enum HeatPumpMode { - Watt FuelFiredHeaterPower { get; } - double FuelEnergyToHeatToCoolant { get; } - double CoolantHeatTransferredToAirCabinHeater { get; } + + [GuiLabel("Heating")] + heating, + [GuiLabel("Heating and cooling")] + heating_and_cooling, + [GuiLabel("Cooling")] + cooling, + [GuiLabel("not_applicable")] + N_A, + } + + public static class HeatPumpModeHelper + { + private const string HEATING = "heating"; + private const string HEATING_AND_COOLING = "heating and cooling"; + private const string COOLING = "cooling"; + private const string N_A = "N.A."; + + public static HeatPumpMode Parse(string parse) + { + switch (parse) + { + case HEATING: return HeatPumpMode.heating; + case HEATING_AND_COOLING: return HeatPumpMode.heating_and_cooling; + case COOLING: return HeatPumpMode.cooling; + case N_A: return HeatPumpMode.N_A; + default: throw new InvalidEnumArgumentException("HeatPumpMode"); + } + } + + public static string GetLabel(this HeatPumpMode? type) + { + switch (type) + { + case HeatPumpMode.heating: return HEATING; + case HeatPumpMode.heating_and_cooling: return HEATING_AND_COOLING; + case HeatPumpMode.cooling: return COOLING; + case HeatPumpMode.N_A: return N_A; + default: return null; + } + } + + public static string GetLabel(this HeatPumpMode type) + { + return GetLabel(type as HeatPumpMode?); + } } public interface ISSMEngineeringInputs : ISSMInputs @@ -201,10 +361,10 @@ namespace TUGraz.VectoCommon.BusAuxiliaries Joule HeatingDemand { get; } double AuxHeaterEfficiency { get; set; } - + double FuelEnergyToHeatToCoolant { get; set; } - - double CoolantHeatTransferredToAirCabinHeater { get; set; } + double CoolantHeatTransferredToAirCabinHeater { get; set; } } + } diff --git a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs index 795fc93239528cb0c997d45f7563df9b10dfd30c..c9e480966fd5307e3873dd36de3b0b7f1a5c6eb4 100644 --- a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs +++ b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs @@ -47,7 +47,8 @@ namespace TUGraz.VectoCommon.Hashing Vehicle, VectoOutput, VectoCustomerInformation, - VectoPrimaryVehicleInformation + VectoPrimaryVehicleInformation, + VectoManufacturingStage } public static class VectoComponentsExtensionMethods @@ -78,7 +79,9 @@ namespace TUGraz.VectoCommon.Hashing case VectoComponents.VectoCustomerInformation: return "VectoCustomerInformation"; case VectoComponents.VectoPrimaryVehicleInformation: - return "VectoOutputPrimaryVehicle"; + return "PrimaryVehicle"; + case VectoComponents.VectoManufacturingStage: + return "ManufacturingStage"; default: throw new ArgumentOutOfRangeException("VectoComponents", component, null); } @@ -109,6 +112,10 @@ namespace TUGraz.VectoCommon.Hashing return "COC-"; case VectoComponents.VectoPrimaryVehicleInformation: return "PIF-"; + case VectoComponents.Vehicle: + return "VEH-"; + case VectoComponents.VectoManufacturingStage: + return "MST-"; default: throw new ArgumentOutOfRangeException("VectoComponents", component, null); } @@ -120,6 +127,7 @@ namespace TUGraz.VectoCommon.Hashing case VectoComponents.VectoCustomerInformation: case VectoComponents.VectoOutput: case VectoComponents.VectoPrimaryVehicleInformation: + case VectoComponents.VectoManufacturingStage: return true; default: return false; diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index efff8a8ba3ac301a137fa5cd6e0fa769be9c746d..d9ba954aa970cf40a7b8f64bfd36b1b6552bb622 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -52,6 +52,8 @@ namespace TUGraz.VectoCommon.InputData string JobName { get; } string ShiftStrategy { get; } + + VectoSimulationJobType JobType { get; } } public interface IComponentInputData @@ -97,7 +99,9 @@ namespace TUGraz.VectoCommon.InputData string VIN { get; } - LegislativeClass LegislativeClass { get; } + string LegislativeCategory { get; } + + LegislativeClass? LegislativeClass { get; } /// <summary> /// P036 @@ -147,6 +151,8 @@ namespace TUGraz.VectoCommon.InputData bool SleeperCab { get; } + bool? AirdragModifiedMultistage { get; } + TankSystem? TankSystem { get; } IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get; } @@ -163,18 +169,22 @@ namespace TUGraz.VectoCommon.InputData Watt MaxNetPower2 { get; } - RegistrationClass RegisteredClass { get; } + RegistrationClass? RegisteredClass { get; } + + int? NumberPassengerSeatsUpperDeck { get; } - int NumberOfPassengersUpperDeck { get; } + int? NumberPassengerSeatsLowerDeck { get; } - int NumberOfPassengersLowerDeck { get; } + int? NumberPassengersStandingLowerDeck { get; } + + int? NumberPassengersStandingUpperDeck { get; } // only used for medium lorries type VAN CubicMeter CargoVolume { get; } - VehicleCode VehicleCode { get; } + VehicleCode? VehicleCode { get; } - bool LowEntry { get; } + bool? LowEntry { get; } bool Articulated { get; } @@ -186,7 +196,9 @@ namespace TUGraz.VectoCommon.InputData Meter EntranceHeight { get; } - ConsumerTechnology DoorDriveTechnology { get; } + ConsumerTechnology? DoorDriveTechnology { get; } + + VehicleDeclarationType VehicleDeclarationType { get; } // components @@ -249,8 +261,11 @@ namespace TUGraz.VectoCommon.InputData public enum PredictiveCruiseControlType { + [GuiLabel("None")] None, + [GuiLabel("Option I + II")] Option_1_2, + [GuiLabel("Option I + II + III")] Option_1_2_3 } @@ -271,7 +286,7 @@ namespace TUGraz.VectoCommon.InputData public static string ToXMLFormat(this PredictiveCruiseControlType pcc) { - return pcc.ToString().ToLowerInvariant().Replace(Prefix, "").Replace(SeparatorEnum, SeparatorXML); + return pcc.ToString().ToLowerInvariant().Replace(Prefix.ToLowerInvariant(), "").Replace(SeparatorEnum, SeparatorXML); } public static string GetName(this PredictiveCruiseControlType pcc) @@ -282,8 +297,11 @@ namespace TUGraz.VectoCommon.InputData public enum EcoRollType { + [GuiLabel("None")] None, + [GuiLabel("Without Engine Stop")] WithoutEngineStop, + [GuiLabel("With Engine Stop")] WithEngineStop } @@ -366,6 +384,9 @@ namespace TUGraz.VectoCommon.InputData /// cf. VECTO Input Parameters.xlsx /// </summary> SquareMeter AirDragArea { get; } // without trailer + SquareMeter TransferredAirDragArea { get; } // P246 + + SquareMeter AirDragArea_0 { get; } // P245 } public interface IRetarderInputData : IComponentInputData @@ -580,7 +601,7 @@ namespace TUGraz.VectoCommon.InputData /// </summary> TableData FullLoadCurve { get; } - IList<IEngineFuelDelcarationInputData> Fuels { get; } + IList<IEngineFuelDeclarationInputData> Fuels { get; } IWHRData WasteHeatRecoveryDataElectrical { get; } @@ -604,7 +625,7 @@ namespace TUGraz.VectoCommon.InputData TableData GeneratedPower { get; } } - public interface IEngineFuelDelcarationInputData + public interface IEngineFuelDeclarationInputData { FuelType FuelType { get; } @@ -815,38 +836,46 @@ namespace TUGraz.VectoCommon.InputData public interface IElectricSupplyDeclarationData { - IList<IAlternatorDeclarationInputData> Alternators { get; } + AlternatorType AlternatorTechnology { get; } - bool SmartElectrics { get; } - - Watt MaxAlternatorPower { get; } + IList<IAlternatorDeclarationInputData> Alternators { get; } - WattSecond ElectricStorageCapacity { get; } + IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage { get; } } public interface IElectricConsumersDeclarationData { - bool InteriorLightsLED { get; } + bool? InteriorLightsLED { get; } - bool DayrunninglightsLED { get; } + bool? DayrunninglightsLED { get; } - bool PositionlightsLED { get; } + bool? PositionlightsLED { get; } - bool HeadlightsLED { get; } + bool? HeadlightsLED { get; } - bool BrakelightsLED { get; } + bool? BrakelightsLED { get; } } public interface IAlternatorDeclarationInputData + { + Ampere RatedCurrent { get; } + + Volt RatedVoltage { get; } + } + + public interface IBusAuxElectricStorageDeclarationInputData { string Technology { get; } - //double Ratio { get; } + WattSecond ElectricStorageCapacity { get; } } + + public interface IPneumaticSupplyDeclarationData { + CompressorDrive CompressorDrive { get; } string Clutch { get; } double Ratio { get; } @@ -865,24 +894,31 @@ namespace TUGraz.VectoCommon.InputData public interface IHVACBusAuxiliariesDeclarationData { - BusHVACSystemConfiguration SystemConfiguration { get; } + BusHVACSystemConfiguration? SystemConfiguration { get; } - ACCompressorType CompressorTypeDriver { get; } - ACCompressorType CompressorTypePassenger { get; } + HeatPumpType? HeatPumpTypeDriverCompartment { get; } + + HeatPumpMode? HeatPumpModeDriverCompartment { get; } + + IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments { get; } Watt AuxHeaterPower { get; } - bool DoubleGlazing { get; } + bool? DoubleGlazing { get; } - bool HeatPump { get; } + bool? AdjustableAuxiliaryHeater { get; } - bool AdjustableCoolantThermostat { get; } + bool? SeparateAirDistributionDucts { get; } - bool AdjustableAuxiliaryHeater { get; } + bool? WaterElectricHeater { get; } - bool EngineWasteGasHeatExchanger { get; } + bool? AirElectricHeater { get; } + + bool? OtherHeatingTechnology { get; } - bool SeparateAirDistributionDucts { get; } + bool? AdjustableCoolantThermostat { get; } + + bool EngineWasteGasHeatExchanger { get; } } @@ -922,4 +958,86 @@ namespace TUGraz.VectoCommon.InputData string SimulationToolVersion { get; } DateTime Date { get; } } -} + + public interface IManufacturingStageInputData + { + DigestData HashPreviousStage { get; } + int StageCount { get; } + + IVehicleDeclarationInputData Vehicle { get; } + + IApplicationInformation ApplicationInformation { get; } + + DigestData Signature { get; } + + } + + public enum VehicleDeclarationType + { + [GuiLabel("Interim")] + interim, + [GuiLabel("Final")] + final + } + + public static class VehicleDeclarationTypeHelper + { + public static VehicleDeclarationType Parse(string parse) + { + switch (parse) + { + case nameof(VehicleDeclarationType.interim): + return VehicleDeclarationType.interim; + case nameof(VehicleDeclarationType.final): + return VehicleDeclarationType.final; + default: + throw new ArgumentOutOfRangeException(); + } + } + public static string GetLabel(this VehicleDeclarationType type) + { + switch (type) + { + case VehicleDeclarationType.final: return nameof(VehicleDeclarationType.final); + case VehicleDeclarationType.interim: + return nameof(VehicleDeclarationType.interim); + default: return null; + } + } + } + + public enum CompressorDrive + { + [GuiLabel("Electrically")] + electrically, + [GuiLabel("Mechanically")] + mechanically + } + + public static class CompressorDriveHelper + { + public static CompressorDrive Parse(string parse) + { + switch (parse) + { + case nameof(CompressorDrive.electrically): + return CompressorDrive.electrically; + case nameof(CompressorDrive.mechanically): + return CompressorDrive.mechanically; + default: + throw new ArgumentOutOfRangeException(); + } + } + + public static string GetLabel(this CompressorDrive type) + { + switch (type) + { + case CompressorDrive.electrically: return nameof(CompressorDrive.electrically); + case CompressorDrive.mechanically: return nameof(CompressorDrive.electrically); + default: return null; + } + } + } + +} \ No newline at end of file diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs index 8b1db1afafa4f30462b1cf0a35dbf469d84f894e..c9f01a8b1cf9e3d933fcf8ce795a0fc264fbdf41 100644 --- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs +++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs @@ -45,26 +45,21 @@ namespace TUGraz.VectoCommon.InputData IHybridStrategyParameters HybridStrategyParameters { get; } - /// <summary> - /// P008 Cycles - /// cf. VECTO Input Parameters.xlsx - /// </summary> - IList<ICycleData> Cycles { get; } - /// <summary> - /// P001 + /// P008 Cycles /// cf. VECTO Input Parameters.xlsx /// </summary> - VectoSimulationJobType JobType { get; } + IList<ICycleData> Cycles { get; } + //ToDo Remove use JobType IEngineEngineeringInputData EngineOnly { get; } - } public enum VectoSimulationJobType { ConventionalVehicle, ParallelHybridVehicle, + SerialHybridVehicle, BatteryElectricVehicle, EngineOnlySimulation, } @@ -87,8 +82,8 @@ namespace TUGraz.VectoCommon.InputData Second AuxBufferChargeTime { get; } double ICEStartPenaltyFactor { get; } - double CostFactorSOCExpponent { get; } - } + double CostFactorSOCExpponent { get; } + } public interface IVehicleEngineeringInputData : IVehicleDeclarationInputData { @@ -405,7 +400,7 @@ namespace TUGraz.VectoCommon.InputData new IList<IEngineFuelEngineeringInputData> Fuels { get; } } - public interface IEngineFuelEngineeringInputData : IEngineFuelDelcarationInputData + public interface IEngineFuelEngineeringInputData : IEngineFuelDeclarationInputData { /// <summary> /// P170 diff --git a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs index 93ecf752d99bd5bce13efa4947ee231e7c28d936..176ec2e93ba6fba19938ca48a577bc2bf46c9d18 100644 --- a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs +++ b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs @@ -29,6 +29,8 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.Collections; +using System.Collections.Generic; using System.Xml.Linq; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; @@ -66,6 +68,8 @@ namespace TUGraz.VectoCommon.InputData DigestData PrimaryVehicleInputDataHash { get; } + DigestData VehicleSignatureHash { get; } + IResultsInputData ResultsInputData { get; } IApplicationInformation ApplicationInformation { get; } @@ -84,4 +88,35 @@ namespace TUGraz.VectoCommon.InputData IVehicleDeclarationInputData CompletedVehicle { get; } } + + public interface IMultistageBusInputDataProvider : IDeclarationInputDataProvider + { + new IDeclarationMultistageJobInputData JobInputData { get; } + } + + public interface IDeclarationMultistageJobInputData + { + IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; } + + IList<IManufacturingStageInputData> ManufacturingStages { get; } + + IManufacturingStageInputData ConsolidateManufacturingStage { get; } + + VectoSimulationJobType JobType { get; } + + bool InputComplete { get; } + } + + + public interface IMultiStageTypeInputData : IManufacturingStageInputData, IInputDataProvider + { + } + + public interface IMultistageVIFInputData : IInputDataProvider + { + IVehicleDeclarationInputData VehicleInputData { get; } + IMultistageBusInputDataProvider MultistageJobInputData { get; } + } } + + diff --git a/VectoCommon/VectoCommon/Models/AlternatorType.cs b/VectoCommon/VectoCommon/Models/AlternatorType.cs index e216758a7c6404b3c61f14782d3b85ed30062987..5419938e1c226828a48b93de5891a0eb01f1797c 100644 --- a/VectoCommon/VectoCommon/Models/AlternatorType.cs +++ b/VectoCommon/VectoCommon/Models/AlternatorType.cs @@ -11,6 +11,22 @@ namespace TUGraz.VectoCommon.Models public static class AlternatorTypeHelper { + + public static string ToXMLFormat(this AlternatorType type) + { + switch (type) + { + case AlternatorType.Conventional: + return "conventional"; + case AlternatorType.Smart: + return "smart"; + case AlternatorType.None: + return "no alternator"; + default: + throw new ArgumentOutOfRangeException(nameof(type), type, null); + }; + } + public static string GetLabel(this AlternatorType type) { switch (type) { diff --git a/VectoCommon/VectoCommon/Models/CrossWindCorrectionMode.cs b/VectoCommon/VectoCommon/Models/CrossWindCorrectionMode.cs index a5d183f2f1b97761ca0e1b2b08f453f2cb1697bc..d337b0cfb22fceff35c5d48386428dd7b342bd99 100644 --- a/VectoCommon/VectoCommon/Models/CrossWindCorrectionMode.cs +++ b/VectoCommon/VectoCommon/Models/CrossWindCorrectionMode.cs @@ -29,90 +29,90 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System; - -namespace TUGraz.VectoCommon.Models -{ - public enum CrossWindCorrectionMode - { - NoCorrection, - SpeedDependentCorrectionFactor, - VAirBetaLookupTable, - DeclarationModeCorrection - } - - public static class CrossWindCorrectionModeHelper - { - private const string SpeedDependentCorrectionFactor = "CdofVEng"; - private const string DeclarationModeCorrection = "CdofVdecl"; - private const string VAirBetaLookupTable = "CdofBeta"; - private const string NoCorrection = "Off"; - - public static CrossWindCorrectionMode Parse(string correctionMode) - { - if (correctionMode.Equals(SpeedDependentCorrectionFactor, StringComparison.OrdinalIgnoreCase)) { - return CrossWindCorrectionMode.SpeedDependentCorrectionFactor; - } - if (correctionMode.Equals(DeclarationModeCorrection, StringComparison.OrdinalIgnoreCase)) { - return CrossWindCorrectionMode.DeclarationModeCorrection; - } - if (correctionMode.Equals(VAirBetaLookupTable, StringComparison.OrdinalIgnoreCase)) { - return CrossWindCorrectionMode.VAirBetaLookupTable; - } - if (correctionMode.Equals(NoCorrection, StringComparison.OrdinalIgnoreCase)) { - return CrossWindCorrectionMode.NoCorrection; - } - LogManager.GetLogger(typeof(CrossWindCorrectionModeHelper).ToString()) - .Warn("Invalid Crosswind correction Mode given. Ignoring Crosswind Correction!"); - return CrossWindCorrectionMode.NoCorrection; - } - - public static string GetName(this CrossWindCorrectionMode mode) - { - switch (mode) { - case CrossWindCorrectionMode.NoCorrection: - return NoCorrection; - case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: - return SpeedDependentCorrectionFactor; - case CrossWindCorrectionMode.VAirBetaLookupTable: - return VAirBetaLookupTable; - case CrossWindCorrectionMode.DeclarationModeCorrection: - return DeclarationModeCorrection; - default: - throw new ArgumentOutOfRangeException("CrosswindCorrectionMode", mode, null); - } - } - - public static string GetLabel(this CrossWindCorrectionMode mode) - { - switch (mode) { - case CrossWindCorrectionMode.NoCorrection: - return "No Correction"; - case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: - return "Speed dependend (User-defined)"; - case CrossWindCorrectionMode.VAirBetaLookupTable: - return "Vair & beta Input"; - case CrossWindCorrectionMode.DeclarationModeCorrection: - return "Speed dependent (Declaration Mode)"; - default: - throw new ArgumentOutOfRangeException("CrosswindCorrectionMode", mode, null); - } - } - - public static string ToXMLFormat(this CrossWindCorrectionMode mode) - { - switch (mode) { - case CrossWindCorrectionMode.NoCorrection: - return "No Correction"; - case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: - return "Speed Dependent Correction Factor"; - case CrossWindCorrectionMode.VAirBetaLookupTable: - return "VAir Beta Lookup Table"; - case CrossWindCorrectionMode.DeclarationModeCorrection: - return "Declaration Mode Correction"; - default: - throw new ArgumentOutOfRangeException("CrosswindCorrection", mode, null); - } - } - } +using System; + +namespace TUGraz.VectoCommon.Models +{ + public enum CrossWindCorrectionMode + { + NoCorrection, + SpeedDependentCorrectionFactor, + VAirBetaLookupTable, + DeclarationModeCorrection + } + + public static class CrossWindCorrectionModeHelper + { + private const string SpeedDependentCorrectionFactor = "CdofVEng"; + private const string DeclarationModeCorrection = "CdofVdecl"; + private const string VAirBetaLookupTable = "CdofBeta"; + private const string NoCorrection = "Off"; + + public static CrossWindCorrectionMode Parse(string correctionMode) + { + if (correctionMode.Equals(SpeedDependentCorrectionFactor, StringComparison.OrdinalIgnoreCase)) { + return CrossWindCorrectionMode.SpeedDependentCorrectionFactor; + } + if (correctionMode.Equals(DeclarationModeCorrection, StringComparison.OrdinalIgnoreCase)) { + return CrossWindCorrectionMode.DeclarationModeCorrection; + } + if (correctionMode.Equals(VAirBetaLookupTable, StringComparison.OrdinalIgnoreCase)) { + return CrossWindCorrectionMode.VAirBetaLookupTable; + } + if (correctionMode.Equals(NoCorrection, StringComparison.OrdinalIgnoreCase)) { + return CrossWindCorrectionMode.NoCorrection; + } + LogManager.GetLogger(typeof(CrossWindCorrectionModeHelper).ToString()) + .Warn("Invalid Crosswind correction Mode given. Ignoring Crosswind Correction!"); + return CrossWindCorrectionMode.NoCorrection; + } + + public static string GetName(this CrossWindCorrectionMode mode) + { + switch (mode) { + case CrossWindCorrectionMode.NoCorrection: + return NoCorrection; + case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: + return SpeedDependentCorrectionFactor; + case CrossWindCorrectionMode.VAirBetaLookupTable: + return VAirBetaLookupTable; + case CrossWindCorrectionMode.DeclarationModeCorrection: + return DeclarationModeCorrection; + default: + throw new ArgumentOutOfRangeException("CrosswindCorrectionMode", mode, null); + } + } + + public static string GetLabel(this CrossWindCorrectionMode mode) + { + switch (mode) { + case CrossWindCorrectionMode.NoCorrection: + return "No Correction"; + case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: + return "Speed dependend (User-defined)"; + case CrossWindCorrectionMode.VAirBetaLookupTable: + return "Vair & beta Input"; + case CrossWindCorrectionMode.DeclarationModeCorrection: + return "Speed dependent (Declaration Mode)"; + default: + throw new ArgumentOutOfRangeException("CrosswindCorrectionMode", mode, null); + } + } + + public static string ToXMLFormat(this CrossWindCorrectionMode mode) + { + switch (mode) { + case CrossWindCorrectionMode.NoCorrection: + return "No Correction"; + case CrossWindCorrectionMode.SpeedDependentCorrectionFactor: + return "Speed Dependent Correction Factor"; + case CrossWindCorrectionMode.VAirBetaLookupTable: + return "VAir Beta Lookup Table"; + case CrossWindCorrectionMode.DeclarationModeCorrection: + return "Declaration Mode Correction"; + default: + throw new ArgumentOutOfRangeException("CrosswindCorrection", mode, null); + } + } + } } \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Models/LegislativeClass.cs b/VectoCommon/VectoCommon/Models/LegislativeClass.cs index cf710de297e638264eb5ce7a4643e4b266bbe33b..098b5a053ef0f5dab59d2f5405c88b530c44208b 100644 --- a/VectoCommon/VectoCommon/Models/LegislativeClass.cs +++ b/VectoCommon/VectoCommon/Models/LegislativeClass.cs @@ -41,12 +41,12 @@ namespace TUGraz.VectoCommon.Models public static class LegislativeClassHelper { - public static string GetLabel(this LegislativeClass self) + public static string GetLabel(this LegislativeClass? self) { return self.ToString(); } - public static string ToXMLFormat(this LegislativeClass self) + public static string ToXMLFormat(this LegislativeClass? self) { return self.ToString(); } diff --git a/VectoCommon/VectoCommon/Models/RegistrationClass.cs b/VectoCommon/VectoCommon/Models/RegistrationClass.cs index 518ecd1294f0c1af0648fa3f27eda401980a4642..939ca52e9eef97ef9d3bc42c6cfadc1a77682b9d 100644 --- a/VectoCommon/VectoCommon/Models/RegistrationClass.cs +++ b/VectoCommon/VectoCommon/Models/RegistrationClass.cs @@ -3,25 +3,41 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCommon.Models { public enum RegistrationClass { + + [GuiLabel("unknown")] unknown, + [GuiLabel("I")] I, + + [GuiLabel("I & II")] I_II, + + [GuiLabel("II")] II, + + [GuiLabel("II & III")] II_III, + + [GuiLabel("III")] III, + + [GuiLabel("A")] A, + + [GuiLabel("B")] B, } public static class RegistrationClassHelper { - public static string GetLabel(this RegistrationClass self) + public static string GetLabel(this RegistrationClass? self) { switch (self) { case RegistrationClass.I_II: @@ -33,16 +49,19 @@ namespace TUGraz.VectoCommon.Models } } - public static string ToXMLFormat(this RegistrationClass self) + + + + public static string ToXMLFormat(this RegistrationClass? self) { return self.GetLabel(); } - public static RegistrationClass[] Parse(string registrationClasses) + public static RegistrationClass?[] Parse(string registrationClasses) { var classes = registrationClasses.Split('/'); if (classes.Length > 0) { - var result = new List<RegistrationClass>(); + var result = new List<RegistrationClass?>(); for (int i = 0; i < classes.Length; i++) { var regClass = ParseRegistrationClassString(classes[i]); @@ -54,27 +73,27 @@ namespace TUGraz.VectoCommon.Models return null; } - private static RegistrationClass ParseRegistrationClassString(string registrationClass) + private static RegistrationClass? ParseRegistrationClassString(string registrationClass) { - if (RegistrationClass.I.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.I).GetLabel() == registrationClass) return RegistrationClass.I; - if (RegistrationClass.II.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.II).GetLabel() == registrationClass) return RegistrationClass.II; - if (RegistrationClass.III.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.III).GetLabel() == registrationClass) return RegistrationClass.III; - if (RegistrationClass.II_III.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.II_III).GetLabel() == registrationClass) return RegistrationClass.II_III; - if (RegistrationClass.I_II.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.I_II).GetLabel() == registrationClass) return RegistrationClass.I_II; - if (RegistrationClass.A.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.A).GetLabel() == registrationClass) return RegistrationClass.A; - if (RegistrationClass.B.GetLabel() == registrationClass) + if (((RegistrationClass?)RegistrationClass.B).GetLabel() == registrationClass) return RegistrationClass.B; return RegistrationClass.unknown; diff --git a/VectoCommon/VectoCommon/Models/VehicleCategory.cs b/VectoCommon/VectoCommon/Models/VehicleCategory.cs index 9730825a3ac555d057f9d725589c7d48b8ba49a2..dcd11cbfa3f42f1560613a607ba7c51087e4a660 100644 --- a/VectoCommon/VectoCommon/Models/VehicleCategory.cs +++ b/VectoCommon/VectoCommon/Models/VehicleCategory.cs @@ -44,7 +44,8 @@ namespace TUGraz.VectoCommon.Models Coach, HeavyBusPrimaryVehicle, HeavyBusCompletedVehicle, - GenericBusVehicle + GenericBusVehicle, + HeavyBusInterimVehicle } public static class VehicleCategoryHelper diff --git a/VectoCommon/VectoCommon/Models/VehicleCode.cs b/VectoCommon/VectoCommon/Models/VehicleCode.cs index 31e54f5e6706eaef76723be9ee3af4fa7b5a2471..8329d0407d2153949afddd5e4fa1ab1ae2d6f970 100644 --- a/VectoCommon/VectoCommon/Models/VehicleCode.cs +++ b/VectoCommon/VectoCommon/Models/VehicleCode.cs @@ -1,36 +1,47 @@ using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCommon.Models { public enum VehicleCode { + [GuiLabel("not applicable")] NOT_APPLICABLE, + [GuiLabel("CA")] CA, - CB, + [GuiLabel("CB")] + CB, + [GuiLabel("CC")] CC, + [GuiLabel("CD")] CD, + [GuiLabel("CE")] CE, + [GuiLabel("CF")] CF, + [GuiLabel("CG")] CG, + [GuiLabel("CH")] CH, + [GuiLabel("CI")] CI, + [GuiLabel("CJ")] CJ - } public static class VehicleCodeHelper { - public static string GetLabel(this VehicleCode self) + public static string GetLabel(this VehicleCode? self) { return self.ToString(); } - public static string ToXMLFormat(this VehicleCode self) + public static string ToXMLFormat(this VehicleCode? self) { return self.ToString(); } - public static bool IsDoubleDeckerBus(this VehicleCode self) + public static bool IsDoubleDeckerBus(this VehicleCode? self) { switch (self) { case VehicleCode.CF: @@ -50,7 +61,7 @@ namespace TUGraz.VectoCommon.Models { } } - public static FloorType GetFloorType(this VehicleCode vehicleCode) + public static FloorType GetFloorType(this VehicleCode? vehicleCode) { switch (vehicleCode) { case VehicleCode.CA: diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index 130c7e65cb24929dd2747cfc4e39ed3453c5c59c..6e87b019a0c0d857210ce2529f06ebdf0727fcb5 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -1,50 +1,25 @@ -/* -* This file is part of VECTO. -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 -* -* Copyright © 2012-2019 European Union -* -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. -* Developed by Graz University of Technology, -* Institute of Internal Combustion Engines and Thermodynamics, -* Institute of Technical Informatics -* -* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved -* by the European Commission - subsequent versions of the EUPL (the "Licence"); -* You may not use VECTO except in compliance with the Licence. -* You may obtain a copy of the Licence at: -* -* https://joinup.ec.europa.eu/community/eupl/og_page/eupl -* -* Unless required by applicable law or agreed to in writing, VECTO -* distributed under the Licence is distributed on an "AS IS" basis, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the Licence for the specific language governing permissions and -* limitations under the Licence. -* -* Authors: -* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology -* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology -* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology -* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology -* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology -* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology -*/ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ namespace TUGraz.VectoCommon.Resources { using System; /// <summary> - /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// A strongly-typed resource class, for looking up localized strings, etc. /// </summary> - // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + // This class was auto-generated by the StronglyTypedResourceBuilder + // 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.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class XMLNames { @@ -58,7 +33,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// Returns the cached ResourceManager instance used by this class. /// </summary> [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] public static global::System.Resources.ResourceManager ResourceManager { @@ -72,8 +47,8 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// </summary> [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] public static global::System.Globalization.CultureInfo Culture { @@ -86,7 +61,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DeclaredCdxA ähnelt. + /// Looks up a localized string similar to CdxA_0. + /// </summary> + public static string AirDrag_CdxA_0 { + get { + return ResourceManager.GetString("AirDrag_CdxA_0", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AirDragDataDeclarationType. + /// </summary> + public static string AirDrag_Data_Type_Attr { + get { + return ResourceManager.GetString("AirDrag_Data_Type_Attr", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to DeclaredCdxA. /// </summary> public static string AirDrag_DeclaredCdxA { get { @@ -95,7 +88,34 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Efficiency ähnelt. + /// Looks up a localized string similar to DeclaredCdxA. + /// </summary> + public static string AirDrag_DeclaredCdxA1 { + get { + return ResourceManager.GetString("AirDrag_DeclaredCdxA1", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to TransferredCdxA. + /// </summary> + public static string AirDrag_TransferredCDxA { + get { + return ResourceManager.GetString("AirDrag_TransferredCDxA", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to TransferredCdxA. + /// </summary> + public static string AirDragArea_TransferredCdxA { + get { + return ResourceManager.GetString("AirDragArea_TransferredCdxA", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Efficiency. /// </summary> public static string AngleDrive_Efficiency { get { @@ -104,7 +124,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Angledrive_LossMap_Entry { get { @@ -113,7 +133,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Ratio ähnelt. + /// Looks up a localized string similar to Ratio. /// </summary> public static string AngleDrive_Ratio { get { @@ -122,7 +142,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueLossMap ähnelt. + /// Looks up a localized string similar to TorqueLossMap. /// </summary> public static string AngleDrive_TorqueLossMap { get { @@ -131,7 +151,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die auxiliarySpeed ähnelt. + /// Looks up a localized string similar to type. + /// </summary> + public static string Attr_Type { + get { + return ResourceManager.GetString("Attr_Type", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to auxiliarySpeed. /// </summary> public static string Aux_AuxMap_AuxiliarySpeed_Attr { get { @@ -140,7 +169,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die mechanicalPower ähnelt. + /// Looks up a localized string similar to mechanicalPower. /// </summary> public static string Aux_AuxMap_MechanicalPower_Attr { get { @@ -149,7 +178,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Auxiliary ähnelt. + /// Looks up a localized string similar to Auxiliary. /// </summary> public static string Auxiliaries_Auxiliary { get { @@ -158,7 +187,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AuxMap ähnelt. + /// Looks up a localized string similar to AuxMap. /// </summary> public static string Auxiliaries_Auxiliary_AuxMap { get { @@ -167,7 +196,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Auxiliaries_Auxiliary_AuxMap_Entry { get { @@ -176,7 +205,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ConstantAuxLoad ähnelt. + /// Looks up a localized string similar to ConstantAuxLoad. /// </summary> public static string Auxiliaries_Auxiliary_ConstantAuxLoad { get { @@ -185,7 +214,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EfficiencyAuxSupply ähnelt. + /// Looks up a localized string similar to EfficiencyAuxSupply. /// </summary> public static string Auxiliaries_Auxiliary_EfficiencyAuxSupply { get { @@ -194,7 +223,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EfficiencyToEngine ähnelt. + /// Looks up a localized string similar to EfficiencyToEngine. /// </summary> public static string Auxiliaries_Auxiliary_EfficiencyToEngine { get { @@ -203,7 +232,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die id ähnelt. + /// Looks up a localized string similar to id. /// </summary> public static string Auxiliaries_Auxiliary_ID_Attr { get { @@ -212,7 +241,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Technology ähnelt. + /// Looks up a localized string similar to Technology. /// </summary> public static string Auxiliaries_Auxiliary_Technology { get { @@ -221,7 +250,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TransmissionRatioToEngine ähnelt. + /// Looks up a localized string similar to TransmissionRatioToEngine. /// </summary> public static string Auxiliaries_Auxiliary_TransmissionRatioToEngine { get { @@ -230,7 +259,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die supplyPower ähnelt. + /// Looks up a localized string similar to AuxiliariesDataDeclarationType. + /// </summary> + public static string Auxiliaries_Type_Attr_DataDeclarationType { + get { + return ResourceManager.GetString("Auxiliaries_Type_Attr_DataDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to supplyPower. /// </summary> public static string Auxr_AuxMapMapping_SupplyPower_Attr { get { @@ -239,7 +277,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Efficiency ähnelt. + /// Looks up a localized string similar to AxleDataDeclarationType. + /// </summary> + public static string Axle_Type_Attr_AxleDataDeclarationType { + get { + return ResourceManager.GetString("Axle_Type_Attr_AxleDataDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Efficiency. /// </summary> public static string Axlegear_Efficiency { get { @@ -248,7 +295,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die LineType ähnelt. + /// Looks up a localized string similar to LineType. /// </summary> public static string Axlegear_LineType { get { @@ -257,7 +304,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Ratio ähnelt. + /// Looks up a localized string similar to Ratio. /// </summary> public static string Axlegear_Ratio { get { @@ -266,7 +313,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueLossMap ähnelt. + /// Looks up a localized string similar to TorqueLossMap. /// </summary> public static string Axlegear_TorqueLossMap { get { @@ -275,7 +322,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Axlegear_TorqueLossMap_Entry { get { @@ -284,7 +331,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Axles ähnelt. + /// Looks up a localized string similar to AxlegearDataDeclarationType. + /// </summary> + public static string AxleGear_Type_Attr { + get { + return ResourceManager.GetString("AxleGear_Type_Attr", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Axles. /// </summary> public static string AxleWheels_Axles { get { @@ -293,7 +349,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Axle ähnelt. + /// Looks up a localized string similar to Axle. /// </summary> public static string AxleWheels_Axles_Axle { get { @@ -302,7 +358,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die axleNumber ähnelt. + /// Looks up a localized string similar to axleNumber. /// </summary> public static string AxleWheels_Axles_Axle_AxleNumber_Attr { get { @@ -311,7 +367,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxleType ähnelt. + /// Looks up a localized string similar to AxleType. /// </summary> public static string AxleWheels_Axles_Axle_AxleType { get { @@ -320,7 +376,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxleType ähnelt. + /// Looks up a localized string similar to AxleType. /// </summary> public static string AxleWheels_Axles_Axle_AxleType_Attr { get { @@ -329,7 +385,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Dimension ähnelt. + /// Looks up a localized string similar to Dimension. /// </summary> public static string AxleWheels_Axles_Axle_Dimension { get { @@ -338,7 +394,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DynamicTyreRadius ähnelt. + /// Looks up a localized string similar to DynamicTyreRadius. /// </summary> public static string AxleWheels_Axles_Axle_DynamicTyreRadius { get { @@ -347,7 +403,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FzISO ähnelt. + /// Looks up a localized string similar to FzISO. /// </summary> public static string AxleWheels_Axles_Axle_FzISO { get { @@ -356,7 +412,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Inertia ähnelt. + /// Looks up a localized string similar to Inertia. /// </summary> public static string AxleWheels_Axles_Axle_Inertia { get { @@ -365,7 +421,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RRCDeclared ähnelt. + /// Looks up a localized string similar to RRCDeclared. /// </summary> public static string AxleWheels_Axles_Axle_RRCDeclared { get { @@ -374,7 +430,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RRCISO ähnelt. + /// Looks up a localized string similar to RRCISO. /// </summary> public static string AxleWheels_Axles_Axle_RRCISO { get { @@ -383,7 +439,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Steered ähnelt. + /// Looks up a localized string similar to Steered. /// </summary> public static string AxleWheels_Axles_Axle_Steered { get { @@ -392,7 +448,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TwinTyres ähnelt. + /// Looks up a localized string similar to TwinTyres. /// </summary> public static string AxleWheels_Axles_Axle_TwinTyres { get { @@ -401,7 +457,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TwinTyres ähnelt. + /// Looks up a localized string similar to TwinTyres. /// </summary> public static string AxleWheels_Axles_Axle_TwinTyres_Attr { get { @@ -410,7 +466,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Tyre ähnelt. + /// Looks up a localized string similar to Tyre. /// </summary> public static string AxleWheels_Axles_Axle_Tyre { get { @@ -419,7 +475,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WeightShare ähnelt. + /// Looks up a localized string similar to WeightShare. /// </summary> public static string AxleWheels_Axles_Axle_WeightShare { get { @@ -428,7 +484,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AdBlueDosing ähnelt. + /// Looks up a localized string similar to AxleWheelsDataDeclarationType. + /// </summary> + public static string AxleWheels_Type_Attr_AxleWheelsDeclarationType { + get { + return ResourceManager.GetString("AxleWheels_Type_Attr_AxleWheelsDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to APTEcoRollReleaseLockupClutch. + /// </summary> + public static string Bus_ADAS_APTEcoRollReleaseLockupClutch { + get { + return ResourceManager.GetString("Bus_ADAS_APTEcoRollReleaseLockupClutch", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AdBlueDosing. /// </summary> public static string Bus_AdBlueDosing { get { @@ -437,7 +511,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AdjustableAuxiliaryHeater ähnelt. + /// Looks up a localized string similar to AdjustableAuxiliaryHeater. /// </summary> public static string Bus_AdjustableAuxiliaryHeater { get { @@ -446,7 +520,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AdjustableCoolantThermostat ähnelt. + /// Looks up a localized string similar to AdjustableCoolantThermostat. /// </summary> public static string Bus_AdjustableCoolantThermostat { get { @@ -455,7 +529,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AirsuspensionControl ähnelt. + /// Looks up a localized string similar to AirdragModifiedMultistage. + /// </summary> + public static string Bus_AirdragModifiedMultistage { + get { + return ResourceManager.GetString("Bus_AirdragModifiedMultistage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AirElectricHeater. + /// </summary> + public static string Bus_AirElectricHeater { + get { + return ResourceManager.GetString("Bus_AirElectricHeater", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AirsuspensionControl. /// </summary> public static string Bus_AirsuspensionControl { get { @@ -464,7 +556,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AlternatorTechnology ähnelt. + /// Looks up a localized string similar to AlternatorTechnology. /// </summary> public static string Bus_AlternatorTechnology { get { @@ -473,7 +565,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AuxiliaryHeaterPower ähnelt. + /// Looks up a localized string similar to AuxiliaryHeaterPower. /// </summary> public static string Bus_AuxiliaryHeaterPower { get { @@ -482,7 +574,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Brakelights ähnelt. + /// Looks up a localized string similar to Brakelights. /// </summary> public static string Bus_Brakelights { get { @@ -491,7 +583,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CompressorRatio ähnelt. + /// Looks up a localized string similar to ChassisConfiguration. + /// </summary> + public static string Bus_ChassisConfiguration { + get { + return ResourceManager.GetString("Bus_ChassisConfiguration", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to CompressorRatio. /// </summary> public static string Bus_CompressorRatio { get { @@ -500,7 +601,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CompressorType ähnelt. + /// Looks up a localized string similar to CompressorType. /// </summary> public static string Bus_CompressorType { get { @@ -509,7 +610,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Dayrunninglights ähnelt. + /// Looks up a localized string similar to CorrectedActualMass. + /// </summary> + public static string Bus_CorrectedActualMass { + get { + return ResourceManager.GetString("Bus_CorrectedActualMass", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Dayrunninglights. /// </summary> public static string Bus_Dayrunninglights { get { @@ -518,7 +628,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DoubleGlazing ähnelt. + /// Looks up a localized string similar to DeclarationType. + /// </summary> + public static string Bus_DeclarationType { + get { + return ResourceManager.GetString("Bus_DeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to DoorDriveTechnology. + /// </summary> + public static string Bus_DoorDriveTechnology { + get { + return ResourceManager.GetString("Bus_DoorDriveTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to DoubleGlazing. /// </summary> public static string Bus_DoubleGlazing { get { @@ -527,7 +655,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DriverAC ähnelt. + /// Looks up a localized string similar to DriverAC. /// </summary> public static string Bus_DriverAC { get { @@ -536,7 +664,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineWasteGasHeatExchanger ähnelt. + /// Looks up a localized string similar to EngineWasteGasHeatExchanger. /// </summary> public static string Bus_EngineWasteGasHeatExchanger { get { @@ -545,7 +673,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EntranceHeight ähnelt. + /// Looks up a localized string similar to EntranceHeight. /// </summary> public static string Bus_EntranceHeight { get { @@ -554,7 +682,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Headlights ähnelt. + /// Looks up a localized string similar to Headlights. /// </summary> public static string Bus_Headlights { get { @@ -563,7 +691,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die HeatPump ähnelt. + /// Looks up a localized string similar to HeatPump. /// </summary> public static string Bus_HeatPump { get { @@ -572,7 +700,43 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die HeightIntegratedBody ähnelt. + /// Looks up a localized string similar to HeatPumpModeDriverCompartment. + /// </summary> + public static string Bus_HeatPumpModeDriver { + get { + return ResourceManager.GetString("Bus_HeatPumpModeDriver", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HeatPumpModePassengerCompartment. + /// </summary> + public static string Bus_HeatPumpModePassenger { + get { + return ResourceManager.GetString("Bus_HeatPumpModePassenger", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HeatPumpTypeDriverCompartment. + /// </summary> + public static string Bus_HeatPumpTypeDriver { + get { + return ResourceManager.GetString("Bus_HeatPumpTypeDriver", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HeatPumpTypePassengerCompartment. + /// </summary> + public static string Bus_HeatPumpTypePassenger { + get { + return ResourceManager.GetString("Bus_HeatPumpTypePassenger", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HeightIntegratedBody. /// </summary> public static string Bus_HeighIntegratedBody { get { @@ -581,7 +745,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Interiorlights ähnelt. + /// Looks up a localized string similar to Interiorlights. /// </summary> public static string Bus_Interiorlights { get { @@ -590,7 +754,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die LowEntry ähnelt. + /// Looks up a localized string similar to LegislativeCategory. + /// </summary> + public static string Bus_LegislativeCategory { + get { + return ResourceManager.GetString("Bus_LegislativeCategory", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to LowEntry. /// </summary> public static string Bus_LowEntry { get { @@ -599,7 +772,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die LowerDeck ähnelt. + /// Looks up a localized string similar to LowerDeck. /// </summary> public static string Bus_LowerDeck { get { @@ -608,7 +781,70 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PassengerAC ähnelt. + /// Looks up a localized string similar to NumberPassengerSeatsLowerDeck. + /// </summary> + public static string Bus_NumberPassengerSeatsLowerDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengerSeatsLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NumberPassengerSeatsUpperDeck. + /// </summary> + public static string Bus_NumberPassengerSeatsUpperDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengerSeatsUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NumberPassengersLowerDeck. + /// </summary> + public static string Bus_NumberPassengersLowerDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengersLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NumberPassengersStandingLowerDeck. + /// </summary> + public static string Bus_NumberPassengersStandingLowerDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengersStandingLowerDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NumberPassengersStandingUpperDeck. + /// </summary> + public static string Bus_NumberPassengersStandingUpperDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengersStandingUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NumberPassengersUpperDeck. + /// </summary> + public static string Bus_NumberPassengersUpperDeck { + get { + return ResourceManager.GetString("Bus_NumberPassengersUpperDeck", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to OtherHeatingTechnology. + /// </summary> + public static string Bus_OtherHeatingTechnology { + get { + return ResourceManager.GetString("Bus_OtherHeatingTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PassengerAC. /// </summary> public static string Bus_PassengerAC { get { @@ -617,7 +853,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PassengerCount ähnelt. + /// Looks up a localized string similar to PassengerCount. /// </summary> public static string Bus_PassengerCount { get { @@ -626,7 +862,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Positionlights ähnelt. + /// Looks up a localized string similar to Positionlights. /// </summary> public static string Bus_Positionlights { get { @@ -635,7 +871,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ResultCards ähnelt. + /// Looks up a localized string similar to PrimaryVehicle. + /// </summary> + public static string Bus_PrimaryVehicle { + get { + return ResourceManager.GetString("Bus_PrimaryVehicle", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ResultCards. /// </summary> public static string Bus_ResultCards { get { @@ -644,7 +889,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SeparateAirDistributionDucts ähnelt. + /// Looks up a localized string similar to SeparateAirDistributionDucts. /// </summary> public static string Bus_SeparateAirDistributionDucts { get { @@ -653,7 +898,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SizeOfAirSupply ähnelt. + /// Looks up a localized string similar to SizeOfAirSupply. /// </summary> public static string Bus_SizeOfAirSupply { get { @@ -662,7 +907,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartElectrics ähnelt. + /// Looks up a localized string similar to SmartElectrics. /// </summary> public static string Bus_Smart_Electrics { get { @@ -671,7 +916,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartCompressionSystem ähnelt. + /// Looks up a localized string similar to SmartCompressionSystem. /// </summary> public static string Bus_SmartCompressionSystem { get { @@ -680,7 +925,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartRegenerationSystem ähnelt. + /// Looks up a localized string similar to SmartRegenerationSystem. /// </summary> public static string Bus_SmartRegenerationSystem { get { @@ -689,7 +934,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Status ähnelt. + /// Looks up a localized string similar to Status. /// </summary> public static string Bus_Status { get { @@ -698,7 +943,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SystemConfiguration ähnelt. + /// Looks up a localized string similar to SystemConfiguration. /// </summary> public static string Bus_SystemConfiguration { get { @@ -707,7 +952,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die UpperDeck ähnelt. + /// Looks up a localized string similar to UpperDeck. /// </summary> public static string Bus_UpperDeck { get { @@ -716,7 +961,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehicleLength ähnelt. + /// Looks up a localized string similar to VehicleDeclarationType. + /// </summary> + public static string Bus_VehicleDeclarationType { + get { + return ResourceManager.GetString("Bus_VehicleDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to VehicleLength. /// </summary> public static string Bus_VehicleLength { get { @@ -725,7 +979,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehicleWidth ähnelt. + /// Looks up a localized string similar to VehicleWidth. /// </summary> public static string Bus_VehicleWidth { get { @@ -734,7 +988,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ElectricSystem ähnelt. + /// Looks up a localized string similar to WaterElectricHeater. + /// </summary> + public static string Bus_WaterElectricHeater { + get { + return ResourceManager.GetString("Bus_WaterElectricHeater", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ElectricSystem. /// </summary> public static string BusAux_ElectricSystem { get { @@ -743,7 +1006,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ratio ähnelt. + /// Looks up a localized string similar to ratio. /// </summary> public static string BusAux_ElectricSystem_Alternator_Ratio_Attr { get { @@ -752,7 +1015,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AlternatorTechnology ähnelt. + /// Looks up a localized string similar to AlternatorTechnology. /// </summary> public static string BusAux_ElectricSystem_AlternatorTechnology { get { @@ -761,7 +1024,97 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ResultCards ähnelt. + /// Looks up a localized string similar to Battery. + /// </summary> + public static string BusAux_ElectricSystem_Battery { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_Battery", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to BatteryTechnology. + /// </summary> + public static string BusAux_ElectricSystem_BatteryTechnology { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_BatteryTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Capacitor. + /// </summary> + public static string BusAux_ElectricSystem_Capacitor { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_Capacitor", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to CapacitorTechnology. + /// </summary> + public static string BusAux_ElectricSystem_CapacitorTechnology { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_CapacitorTechnology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NominalVoltage. + /// </summary> + public static string BusAux_ElectricSystem_NominalVoltage { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_NominalVoltage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RatedCapacitance. + /// </summary> + public static string BusAux_ElectricSystem_RatedCapacitance { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_RatedCapacitance", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RatedCapacity. + /// </summary> + public static string BusAux_ElectricSystem_RatedCapacity { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_RatedCapacity", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RatedCurrent. + /// </summary> + public static string BusAux_ElectricSystem_RatedCurrent { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_RatedCurrent", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RatedVoltage. + /// </summary> + public static string BusAux_ElectricSystem_RatedRatedVoltage { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_RatedRatedVoltage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RatedVoltage. + /// </summary> + public static string BusAux_ElectricSystem_RatedVoltage { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_RatedVoltage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ResultCards. /// </summary> public static string BusAux_ElectricSystem_ResultCards { get { @@ -770,7 +1123,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartElectrics ähnelt. + /// Looks up a localized string similar to SmartAlternator. + /// </summary> + public static string BusAux_ElectricSystem_SmartAlternator { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_SmartAlternator", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to SmartElectrics. /// </summary> public static string BusAux_ElectricSystem_SmartElectrics { get { @@ -779,7 +1141,43 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PneumaticSystem ähnelt. + /// Looks up a localized string similar to SupplyFromHEVPossible. + /// </summary> + public static string BusAux_ElectricSystem_SupplyFromHEVPossible { + get { + return ResourceManager.GetString("BusAux_ElectricSystem_SupplyFromHEVPossible", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Fan. + /// </summary> + public static string BusAux_Fan { + get { + return ResourceManager.GetString("BusAux_Fan", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to HVAC. + /// </summary> + public static string BusAux_HVAC { + get { + return ResourceManager.GetString("BusAux_HVAC", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to LEDLights. + /// </summary> + public static string BusAux_LEDLights { + get { + return ResourceManager.GetString("BusAux_LEDLights", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PneumaticSystem. /// </summary> public static string BusAux_PneumaticSystem { get { @@ -788,7 +1186,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AdBlueDosing ähnelt. + /// Looks up a localized string similar to AdBlueDosing. /// </summary> public static string BusAux_PneumaticSystem_AdBlueDosing { get { @@ -797,7 +1195,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AirsuspensionControl ähnelt. + /// Looks up a localized string similar to AirsuspensionControl. /// </summary> public static string BusAux_PneumaticSystem_AirsuspensionControl { get { @@ -806,7 +1204,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CompressorRatio ähnelt. + /// Looks up a localized string similar to CompressorRatio. /// </summary> public static string BusAux_PneumaticSystem_CompressorRatio { get { @@ -815,7 +1213,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SizeOfAirSupply ähnelt. + /// Looks up a localized string similar to SizeOfAirSupply. /// </summary> public static string BusAux_PneumaticSystem_CompressorSize { get { @@ -824,7 +1222,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DoorDriveTechnology ähnelt. + /// Looks up a localized string similar to DoorDriveTechnology. /// </summary> public static string BusAux_PneumaticSystem_DoorDriveTechnology { get { @@ -833,7 +1231,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartCompressionSystem ähnelt. + /// Looks up a localized string similar to PneumaticSCRReagentDosing. + /// </summary> + public static string BusAux_PneumaticSystem_SCRReagentDosing { + get { + return ResourceManager.GetString("BusAux_PneumaticSystem_SCRReagentDosing", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to SmartCompressionSystem. /// </summary> public static string BusAux_PneumaticSystem_SmartcompressionSystem { get { @@ -842,7 +1249,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SmartRegenerationSystem ähnelt. + /// Looks up a localized string similar to SmartRegenerationSystem. /// </summary> public static string BusAux_PneumaticSystem_SmartRegenerationSystem { get { @@ -851,7 +1258,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string BusAux_ResultCard_Entry { get { @@ -860,7 +1267,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Idle ähnelt. + /// Looks up a localized string similar to Idle. /// </summary> public static string BusAux_ResultCard_Idle { get { @@ -869,7 +1276,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Overrun ähnelt. + /// Looks up a localized string similar to Overrun. /// </summary> public static string BusAux_ResultCard_Overrun { get { @@ -878,7 +1285,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Traction ähnelt. + /// Looks up a localized string similar to Traction. /// </summary> public static string BusAux_ResultCard_Traction { get { @@ -887,7 +1294,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AirDrag ähnelt. + /// Looks up a localized string similar to SteeringPump. + /// </summary> + public static string BusAux_SteeringPump { + get { + return ResourceManager.GetString("BusAux_SteeringPump", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Technology. + /// </summary> + public static string BusAux_Technology { + get { + return ResourceManager.GetString("BusAux_Technology", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AirDrag. /// </summary> public static string Component_AirDrag { get { @@ -896,7 +1321,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Angledrive ähnelt. + /// Looks up a localized string similar to Angledrive. /// </summary> public static string Component_Angledrive { get { @@ -905,7 +1330,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AppVersion ähnelt. + /// Looks up a localized string similar to AppVersion. /// </summary> public static string Component_AppVersion { get { @@ -914,7 +1339,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Auxiliaries ähnelt. + /// Looks up a localized string similar to Auxiliaries. /// </summary> public static string Component_Auxiliaries { get { @@ -923,7 +1348,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Axlegear ähnelt. + /// Looks up a localized string similar to Axlegear. /// </summary> public static string Component_Axlegear { get { @@ -932,7 +1357,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxleWheels ähnelt. + /// Looks up a localized string similar to AxleWheels. /// </summary> public static string Component_AxleWheels { get { @@ -941,7 +1366,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CertificationMethod ähnelt. + /// Looks up a localized string similar to CertificationMethod. /// </summary> public static string Component_CertificationMethod { get { @@ -950,7 +1375,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CertificationNumber ähnelt. + /// Looks up a localized string similar to CertificationNumber. /// </summary> public static string Component_CertificationNumber { get { @@ -959,7 +1384,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Creator ähnelt. + /// Looks up a localized string similar to Creator. /// </summary> public static string Component_Creator { get { @@ -968,7 +1393,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Date ähnelt. + /// Looks up a localized string similar to Date. /// </summary> public static string Component_Date { get { @@ -977,7 +1402,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DriverModel ähnelt. + /// Looks up a localized string similar to DriverModel. /// </summary> public static string Component_DriverModel { get { @@ -986,7 +1411,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Engine ähnelt. + /// Looks up a localized string similar to Engine. /// </summary> public static string Component_Engine { get { @@ -995,7 +1420,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Gearbox ähnelt. + /// Looks up a localized string similar to Gearbox. /// </summary> public static string Component_Gearbox { get { @@ -1004,7 +1429,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MainCertificationMethod ähnelt. + /// Looks up a localized string similar to MainCertificationMethod. /// </summary> public static string Component_Gearbox_CertificationMethod { get { @@ -1013,7 +1438,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die id ähnelt. + /// Looks up a localized string similar to id. /// </summary> public static string Component_ID_Attr { get { @@ -1022,7 +1447,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Manufacturer ähnelt. + /// Looks up a localized string similar to Manufacturer. /// </summary> public static string Component_Manufacturer { get { @@ -1031,7 +1456,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ManufacturerAddress ähnelt. + /// Looks up a localized string similar to ManufacturerAddress. /// </summary> public static string Component_ManufacturerAddress { get { @@ -1040,7 +1465,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Model ähnelt. + /// Looks up a localized string similar to Model. /// </summary> public static string Component_Model { get { @@ -1049,7 +1474,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Retarder ähnelt. + /// Looks up a localized string similar to Retarder. /// </summary> public static string Component_Retarder { get { @@ -1058,7 +1483,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TechnicalReportId ähnelt. + /// Looks up a localized string similar to TechnicalReportId. /// </summary> public static string Component_TechnicalReportId { get { @@ -1067,7 +1492,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueConverter ähnelt. + /// Looks up a localized string similar to TorqueConverter. /// </summary> public static string Component_TorqueConverter { get { @@ -1076,7 +1501,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Transmission ähnelt. + /// Looks up a localized string similar to Transmission. /// </summary> public static string Component_Transmission { get { @@ -1085,7 +1510,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Vehicle ähnelt. + /// Looks up a localized string similar to type. + /// </summary> + public static string Component_Type_Attr { + get { + return ResourceManager.GetString("Component_Type_Attr", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to PTOType. + /// </summary> + public static string Component_Type_Attr_PTO { + get { + return ResourceManager.GetString("Component_Type_Attr_PTO", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Vehicle. /// </summary> public static string Component_Vehicle { get { @@ -1094,7 +1537,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Data ähnelt. + /// Looks up a localized string similar to Data. /// </summary> public static string ComponentDataWrapper { get { @@ -1103,7 +1546,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Signature ähnelt. + /// Looks up a localized string similar to VehicleComponentsType. + /// </summary> + public static string Components_type_attr { + get { + return ResourceManager.GetString("Components_type_attr", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to CompressorDrive. + /// </summary> + public static string CompressorDrive { + get { + return ResourceManager.GetString("CompressorDrive", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Signature. /// </summary> public static string DI_Signature { get { @@ -1112,7 +1573,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Algorithm ähnelt. + /// Looks up a localized string similar to Algorithm. /// </summary> public static string DI_Signature_Algorithm_Attr { get { @@ -1121,7 +1582,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Reference ähnelt. + /// Looks up a localized string similar to Reference. /// </summary> public static string DI_Signature_Reference { get { @@ -1130,7 +1591,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DigestMethod ähnelt. + /// Looks up a localized string similar to DigestMethod. /// </summary> public static string DI_Signature_Reference_DigestMethod { get { @@ -1139,7 +1600,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DigestValue ähnelt. + /// Looks up a localized string similar to DigestValue. /// </summary> public static string DI_Signature_Reference_DigestValue { get { @@ -1148,7 +1609,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Transforms ähnelt. + /// Looks up a localized string similar to Transforms. /// </summary> public static string DI_Signature_Reference_Transforms { get { @@ -1157,7 +1618,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Transform ähnelt. + /// Looks up a localized string similar to Transform. /// </summary> public static string DI_Signature_Reference_Transforms_Transform { get { @@ -1166,7 +1627,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die URI ähnelt. + /// Looks up a localized string similar to URI. /// </summary> public static string DI_Signature_Reference_URI_Attr { get { @@ -1175,7 +1636,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die decisionFactorVel ähnelt. + /// Looks up a localized string similar to decisionFactorVel. /// </summary> public static string Driver_CoastingDFTargetSpeedLookupMapping_DecisionFactor_Attr { get { @@ -1184,7 +1645,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die targetVelocity ähnelt. + /// Looks up a localized string similar to targetVelocity. /// </summary> public static string Driver_CoastingDFTargetSpeedLookupMapping_TargetVelocity_Attr { get { @@ -1193,7 +1654,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die decisionFactorDrop ähnelt. + /// Looks up a localized string similar to decisionFactorDrop. /// </summary> public static string Driver_CoastingDFVelocityDropLookupMapping_DecisionFactorDrop_Attr { get { @@ -1202,7 +1663,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die velocityDrop ähnelt. + /// Looks up a localized string similar to velocityDrop. /// </summary> public static string Driver_CoastingDFVelocityDropLookupMapping_VelocityDrop_Attr { get { @@ -1211,7 +1672,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DriverAccelerationCurve ähnelt. + /// Looks up a localized string similar to DriverAccelerationCurve. /// </summary> public static string DriverModel_DriverAccelerationCurve { get { @@ -1220,7 +1681,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string DriverModel_DriverAccelerationCurve_Entry { get { @@ -1229,7 +1690,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EcoRoll ähnelt. + /// Looks up a localized string similar to EcoRoll. /// </summary> public static string DriverModel_EcoRoll { get { @@ -1238,7 +1699,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineStopStart ähnelt. + /// Looks up a localized string similar to EngineStopStart. /// </summary> public static string DriverModel_EngineStopStart { get { @@ -1247,7 +1708,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineStopStartParameters ähnelt. + /// Looks up a localized string similar to EngineStopStartParameters. /// </summary> public static string DriverModel_EngineStopStartParameters { get { @@ -1256,7 +1717,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die LookAheadCoasting ähnelt. + /// Looks up a localized string similar to LookAheadCoasting. /// </summary> public static string DriverModel_LookAheadCoasting { get { @@ -1265,7 +1726,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DecisionFactorOffset ähnelt. + /// Looks up a localized string similar to DecisionFactorOffset. /// </summary> public static string DriverModel_LookAheadCoasting_DecisionFactorOffset { get { @@ -1274,7 +1735,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DecisionFactorScaling ähnelt. + /// Looks up a localized string similar to DecisionFactorScaling. /// </summary> public static string DriverModel_LookAheadCoasting_DecisionFactorScaling { get { @@ -1283,7 +1744,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Enabled ähnelt. + /// Looks up a localized string similar to Enabled. /// </summary> public static string DriverModel_LookAheadCoasting_Enabled { get { @@ -1292,7 +1753,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MinSpeed ähnelt. + /// Looks up a localized string similar to MinSpeed. /// </summary> public static string DriverModel_LookAheadCoasting_MinSpeed { get { @@ -1301,7 +1762,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PreviewDistanceFactor ähnelt. + /// Looks up a localized string similar to PreviewDistanceFactor. /// </summary> public static string DriverModel_LookAheadCoasting_PreviewDistanceFactor { get { @@ -1310,7 +1771,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SpeedDependentDecisionFactor ähnelt. + /// Looks up a localized string similar to SpeedDependentDecisionFactor. /// </summary> public static string DriverModel_LookAheadCoasting_SpeedDependentDecisionFactor { get { @@ -1319,7 +1780,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VelocityDropDecisionFactor ähnelt. + /// Looks up a localized string similar to VelocityDropDecisionFactor. /// </summary> public static string DriverModel_LookAheadCoasting_VelocityDropDecisionFactor { get { @@ -1328,7 +1789,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Overspeed ähnelt. + /// Looks up a localized string similar to Overspeed. /// </summary> public static string DriverModel_Overspeed { get { @@ -1337,7 +1798,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AllowedOverspeed ähnelt. + /// Looks up a localized string similar to AllowedOverspeed. /// </summary> public static string DriverModel_Overspeed_AllowedOverspeed { get { @@ -1346,7 +1807,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AllowedUnderspeed ähnelt. + /// Looks up a localized string similar to AllowedUnderspeed. /// </summary> public static string DriverModel_Overspeed_AllowedUnderspeed { get { @@ -1355,7 +1816,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Enabled ähnelt. + /// Looks up a localized string similar to Enabled. /// </summary> public static string DriverModel_Overspeed_Enabled { get { @@ -1364,7 +1825,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MinSpeed ähnelt. + /// Looks up a localized string similar to MinSpeed. /// </summary> public static string DriverModel_Overspeed_MinSpeed { get { @@ -1373,7 +1834,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Mode ähnelt. + /// Looks up a localized string similar to Mode. /// </summary> public static string DriverModel_Overspeed_Mode { get { @@ -1382,7 +1843,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ShiftStrategyParameters ähnelt. + /// Looks up a localized string similar to ShiftStrategyParameters. /// </summary> public static string DriverModel_ShiftStrategyParameters { get { @@ -1391,7 +1852,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DownshiftAfterUpshiftDelay ähnelt. + /// Looks up a localized string similar to DownshiftAfterUpshiftDelay. /// </summary> public static string DriverModel_ShiftStrategyParameters_DownshiftAfterUpshiftDelay { get { @@ -1400,7 +1861,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PowershiftShiftTime ähnelt. + /// Looks up a localized string similar to PowershiftShiftTime. /// </summary> public static string DriverModel_ShiftStrategyParameters_PowershiftShiftTime { get { @@ -1409,7 +1870,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die StartAcceleration ähnelt. + /// Looks up a localized string similar to StartAcceleration. /// </summary> public static string DriverModel_ShiftStrategyParameters_StartAcceleration { get { @@ -1418,7 +1879,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die StartSpeed ähnelt. + /// Looks up a localized string similar to StartSpeed. /// </summary> public static string DriverModel_ShiftStrategyParameters_StartSpeed { get { @@ -1427,7 +1888,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die StartTorqueReserve ähnelt. + /// Looks up a localized string similar to StartTorqueReserve. /// </summary> public static string DriverModel_ShiftStrategyParameters_StartTorqueReserve { get { @@ -1436,7 +1897,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TimeBetweenGearshift ähnelt. + /// Looks up a localized string similar to TimeBetweenGearshift. /// </summary> public static string DriverModel_ShiftStrategyParameters_TimeBetweenGearshift { get { @@ -1445,7 +1906,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueReserve ähnelt. + /// Looks up a localized string similar to TorqueReserve. /// </summary> public static string DriverModel_ShiftStrategyParameters_TorqueReserve { get { @@ -1454,7 +1915,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die UpshiftAfterDownshiftDelay ähnelt. + /// Looks up a localized string similar to UpshiftAfterDownshiftDelay. /// </summary> public static string DriverModel_ShiftStrategyParameters_UpshiftAfterDownshiftDelay { get { @@ -1463,7 +1924,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die UpshiftMinAcceleration ähnelt. + /// Looks up a localized string similar to UpshiftMinAcceleration. /// </summary> public static string DriverModel_ShiftStrategyParameters_UpshiftMinAcceleration { get { @@ -1472,7 +1933,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die BFColdHot ähnelt. + /// Looks up a localized string similar to BFColdHot. /// </summary> public static string Engine_ColdHotBalancingFactor { get { @@ -1481,7 +1942,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CFNCV ähnelt. + /// Looks up a localized string similar to CFNCV. /// </summary> public static string Engine_CorrecionFactor_NCV { get { @@ -1490,7 +1951,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CFRegPer ähnelt. + /// Looks up a localized string similar to CFRegPer. /// </summary> public static string Engine_CorrectionFactor_RegPer { get { @@ -1499,7 +1960,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Displacement ähnelt. + /// Looks up a localized string similar to Displacement. /// </summary> public static string Engine_Displacement { get { @@ -1508,7 +1969,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die engineSpeed ähnelt. + /// Looks up a localized string similar to engineSpeed. /// </summary> public static string Engine_EngineFullLoadCurve_EngineSpeed_Attr { get { @@ -1517,7 +1978,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FCCorrection ähnelt. + /// Looks up a localized string similar to FCCorrection. /// </summary> public static string Engine_FCCorrection { get { @@ -1526,7 +1987,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelConsumptionMap ähnelt. + /// Looks up a localized string similar to FuelConsumptionMap. /// </summary> public static string Engine_FuelConsumptionMap { get { @@ -1535,7 +1996,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die engineSpeed ähnelt. + /// Looks up a localized string similar to engineSpeed. /// </summary> public static string Engine_FuelConsumptionMap_EngineSpeed_Attr { get { @@ -1544,7 +2005,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Engine_FuelConsumptionMap_Entry { get { @@ -1553,7 +2014,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die fuelConsumption ähnelt. + /// Looks up a localized string similar to fuelConsumption. /// </summary> public static string Engine_FuelConsumptionMap_FuelConsumption_Attr { get { @@ -1562,7 +2023,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torque ähnelt. + /// Looks up a localized string similar to torque. /// </summary> public static string Engine_FuelConsumptionMap_Torque_Attr { get { @@ -1571,7 +2032,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die electricPower ähnelt. + /// Looks up a localized string similar to electricPower. /// </summary> public static string Engine_FuelConsumptionMap_WHRElPower_Attr { get { @@ -1580,7 +2041,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die mechanicalPower ähnelt. + /// Looks up a localized string similar to mechanicalPower. /// </summary> public static string Engine_FuelConsumptionMap_WHRMechPower_Attr { get { @@ -1589,7 +2050,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Mode ähnelt. + /// Looks up a localized string similar to Mode. /// </summary> public static string Engine_FuelModes { get { @@ -1598,7 +2059,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Fuel ähnelt. + /// Looks up a localized string similar to Fuel. /// </summary> public static string Engine_FuelModes_Fuel { get { @@ -1607,7 +2068,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelType ähnelt. + /// Looks up a localized string similar to FuelType. /// </summary> public static string Engine_FuelType { get { @@ -1616,7 +2077,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FullLoadAndDragCurve ähnelt. + /// Looks up a localized string similar to FullLoadAndDragCurve. /// </summary> public static string Engine_FullLoadAndDragCurve { get { @@ -1625,7 +2086,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die dragTorque ähnelt. + /// Looks up a localized string similar to dragTorque. /// </summary> public static string Engine_FullLoadCurve_DragTorque_Attr { get { @@ -1634,7 +2095,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Engine_FullLoadCurve_Entry { get { @@ -1643,7 +2104,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die maxTorque ähnelt. + /// Looks up a localized string similar to maxTorque. /// </summary> public static string Engine_FullLoadCurve_MaxTorque_Attr { get { @@ -1652,7 +2113,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die IdlingSpeed ähnelt. + /// Looks up a localized string similar to IdlingSpeed. /// </summary> public static string Engine_IdlingSpeed { get { @@ -1661,7 +2122,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Inertia ähnelt. + /// Looks up a localized string similar to Inertia. /// </summary> public static string Engine_Inertia { get { @@ -1670,7 +2131,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxEngineTorque ähnelt. + /// Looks up a localized string similar to MaxEngineTorque. /// </summary> public static string Engine_MaxTorque { get { @@ -1679,7 +2140,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RatedPower ähnelt. + /// Looks up a localized string similar to RatedPower. /// </summary> public static string Engine_RatedPower { get { @@ -1688,7 +2149,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RatedSpeed ähnelt. + /// Looks up a localized string similar to RatedSpeed. /// </summary> public static string Engine_RatedSpeed { get { @@ -1697,7 +2158,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ElectricalOutput ähnelt. + /// Looks up a localized string similar to EngineDataDeclarationType. + /// </summary> + public static string Engine_Type_Attr { + get { + return ResourceManager.GetString("Engine_Type_Attr", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ElectricalOutput. /// </summary> public static string Engine_WHR_ElectricalOutput { get { @@ -1706,7 +2176,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MechanicalOutputICE ähnelt. + /// Looks up a localized string similar to MechanicalOutputICE. /// </summary> public static string Engine_WHR_MechanicalOutputICE { get { @@ -1715,7 +2185,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MechanicalOutputDrivetrain ähnelt. + /// Looks up a localized string similar to MechanicalOutputDrivetrain. /// </summary> public static string Engine_WHR_MechanicalOutputIDrivetrain { get { @@ -1724,7 +2194,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHRCorrection ähnelt. + /// Looks up a localized string similar to WHRCorrection. /// </summary> public static string Engine_WHRCorrectionFactor { get { @@ -1733,7 +2203,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHRCorrectionFactors ähnelt. + /// Looks up a localized string similar to WHRCorrectionFactors. /// </summary> public static string Engine_WHRCorrectionFactors { get { @@ -1742,7 +2212,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die BFColdHot ähnelt. + /// Looks up a localized string similar to BFColdHot. /// </summary> public static string Engine_WHRCorrectionFactors_BFColdHot { get { @@ -1751,7 +2221,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CFRegPer ähnelt. + /// Looks up a localized string similar to CFRegPer. /// </summary> public static string Engine_WHRCorrectionFactors_CFRegPer { get { @@ -1760,7 +2230,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Electrical ähnelt. + /// Looks up a localized string similar to Electrical. /// </summary> public static string Engine_WHRCorrectionFactors_Electrical { get { @@ -1769,7 +2239,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Mechanical ähnelt. + /// Looks up a localized string similar to Mechanical. /// </summary> public static string Engine_WHRCorrectionFactors_Mechanical { get { @@ -1778,7 +2248,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Motorway ähnelt. + /// Looks up a localized string similar to Motorway. /// </summary> public static string Engine_WHRCorrectionFactors_Motorway { get { @@ -1787,7 +2257,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Rural ähnelt. + /// Looks up a localized string similar to Rural. /// </summary> public static string Engine_WHRCorrectionFactors_Rural { get { @@ -1796,7 +2266,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Urban ähnelt. + /// Looks up a localized string similar to Urban. /// </summary> public static string Engine_WHRCorrectionFactors_Urban { get { @@ -1805,7 +2275,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHRMap ähnelt. + /// Looks up a localized string similar to WHRMap. /// </summary> public static string Engine_WHRMap { get { @@ -1814,7 +2284,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Engine_WHRMap_Entry { get { @@ -1823,7 +2293,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHRType ähnelt. + /// Looks up a localized string similar to WHRType. /// </summary> public static string Engine_WHRType { get { @@ -1832,7 +2302,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHTCEngineering ähnelt. + /// Looks up a localized string similar to WHTCEngineering. /// </summary> public static string Engine_WHTCEngineering { get { @@ -1841,7 +2311,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHTCMotorway ähnelt. + /// Looks up a localized string similar to WHTCMotorway. /// </summary> public static string Engine_WHTCMotorway { get { @@ -1850,7 +2320,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHTCRural ähnelt. + /// Looks up a localized string similar to WHTCRural. /// </summary> public static string Engine_WHTCRural { get { @@ -1859,7 +2329,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die WHTCUrban ähnelt. + /// Looks up a localized string similar to WHTCUrban. /// </summary> public static string Engine_WHTCUrban { get { @@ -1868,7 +2338,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Resource ähnelt. + /// Looks up a localized string similar to Resource. /// </summary> public static string ExternalResource { get { @@ -1877,7 +2347,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die component ähnelt. + /// Looks up a localized string similar to component. /// </summary> public static string ExtResource_Component_Attr { get { @@ -1886,7 +2356,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die file ähnelt. + /// Looks up a localized string similar to file. /// </summary> public static string ExtResource_File_Attr { get { @@ -1895,7 +2365,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die type ähnelt. + /// Looks up a localized string similar to type. /// </summary> public static string ExtResource_Type_Attr { get { @@ -1904,7 +2374,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die csv ähnelt. + /// Looks up a localized string similar to csv. /// </summary> public static string ExtResource_Type_Value_CSV { get { @@ -1913,7 +2383,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die xml ähnelt. + /// Looks up a localized string similar to xml. /// </summary> public static string ExtResource_Type_Value_XML { get { @@ -1922,7 +2392,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die engineTorque ähnelt. + /// Looks up a localized string similar to engineTorque. /// </summary> public static string Gear_ShiftPolygon_EngineTorque_Attr { get { @@ -1931,7 +2401,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die downshiftSpeed ähnelt. + /// Looks up a localized string similar to downshiftSpeed. /// </summary> public static string Gear_ShiftPolygonMapping_DownshiftSpeed_Attr { get { @@ -1940,7 +2410,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die upshiftSpeed ähnelt. + /// Looks up a localized string similar to upshiftSpeed. /// </summary> public static string Gear_ShiftPolygonMapping_UpshiftSpeed_Attr { get { @@ -1949,7 +2419,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxlegearRatio ähnelt. + /// Looks up a localized string similar to GearboxDataDeclarationType. + /// </summary> + public static string Gearbox_attr_GearboxDataDeclarationType { + get { + return ResourceManager.GetString("Gearbox_attr_GearboxDataDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to AxlegearRatio. /// </summary> public static string Gearbox_AxlegearRatio { get { @@ -1958,7 +2437,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DifferentialIncluded ähnelt. + /// Looks up a localized string similar to DifferentialIncluded. /// </summary> public static string Gearbox_DifferentialIncluded { get { @@ -1967,7 +2446,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Efficiency ähnelt. + /// Looks up a localized string similar to Efficiency. /// </summary> public static string Gearbox_Gear_Efficiency { get { @@ -1976,7 +2455,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die number ähnelt. + /// Looks up a localized string similar to number. /// </summary> public static string Gearbox_Gear_GearNumber_Attr { get { @@ -1985,7 +2464,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxSpeed ähnelt. + /// Looks up a localized string similar to MaxSpeed. /// </summary> public static string Gearbox_Gear_MaxSpeed { get { @@ -1994,7 +2473,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Ratio ähnelt. + /// Looks up a localized string similar to Ratio. /// </summary> public static string Gearbox_Gear_Ratio { get { @@ -2003,7 +2482,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueLossMap ähnelt. + /// Looks up a localized string similar to TorqueLossMap. /// </summary> public static string Gearbox_Gear_TorqueLossMap { get { @@ -2012,7 +2491,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Gearbox_Gear_TorqueLossMap_Entry { get { @@ -2021,7 +2500,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Gears ähnelt. + /// Looks up a localized string similar to Gears. /// </summary> public static string Gearbox_Gears { get { @@ -2030,7 +2509,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Gear ähnelt. + /// Looks up a localized string similar to GearsDeclarationType. + /// </summary> + public static string Gearbox_Gears_Attr_GearsDeclarationType { + get { + return ResourceManager.GetString("Gearbox_Gears_Attr_GearsDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Gear. /// </summary> public static string Gearbox_Gears_Gear { get { @@ -2039,7 +2527,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ShiftPolygon ähnelt. + /// Looks up a localized string similar to ShiftPolygon. /// </summary> public static string Gearbox_Gears_Gear_ShiftPolygon { get { @@ -2048,7 +2536,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Gearbox_Gears_Gear_ShiftPolygon_Entry { get { @@ -2057,7 +2545,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxTorque ähnelt. + /// Looks up a localized string similar to MaxTorque. /// </summary> public static string Gearbox_Gears_MaxTorque { get { @@ -2066,7 +2554,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Inertia ähnelt. + /// Looks up a localized string similar to Inertia. /// </summary> public static string Gearbox_Inertia { get { @@ -2075,7 +2563,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TractionInterruption ähnelt. + /// Looks up a localized string similar to TractionInterruption. /// </summary> public static string Gearbox_TractionInterruption { get { @@ -2084,7 +2572,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TransmissionType ähnelt. + /// Looks up a localized string similar to TransmissionType. /// </summary> public static string Gearbox_TransmissionType { get { @@ -2093,7 +2581,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string LookAheadCoasting_SpeedDependentDecisionFactor_Entry { get { @@ -2102,7 +2590,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string LookAheadCoasting_VelocityDropDecisionFactor_Entry { get { @@ -2111,7 +2599,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ManufacturerAddressCompletedVehicle ähnelt. + /// Looks up a localized string similar to ManufacturerAddressCompletedVehicle. /// </summary> public static string ManufacturerAddressCompletedVehicle { get { @@ -2120,7 +2608,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ManufacturerAddressPrimaryVehicle ähnelt. + /// Looks up a localized string similar to ManufacturerAddressPrimaryVehicle. /// </summary> public static string ManufacturerAddressPrimaryVehicle { get { @@ -2129,7 +2617,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ManufacturerCompletedVehicle ähnelt. + /// Looks up a localized string similar to ManufacturerCompletedVehicle. /// </summary> public static string ManufacturerCompletedVehicle { get { @@ -2138,7 +2626,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ManufacturerPrimaryVehicle ähnelt. + /// Looks up a localized string similar to ManufacturerPrimaryVehicle. /// </summary> public static string ManufacturerPrimaryVehicle { get { @@ -2147,7 +2635,25 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Cycle ähnelt. + /// Looks up a localized string similar to ManufacturingStage. + /// </summary> + public static string ManufacturingStage { + get { + return ResourceManager.GetString("ManufacturingStage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to stageCount. + /// </summary> + public static string ManufacturingStage_StageCount { + get { + return ResourceManager.GetString("ManufacturingStage_StageCount", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Cycle. /// </summary> public static string Missions_Cycle { get { @@ -2156,7 +2662,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CdxA ähnelt. + /// Looks up a localized string similar to CdxA. /// </summary> public static string Report_AirDrag_CdxA { get { @@ -2165,7 +2671,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ApplicationInformation ähnelt. + /// Looks up a localized string similar to ApplicationInformation. /// </summary> public static string Report_ApplicationInfo_ApplicationInformation { get { @@ -2174,7 +2680,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Date ähnelt. + /// Looks up a localized string similar to Date. /// </summary> public static string Report_ApplicationInfo_Date { get { @@ -2183,7 +2689,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SimulationToolVersion ähnelt. + /// Looks up a localized string similar to SimulationToolVersion. /// </summary> public static string Report_ApplicationInfo_SimulationToolVersion { get { @@ -2192,7 +2698,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AveragePayload ähnelt. + /// Looks up a localized string similar to AveragePayload. /// </summary> public static string Report_AveragePayload { get { @@ -2201,7 +2707,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CertificationMethod ähnelt. + /// Looks up a localized string similar to CertificationMethod. /// </summary> public static string Report_Component_CertificationMethod { get { @@ -2210,7 +2716,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CertificationNumber ähnelt. + /// Looks up a localized string similar to CertificationNumber. /// </summary> public static string Report_Component_CertificationNumber { get { @@ -2219,7 +2725,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Data ähnelt. + /// Looks up a localized string similar to Data. /// </summary> public static string Report_DataWrap { get { @@ -2228,7 +2734,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Mode ähnelt. + /// Looks up a localized string similar to Mode. /// </summary> public static string Report_Engine_FuelMode { get { @@ -2237,7 +2743,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ExemptedVehicle ähnelt. + /// Looks up a localized string similar to ExemptedVehicle. /// </summary> public static string Report_ExemptedVehicle { get { @@ -2246,7 +2752,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TransmissionRatioFinalGear ähnelt. + /// Looks up a localized string similar to TransmissionRatioFinalGear. /// </summary> public static string Report_Gearbox_TransmissionRatioFinalGear { get { @@ -2255,7 +2761,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die GearsCount ähnelt. + /// Looks up a localized string similar to GearsCount. /// </summary> public static string Report_GetGearbox_GearsCount { get { @@ -2264,7 +2770,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die InputDataSignature ähnelt. + /// Looks up a localized string similar to InputDataSignature. /// </summary> public static string Report_Input_Signature { get { @@ -2273,7 +2779,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die InputDataSignature ähnelt. + /// Looks up a localized string similar to InputDataSignature. /// </summary> public static string Report_InputDataSignature { get { @@ -2282,7 +2788,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EnergyConsumption ähnelt. + /// Looks up a localized string similar to EnergyConsumption. /// </summary> public static string Report_Result_EnergyConsumption { get { @@ -2291,7 +2797,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelMode ähnelt. + /// Looks up a localized string similar to FuelMode. /// </summary> public static string Report_Result_FuelMode { get { @@ -2300,7 +2806,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die dual fuel mode ähnelt. + /// Looks up a localized string similar to dual fuel mode. /// </summary> public static string Report_Result_FuelMode_Val_Dual { get { @@ -2309,7 +2815,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die single fuel mode ähnelt. + /// Looks up a localized string similar to single fuel mode. /// </summary> public static string Report_Result_FuelMode_Val_Single { get { @@ -2318,7 +2824,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MassPassengers ähnelt. + /// Looks up a localized string similar to MassPassengers. /// </summary> public static string Report_Result_MassPassengers { get { @@ -2327,7 +2833,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Mission ähnelt. + /// Looks up a localized string similar to Mission. /// </summary> public static string Report_Result_Mission { get { @@ -2336,7 +2842,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PassengerCount ähnelt. + /// Looks up a localized string similar to PassengerCount. /// </summary> public static string Report_Result_PassengerCount { get { @@ -2345,7 +2851,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Payload ähnelt. + /// Looks up a localized string similar to Payload. /// </summary> public static string Report_Result_Payload { get { @@ -2354,7 +2860,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Result ähnelt. + /// Looks up a localized string similar to Result. /// </summary> public static string Report_Result_Result { get { @@ -2363,7 +2869,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Status ähnelt. + /// Looks up a localized string similar to Status. /// </summary> public static string Report_Result_Status { get { @@ -2372,7 +2878,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die status ähnelt. + /// Looks up a localized string similar to status. /// </summary> public static string Report_Result_Status_Attr { get { @@ -2381,7 +2887,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ResultDataSignature ähnelt. + /// Looks up a localized string similar to ResultDataSignature. /// </summary> public static string Report_ResultData_Signature { get { @@ -2390,7 +2896,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageSpeed ähnelt. + /// Looks up a localized string similar to AverageSpeed. /// </summary> public static string Report_ResultEntry_AverageSpeed { get { @@ -2399,7 +2905,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageDrivingSpeed ähnelt. + /// Looks up a localized string similar to AverageDrivingSpeed. /// </summary> public static string Report_ResultEntry_AvgDrivingSpeed { get { @@ -2408,7 +2914,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Distance ähnelt. + /// Looks up a localized string similar to Distance. /// </summary> public static string Report_ResultEntry_Distance { get { @@ -2417,7 +2923,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineSpeedDriving ähnelt. + /// Looks up a localized string similar to EngineSpeedDriving. /// </summary> public static string Report_ResultEntry_EngineSpeedDriving { get { @@ -2426,7 +2932,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Average ähnelt. + /// Looks up a localized string similar to Average. /// </summary> public static string Report_ResultEntry_EngineSpeedDriving_Avg { get { @@ -2435,7 +2941,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Max ähnelt. + /// Looks up a localized string similar to Max. /// </summary> public static string Report_ResultEntry_EngineSpeedDriving_Max { get { @@ -2444,7 +2950,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Min ähnelt. + /// Looks up a localized string similar to Min. /// </summary> public static string Report_ResultEntry_EngineSpeedDriving_Min { get { @@ -2453,7 +2959,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelType ähnelt. + /// Looks up a localized string similar to FuelType. /// </summary> public static string Report_ResultEntry_FuelType { get { @@ -2462,7 +2968,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FullLoadDrivingtimePercentage ähnelt. + /// Looks up a localized string similar to FullLoadDrivingtimePercentage. /// </summary> public static string Report_ResultEntry_FullLoadDrivingtimePercentage { get { @@ -2471,7 +2977,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die GearshiftCount ähnelt. + /// Looks up a localized string similar to GearshiftCount. /// </summary> public static string Report_ResultEntry_GearshiftCount { get { @@ -2480,7 +2986,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxAcceleration ähnelt. + /// Looks up a localized string similar to MaxAcceleration. /// </summary> public static string Report_ResultEntry_MaxAcceleration { get { @@ -2489,7 +2995,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxDeceleration ähnelt. + /// Looks up a localized string similar to MaxDeceleration. /// </summary> public static string Report_ResultEntry_MaxDeceleration { get { @@ -2498,7 +3004,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxSpeed ähnelt. + /// Looks up a localized string similar to MaxSpeed. /// </summary> public static string Report_ResultEntry_MaxSpeed { get { @@ -2507,7 +3013,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MinSpeed ähnelt. + /// Looks up a localized string similar to MinSpeed. /// </summary> public static string Report_ResultEntry_MinSpeed { get { @@ -2516,7 +3022,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PassengerCount ähnelt. + /// Looks up a localized string similar to PassengerCount. /// </summary> public static string Report_ResultEntry_PassengerCount { get { @@ -2525,7 +3031,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Payload ähnelt. + /// Looks up a localized string similar to Payload. /// </summary> public static string Report_ResultEntry_Payload { get { @@ -2534,7 +3040,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SimulationParameters ähnelt. + /// Looks up a localized string similar to SimulationParameters. /// </summary> public static string Report_ResultEntry_SimulationParameters { get { @@ -2543,7 +3049,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TotalVehicleMass ähnelt. + /// Looks up a localized string similar to TotalVehicleMass. /// </summary> public static string Report_ResultEntry_TotalVehicleMass { get { @@ -2552,7 +3058,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehiclePerformance ähnelt. + /// Looks up a localized string similar to VehiclePerformance. /// </summary> public static string Report_ResultEntry_VehiclePerformance { get { @@ -2561,7 +3067,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Results ähnelt. + /// Looks up a localized string similar to Results. /// </summary> public static string Report_Results { get { @@ -2570,7 +3076,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageAxlegearEfficiency ähnelt. + /// Looks up a localized string similar to AverageAxlegearEfficiency. /// </summary> public static string Report_Results_AverageAxlegearEfficiency { get { @@ -2579,7 +3085,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageGearboxEfficiency ähnelt. + /// Looks up a localized string similar to AverageGearboxEfficiency. /// </summary> public static string Report_Results_AverageGearboxEfficiency { get { @@ -2588,7 +3094,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageSpeed ähnelt. + /// Looks up a localized string similar to AverageSpeed. /// </summary> public static string Report_Results_AverageSpeed { get { @@ -2597,7 +3103,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CO2 ähnelt. + /// Looks up a localized string similar to CO2. /// </summary> public static string Report_Results_CO2 { get { @@ -2606,7 +3112,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Error ähnelt. + /// Looks up a localized string similar to Error. /// </summary> public static string Report_Results_Error { get { @@ -2615,7 +3121,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ErrorDetails ähnelt. + /// Looks up a localized string similar to ErrorDetails. /// </summary> public static string Report_Results_ErrorDetails { get { @@ -2624,7 +3130,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Fuel ähnelt. + /// Looks up a localized string similar to Fuel. /// </summary> public static string Report_Results_Fuel { get { @@ -2633,7 +3139,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die type ähnelt. + /// Looks up a localized string similar to type. /// </summary> public static string Report_Results_Fuel_Type_Attr { get { @@ -2642,7 +3148,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelConsumption ähnelt. + /// Looks up a localized string similar to FuelConsumption. /// </summary> public static string Report_Results_FuelConsumption { get { @@ -2651,7 +3157,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelType ähnelt. + /// Looks up a localized string similar to FuelType. /// </summary> public static string Report_Results_FuelType { get { @@ -2660,7 +3166,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Summary ähnelt. + /// Looks up a localized string similar to Summary. /// </summary> public static string Report_Results_Summary { get { @@ -2669,7 +3175,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die unit ähnelt. + /// Looks up a localized string similar to unit. /// </summary> public static string Report_Results_Unit_Attr { get { @@ -2678,7 +3184,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SpecificCO2Emissions ähnelt. + /// Looks up a localized string similar to SpecificCO2Emissions. /// </summary> public static string Report_SpecificCO2Emissions { get { @@ -2687,7 +3193,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TyreCertificationNumber ähnelt. + /// Looks up a localized string similar to TyreCertificationNumber. /// </summary> public static string Report_Tyre_TyreCertificationNumber { get { @@ -2696,7 +3202,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TyreDimension ähnelt. + /// Looks up a localized string similar to TyreDimension. /// </summary> public static string Report_Tyre_TyreDimension { get { @@ -2705,7 +3211,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TyreRRCDeclared ähnelt. + /// Looks up a localized string similar to TyreRRCDeclared. /// </summary> public static string Report_Tyre_TyreRRCDeclared { get { @@ -2714,7 +3220,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageRRCMotorVehicleTyres ähnelt. + /// Looks up a localized string similar to AverageRRCMotorVehicleTyres. /// </summary> public static string Report_Vehicle_AverageRRC { get { @@ -2723,7 +3229,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AverageFuelEfficiencyLabelMotorVehicleTyres ähnelt. + /// Looks up a localized string similar to AverageFuelEfficiencyLabelMotorVehicleTyres. /// </summary> public static string Report_Vehicle_AverageRRCLabel { get { @@ -2732,7 +3238,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxleRatio ähnelt. + /// Looks up a localized string similar to AxleRatio. /// </summary> public static string Report_Vehicle_AxleRatio { get { @@ -2741,7 +3247,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineDisplacement ähnelt. + /// Looks up a localized string similar to EngineDisplacement. /// </summary> public static string Report_Vehicle_EngineDisplacement { get { @@ -2750,7 +3256,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineRatedPower ähnelt. + /// Looks up a localized string similar to EngineRatedPower. /// </summary> public static string Report_Vehicle_EngineRatedPower { get { @@ -2759,7 +3265,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die FuelTypes ähnelt. + /// Looks up a localized string similar to FuelTypes. /// </summary> public static string Report_Vehicle_FuelTypes { get { @@ -2768,7 +3274,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Retarder ähnelt. + /// Looks up a localized string similar to Retarder. /// </summary> public static string Report_Vehicle_Retarder { get { @@ -2777,7 +3283,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TransmissionMainCertificationMethod ähnelt. + /// Looks up a localized string similar to TransmissionMainCertificationMethod. /// </summary> public static string Report_Vehicle_TransmissionCertificationMethod { get { @@ -2786,7 +3292,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehicleGroup ähnelt. + /// Looks up a localized string similar to VehicleGroup. /// </summary> public static string Report_Vehicle_VehicleGroup { get { @@ -2795,7 +3301,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die status ähnelt. + /// Looks up a localized string similar to status. /// </summary> public static string Result_Status { get { @@ -2804,7 +3310,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die current ähnelt. + /// Looks up a localized string similar to current. /// </summary> public static string ResultCard_Entry_CurrentAttr { get { @@ -2813,7 +3319,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die smartCurrent ähnelt. + /// Looks up a localized string similar to smartCurrent. /// </summary> public static string ResultCard_Entry_SmartCurrent_Attr { get { @@ -2822,7 +3328,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RetarderLossMap ähnelt. + /// Looks up a localized string similar to RetarderDataDeclarationType. + /// </summary> + public static string Retarder_Attr_DataDeclarationType { + get { + return ResourceManager.GetString("Retarder_Attr_DataDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to RetarderLossMap. /// </summary> public static string Retarder_RetarderLossMap { get { @@ -2831,7 +3346,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Retarder_RetarderLossMap_Entry { get { @@ -2840,7 +3355,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die retarderSpeed ähnelt. + /// Looks up a localized string similar to retarderSpeed. /// </summary> public static string Retarder_RetarderLossmap_RetarderSpeed_Attr { get { @@ -2849,7 +3364,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torqueLoss ähnelt. + /// Looks up a localized string similar to torqueLoss. /// </summary> public static string Retarder_RetarderLossmap_TorqueLoss_Attr { get { @@ -2858,7 +3373,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ApplicationInformation ähnelt. + /// Looks up a localized string similar to Component_Type_Attr. + /// </summary> + public static string String { + get { + return ResourceManager.GetString("String", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ApplicationInformation. /// </summary> public static string Tag_ApplicationInformation { get { @@ -2867,7 +3391,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ResultDataSignature ähnelt. + /// Looks up a localized string similar to ResultDataSignature. /// </summary> public static string Tag_ResultDataSignatureNode { get { @@ -2876,7 +3400,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Vehicle ähnelt. + /// Looks up a localized string similar to Vehicle. /// </summary> public static string Tag_Vehicle { get { @@ -2885,7 +3409,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CCUpshiftMinAcceleration ähnelt. + /// Looks up a localized string similar to CCUpshiftMinAcceleration. /// </summary> public static string TorqueConverter_CCUpshiftMinAcceleration { get { @@ -2894,7 +3418,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Characteristics ähnelt. + /// Looks up a localized string similar to Characteristics. /// </summary> public static string TorqueConverter_Characteristics { get { @@ -2903,7 +3427,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string TorqueConverter_Characteristics_Entry { get { @@ -2912,7 +3436,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CLUpshiftMinAcceleration ähnelt. + /// Looks up a localized string similar to CLUpshiftMinAcceleration. /// </summary> public static string TorqueConverter_CLUpshiftMinAcceleration { get { @@ -2921,7 +3445,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Inertia ähnelt. + /// Looks up a localized string similar to Inertia. /// </summary> public static string TorqueConverter_Inertia { get { @@ -2930,7 +3454,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxInputSpeed ähnelt. + /// Looks up a localized string similar to MaxInputSpeed. /// </summary> public static string TorqueConverter_MaxInputSpeed { get { @@ -2939,7 +3463,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ReferenceRPM ähnelt. + /// Looks up a localized string similar to ReferenceRPM. /// </summary> public static string TorqueConverter_ReferenceRPM { get { @@ -2948,7 +3472,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ShiftPolygon ähnelt. + /// Looks up a localized string similar to ShiftPolygon. /// </summary> public static string TorqueConverter_ShiftPolygon { get { @@ -2957,7 +3481,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string TorqueConverter_ShiftPolygon_Entry { get { @@ -2966,7 +3490,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die speedRatio ähnelt. + /// Looks up a localized string similar to speedRatio. /// </summary> public static string TorqueConverterData_SpeedRatio_Attr { get { @@ -2975,7 +3499,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torqueRatio ähnelt. + /// Looks up a localized string similar to torqueRatio. /// </summary> public static string TorqueConverterData_TorqueRatio_Attr { get { @@ -2984,7 +3508,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die inputTorqueRef ähnelt. + /// Looks up a localized string similar to inputTorqueRef. /// </summary> public static string TorqueConverterDataMapping_InputTorqueRef_Attr { get { @@ -2993,7 +3517,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TechnicalPermissibleMaximumLadenMass ähnelt. + /// Looks up a localized string similar to TechnicalPermissibleMaximumLadenMass. /// </summary> public static string TPMLM { get { @@ -3002,7 +3526,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die inputSpeed ähnelt. + /// Looks up a localized string similar to inputSpeed. /// </summary> public static string TransmissionLossmap_InputSpeed_Attr { get { @@ -3011,7 +3535,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die inputTorque ähnelt. + /// Looks up a localized string similar to inputTorque. /// </summary> public static string TransmissionLossmap_InputTorque_Attr { get { @@ -3020,7 +3544,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torqueLoss ähnelt. + /// Looks up a localized string similar to torqueLoss. /// </summary> public static string TransmissionLossmap_TorqueLoss_Attr { get { @@ -3029,7 +3553,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die gCO2/tkm ähnelt. + /// Looks up a localized string similar to TyreDataDeclarationType. + /// </summary> + public static string Tyre_Type_Attr_TyreDataDeclarationType { + get { + return ResourceManager.GetString("Tyre_Type_Attr_TyreDataDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to gCO2/tkm. /// </summary> public static string Unit_gCO2Pertkm { get { @@ -3038,7 +3571,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die kg ähnelt. + /// Looks up a localized string similar to kg. /// </summary> public static string Unit_kg { get { @@ -3047,7 +3580,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die km ähnelt. + /// Looks up a localized string similar to km. /// </summary> public static string Unit_km { get { @@ -3056,7 +3589,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die km/h ähnelt. + /// Looks up a localized string similar to km/h. /// </summary> public static string Unit_kmph { get { @@ -3065,7 +3598,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die kW ähnelt. + /// Looks up a localized string similar to kW. /// </summary> public static string Unit_kW { get { @@ -3074,7 +3607,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ltr ähnelt. + /// Looks up a localized string similar to ltr. /// </summary> public static string Unit_ltr { get { @@ -3083,7 +3616,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die m/s² ähnelt. + /// Looks up a localized string similar to m/s². /// </summary> public static string Unit_mps2 { get { @@ -3092,7 +3625,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Nm ähnelt. + /// Looks up a localized string similar to Nm. /// </summary> public static string Unit_Nm { get { @@ -3101,7 +3634,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die rpm ähnelt. + /// Looks up a localized string similar to rpm. /// </summary> public static string Unit_RPM { get { @@ -3110,7 +3643,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die t ähnelt. + /// Looks up a localized string similar to t. /// </summary> public static string Unit_t { get { @@ -3119,7 +3652,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die W ähnelt. + /// Looks up a localized string similar to W. /// </summary> public static string Unit_W { get { @@ -3128,7 +3661,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die % ähnelt. + /// Looks up a localized string similar to %. /// </summary> public static string UnitPercent { get { @@ -3137,7 +3670,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoComponentEngineering ähnelt. + /// Looks up a localized string similar to VectoComponentEngineering. /// </summary> public static string VectoComponentEngineering { get { @@ -3146,7 +3679,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoCustomerInformation ähnelt. + /// Looks up a localized string similar to VectoCustomerInformation. /// </summary> public static string VectoCustomerReport { get { @@ -3155,7 +3688,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoInputDeclaration ähnelt. + /// Looks up a localized string similar to VectoInputDeclaration. /// </summary> public static string VectoInputDeclaration { get { @@ -3164,7 +3697,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoInputEngineering ähnelt. + /// Looks up a localized string similar to VectoInputEngineering. /// </summary> public static string VectoInputEngineering { get { @@ -3173,7 +3706,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineOnlyMode ähnelt. + /// Looks up a localized string similar to EngineOnlyMode. /// </summary> public static string VectoJob_EngineOnlyMode { get { @@ -3182,7 +3715,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MissionCycles ähnelt. + /// Looks up a localized string similar to MissionCycles. /// </summary> public static string VectoJob_MissionCycles { get { @@ -3191,7 +3724,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoOutput ähnelt. + /// Looks up a localized string similar to VectoOutput. /// </summary> public static string VectoManufacturerReport { get { @@ -3200,7 +3733,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VectoOutputPrimaryVehicle ähnelt. + /// Looks up a localized string similar to VectoOutputMultistage. + /// </summary> + public static string VectoOutputMultistage { + get { + return ResourceManager.GetString("VectoOutputMultistage", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to VectoOutputPrimaryVehicle. /// </summary> public static string VectoPrimaryVehicleReport { get { @@ -3209,7 +3751,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die maxAcceleration ähnelt. + /// Looks up a localized string similar to maxAcceleration. /// </summary> public static string Vehicle_AccelerationCurve_MaxAcceleration_Attr { get { @@ -3218,7 +3760,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die maxDeceleration ähnelt. + /// Looks up a localized string similar to maxDeceleration. /// </summary> public static string Vehicle_AccelerationCurve_MaxDeceleration_Attr { get { @@ -3227,7 +3769,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die vehicleSpeed ähnelt. + /// Looks up a localized string similar to vehicleSpeed. /// </summary> public static string Vehicle_AccelerationCurve_VehicleSpeed_Attr { get { @@ -3236,7 +3778,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ADAS ähnelt. + /// Looks up a localized string similar to ADAS. /// </summary> public static string Vehicle_ADAS { get { @@ -3245,7 +3787,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ATEcoRollReleaseLockupClutch ähnelt. + /// Looks up a localized string similar to ATEcoRollReleaseLockupClutch. /// </summary> public static string Vehicle_ADAS_ATEcoRollReleaseLockupClutch { get { @@ -3254,7 +3796,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EcoRoll ähnelt. + /// Looks up a localized string similar to EcoRoll. /// </summary> public static string Vehicle_ADAS_EcoRoll { get { @@ -3263,7 +3805,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EcoRollWithEngineStop ähnelt. + /// Looks up a localized string similar to EcoRollWithEngineStop. /// </summary> public static string Vehicle_ADAS_EcoRollWithEngineStopStart { get { @@ -3272,7 +3814,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EcoRollWithoutEngineStop ähnelt. + /// Looks up a localized string similar to EcoRollWithoutEngineStop. /// </summary> public static string Vehicle_ADAS_EcoRollWithoutEngineStop { get { @@ -3281,7 +3823,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineStopStart ähnelt. + /// Looks up a localized string similar to EngineStopStart. /// </summary> public static string Vehicle_ADAS_EngineStopStart { get { @@ -3290,7 +3832,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PredictiveCruiseControl ähnelt. + /// Looks up a localized string similar to PredictiveCruiseControl. /// </summary> public static string Vehicle_ADAS_PCC { get { @@ -3299,7 +3841,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AdvancedDriverAssist ähnelt. + /// Looks up a localized string similar to AdvancedDriverAssist. /// </summary> public static string Vehicle_AdvancedDriverAssist { get { @@ -3308,7 +3850,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die EngineStartStop ähnelt. + /// Looks up a localized string similar to EngineStartStop. /// </summary> public static string Vehicle_AdvancedDriverAssist_EngineStartStop { get { @@ -3317,7 +3859,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ActivationDelay ähnelt. + /// Looks up a localized string similar to ActivationDelay. /// </summary> public static string Vehicle_AdvancedDriverAssist_EngineStartStop_ActivationDelay { get { @@ -3326,7 +3868,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Enabled ähnelt. + /// Looks up a localized string similar to Enabled. /// </summary> public static string Vehicle_AdvancedDriverAssist_EngineStartStop_Enabled { get { @@ -3335,7 +3877,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxSpeed ähnelt. + /// Looks up a localized string similar to MaxSpeed. /// </summary> public static string Vehicle_AdvancedDriverAssist_EngineStartStop_MaxSpeed { get { @@ -3344,7 +3886,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MinOnTime ähnelt. + /// Looks up a localized string similar to MinOnTime. /// </summary> public static string Vehicle_AdvancedDriverAssist_EngineStartStop_MinOnTime { get { @@ -3353,7 +3895,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CdxA ähnelt. + /// Looks up a localized string similar to CdxA. /// </summary> public static string Vehicle_AirDragArea { get { @@ -3362,7 +3904,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AngledriveType ähnelt. + /// Looks up a localized string similar to AngledriveType. /// </summary> public static string Vehicle_AngledriveType { get { @@ -3371,7 +3913,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Articulated ähnelt. + /// Looks up a localized string similar to Articulated. /// </summary> public static string Vehicle_Articulated { get { @@ -3380,7 +3922,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die AxleConfiguration ähnelt. + /// Looks up a localized string similar to AxleConfiguration. /// </summary> public static string Vehicle_AxleConfiguration { get { @@ -3389,7 +3931,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CargoVolume ähnelt. + /// Looks up a localized string similar to BodyworkCode. + /// </summary> + public static string Vehicle_BodyworkCode { + get { + return ResourceManager.GetString("Vehicle_BodyworkCode", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to CargoVolume. /// </summary> public static string Vehicle_CargoVolume { get { @@ -3398,7 +3949,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Clutch ähnelt. + /// Looks up a localized string similar to Clutch. /// </summary> public static string Vehicle_Clutch { get { @@ -3407,7 +3958,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Components ähnelt. + /// Looks up a localized string similar to Components. /// </summary> public static string Vehicle_Components { get { @@ -3416,7 +3967,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CrossWindCorrectionData ähnelt. + /// Looks up a localized string similar to CrossWindCorrectionData. /// </summary> public static string Vehicle_CrosswindCorrectionData { get { @@ -3425,7 +3976,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Vehicle_CrosswindCorrectionData_Entry { get { @@ -3434,7 +3985,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die beta ähnelt. + /// Looks up a localized string similar to beta. /// </summary> public static string Vehicle_CrosswindCorrectionMap_Beta { get { @@ -3443,7 +3994,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CdScalingFactor ähnelt. + /// Looks up a localized string similar to CdScalingFactor. /// </summary> public static string Vehicle_CrosswindCorrectionMap_CdScalingFactor { get { @@ -3452,7 +4003,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die deltaCdxA ähnelt. + /// Looks up a localized string similar to deltaCdxA. /// </summary> public static string Vehicle_CrosswindCorrectionMap_DeltaCdxA { get { @@ -3461,7 +4012,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die vehicleSpeed ähnelt. + /// Looks up a localized string similar to vehicleSpeed. /// </summary> public static string Vehicle_CrosswindCorrectionMap_VehicleSpeed_Attr { get { @@ -3470,7 +4021,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CrossWindCorrectionMode ähnelt. + /// Looks up a localized string similar to CrossWindCorrectionMode. /// </summary> public static string Vehicle_CrossWindCorrectionMode { get { @@ -3479,7 +4030,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CurbMassChassis ähnelt. + /// Looks up a localized string similar to CurbMassChassis. /// </summary> public static string Vehicle_CurbMassChassis { get { @@ -3488,7 +4039,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CurbMassExtra ähnelt. + /// Looks up a localized string similar to CurbMassExtra. /// </summary> public static string Vehicle_CurbMassExtra { get { @@ -3497,7 +4048,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CurbWeightChassis ähnelt. + /// Looks up a localized string similar to CurbWeightChassis. /// </summary> public static string Vehicle_CurbWeightChassis { get { @@ -3506,7 +4057,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die CurbWeightExtra ähnelt. + /// Looks up a localized string similar to CurbWeightExtra. /// </summary> public static string Vehicle_CurbWeightExtra { get { @@ -3515,7 +4066,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die DualFuelVehicle ähnelt. + /// Looks up a localized string similar to DualFuelVehicle. /// </summary> public static string Vehicle_DualFuelVehicle { get { @@ -3524,7 +4075,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die GrossVehicleMass ähnelt. + /// Looks up a localized string similar to GrossVehicleMass. /// </summary> public static string Vehicle_GrossVehicleMass { get { @@ -3533,7 +4084,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die HybridElectricHDV ähnelt. + /// Looks up a localized string similar to HybridElectricHDV. /// </summary> public static string Vehicle_HybridElectricHDV { get { @@ -3542,7 +4093,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die IdlingSpeed ähnelt. + /// Looks up a localized string similar to IdlingSpeed. /// </summary> public static string Vehicle_IdlingSpeed { get { @@ -3551,7 +4102,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die LegislativeClass ähnelt. + /// Looks up a localized string similar to LegislativeClass. /// </summary> public static string Vehicle_LegislativeClass { get { @@ -3560,7 +4111,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Loading ähnelt. + /// Looks up a localized string similar to Loading. /// </summary> public static string Vehicle_Loading { get { @@ -3569,7 +4120,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxNetPower1 ähnelt. + /// Looks up a localized string similar to MaxNetPower1. /// </summary> public static string Vehicle_MaxNetPower1 { get { @@ -3578,7 +4129,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die MaxNetPower2 ähnelt. + /// Looks up a localized string similar to MaxNetPower2. /// </summary> public static string Vehicle_MaxNetPower2 { get { @@ -3587,7 +4138,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die NgTankSystem ähnelt. + /// Looks up a localized string similar to NgTankSystem. /// </summary> public static string Vehicle_NgTankSystem { get { @@ -3596,7 +4147,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTO ähnelt. + /// Looks up a localized string similar to PTO. /// </summary> public static string Vehicle_PTO { get { @@ -3605,7 +4156,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTOOtherElements ähnelt. + /// Looks up a localized string similar to PTOOtherElements. /// </summary> public static string Vehicle_PTO_OtherElements { get { @@ -3614,7 +4165,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTOShaftsGearWheels ähnelt. + /// Looks up a localized string similar to PTOShaftsGearWheels. /// </summary> public static string Vehicle_PTO_ShaftsGearWheels { get { @@ -3623,7 +4174,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTOCycle ähnelt. + /// Looks up a localized string similar to PTOCycle. /// </summary> public static string Vehicle_PTOCycle { get { @@ -3632,7 +4183,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die engineSpeed ähnelt. + /// Looks up a localized string similar to engineSpeed. /// </summary> public static string Vehicle_PTOCycle_EngineSpeed_Attr { get { @@ -3641,7 +4192,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Vehicle_PTOCycle_Entry { get { @@ -3650,7 +4201,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die time ähnelt. + /// Looks up a localized string similar to time. /// </summary> public static string Vehicle_PTOCycle_Time_Attr { get { @@ -3659,7 +4210,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torque ähnelt. + /// Looks up a localized string similar to torque. /// </summary> public static string Vehicle_PTOCycle_Torque_Attr { get { @@ -3668,7 +4219,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTOIdleLossMap ähnelt. + /// Looks up a localized string similar to PTOIdleLossMap. /// </summary> public static string Vehicle_PTOIdleLossMap { get { @@ -3677,7 +4228,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die engineSpeed ähnelt. + /// Looks up a localized string similar to engineSpeed. /// </summary> public static string Vehicle_PTOIdleLossMap_EngineSpeed_Attr { get { @@ -3686,7 +4237,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Vehicle_PTOIdleLossMap_Entry { get { @@ -3695,7 +4246,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ptoTorqueLoss ähnelt. + /// Looks up a localized string similar to ptoTorqueLoss. /// </summary> public static string Vehicle_PTOIdleLossMap_TorqueLoss_Attr { get { @@ -3704,7 +4255,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die PTOType ähnelt. + /// Looks up a localized string similar to PTOType. /// </summary> public static string Vehicle_PTOType { get { @@ -3713,7 +4264,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ClassBus ähnelt. + /// Looks up a localized string similar to ClassBus. /// </summary> public static string Vehicle_RegisteredClass { get { @@ -3722,7 +4273,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RetarderRatio ähnelt. + /// Looks up a localized string similar to RetarderRatio. /// </summary> public static string Vehicle_RetarderRatio { get { @@ -3731,7 +4282,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die RetarderType ähnelt. + /// Looks up a localized string similar to RetarderType. /// </summary> public static string Vehicle_RetarderType { get { @@ -3740,7 +4291,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SleeperCab ähnelt. + /// Looks up a localized string similar to SleeperCab. /// </summary> public static string Vehicle_SleeperCab { get { @@ -3749,7 +4300,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die SteeredAxles ähnelt. + /// Looks up a localized string similar to SteeredAxles. /// </summary> public static string Vehicle_SteeredAxles { get { @@ -3758,7 +4309,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TorqueLimits ähnelt. + /// Looks up a localized string similar to TorqueLimits. /// </summary> public static string Vehicle_TorqueLimits { get { @@ -3767,7 +4318,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die Entry ähnelt. + /// Looks up a localized string similar to Entry. /// </summary> public static string Vehicle_TorqueLimits_Entry { get { @@ -3776,7 +4327,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die gear ähnelt. + /// Looks up a localized string similar to gear. /// </summary> public static string Vehicle_TorqueLimits_Entry_Gear_Attr { get { @@ -3785,7 +4336,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die maxTorque ähnelt. + /// Looks up a localized string similar to maxTorque. /// </summary> public static string Vehicle_TorqueLimits_Entry_MaxTorque_Attr { get { @@ -3794,7 +4345,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die TechnicalPermissibleMaximumLadenMass ähnelt. + /// Looks up a localized string similar to TechnicalPermissibleMaximumLadenMass. /// </summary> public static string Vehicle_TPMLM { get { @@ -3803,7 +4354,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehicleCategory ähnelt. + /// Looks up a localized string similar to VehicleCategory. /// </summary> public static string Vehicle_VehicleCategory { get { @@ -3812,7 +4363,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VehicleCode ähnelt. + /// Looks up a localized string similar to VehicleCode. /// </summary> public static string Vehicle_VehicleCode { get { @@ -3821,7 +4372,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VIN ähnelt. + /// Looks up a localized string similar to VIN. /// </summary> public static string Vehicle_VIN { get { @@ -3830,7 +4381,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die VocationalVehicle ähnelt. + /// Looks up a localized string similar to VocationalVehicle. /// </summary> public static string Vehicle_VocationalVehicle { get { @@ -3839,7 +4390,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die ZeroEmissionVehicle ähnelt. + /// Looks up a localized string similar to ZeroEmissionVehicle. /// </summary> public static string Vehicle_ZeroEmissionVehicle { get { @@ -3848,7 +4399,16 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torqueLimit ähnelt. + /// Looks up a localized string similar to VehicleDeclarationType. + /// </summary> + public static string VehicleAttr_VehicleDeclarationType { + get { + return ResourceManager.GetString("VehicleAttr_VehicleDeclarationType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to torqueLimit. /// </summary> public static string XMLManufacturerReport_torqueLimit { get { @@ -3857,7 +4417,7 @@ namespace TUGraz.VectoCommon.Resources { } /// <summary> - /// Sucht eine lokalisierte Zeichenfolge, die torqueLimitPercent ähnelt. + /// Looks up a localized string similar to torqueLimitPercent. /// </summary> public static string XMLManufacturerReport_torqueLimitPercent { get { diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index 0ef468b9c65a226bdca60efbccc175b39f17f698..a5029ad819dc4661e6973774b7039c6fa2dfefa7 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1377,4 +1377,199 @@ <data name="Report_Result_PassengerCount" xml:space="preserve"> <value>PassengerCount</value> </data> + <data name="Bus_LegislativeCategory" xml:space="preserve"> + <value>LegislativeCategory</value> + </data> + <data name="Bus_ADAS_APTEcoRollReleaseLockupClutch" xml:space="preserve"> + <value>APTEcoRollReleaseLockupClutch</value> + </data> + <data name="Bus_AirdragModifiedMultistage" xml:space="preserve"> + <value>AirdragModifiedMultistage</value> + </data> + <data name="Bus_CorrectedActualMass" xml:space="preserve"> + <value>CorrectedActualMass</value> + </data> + <data name="Bus_NumberPassengersLowerDeck" xml:space="preserve"> + <value>NumberPassengersLowerDeck</value> + </data> + <data name="Bus_NumberPassengersUpperDeck" xml:space="preserve"> + <value>NumberPassengersUpperDeck</value> + </data> + <data name="Bus_AirElectricHeater" xml:space="preserve"> + <value>AirElectricHeater</value> + </data> + <data name="Bus_HeatPumpModeDriver" xml:space="preserve"> + <value>HeatPumpModeDriverCompartment</value> + </data> + <data name="Bus_HeatPumpModePassenger" xml:space="preserve"> + <value>HeatPumpModePassengerCompartment</value> + </data> + <data name="Bus_HeatPumpTypeDriver" xml:space="preserve"> + <value>HeatPumpTypeDriverCompartment</value> + </data> + <data name="Bus_HeatPumpTypePassenger" xml:space="preserve"> + <value>HeatPumpTypePassengerCompartment</value> + </data> + <data name="Bus_OtherHeatingTechnology" xml:space="preserve"> + <value>OtherHeatingTechnology</value> + </data> + <data name="Bus_WaterElectricHeater" xml:space="preserve"> + <value>WaterElectricHeater</value> + </data> + <data name="VectoOutputMultistage" xml:space="preserve"> + <value>VectoOutputMultistage</value> + </data> + <data name="Bus_PrimaryVehicle" xml:space="preserve"> + <value>PrimaryVehicle</value> + </data> + <data name="ManufacturingStage" xml:space="preserve"> + <value>ManufacturingStage</value> + </data> + <data name="ManufacturingStage_StageCount" xml:space="preserve"> + <value>stageCount</value> + </data> + <data name="Bus_DeclarationType" xml:space="preserve"> + <value>DeclarationType</value> + </data> + <data name="AirDrag_CdxA_0" xml:space="preserve"> + <value>CdxA_0</value> + </data> + <data name="AirDrag_Data_Type_Attr" xml:space="preserve"> + <value>AirDragDataDeclarationType</value> + </data> + <data name="AirDrag_DeclaredCdxA1" xml:space="preserve"> + <value>DeclaredCdxA</value> + </data> + <data name="AirDrag_TransferredCDxA" xml:space="preserve"> + <value>TransferredCdxA</value> + </data> + <data name="Attr_Type" xml:space="preserve"> + <value>type</value> + </data> + <data name="Auxiliaries_Type_Attr_DataDeclarationType" xml:space="preserve"> + <value>AuxiliariesDataDeclarationType</value> + </data> + <data name="AxleGear_Type_Attr" xml:space="preserve"> + <value>AxlegearDataDeclarationType</value> + </data> + <data name="AxleWheels_Type_Attr_AxleWheelsDeclarationType" xml:space="preserve"> + <value>AxleWheelsDataDeclarationType</value> + </data> + <data name="Axle_Type_Attr_AxleDataDeclarationType" xml:space="preserve"> + <value>AxleDataDeclarationType</value> + </data> + <data name="Components_type_attr" xml:space="preserve"> + <value>VehicleComponentsType</value> + </data> + <data name="Component_Type_Attr" xml:space="preserve"> + <value>type</value> + </data> + <data name="Component_Type_Attr_PTO" xml:space="preserve"> + <value>PTOType</value> + </data> + <data name="Engine_Type_Attr" xml:space="preserve"> + <value>EngineDataDeclarationType</value> + </data> + <data name="Gearbox_attr_GearboxDataDeclarationType" xml:space="preserve"> + <value>GearboxDataDeclarationType</value> + </data> + <data name="Gearbox_Gears_Attr_GearsDeclarationType" xml:space="preserve"> + <value>GearsDeclarationType</value> + </data> + <data name="Retarder_Attr_DataDeclarationType" xml:space="preserve"> + <value>RetarderDataDeclarationType</value> + </data> + <data name="String" xml:space="preserve"> + <value>Component_Type_Attr</value> + </data> + <data name="Tyre_Type_Attr_TyreDataDeclarationType" xml:space="preserve"> + <value>TyreDataDeclarationType</value> + </data> + <data name="VehicleAttr_VehicleDeclarationType" xml:space="preserve"> + <value>VehicleDeclarationType</value> + </data> + <data name="BusAux_PneumaticSystem_SCRReagentDosing" xml:space="preserve"> + <value>PneumaticSCRReagentDosing</value> + </data> + <data name="AirDragArea_TransferredCdxA" xml:space="preserve"> + <value>TransferredCdxA</value> + </data> + <data name="Bus_VehicleDeclarationType" xml:space="preserve"> + <value>VehicleDeclarationType</value> + </data> + <data name="Vehicle_BodyworkCode" xml:space="preserve"> + <value>BodyworkCode</value> + </data> + <data name="BusAux_LEDLights" xml:space="preserve"> + <value>LEDLights</value> + </data> + <data name="Bus_DoorDriveTechnology" xml:space="preserve"> + <value>DoorDriveTechnology</value> + </data> + <data name="BusAux_HVAC" xml:space="preserve"> + <value>HVAC</value> + </data> + <data name="CompressorDrive" xml:space="preserve"> + <value>CompressorDrive</value> + </data> + <data name="Bus_ChassisConfiguration" xml:space="preserve"> + <value>ChassisConfiguration</value> + </data> + <data name="Bus_NumberPassengerSeatsLowerDeck" xml:space="preserve"> + <value>NumberPassengerSeatsLowerDeck</value> + </data> + <data name="Bus_NumberPassengerSeatsUpperDeck" xml:space="preserve"> + <value>NumberPassengerSeatsUpperDeck</value> + </data> + <data name="Bus_NumberPassengersStandingLowerDeck" xml:space="preserve"> + <value>NumberPassengersStandingLowerDeck</value> + </data> + <data name="Bus_NumberPassengersStandingUpperDeck" xml:space="preserve"> + <value>NumberPassengersStandingUpperDeck</value> + </data> + <data name="BusAux_ElectricSystem_Battery" xml:space="preserve"> + <value>Battery</value> + </data> + <data name="BusAux_ElectricSystem_BatteryTechnology" xml:space="preserve"> + <value>BatteryTechnology</value> + </data> + <data name="BusAux_ElectricSystem_Capacitor" xml:space="preserve"> + <value>Capacitor</value> + </data> + <data name="BusAux_ElectricSystem_CapacitorTechnology" xml:space="preserve"> + <value>CapacitorTechnology</value> + </data> + <data name="BusAux_ElectricSystem_NominalVoltage" xml:space="preserve"> + <value>NominalVoltage</value> + </data> + <data name="BusAux_ElectricSystem_RatedCapacitance" xml:space="preserve"> + <value>RatedCapacitance</value> + </data> + <data name="BusAux_ElectricSystem_RatedCapacity" xml:space="preserve"> + <value>RatedCapacity</value> + </data> + <data name="BusAux_ElectricSystem_RatedCurrent" xml:space="preserve"> + <value>RatedCurrent</value> + </data> + <data name="BusAux_ElectricSystem_RatedRatedVoltage" xml:space="preserve"> + <value>RatedVoltage</value> + </data> + <data name="BusAux_ElectricSystem_RatedVoltage" xml:space="preserve"> + <value>RatedVoltage</value> + </data> + <data name="BusAux_ElectricSystem_SmartAlternator" xml:space="preserve"> + <value>SmartAlternator</value> + </data> + <data name="BusAux_ElectricSystem_SupplyFromHEVPossible" xml:space="preserve"> + <value>SupplyFromHEVPossible</value> + </data> + <data name="BusAux_Fan" xml:space="preserve"> + <value>Fan</value> + </data> + <data name="BusAux_SteeringPump" xml:space="preserve"> + <value>SteeringPump</value> + </data> + <data name="BusAux_Technology" xml:space="preserve"> + <value>Technology</value> + </data> </root> \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Utils/GuiLabelAttribute.cs b/VectoCommon/VectoCommon/Utils/GuiLabelAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..c178106a983fd61a65c4c3c98f4e8e3b7db0a8e5 --- /dev/null +++ b/VectoCommon/VectoCommon/Utils/GuiLabelAttribute.cs @@ -0,0 +1,13 @@ +using System; + +namespace TUGraz.VectoCommon.Utils +{ + public class GuiLabelAttribute : Attribute + { + public string Label { get; private set; } + public GuiLabelAttribute(string label) + { + Label = label; + } + } +} \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Utils/SI.cs b/VectoCommon/VectoCommon/Utils/SI.cs index 4f9ad9d4f424fcb2bc1acf6611d96c939d3a3ec2..20f87411af63df03583ad3aa8359576c6c2c879f 100644 --- a/VectoCommon/VectoCommon/Utils/SI.cs +++ b/VectoCommon/VectoCommon/Utils/SI.cs @@ -605,6 +605,12 @@ namespace TUGraz.VectoCommon.Utils return SIBase<Watt>.Create(wattSecond.Val / second.Value()); } + [DebuggerHidden] + public static AmpereSecond operator /(WattSecond wattSecond, Volt volt) + { + return SIBase<AmpereSecond>.Create(wattSecond.Val / volt.Value()); + } + public static Kilogram operator *(WattSecond ws, KilogramPerWattSecond kpws) { return SIBase<Kilogram>.Create(ws.Val * kpws.Value()); diff --git a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs index 1edb3e8523453858d680ae149b045908a6344271..f25905cc4fd67dcc7bd5f1ffd4df37d88b814a11 100644 --- a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs @@ -45,6 +45,11 @@ namespace TUGraz.VectoCommon.Utils Units = units; } + public string GetUnitString() + { + return Units; + } + public double Value { get { return _value; } } protected bool Equals(ConvertedSI other) @@ -251,6 +256,18 @@ namespace TUGraz.VectoCommon.Utils { return new ConvertedSI(jpm.Value() * 1e-3, "MJ/km"); } + + public static Meter ConvertToMeter(this ConvertedSI mm) + { + if (mm.Units != "mm") { + return null; + } + //return ElementExists(XMLNames.Bus_HeighIntegratedBody) + // ? GetDouble(XMLNames.Bus_HeighIntegratedBody).SI(Unit.SI.Milli.Meter).Cast<Meter>() + // : null; + + return mm.Value.SI(Unit.SI.Milli.Meter).Cast<Meter>(); + } } } diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj index de77b1ce0bbd136eee558d26f8b723c92a9ea903..a36d0241331fc42a4a5c7005a4ea5c6f904735ac 100644 --- a/VectoCommon/VectoCommon/VectoCommon.csproj +++ b/VectoCommon/VectoCommon/VectoCommon.csproj @@ -25,7 +25,8 @@ <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> - <DefineConstants>RELEASE_CANDIDATE</DefineConstants> + <DefineConstants> + </DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> @@ -78,9 +79,9 @@ <Compile Include="BusAuxiliaries\SmartResult.cs" /> <Compile Include="Hashing\IVectoHash.cs" /> <Compile Include="Hashing\VectoComponents.cs" /> - <Compile Include="Models\AlternatorType.cs" /> <Compile Include="InputData\DataSourceType.cs" /> <Compile Include="InputData\DigestData.cs" /> + <Compile Include="Models\AlternatorType.cs" /> <Compile Include="Models\GearshiftPosition.cs" /> <Compile Include="Models\HybridStrategyResponse.cs" /> <Compile Include="Models\PowertrainPosition.cs" /> @@ -127,13 +128,14 @@ <DesignTime>True</DesignTime> </Compile> <Compile Include="Resources\XMLNames.Designer.cs"> - <DependentUpon>XMLNames.resx</DependentUpon> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> + <DependentUpon>XMLNames.resx</DependentUpon> </Compile> <Compile Include="Utils\DoubleExtensionMethods.cs" /> <Compile Include="Utils\EnumerableExtensionMethods.cs" /> <Compile Include="Utils\EnumHelper.cs" /> + <Compile Include="Utils\GuiLabelAttribute.cs" /> <Compile Include="Utils\IntExtensionMethods.cs" /> <Compile Include="Utils\SI.cs" /> <Compile Include="Utils\SIConvertExtensionMethods.cs" /> @@ -153,8 +155,8 @@ <ItemGroup> <EmbeddedResource Include="Resources\XMLNames.resx"> <Generator>PublicResXFileCodeGenerator</Generator> - <LastGenOutput>XMLNames.Designer.cs</LastGenOutput> <SubType>Designer</SubType> + <LastGenOutput>XMLNames.Designer.cs</LastGenOutput> </EmbeddedResource> </ItemGroup> <ItemGroup> diff --git a/VectoCommon/VectoHashing/VectoHash.cs b/VectoCommon/VectoHashing/VectoHash.cs index 2a6a8d221870ebd03cc53589f0cf7b94d01e18a9..f4d9e03b24aeb0ffa36f6b7147ff51b851c1a5ff 100644 --- a/VectoCommon/VectoHashing/VectoHash.cs +++ b/VectoCommon/VectoHashing/VectoHash.cs @@ -305,6 +305,9 @@ namespace TUGraz.VectoHashing if (Document.DocumentElement.LocalName.Equals("VectoOutputPrimaryVehicle")) { return VectoComponents.VectoPrimaryVehicleInformation; } + if (Document.DocumentElement.LocalName.Equals(XMLNames.ManufacturingStage)) { + return VectoComponents.VectoManufacturingStage; + } throw new Exception("unknown document structure! neither input data nor output data format"); } diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/final.VIF_Report_5.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/final.VIF_Report_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..22abd19676c4ad6431007b2975b21b056211ab81 --- /dev/null +++ b/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/final.VIF_Report_5.xml @@ -0,0 +1,852 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.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> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + </Data> + </TorqueConverter> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <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="AuxiliaryDataPIFType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </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-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Z4frlN/8ioSA2aLbZJXxA9KFpZc+K8LhrmLwah9iQT4=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-60d49d82f57045a08a3b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>TV0NKLdUGs3PIv1mOYSjH5AU/VfV6sajVEjYO0VUSIM=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.23442</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1409.92</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.33702</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1710.65</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.80994</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1158.90</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.20267</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1407.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.19937</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1040.84</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.27415</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1266.23</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.65024</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">927.29</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.97487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1024.39</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.30637</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1488.50</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.96878</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1830.26</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.70173</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1224.27</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.52533</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1504.55</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.81161</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1085.72</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.21263</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1335.02</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.83860</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">941.10</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.16752</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1038.51</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.07040</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">811.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.52049</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">844.48</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.24338</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">970.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.85369</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1088.81</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.54684</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">846.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.09233</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">886.39</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-06-08T18:59:03.7698542Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#VEH-88dcf76d37a64b5eaf70"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4MFxDdYDnYyRrUdyIPFhEYwbyqqJl3MlYtXMaB/RQis=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-bdbd4d15937b460bac07"> + <HashPreviousStage> + <di:Reference URI="#VEH-88dcf76d37a64b5eaf70"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>4MFxDdYDnYyRrUdyIPFhEYwbyqqJl3MlYtXMaB/RQis=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-75e3023cd8384f3c9895"> + <v2.8:Manufacturer>IVT</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>false</v2.8:Interiorlights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Headlights>false</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>0</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>cooling</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 4-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV</SimulationToolVersion> + <Date>2021-06-08T19:16:37.2732909Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MST-bdbd4d15937b460bac07"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Gf8zuIFbnoV0Uu7vMHJNxr7tiV12rS/TdX0+WzDS8z8=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-853f372b8a2f4acaa8d2"> + <HashPreviousStage> + <di:Reference URI="#MST-bdbd4d15937b460bac07"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Gf8zuIFbnoV0Uu7vMHJNxr7tiV12rS/TdX0+WzDS8z8=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-3a0b04069aee4b10b8dd"> + <v2.8:Manufacturer>TUG</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Inffeldgasse 19</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>250</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns:v2.0="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>4.90</v2.0:CdxA_0> + <v2.0:TransferredCdxA>4.90</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>4.90</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV</SimulationToolVersion> + <Date>2021-06-08T19:17:10.0533609Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MST-853f372b8a2f4acaa8d2"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>8SinxaBKYPZvF7ntzAqO1EdTE/QiWp+yr8/e0wUO/DA=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-4e4b3629643e459d9c2c"> + <HashPreviousStage> + <di:Reference URI="#MST-853f372b8a2f4acaa8d2"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>8SinxaBKYPZvF7ntzAqO1EdTE/QiWp+yr8/e0wUO/DA=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-5a6a0d735e1d4eb88b87"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>10680</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>18000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:AirdragModifiedMultistage>true</v2.8:AirdragModifiedMultistage> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>86</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>0</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>0</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CE</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>10633</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>270</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <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>4.90</CdxA_0> + <TransferredCdxA>4.90</TransferredCdxA> + <DeclaredCdxA>4.90</DeclaredCdxA> + </Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>6</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>none</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>N.A.</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>15000</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>false</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV</SimulationToolVersion> + <Date>2021-06-08T19:17:34.7076217Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MST-4e4b3629643e459d9c2c"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>tFVU88I1bcALZmtSUnTM5c9ue8L1NstlboChNj2NBOc=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="5"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-67c850fef6ac40c8be1f"> + <HashPreviousStage> + <di:Reference URI="#MST-4e4b3629643e459d9c2c"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>tFVU88I1bcALZmtSUnTM5c9ue8L1NstlboChNj2NBOc=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-2d3ccda8f72345568864"> + <v2.8:Manufacturer>Somebody</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Address</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-1234</v2.8:VIN> + <v2.8:Date>2021-06-07T22:00:00Z</v2.8:Date> + <v2.8:AirdragModifiedMultistage>true</v2.8:AirdragModifiedMultistage> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.0="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>4.90</v2.0:CdxA_0> + <v2.0:TransferredCdxA>4.90</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>4.90</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.7.3.2247-DEV</SimulationToolVersion> + <Date>2021-06-08T19:18:29.4586936Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MST-67c850fef6ac40c8be1f"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>UgLuCebJJ9KWYO9tDVVuLjlGRvC5qfsZudmyZQWJiic=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> \ No newline at end of file diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/vecto_multistage_primary_vehicle_stage_2_3_group41.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/vecto_multistage_primary_vehicle_stage_2_3_group41.xml new file mode 100644 index 0000000000000000000000000000000000000000..25f603ea99e35ce43fd01a44b2bf8917aa71a3d8 --- /dev/null +++ b/VectoCommon/VectoHashingTest/Testdata/XML/Multistage/vecto_multistage_primary_vehicle_stage_2_3_group41.xml @@ -0,0 +1,645 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="PIF-d10aff76c5d149948046" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>false</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3: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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <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.1</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="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> +<!-- <MaxAlternatorPower>15000</MaxAlternatorPower> + <ElectricStorageCapacity>50</ElectricStorageCapacity> +--> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1520.18</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1828.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1241.44</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1493.13</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1102.09</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1330.13</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> + <Payload unit="kg">879.90</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1051.61</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1599.38</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1949.71</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1306.47</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1590.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1154.46</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1405.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">967.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1066.11</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">816.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">849.31</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">998.54</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1115.67</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">851.63</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">890.63</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>VTu71FU/Sijqk2Z8sScROGolObZK/UNTycf4K2CAgEs=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>VTu71FU/Sijqk2Z8sScROGolObZK/UNTycf4K2CAgEs=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MSTG-1"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Muaefd8RS+EjtmMVbSejxbSy5Tgcpm/WqnoLk+YH8ho=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#MSTG-1"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Muaefd8RS+EjtmMVbSejxbSy5Tgcpm/WqnoLk+YH8ho=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress></v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#MSTG-2"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>l7Z22F1bPMaAD4+0WNY+cahbjDKE80gxYv6K91YTMcU=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> diff --git a/VectoCommon/VectoHashingTest/VectoHashTest.cs b/VectoCommon/VectoHashingTest/VectoHashTest.cs index 104c8c4ba5dfdf585960b08357ee19c32a32777a..3609921c551eeb4a2dd52b52707941a2df7db10b 100644 --- a/VectoCommon/VectoHashingTest/VectoHashTest.cs +++ b/VectoCommon/VectoHashingTest/VectoHashTest.cs @@ -32,11 +32,17 @@ using System; using System.IO; using System.Linq; +using System.Runtime.Remoting.Metadata.W3cXsd2001; using System.Text; using System.Xml; using System.Xml.XPath; +using Ninject; using NUnit.Framework; using TUGraz.VectoCommon.Hashing; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Utils; using TUGraz.VectoHashing; using VectoHashingTest.Utils; @@ -54,12 +60,20 @@ namespace VectoHashingTest public const string ReferenceXMLEngine = @"Testdata\XML\Reference\vecto_engine-sample.xml"; public const string ReferenceXMLVehicle = @"Testdata\XML\Reference\vecto_vehicle-sample_FULL.xml"; + + protected IXMLInputDataReader xmlInputReader; + private IKernel _kernel; + [OneTimeSetUp] public void RunBeforeAnyTests() { Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + xmlInputReader = _kernel.Get<IXMLInputDataReader>(); } + [TestCase] public void TestComponentsEngineFile() { @@ -523,5 +537,124 @@ namespace VectoHashingTest var h = VectoHash.Load(file); Assert.IsTrue(h.ValidateHash()); } + + public const string MultistageFile = + @"Testdata\XML\Multistage\vecto_multistage_primary_vehicle_stage_2_3_group41.xml"; + + + + [TestCase(MultistageFile)] + public void TestMultistageComputeHashPrimary(string file) + { + var h = VectoHash.Load(file); + + var primaryHash = h.ComputeHash(VectoComponents.VectoPrimaryVehicleInformation); + + Assert.AreEqual("VTu71FU/Sijqk2Z8sScROGolObZK/UNTycf4K2CAgEs=", primaryHash); + } + + + [TestCase(MultistageFile)] + public void TestMultistageReadHashPrimary(string file) + { + var h = VectoHash.Load(file); + + var existingHash = h.ReadHash(VectoComponents.VectoPrimaryVehicleInformation); + Assert.AreEqual("VTu71FU/Sijqk2Z8sScROGolObZK/UNTycf4K2CAgEs=", existingHash); + } + + + [TestCase(MultistageFile)] + public void TestMultistageComputeInterimStage2(string file) + { + var h = VectoHash.Load(file); + + var primaryHash = h.ComputeHash(VectoComponents.VectoManufacturingStage, 0); + + Assert.AreEqual("Muaefd8RS+EjtmMVbSejxbSy5Tgcpm/WqnoLk+YH8ho=", primaryHash); + } + + + [TestCase(MultistageFile)] + public void TestMultistageComputeInterimStage3(string file) + { + var h = VectoHash.Load(file); + + var primaryHash = h.ComputeHash(VectoComponents.VectoManufacturingStage, 1); + + Assert.AreEqual("l7Z22F1bPMaAD4+0WNY+cahbjDKE80gxYv6K91YTMcU=", primaryHash); + } + + + [TestCase(MultistageFile)] + public void TestMultistageReadInterimStage2(string file) + { + var h = VectoHash.Load(file); + + var primaryHash = h.ReadHash(VectoComponents.VectoManufacturingStage, 0); + + Assert.AreEqual("Muaefd8RS+EjtmMVbSejxbSy5Tgcpm/WqnoLk+YH8ho=", primaryHash); + } + + + [TestCase(MultistageFile)] + public void TestMultistageReadInterimStage3(string file) + { + var h = VectoHash.Load(file); + + var primaryHash = h.ReadHash(VectoComponents.VectoManufacturingStage, 1); + + Assert.AreEqual("l7Z22F1bPMaAD4+0WNY+cahbjDKE80gxYv6K91YTMcU=", primaryHash); + } + + + [TestCase(@"Testdata\XML\Multistage\final.VIF_Report_5.xml")] + public void TestMultistageVerifyHashStructure(string file) + { + var h = VectoHash.Load(file); + + var hashCalcPrimary = h.ComputeHash(VectoComponents.VectoPrimaryVehicleInformation); + var hashReadPrimary = h.ReadHash(VectoComponents.VectoPrimaryVehicleInformation); + + Assert.AreEqual(hashReadPrimary, hashCalcPrimary); + + var hashCalcInterim1 = h.ComputeHash(VectoComponents.VectoManufacturingStage, 0); + var hashReadInterim1 = h.ReadHash(VectoComponents.VectoManufacturingStage, 0); + + Assert.AreEqual(hashReadInterim1, hashCalcInterim1); + + var hashCalcInterim2 = h.ComputeHash(VectoComponents.VectoManufacturingStage, 1); + var hashReadInterim2 = h.ReadHash(VectoComponents.VectoManufacturingStage, 1); + + Assert.AreEqual(hashReadInterim2, hashCalcInterim2); + + var hashCalcInterim3 = h.ComputeHash(VectoComponents.VectoManufacturingStage, 2); + var hashReadInterim3 = h.ReadHash(VectoComponents.VectoManufacturingStage, 2); + + Assert.AreEqual(hashReadInterim3, hashCalcInterim3); + + var hashCalcInterim4 = h.ComputeHash(VectoComponents.VectoManufacturingStage, 3); + var hashReadInterim4 = h.ReadHash(VectoComponents.VectoManufacturingStage, 3); + + Assert.AreEqual(hashReadInterim4, hashCalcInterim4); + + + var reader = XmlReader.Create(file); + + var vif = xmlInputReader.CreateDeclaration(reader) as IMultistageBusInputDataProvider; + var inputDataProvider = new XMLDeclarationVIFInputData(vif, null); + + + Assert.AreEqual(hashReadPrimary, inputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.VehicleSignatureHash.DigestValue); + + Assert.AreEqual(hashReadPrimary, inputDataProvider.MultistageJobInputData.JobInputData.ManufacturingStages[0].HashPreviousStage.DigestValue); + + Assert.AreEqual(hashReadInterim1, inputDataProvider.MultistageJobInputData.JobInputData.ManufacturingStages[1].HashPreviousStage.DigestValue); + + Assert.AreEqual(hashReadInterim2, inputDataProvider.MultistageJobInputData.JobInputData.ManufacturingStages[2].HashPreviousStage.DigestValue); + + Assert.AreEqual(hashReadInterim3, inputDataProvider.MultistageJobInputData.JobInputData.ManufacturingStages[3].HashPreviousStage.DigestValue); + + } } } diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj index f5e6cd0be4107ca7dd7790b5300bb8f40a9f2747..d35e63fe05dec5b49e7a1a918cb5fa94d40a7b64 100644 --- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj +++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj @@ -38,6 +38,9 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="Ninject, Version=3.3.4.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Ninject.3.3.4\lib\net45\Ninject.dll</HintPath> + </Reference> <Reference Include="nunit.framework, Version=3.11.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <HintPath>..\..\packages\NUnit.3.11.0\lib\net45\nunit.framework.dll</HintPath> <Private>True</Private> @@ -68,6 +71,12 @@ <Content Include="Testdata\XML\Invalid\invalid-comp.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="Testdata\XML\Multistage\final.VIF_Report_5.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="Testdata\XML\Multistage\vecto_multistage_primary_vehicle_stage_2_3_group41.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="Testdata\XML\Reference\vecto_engine-sample.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -186,6 +195,7 @@ <None Include="app.config" /> <None Include="packages.config" /> </ItemGroup> + <ItemGroup /> <Choose> <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> <ItemGroup> diff --git a/VectoCommon/VectoHashingTest/packages.config b/VectoCommon/VectoHashingTest/packages.config index e3afc87f5e3af45e5596a5ddf7ed6f959d586d47..9ef6331a66f08aae1cddae075b1b3770320188fb 100644 --- a/VectoCommon/VectoHashingTest/packages.config +++ b/VectoCommon/VectoHashingTest/packages.config @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> + <package id="Ninject" version="3.3.4" targetFramework="net45" /> <package id="NUnit" version="3.11.0" targetFramework="net45" /> <package id="NUnit3TestAdapter" version="3.11.2" targetFramework="net45" /> </packages> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs index 775d46cc102ba87e8f572f557e27d027f692885e..aa0e5815a8293e7ae0035bcc8ef301f66b85d5f7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON case Constants.FileExtensions.ElectricMotorFile: tmp = JSONInputDataFactory.ReadElectricMotorData(filename, tolerateMissing); break; - case Constants.FileExtensions.HybridStrategyParameters: + case Constants.FileExtensions.HybridStrategyParameters: tmp = JSONInputDataFactory.ReadHybridStrategyParameters(filename, tolerateMissing); break; case ".vaux": @@ -233,7 +233,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return VehicleData.VIN; } } - public LegislativeClass LegislativeClass + public string LegislativeCategory + { + get { return null; } + } + + public LegislativeClass? LegislativeClass { get { return VehicleData.LegislativeClass; } } @@ -362,11 +367,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return null; } } - public ConsumerTechnology DoorDriveTechnology + public ConsumerTechnology? DoorDriveTechnology { get { return VehicleData.DoorDriveTechnology; } } + public VehicleDeclarationType VehicleDeclarationType { get; } + IVehicleComponentsEngineering IVehicleEngineeringInputData.Components { get { return this; } @@ -518,6 +525,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return DeclarationData.Vehicle.SleeperCabDefault; } } + public bool? AirdragModifiedMultistage { get; } + public TankSystem? TankSystem { get { return DeclarationData.Vehicle.TankSystemDefault; } @@ -553,17 +562,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return null; } } - public RegistrationClass RegisteredClass + public RegistrationClass? RegisteredClass { get { return RegistrationClass.unknown; } } - public int NumberOfPassengersUpperDeck + public int? NumberPassengerSeatsUpperDeck + { + get { return 0; } + } + + public int? NumberPassengerSeatsLowerDeck { get { return 0; } } - public int NumberOfPassengersLowerDeck + public int? NumberPassengersStandingLowerDeck + { + get { return 0; } + } + public int? NumberPassengersStandingUpperDeck { get { return 0; } } @@ -573,12 +591,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return VehicleData.CargoVolume; } } - public VehicleCode VehicleCode + public VehicleCode? VehicleCode { - get { return VehicleCode.NOT_APPLICABLE; } + get { return VectoCommon.Models.VehicleCode.NOT_APPLICABLE; } } - public bool LowEntry + public bool? LowEntry { get { return VehicleData.LowEntry; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs index 8c04adeb30fe8a730a7986c0234eac71eaccad25..277c6edb47bf522870fde73cd6a263affd18bdb6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs @@ -339,9 +339,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return _fuels ?? (_fuels = ReadFuels()); } } - public virtual IList<IEngineFuelDelcarationInputData> Fuels + public virtual IList<IEngineFuelDeclarationInputData> Fuels { - get { return (_fuels ?? (_fuels = ReadFuels())).Cast<IEngineFuelDelcarationInputData>().ToList(); } + get { return (_fuels ?? (_fuels = ReadFuels())).Cast<IEngineFuelDeclarationInputData>().ToList(); } } protected virtual IList<IEngineFuelEngineeringInputData> ReadFuels() diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs index 085c4e159aa0f398837e7af60924766861067c6d..9423f90afb9cab310a78fcb09c6af0f7a29e1f40 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs @@ -1125,28 +1125,34 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public IVehicleDeclarationInputData Vehicle { get { return PrimaryVehicle; } } public string JobName { get; } public string ShiftStrategy { get { return ""; } } + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } #endregion } - public class JSONInputDataComptededBusFactorMethodV7 : JSONFile, IDeclarationInputDataProvider, IDeclarationJobInputData + public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IDeclarationInputDataProvider, IDeclarationJobInputData { private readonly IXMLInputDataReader _xmlInputReader; + protected internal string PrimaryInputDataFile; + protected internal string CompletedInputDataFile; - public JSONInputDataComptededBusFactorMethodV7(JObject data, string filename, bool tolerateMissing = false) : base( + public JSONInputDataCompletedBusFactorMethodV7(JObject data, string filename, bool tolerateMissing = false) : base( data, filename, tolerateMissing) { var kernel = new StandardKernel(new VectoNinjectModule()); _xmlInputReader = kernel.Get<IXMLInputDataReader>(); - var primaryInputData = Path.Combine(BasePath, Body.GetEx<string>("PrimaryVehicleResults")); - var completedInputData = Path.Combine(BasePath, Body.GetEx<string>("CompletedVehicle")); + PrimaryInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("PrimaryVehicleResults")); + CompletedInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("CompletedVehicle")); //PrimaryVehicle = CreateReader(primaryInputData); - Vehicle = _xmlInputReader.CreateDeclaration(completedInputData).JobInputData.Vehicle; - PrimaryVehicleData = (_xmlInputReader.Create(primaryInputData) as IPrimaryVehicleInformationInputDataProvider); + Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle; + PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IPrimaryVehicleInformationInputDataProvider); JobName = Vehicle.VIN; } @@ -1179,6 +1185,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public IVehicleDeclarationInputData Vehicle { get; } public string JobName { get; } public string ShiftStrategy { get { return ""; } } + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } #endregion } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs index 152b4e9b7bcd1dff7874d1584413479098b6d810..656b79d22c4e4872186d4753210265fac1bcb168 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs @@ -96,10 +96,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON case 6: return new JSONInputDataSingleBusV6(json, filename, tolerateMissing); case 7: - return new JSONInputDataComptededBusFactorMethodV7(json, filename, tolerateMissing); - case 8: + return new JSONInputDataCompletedBusFactorMethodV7(json, filename, tolerateMissing); + case 8: return new JSONInputDataV8_Hybrid(json, filename, tolerateMissing); - case 9: + case 9: return new JSONInputDataV9_BEV(json, filename, tolerateMissing); default: throw new VectoException("Job-File: Unsupported FileVersion. Got: {0} ", version); @@ -179,16 +179,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON var json = ReadFile(filename); var version = ReadVersion(json); switch (version) { - case 1: + case 1: return new JSONHybridStrategyParameters(json, filename, tolerateMissing); default: throw new VectoException("HybridStrategyParameter-File: Unsupported FileVersion. Got {0}", version); - } - } + } + } - public static IREESSPackInputData ReadREESSData(string filename, bool tolerateMissing) + public static IREESSPackInputData ReadREESSData(string filename, bool tolerateMissing) { var json = ReadFile(filename); var version = ReadVersion(json); diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs index 63768e0c813b12b7270a6b9c839f9dcda6e58391..d3c28e7c63f292e7115c79a8c222f3b4c3c7eb94 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs @@ -273,6 +273,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } + public SquareMeter TransferredAirDragArea + { + get + { + return AirDragArea; + } + } + + public SquareMeter AirDragArea_0 + { + get + { + return AirDragArea; + } + } + public virtual CrossWindCorrectionMode CrossWindCorrectionMode { get { return CrossWindCorrectionModeHelper.Parse(Body.GetEx<string>("CdCorrMode")); } @@ -575,13 +591,41 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #region Implementation of IElectricSupplyDeclarationData + public virtual AlternatorType AlternatorTechnology + { + get + { + return Body["Aux"]?["ElectricSupply"]?.GetEx<string>("Technology").ParseEnum<AlternatorType>() ?? AlternatorType.Conventional; + } + } + public virtual IList<IAlternatorDeclarationInputData> Alternators { get { - return Body["Aux"]?["ElectricSupply"]?["Alternators"] - .Select(x => new AlternatorInputData(x.GetEx<string>("Technology"))) - .Cast<IAlternatorDeclarationInputData>().ToList() ?? new List<IAlternatorDeclarationInputData>(); + var maxAlternatorPower = + Body["Aux"]?["ElectricSupply"]?.GetEx<double>("MaxAlternatorPower").SI<Watt>() ?? null; + + if (maxAlternatorPower == null) { + return null; + } + + return new[] { new AlternatorInputData(48.SI<Volt>(), maxAlternatorPower / 48.SI<Volt>()) } + .Cast<IAlternatorDeclarationInputData>().ToList(); + } + } + + public IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage + { + get + { + var batteryCapacity = Body["Aux"]?["ElectricSupply"]?.GetEx<double>("ElectricStorageCapacity").SI(Unit.SI.Watt.Hour).Cast<WattSecond>() ?? null; + if (batteryCapacity == null) { + return null; + } + + return new[] { new BusAuxBatteryInputData("none", 48.SI<Volt>(), batteryCapacity / 48.SI<Volt>()), } + .Cast<IBusAuxElectricStorageDeclarationInputData>().ToList(); } } @@ -589,27 +633,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #region Implementation of IElectricConsumersDeclarationData - public virtual bool InteriorLightsLED + public virtual bool? InteriorLightsLED { get { return false; } } - public virtual bool DayrunninglightsLED + public virtual bool? DayrunninglightsLED { get { return false; } } - public virtual bool PositionlightsLED + public virtual bool? PositionlightsLED { get { return false; } } - public virtual bool HeadlightsLED + public virtual bool? HeadlightsLED { get { return false; } } - public virtual bool BrakelightsLED + public virtual bool? BrakelightsLED { get { return false; } } @@ -619,11 +663,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return Body["Aux"]?["ElectricSupply"]?.GetEx<bool>("SmartElectrics") ?? false; } } - public Watt MaxAlternatorPower - { - get { return Body["Aux"]?["ElectricSupply"]?.GetEx<double>("MaxAlternatorPower").SI<Watt>() ?? null; } - } - public WattSecond ElectricStorageCapacity { get { return Body["Aux"]?["ElectricSupply"]?.GetEx<double>("ElectricStorageCapacity").SI(Unit.SI.Watt.Hour).Cast<WattSecond>() ?? null; } @@ -633,6 +672,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #region Implementation of IPneumaticSupplyDeclarationData + public CompressorDrive CompressorDrive { get; } public string Clutch { get; } public virtual double Ratio { get { return Body["Aux"]?["PneumaticSupply"]?.GetEx<double>("Ratio") ?? 0.0; } } public virtual string CompressorSize @@ -671,16 +711,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #region Implementation of IHVACBusAuxiliariesDeclarationData - public virtual BusHVACSystemConfiguration SystemConfiguration { get; set; } - public virtual ACCompressorType CompressorTypeDriver { get { return ACCompressorType.Unknown; } } - public virtual ACCompressorType CompressorTypePassenger { get { return ACCompressorType.Unknown; } } + public virtual BusHVACSystemConfiguration? SystemConfiguration { get; set; } + public virtual HeatPumpType? HeatPumpTypeDriverCompartment { get { return null; } } + public virtual HeatPumpMode? HeatPumpModeDriverCompartment { get { return null; } } + public virtual IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments + { + get { return null; } + } public virtual Watt AuxHeaterPower { get { return null; } } - public virtual bool DoubleGlazing { get { return false; } } + public virtual bool? DoubleGlazing { get { return false; } } public virtual bool HeatPump { get { return false; } } - public virtual bool AdjustableCoolantThermostat { get { return Body["Aux"]?["HVAC"]?.GetEx<bool>("AdjustableCoolantThermostat") ?? false; } } - public virtual bool AdjustableAuxiliaryHeater { get { return false; } } + public bool? OtherHeatingTechnology { get; } + public virtual bool? AdjustableCoolantThermostat { get { return Body["Aux"]?["HVAC"]?.GetEx<bool>("AdjustableCoolantThermostat") ?? false; } } + public virtual bool? AdjustableAuxiliaryHeater { get { return false; } } public virtual bool EngineWasteGasHeatExchanger { get { return Body["Aux"]?["HVAC"]?.GetEx<bool>("EngineWasteGasHeatExchanger") ?? false; } } - public virtual bool SeparateAirDistributionDucts { get { return false; } } + public virtual bool? SeparateAirDistributionDucts { get { return false; } } + public virtual bool? WaterElectricHeater { get; } + public virtual bool? AirElectricHeater { get; } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index f8214b4ba69a1db1153c8493ae117aaeda8fb125..cd231ad39666df421a3091944a5d571dde2b6170 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -88,8 +88,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { switch (Body.GetEx<String>("PowertrainConfiguration")) { - case "ParallelHybrid": return VectoSimulationJobType.ParallelHybridVehicle; - case "BatteryElectric": return VectoSimulationJobType.BatteryElectricVehicle; + case "ParallelHybrid": return VectoSimulationJobType.ParallelHybridVehicle; + case "BatteryElectric": return VectoSimulationJobType.BatteryElectricVehicle; default: throw new VectoException("Invalid parameter value {0}", Body.GetEx<String>("PowertrainConfiguration")); } } @@ -131,7 +131,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } - protected virtual JSONElectricStorageEngineeringInputData ReadBatteries() + protected virtual JSONElectricStorageEngineeringInputData ReadBatteries() { return new JSONElectricStorageEngineeringInputData() { Count = Body["Battery"].GetEx<int>("NumPacks"), @@ -194,9 +194,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON return _adasInputData ?? (_adasInputData = new JSONADASInputDataV9(this)); } - #endregion + #endregion - #endregion + #endregion } // ################################################################### @@ -218,7 +218,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON { return _adasInputData ?? (_adasInputData = new JSONADASInputDataV8(this)); } - } + } // ################################################################### // ################################################################### @@ -228,7 +228,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON IVehicleComponentsDeclaration, IVehicleComponentsEngineering, IAxlesEngineeringInputData, IAxlesDeclarationInputData //IAdvancedDriverAssistantSystemsEngineering, IAdvancedDriverAssistantSystemDeclarationInputData - { + { public JSONVehicleDataV7(JObject data, string fileName, IJSONVehicleComponents job, bool tolerateMissing = false) : base(data, fileName, tolerateMissing) { @@ -259,12 +259,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return Constants.NOT_AVailABLE; } } - public virtual LegislativeClass LegislativeClass + public string LegislativeCategory + { + get { return null; } + } + + public virtual LegislativeClass? LegislativeClass { get { return Body["LegislativeClass"] != null ? Body["LegislativeClass"].Value<string>().ParseEnum<LegislativeClass>() - : LegislativeClass.Unknown; + : VectoCommon.Models.LegislativeClass.Unknown; } } @@ -350,7 +355,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } public virtual Meter EntranceHeight { get { return null; } } - public virtual ConsumerTechnology DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual VehicleDeclarationType VehicleDeclarationType { get; } + IVehicleComponentsEngineering IVehicleEngineeringInputData.Components { @@ -383,9 +390,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON protected virtual IAdvancedDriverAssistantSystemsEngineering GetADS() { return _adasInputData ?? (_adasInputData = new JSONADASInputDataV7(this)); - } + } - public virtual double InitialSOC + public virtual double InitialSOC { get { return double.NaN; } } @@ -541,7 +548,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } - IPTOTransmissionInputData IVehicleComponentsEngineering.PTOTransmissionInputData + IPTOTransmissionInputData IVehicleComponentsEngineering.PTOTransmissionInputData { get { return _ptoInputData ?? (_ptoInputData = new JSONPTOTransmissioninputData(this)); } } @@ -552,7 +559,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } - IAxlesEngineeringInputData IVehicleComponentsEngineering.AxleWheels + IAxlesEngineeringInputData IVehicleComponentsEngineering.AxleWheels { get { return this; } } @@ -607,6 +614,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return DeclarationData.Vehicle.SleeperCabDefault; } } + public virtual bool? AirdragModifiedMultistage { get; } + public virtual TankSystem? TankSystem { get { return DeclarationData.Vehicle.TankSystemDefault; } @@ -638,17 +647,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return null; } } - public virtual RegistrationClass RegisteredClass + public virtual RegistrationClass? RegisteredClass { get { return RegistrationClass.unknown; } } - public virtual int NumberOfPassengersUpperDeck + public virtual int? NumberPassengerSeatsUpperDeck { get { return 0; } } - public virtual int NumberOfPassengersLowerDeck + public virtual int? NumberPassengerSeatsLowerDeck + { + get { return 0; } + } + + public int? NumberPassengersStandingLowerDeck + { + get { return 0; } + } + public int? NumberPassengersStandingUpperDeck { get { return 0; } } @@ -698,12 +716,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } } - public virtual VehicleCode VehicleCode + public virtual VehicleCode? VehicleCode { - get { return VehicleCode.NOT_APPLICABLE; } + get { return VectoCommon.Models.VehicleCode.NOT_APPLICABLE; } } - public virtual bool LowEntry { get { return false; } } + public virtual bool? LowEntry { get { return false; } } IVehicleComponentsDeclaration IVehicleDeclarationInputData.Components { @@ -754,7 +772,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } public virtual XmlNode XMLSource { get { return null; } } - } + } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs index 62f55c0c8793c072c83ad9432047466d0ee102ec..d3664bbff3d5ff203d062f8cc9bd4d0dabed240f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs @@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON genInput.GetEx<double>("EC_Solar").SI<WattPerSquareMeter>(), 1.0); //retVal.EnviromentalConditions_BatchFile = genInput.GetEx<string>("EC_EnviromentalConditions_BatchFile"); //retVal.BatchMode = genInput.GetEx<bool>("EC_EnviromentalConditions_BatchEnabled"); - retVal.HVACCompressorType = ACCompressorTypeExtensions.ParseEnum(genInput.GetEx<string>("AC_CompressorType")); + retVal.HVACCompressorType = HeatPumpTypeHelper.Parse(genInput.GetEx<string>("AC_CompressorType")); retVal.HVACMaxCoolingPower = genInput.GetEx<double>("AC_CompressorCapacitykW").SI(Unit.SI.Kilo.Watt).Cast<Watt>(); retVal.VentilationOnDuringHeating = genInput.GetEx<bool>("VEN_VentilationOnDuringHeating"); retVal.VentilationWhenBothHeatingAndACInactive = genInput.GetEx<bool>("VEN_VentilationWhenBothHeatingAndACInactive"); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs index b3ad0e43c9ea08759f76e2a7785f571fb7a16e84..b718f1f21a347c54071146eec348bc3d0dff2b4a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs @@ -138,11 +138,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { get { var node = GetNode(XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, required:false); - if (node == null) { + var busNode = GetNode(XMLNames.Bus_ADAS_APTEcoRollReleaseLockupClutch, required: false); + if (node == null && busNode == null) { return null; } - return XmlConvert.ToBoolean(node.InnerText); + var innerText = node == null ? busNode.InnerText : node.InnerText; + return XmlConvert.ToBoolean(innerText); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs index cb080f00a4be3d10ed6e55938c632c4433014c8f..ff2c9f12ad7dcf357557d62fadc26b8c2f9c4776 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs @@ -65,6 +65,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } + public virtual SquareMeter TransferredAirDragArea + { + get + { + return ElementExists(XMLNames.AirDrag_TransferredCDxA) + ? GetDouble(XMLNames.AirDrag_TransferredCDxA).SI<SquareMeter>() + : null; + } + } + + public virtual SquareMeter AirDragArea_0 + { + get + { + return ElementExists(XMLNames.AirDrag_CdxA_0) + ? GetDouble(XMLNames.AirDrag_CdxA_0).SI<SquareMeter>() + : null; + } + } + public override CertificationMethod CertificationMethod { get { return CertificationMethod.Measured; } @@ -107,4 +127,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationAirdragDataProviderV28 : XMLDeclarationAirdragDataProviderV10 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + + public new const string XSD_TYPE = "AirDragModifiedUseStandardValueType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationAirdragDataProviderV28(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, + string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + } + } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs index a7969365aeb3ca1c43259b18baaa28e8b75fa585..6df8613817ce08c127bd6fa1a80995ec13d89929 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs @@ -125,22 +125,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryVehicleBusAngledriveDataProviderV01 : XMLDeclarationAngledriveDataProviderV10 + public class XMLDeclarationMultistagePrimaryVehicleBusAngledriveDataProviderV01 : XMLDeclarationAngledriveDataProviderV10 { - public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "AngledriveDataPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - - - public XMLDeclarationPrimaryVehicleBusAngledriveDataProviderV01( + + public XMLDeclarationMultistagePrimaryVehicleBusAngledriveDataProviderV01( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + #region Overrides of AbstractCommonComponentType + + public override string CertificationNumber + { + get { return GetString(XMLNames.Component_CertificationNumber, required: false); } + } + + #endregion + + protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs index 49514efe4ff292fd1ac020d5a87f2712f81e31b4..8561242de3b64271da4effafc5e711d195be4c07 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs @@ -129,19 +129,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryVehicleBusAxlegearDataProviderV01 : XMLDeclarationAxlegearDataProviderV10 + public class XMLDeclarationMultistagePrimaryVehicleBusAxlegearDataProviderV01 : XMLDeclarationAxlegearDataProviderV10 { - public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "AxlegearDataPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - - public XMLDeclarationPrimaryVehicleBusAxlegearDataProviderV01( - IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + public XMLDeclarationMultistagePrimaryVehicleBusAxlegearDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + #region Overrides of AbstractCommonComponentType + + public override string CertificationNumber + { + get { return GetString(XMLNames.Component_CertificationNumber, required: false); } + } + + #endregion + protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs index c1b96a49c01f6d0fcc88f63f735f6d44272e5362..bc81ba80b3a323581b554c909b10bbcd8c9f98d6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs @@ -138,4 +138,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return NAMESPACE_URI; } } } + + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationAxlesDataProviderV01 : XMLDeclarationAxlesDataProviderV10 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "AxleWheelsDataPIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationAxlesDataProviderV01( + IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base( + vehicle, componentNode, sourceFile) { } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs index 5950ca9baf168bb65fc111a03e2e73f6a930665e..44b1c188e4bf54803bbb918fa84b68e02e689474 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Windows.Forms; using System.Xml; 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.InputData.FileIO.XML.Common; @@ -25,7 +25,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - + public XMLDeclarationPrimaryBusAuxiliariesDataProviderV26( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(componentNode) { } @@ -43,7 +43,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual IList<string> SteeringPumpTechnology { - get { + get + { return GetNodes(new[] { "SteeringPump", XMLNames.Auxiliaries_Auxiliary_Technology }) .Cast<XmlNode>().Select(x => x.InnerText).ToList(); } @@ -78,15 +79,52 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IElectricSupplyDeclarationData + public AlternatorType AlternatorTechnology + { + get + { + return GetString(new[] + { XMLNames.BusAux_ElectricSystem, XMLNames.BusAux_ElectricSystem_AlternatorTechnology }) + .ParseEnum<AlternatorType>(); + } + } + public virtual IList<IAlternatorDeclarationInputData> Alternators { - get { - return GetNodes(new[] { XMLNames.BusAux_ElectricSystem, XMLNames.BusAux_ElectricSystem_AlternatorTechnology }) - .Cast<XmlNode>().Select(x => new AlternatorInputData(x.InnerText)) + get + { + return GetNodes(new[] { XMLNames.BusAux_ElectricSystem, "SmartAlternator" }) + .Cast<XmlNode>().Select(x => { + var ratedCurrent = GetNode("RatedCurrent", x).InnerText.ToDouble().SI<Ampere>(); + var ratedVoltage = GetNode("RatedVoltage", x).InnerText.ToDouble().SI<Volt>(); + return new AlternatorInputData(ratedVoltage, ratedCurrent); + }) .Cast<IAlternatorDeclarationInputData>().ToList(); } } + public IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage + { + get + { + return GetNodes(new[] { XMLNames.BusAux_ElectricSystem, "Battery" }) + .Cast<XmlNode>().Select(x => { + var ratedCapacity = GetNode("RatedCapacity", x).InnerText.ToDouble().SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(); + var voltage = GetNode("NominalVoltage", x).InnerText.ToDouble().SI<Volt>(); + var technology = GetNode("BatteryTechnology", x).InnerText; + return new BusAuxBatteryInputData(technology, voltage, ratedCapacity); + }) + .Concat(GetNodes(new [] { XMLNames.BusAux_ElectricSystem, "Capacitor" }).Cast<XmlNode>() + .Select(x => { + var ratedCapacity = GetNode("RatedCapacitance", x).InnerText.ToDouble().SI<Farad>(); + var voltage = GetNode("RatedVoltage", x).InnerText.ToDouble().SI<Volt>(); + var technology = GetNode("CapacitorTechnology", x).InnerText; + return new BusAuxCapacitorInputData(technology, voltage, ratedCapacity); + }).Cast<IBusAuxElectricStorageDeclarationInputData>()) + .Cast<IBusAuxElectricStorageDeclarationInputData>().ToList(); + } + } + public virtual bool SmartElectrics { get { return GetBool(new[] { XMLNames.BusAux_ElectricSystem, XMLNames.BusAux_ElectricSystem_SmartElectrics }); } @@ -99,7 +137,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual WattSecond ElectricStorageCapacity { - get { + get + { return ElementExists("ElectricStorageCapacity") ? GetDouble("ElectricStorageCapacity").SI(Unit.SI.Watt.Hour).Cast<WattSecond>() : null; @@ -113,7 +152,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual ConsumerTechnology AirsuspensionControl { - get { + get + { return ConsumerTechnologyHelper.Parse( GetString(new[] { XMLNames.BusAux_PneumaticSystem, XMLNames.BusAux_PneumaticSystem_AirsuspensionControl })); } @@ -121,9 +161,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual ConsumerTechnology AdBlueDosing { - get { + get + { return GetBool( - new[] { XMLNames.BusAux_PneumaticSystem, XMLNames.BusAux_PneumaticSystem_AdBlueDosing }) + new[] { XMLNames.BusAux_PneumaticSystem, XMLNames.BusAux_PneumaticSystem_SCRReagentDosing }) ? ConsumerTechnology.Pneumatically : ConsumerTechnology.Electrically; } @@ -133,6 +174,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IPneumaticSupplyDeclarationData + public CompressorDrive CompressorDrive + { + get { return CompressorDriveHelper.Parse(GetString(XMLNames.CompressorDrive)); } + } + public virtual string Clutch { get { return GetString(new[] { XMLNames.BusAux_PneumaticSystem, "Clutch" }); } } public virtual double Ratio @@ -147,14 +193,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual bool SmartAirCompression { - get { + get + { return GetBool(new[] { XMLNames.BusAux_PneumaticSystem, XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem }); } } public virtual bool SmartRegeneration { - get { + get + { return GetBool(new[] { XMLNames.BusAux_PneumaticSystem, XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem }); } } @@ -163,19 +211,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IHVACBusAuxiliariesDeclarationData - public virtual BusHVACSystemConfiguration SystemConfiguration + public virtual BusHVACSystemConfiguration? SystemConfiguration { get { return BusHVACSystemConfiguration.Unknown; } } - public virtual ACCompressorType CompressorTypeDriver + public virtual HeatPumpType? HeatPumpTypeDriverCompartment { get { return null; } } + public virtual HeatPumpMode? HeatPumpModeDriverCompartment { get { return null; } } + public virtual IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments { - get { return ACCompressorType.None; } - } - - public virtual ACCompressorType CompressorTypePassenger - { - get { return ACCompressorType.None; } + get { return null; } } public virtual Watt AuxHeaterPower @@ -183,7 +228,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return 0.SI<Watt>(); } } - public virtual bool DoubleGlazing + public virtual bool? DoubleGlazing { get { return false; } } @@ -193,12 +238,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return false; } } - public virtual bool AdjustableCoolantThermostat + public virtual bool? OtherHeatingTechnology + { + get { return false; } + } + + public virtual bool? AdjustableCoolantThermostat { get { return GetBool(new[] { "HVAC", "AdjustableCoolantThermostat" }); } } - public virtual bool AdjustableAuxiliaryHeater + public virtual bool? AdjustableAuxiliaryHeater { get { return false; } } @@ -208,7 +258,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetBool(new[] { "HVAC", "EngineWasteGasHeatExchanger" }); } } - public virtual bool SeparateAirDistributionDucts + public virtual bool? SeparateAirDistributionDucts + { + get { return false; } + } + + public virtual bool? WaterElectricHeater + { + get { return false; } + } + public virtual bool? AirElectricHeater { get { return false; } } @@ -216,6 +275,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + public class XMLDeclarationPrimaryBusAuxiliariesDataProviderV01 : XMLDeclarationPrimaryBusAuxiliariesDataProviderV26 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public new const string XSD_TYPE = "AuxiliaryDataPIFType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationPrimaryBusAuxiliariesDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) + : base(vehicle, componentNode, sourceFile) { } + + + public override XmlNode XMLSource + { + get { return BaseNode; } + } + } + public class XMLDeclarationCompleteBusAuxiliariesDataProviderV26 : XMLDeclarationPrimaryBusAuxiliariesDataProviderV26, IElectricConsumersDeclarationData { public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V26; @@ -229,14 +306,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IBusAuxiliariesDeclarationData - + public override IList<string> SteeringPumpTechnology { get { return null; } } public override IElectricConsumersDeclarationData ElectricConsumers { - get { + get + { return this; } } @@ -245,27 +323,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider //public override IPneumaticConsumersDeclarationData PneumaticConsumers { get { return null; } } - public override BusHVACSystemConfiguration SystemConfiguration + public override BusHVACSystemConfiguration? SystemConfiguration { get { return BusHVACSystemConfigurationHelper.Parse(GetString(XMLNames.Bus_SystemConfiguration)); } } - public override ACCompressorType CompressorTypeDriver - { - get { return ACCompressorTypeExtensions.ParseEnum(GetString(XMLNames.Bus_DriverAC)); } - } - - public override ACCompressorType CompressorTypePassenger - { - get { return ACCompressorTypeExtensions.ParseEnum(GetString(XMLNames.Bus_PassengerAC)); } - } - public override Watt AuxHeaterPower { get { return GetDouble(XMLNames.Bus_AuxiliaryHeaterPower).SI<Watt>(); } } - public override bool DoubleGlazing + public override bool? DoubleGlazing { get { return GetBool(XMLNames.Bus_DoubleGlazing); } } @@ -275,12 +343,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetBool(XMLNames.Bus_HeatPump); } } - public override bool AdjustableCoolantThermostat + public override bool? AdjustableCoolantThermostat { get { return GetBool(new[] { "HVAC", XMLNames.Bus_AdjustableCoolantThermostat }); } } - public override bool AdjustableAuxiliaryHeater + public override bool? AdjustableAuxiliaryHeater { get { return GetBool(XMLNames.Bus_AdjustableAuxiliaryHeater); } } @@ -290,7 +358,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return false; } } - public override bool SeparateAirDistributionDucts + public override bool? SeparateAirDistributionDucts { get { return GetBool(XMLNames.Bus_SeparateAirDistributionDucts); } } @@ -299,16 +367,260 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IElectricConsumersDeclarationData - public virtual bool InteriorLightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Interiorlights }); } } + public virtual bool? InteriorLightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Interiorlights }); } } - public virtual bool DayrunninglightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Dayrunninglights }); } } + public virtual bool? DayrunninglightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Dayrunninglights }); } } - public virtual bool PositionlightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Positionlights }); } } + public virtual bool? PositionlightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Positionlights }); } } - public virtual bool HeadlightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Headlights }); } } + public virtual bool? HeadlightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Headlights }); } } - public virtual bool BrakelightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Brakelights }); } } + public virtual bool? BrakelightsLED { get { return GetBool(new[] { "LEDLights", XMLNames.Bus_Brakelights }); } } #endregion } + + public class XMLDeclarationCompleteBusAuxiliariesDataProviderV28 : XMLDeclarationCompleteBusAuxiliariesDataProviderV26 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + + public new const string XSD_TYPE = "CompletedVehicleAuxiliaryDataDeclarationType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationCompleteBusAuxiliariesDataProviderV28(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) + : base(vehicle, componentNode, sourceFile) {} + + private bool IsBusHVACTagEmpty() + { + return SystemConfiguration == null && HeatPumpTypeDriverCompartment == null && HeatPumpModeDriverCompartment == null && + HeatPumpPassengerCompartments?.Any() != true && AuxHeaterPower == null && DoubleGlazing == null && + AdjustableAuxiliaryHeater == null && SeparateAirDistributionDucts == null && WaterElectricHeater == null && + AirElectricHeater == null && OtherHeatingTechnology == null ; + } + + public override XmlNode XMLSource + { + get { return BaseNode; } + } + + public override IHVACBusAuxiliariesDeclarationData HVACAux + { + get { return IsBusHVACTagEmpty() ? null : this; } + } + + + public override BusHVACSystemConfiguration? SystemConfiguration + { + get { return ElementExists(XMLNames.Bus_SystemConfiguration) + ? BusHVACSystemConfigurationHelper.Parse(GetString(XMLNames.Bus_SystemConfiguration)) : null; } + } + + public override HeatPumpType? HeatPumpTypeDriverCompartment + { + get + { + return ElementExists(XMLNames.Bus_HeatPumpTypeDriver) + ? HeatPumpTypeHelper.Parse(GetString(XMLNames.Bus_HeatPumpTypeDriver)) : (HeatPumpType?)null; + } + } + + public override HeatPumpMode? HeatPumpModeDriverCompartment + { + get + { + if (HeatPumpTypeDriverCompartment == HeatPumpType.none && !ElementExists(XMLNames.Bus_HeatPumpModeDriver)) + return HeatPumpMode.N_A; + + return ElementExists(XMLNames.Bus_HeatPumpModeDriver) + ? (HeatPumpMode?)HeatPumpModeHelper.Parse(GetString(XMLNames.Bus_HeatPumpModeDriver)) : null; + } + } + + + + public override IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments + { + get + { + return ElementExists(XMLNames.Bus_HeatPumpTypePassenger) + && ElementExists(XMLNames.Bus_HeatPumpModePassenger) + ? GetHeatPumpPassengerCompartments() : null; + } + } + + private IList<Tuple<HeatPumpType, HeatPumpMode>> GetHeatPumpPassengerCompartments() + { + var pumpTypeNodes = GetNodes(XMLNames.Bus_HeatPumpTypePassenger); + var pumpModeNodes = GetNodes(XMLNames.Bus_HeatPumpModePassenger); + + if (pumpTypeNodes == null || pumpModeNodes == null) + return null; + if (pumpTypeNodes.Count != pumpModeNodes.Count ) + return null; + + var heatPumps = new List<Tuple<HeatPumpType, HeatPumpMode>>(); + + for (int i = 0; i < pumpTypeNodes.Count; i++) { + var pumpType = HeatPumpTypeHelper.Parse(pumpTypeNodes[i]?.InnerText); + var pumpMode = HeatPumpModeHelper.Parse(pumpModeNodes[i]?.InnerText); + heatPumps.Add(new Tuple<HeatPumpType, HeatPumpMode>(pumpType, pumpMode)); + } + + return heatPumps.Any() != true ? null : heatPumps; + } + + public override Watt AuxHeaterPower + { + get + { + return ElementExists(XMLNames.Bus_AuxiliaryHeaterPower) + ? GetDouble(XMLNames.Bus_AuxiliaryHeaterPower).SI<Watt>() : null; + } + } + + public override bool? DoubleGlazing + { + get + { + return ElementExists(XMLNames.Bus_DoubleGlazing) + ? GetBool(XMLNames.Bus_DoubleGlazing) : (bool?)null; + } + } + + public override bool? AdjustableAuxiliaryHeater + { + get + { + return ElementExists(XMLNames.Bus_AdjustableAuxiliaryHeater) + ? GetBool(XMLNames.Bus_AdjustableAuxiliaryHeater) : (bool?)null; + } + } + + public override bool? SeparateAirDistributionDucts + { + get + { + return ElementExists(XMLNames.Bus_SeparateAirDistributionDucts) + ? GetBool(XMLNames.Bus_SeparateAirDistributionDucts) : (bool?)null; + } + } + + + public override bool? WaterElectricHeater + { + get + { + return ElementExists(XMLNames.Bus_WaterElectricHeater) + ? GetBool(XMLNames.Bus_WaterElectricHeater) : (bool?)null; + } + } + + public override bool? AirElectricHeater + { + get + { + return ElementExists(XMLNames.Bus_AirElectricHeater) + ? GetBool(XMLNames.Bus_AirElectricHeater) : (bool?)null; + } + } + + public override bool? OtherHeatingTechnology + { + get + { + return ElementExists(XMLNames.Bus_OtherHeatingTechnology) + ? GetBool(XMLNames.Bus_OtherHeatingTechnology) : (bool?)null; + } + } + + private bool IsElectricConsumersTagEmpty() + { + return InteriorLightsLED == null && DayrunninglightsLED == null && PositionlightsLED == null && + HeadlightsLED == null && BrakelightsLED == null; + } + + + public override IElectricConsumersDeclarationData ElectricConsumers + { + get { return IsElectricConsumersTagEmpty() ? null : this; } + } + + public override bool? InteriorLightsLED + { + get + { + if (!ElementExists(XMLNames.Bus_Interiorlights)) + return null; + return GetBool(new[] { "LEDLights", XMLNames.Bus_Interiorlights }); + } + } + + public override bool? DayrunninglightsLED + { + get + { + if (!ElementExists(XMLNames.Bus_Dayrunninglights)) + return null; + return GetBool(new[] { "LEDLights", XMLNames.Bus_Dayrunninglights }); + } + } + + public override bool? PositionlightsLED + { + get + { + if (!ElementExists(XMLNames.Bus_Positionlights)) + return null; + return GetBool(new[] { "LEDLights", XMLNames.Bus_Positionlights }); + } + } + + public override bool? HeadlightsLED + { + get + { + if (!ElementExists(XMLNames.Bus_Headlights)) + return null; + return GetBool(new[] { "LEDLights", XMLNames.Bus_Headlights }); + } + } + + public override bool? BrakelightsLED + { + get + { + if (!ElementExists(XMLNames.Bus_Brakelights)) + return null; + return GetBool(new[] { "LEDLights", XMLNames.Bus_Brakelights }); + } + } + + + public override IPneumaticSupplyDeclarationData PneumaticSupply + { + get { return null; } + } + + public override IElectricSupplyDeclarationData ElectricSupply + { + get { return null; } + } + + public override IPneumaticConsumersDeclarationData PneumaticConsumers + { + get { return null; } + } + + public override string FanTechnology + { + get { return null; } + } + + public override IList<string> SteeringPumpTechnology + { + get { return null; } + } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs index b4e57ac882f17589cedd6af3fecee2c9a5b7d0c2..8fa63495e3114561f43772b3cdcd7fda86c700e5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs @@ -33,6 +33,7 @@ using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.Utils; @@ -80,7 +81,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return _gearboxInputData ?? (_gearboxInputData = ComponentReader.GearboxInputData); } } - + public virtual ITorqueConverterDeclarationInputData TorqueConverterInputData { get { return _torqueconverterInputData ?? (_torqueconverterInputData = ComponentReader.TorqueConverterInputData); } @@ -158,7 +159,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public XMLDeclarationComponentsDataProviderV20( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base( - vehicle, componentNode, sourceFile) { } + vehicle, componentNode, sourceFile) + { } protected override XNamespace SchemaNamespace { @@ -214,10 +216,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Overrides of XMLDeclarationComponentsDataProviderV10 - public override IAxleGearInputData AxleGearInputData { get { - return null; + public override IAxleGearInputData AxleGearInputData + { + get + { + return null; //throw new NotSupportedException("No Axlegeardata available"); - } } + } + } #endregion @@ -249,7 +255,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { get { return null; } } - + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData { get { return null; } @@ -267,11 +273,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLDeclarationComponentsPrimaryVehicleBusDataProviderV01 : XMLDeclarationComponentsDataProviderV10, IXMLVehicleComponentsDeclaration, - IRetarderInputData - + public class XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration, IRetarderInputData { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "VehicleComponentsPIFType"; @@ -279,8 +284,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private IBusAuxiliariesDeclarationData _busAuxiliaries; - - public XMLDeclarationComponentsPrimaryVehicleBusDataProviderV01(IXMLDeclarationVehicleData vehicle, + public XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } @@ -293,7 +297,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { get { return null; } } - + IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData { get { return null; } @@ -311,10 +315,107 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region IRetarderInputData Interface Implementation - public RetarderType Type { get{ return _vehicle.RetarderType; }} - public double Ratio { get { return _vehicle.RetarderRatio; }} + public RetarderType Type { get { return _vehicle.RetarderType; } } + public double Ratio { get { return _vehicle.RetarderRatio; } } public TableData LossMap { get; } #endregion } + + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationInterimStageBusComponentsDataProviderV28 : XMLDeclarationComponentsDataProviderV10, + IXMLVehicleComponentsDeclaration + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + + public new const string XSD_TYPE = "CompletedVehicleComponentsDeclarationType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + + private IBusAuxiliariesDeclarationData _busAuxiliaries; + + + public XMLDeclarationInterimStageBusComponentsDataProviderV28(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + + public override IAirdragDeclarationInputData AirdragInputData + { + get + { + if (!ElementExists(XMLNames.Component_AirDrag)) + return null; + + return _airdragInputData ?? (_airdragInputData = ComponentReader.AirdragInputData); + } + } + + + public override IGearboxDeclarationInputData GearboxInputData + { + get { return null; } + } + + public override ITorqueConverterDeclarationInputData TorqueConverterInputData + { + get { return null; } + } + + public override IAxleGearInputData AxleGearInputData + { + get { return null; } + } + + public override IAngledriveInputData AngledriveInputData + { + get { return null; } + } + + public override IEngineDeclarationInputData EngineInputData + { + get { return null; } + } + + public override IRetarderInputData RetarderInputData + { + get { return null; } + } + + public override IPTOTransmissionInputData PTOTransmissionInputData + { + get { return null; } + } + + public override IAxlesDeclarationInputData AxleWheels + { + get { return null; } + } + + + public override IBusAuxiliariesDeclarationData BusAuxiliaries + { + get + { + if (!ElementExists(XMLNames.Component_Auxiliaries)) + return null; + + return _busAuxiliaries ?? (_busAuxiliaries = GetBusAuxiliaries()); + } + } + + private IBusAuxiliariesDeclarationData GetBusAuxiliaries() + { + var busAux = ComponentReader.BusAuxiliariesInputData; + + if (busAux.ElectricConsumers == null && busAux.HVACAux == null && + busAux.PneumaticConsumers == null && busAux.PneumaticSupply == null && + busAux.ElectricSupply == null && busAux.FanTechnology == null && + busAux.SteeringPumpTechnology == null) + return null; + return busAux; + } + } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs index 01a449e46693278e61fe1b31be12a86f213db298..62ab6b540fd21635b28f2d4b06bf665e8f7baca7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs @@ -102,7 +102,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public class XMLSingleFuelEngineMode : AbstractXMLType, IEngineModeDeclarationInputData { - protected IList<IEngineFuelDelcarationInputData> FuelsList; + protected IList<IEngineFuelDeclarationInputData> FuelsList; public XMLSingleFuelEngineMode(XmlNode baseNode) : base(baseNode) { } @@ -120,11 +120,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public virtual IList<IEngineFuelDelcarationInputData> Fuels + public virtual IList<IEngineFuelDeclarationInputData> Fuels { get { return FuelsList ?? - (FuelsList = new List<IEngineFuelDelcarationInputData>() { new XMLSingleFuelEngineFuel(BaseNode) }); + (FuelsList = new List<IEngineFuelDeclarationInputData>() { new XMLSingleFuelEngineFuel(BaseNode) }); } } @@ -139,7 +139,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public class XMLSingleFuelEngineFuel : AbstractXMLType, IEngineFuelDelcarationInputData + public class XMLSingleFuelEngineFuel : AbstractXMLType, IEngineFuelDeclarationInputData { public XMLSingleFuelEngineFuel(XmlNode baseNode) : base(baseNode) { } @@ -316,12 +316,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Overrides of XMLSingleFuelEngineMode - public override IList<IEngineFuelDelcarationInputData> Fuels + public override IList<IEngineFuelDeclarationInputData> Fuels { get { return FuelsList ?? (FuelsList = GetNodes(XMLNames.Engine_FuelModes_Fuel) .Cast<XmlNode>().Select(x => new XMLDualFuelEngineFuel(x)) - .Cast<IEngineFuelDelcarationInputData>().ToList()); + .Cast<IEngineFuelDeclarationInputData>().ToList()); } } @@ -502,19 +502,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryVehicleBusEngineDataProviderV01 : XMLDeclarationEngineDataProviderV23 + public class XMLDeclarationMultistagePrimaryVehicleBusEngineDataProviderV01 : XMLDeclarationEngineDataProviderV23 { - - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "EngineDataPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationPrimaryVehicleBusEngineDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, + public XMLDeclarationMultistagePrimaryVehicleBusEngineDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } - + public override IList<IEngineModeDeclarationInputData> EngineModes { get diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs index 56ae1b32053481cc988c3a3efee985ab453b5a01..34ea16ecdca63337e3d70e4616845119d50acd66 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs @@ -177,20 +177,29 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return NAMESPACE_URI; } } } - + // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryVehicleBusGearboxDataProviderV01 : XMLDeclarationGearboxDataProviderV10 + public class XMLDeclarationMultistagePrimaryVehicleBusGearboxDataProviderV01 : XMLDeclarationGearboxDataProviderV10 { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "TransmissionDataPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationPrimaryVehicleBusGearboxDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) - : base(vehicle, componentNode, sourceFile) { } + public XMLDeclarationMultistagePrimaryVehicleBusGearboxDataProviderV01(IXMLDeclarationVehicleData vehicle, + XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of AbstractCommonComponentType + public override string CertificationNumber + { + get { return GetString(XMLNames.Component_CertificationNumber, required: false); } + } + + #endregion + protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs index 8c91f030a64d6e62ba40ef6a48e4a2f1867db277..73e3fa6d616312e7ce90e3e329d77fafdf76ff46 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs @@ -30,6 +30,7 @@ */ using System; +using System.Collections.Generic; using System.Linq; using System.Xml; using System.Xml.Linq; @@ -111,119 +112,4 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration } - - - // --------------------------------------------------------------------------------------- - - public class XMLPrimaryVehicleBusInputDataV01 : AbstractXMLResource, IXMLPrimaryVehicleBusInputData - { - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_NAMESPACE; - - public const string XSD_TYPE = "PrimaryVehicleHeavyBusType"; - - public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - - protected readonly XmlDocument Document; - protected IDeclarationJobInputData JobData; - - private IVehicleDeclarationInputData _vehicle; - private IApplicationInformation _applicationInformation; - private IResultsInputData _resultsInputData; - - - public XMLPrimaryVehicleBusInputDataV01(XmlDocument xmlDoc, string fileName) : base(xmlDoc, fileName) - { - Document = xmlDoc; - SourceType = DataSourceType.XMLFile; - - var h = VectoHash.Load(xmlDoc); - XMLHash = h.ComputeXmlHash(); - } - - - #region IPrimaryVehicleInputDataProvider interface - - public IVehicleDeclarationInputData Vehicle - { - get { return _vehicle ?? (_vehicle = Reader.JobData.Vehicle); } - } - - public DigestData PrimaryVehicleInputDataHash - { - get { return Reader.GetDigestData(GetNode("InputDataSignature")); } - } - - public DigestData ManufacturerRecordHash - { - get { return Reader.GetDigestData(GetNode("ManufacturerRecordSignature")); } - } - - public IApplicationInformation ApplicationInformation - { - get { return _applicationInformation ?? (_applicationInformation = Reader.ApplicationInformation); } - } - - public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload) - { - 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)); - } - - public XElement XMLHash { get; } - - public IResultsInputData ResultsInputData - { - get { return _resultsInputData ?? (_resultsInputData = Reader.ResultsInputData); } - } - - #endregion - - - - #region IXMLPrimaryVehicleBusInputData interface - - public IXMLDeclarationPrimaryVehicleBusInputDataReader Reader { protected get; set; } - - public XmlNode ResultsNode - { - get { return GetNode(XMLNames.Report_Results); } - } - - public XmlNode ApplicationInformationNode - { - get { return GetNode(XMLNames.Tag_ApplicationInformation); } - } - - #endregion - - - #region AbstractXMLResource class - - protected override XNamespace SchemaNamespace - { - get { return NAMESPACE_URI; } - } - - public override DataSource DataSource - { - get { return new DataSource { SourceFile = SourceFile, SourceVersion = "", SourceType = SourceType }; } - } - - protected override DataSourceType SourceType { get; } - - #endregion - - public virtual IDeclarationJobInputData JobInputData - { - get { return JobData ?? (JobData = Reader.JobData); } - } - - } - - - - - } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs index c9ec8cd8c6f57e33c765185c119132b55f97bade..4b23ba2efc27d5d8cd7092510231b5862df6fe8b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs @@ -87,6 +87,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } public virtual string ShiftStrategy { get { return null; } } + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } #endregion @@ -116,58 +120,43 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return NAMESPACE_URI; } } } - + // --------------------------------------------------------------------------------------- - public class XMLDeclarationPrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource, IXMLPrimaryVehicleBusJobInputData + public class XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource, + IXMLPrimaryVehicleBusJobInputData { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; - - public const string XSD_TYPE = "PrimaryVehicleHeavyBusDataType"; + public const string XSD_TYPE = "VehiclePIFType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - protected IVehicleDeclarationInputData _vehicle; - - public XMLDeclarationPrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, + public XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, string fileName) : base(node, fileName) { InputData = inputProvider; } - protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } } - public string ShiftStrategy - { - get { return null; } - } - - public bool SavedInDeclarationMode - { - get { return true; } - } - - public string JobName - { - get { return Vehicle.Identifier; } - } - - protected override DataSourceType SourceType - { - get { return DataSourceType.XMLFile; } - } - public IVehicleDeclarationInputData Vehicle { get { return _vehicle ?? (_vehicle = Reader.CreateVehicle); } } + protected override DataSourceType SourceType { get; } + public bool SavedInDeclarationMode { get; } + public string JobName { get; } + public string ShiftStrategy { get{ return null; } } + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } public IXMLJobDataReader Reader { protected get; set; } public IXMLPrimaryVehicleBusInputData InputData { get; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs new file mode 100644 index 0000000000000000000000000000000000000000..51aecfe1e599f63084a73edfb8fb1d655d74b84a --- /dev/null +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs @@ -0,0 +1,316 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using Ninject; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + +namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider +{ + public class XMLDeclarationInputDataProviderMultistageV01 : AbstractXMLResource, IXMLMultistageInputDataProvider + { + public static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "VectoOutputMultistageType"; + + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + protected IDeclarationMultistageJobInputData JobData; + protected readonly XmlDocument Document; + + public XMLDeclarationInputDataProviderMultistageV01(XmlDocument xmlDoc, string fileName) + : base(xmlDoc.DocumentElement, fileName) + { + Document = xmlDoc; + + var h = VectoHash.Load(xmlDoc); + XMLHash = h.ComputeXmlHash(); + } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + protected override DataSourceType SourceType + { + get { return DataSourceType.XMLFile; } + } + + public IDeclarationMultistageJobInputData JobInputData + { + get { return JobData ?? (JobData = Reader.JobData); } + } + + + IDeclarationJobInputData IDeclarationInputDataProvider.JobInputData + { + get { throw new NotImplementedException(); } + } + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; } + public XElement XMLHash { get; } + + public IXMLDeclarationMultistageVehicleInputDataReader Reader { protected get; set; } + + } + + // --------------------------------------------------------------------------------------- + + + public class XMLDeclarationMultistageJobInputDataV01 : AbstractXMLResource, IXMLDeclarationMultistageJobInputData + { + public static readonly XNamespace NAMESPACE_URI = + XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "VectoOutputMultistageType"; + + public static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IPrimaryVehicleInformationInputDataProvider _primaryVehicle; + private IList<IManufacturingStageInputData> _manufacturingStages; + private IManufacturingStageInputData _concolidateManfacturingStage; + + + public XMLDeclarationMultistageJobInputDataV01(XmlNode node, IXMLMultistageInputDataProvider inputProvider, + string fileName) : base(node, fileName) + { + InputData = inputProvider; + SourceType = DataSourceType.XMLFile; + } + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle + { + get { return _primaryVehicle ?? (_primaryVehicle = Reader.PrimaryVehicle); } + } + + public IList<IManufacturingStageInputData> ManufacturingStages + { + get { return _manufacturingStages ?? (_manufacturingStages = Reader.ManufacturingStages); } + } + + public IManufacturingStageInputData ConsolidateManufacturingStage + { + get { return _concolidateManfacturingStage ?? (_concolidateManfacturingStage = Reader.ConsolidateManufacturingStage); } + } + + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } + + public bool InputComplete + { + get { return Reader.InputComplete; } + } + + public IXMLMultistageJobReader Reader { protected get; set; } + + public IXMLMultistageInputDataProvider InputData { get; } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + protected override DataSourceType SourceType { get; } + } + + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistagePrimaryVehicleInputDataV01 : AbstractXMLResource, + IXMLPrimaryVehicleBusInputData + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "PrimaryVehicleDataType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private readonly XmlNode _signatureNode; + private IVehicleDeclarationInputData _vehicle; + private IApplicationInformation _applicationInformation; + private IResultsInputData _resultsInputData; + private DigestData _primaryVehicleInputDataHash; + private DigestData _vehicleSignatureHash; + private DigestData _manufacturerRecordHash; + + public XMLDeclarationMultistagePrimaryVehicleInputDataV01(XmlNode xmlNode, string fileName) + : base(xmlNode, fileName) + { + _signatureNode = xmlNode.LastChild; + } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + protected override DataSourceType SourceType + { + get { return DataSourceType.XMLFile; } + } + + + public IVehicleDeclarationInputData Vehicle + { + get { return _vehicle ?? (_vehicle = Reader.JobData.Vehicle); } + } + + public DigestData PrimaryVehicleInputDataHash + { + get { return _primaryVehicleInputDataHash ?? + (_primaryVehicleInputDataHash = Reader.GetDigestData(GetNode("InputDataSignature")));} + } + + public DigestData VehicleSignatureHash + { + get { return _vehicleSignatureHash ?? + (_vehicleSignatureHash = Reader.GetDigestData(_signatureNode));} + } + + public DigestData ManufacturerRecordHash + { + get { return _manufacturerRecordHash ?? + (_manufacturerRecordHash = Reader.GetDigestData(GetNode("ManufacturerRecordSignature"))); } + } + + public IResultsInputData ResultsInputData + { + get { return _resultsInputData ?? (_resultsInputData = Reader.ResultsInputData); } + } + + public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload) + { + 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)); + } + + public XmlNode ResultsNode + { + get { return GetNode(XMLNames.Report_Results); } + } + + public IApplicationInformation ApplicationInformation + { + get { return _applicationInformation ?? (_applicationInformation = Reader.ApplicationInformation); } + } + + public XmlNode ApplicationInformationNode + { + get { return GetNode(XMLNames.Tag_ApplicationInformation); } + } + + public XElement XMLHash { get; } + + public IXMLDeclarationPrimaryVehicleBusInputDataReader Reader { protected get; set; } + + } + + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationMultistageTypeInputDataV01 : AbstractXMLResource, IXMLMultistageEntryInputDataProvider + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "ManufacturingStageType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private readonly XmlNode _signatureXmlNode; + private IVehicleDeclarationInputData _vehicle; + private IApplicationInformation _applicationInformation; + private DigestData _hashPreviousStage; + private DigestData _signature; + + + public XMLDeclarationMultistageTypeInputDataV01(XmlNode xmlNode, string fileName) + : base(xmlNode, fileName) + { + _signatureXmlNode = xmlNode.LastChild; + } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + protected override DataSourceType SourceType + { + get { return DataSourceType.XMLFile; } + } + + public DigestData HashPreviousStage + { + get { return _hashPreviousStage ?? + (_hashPreviousStage = Reader.GetDigestData(GetNode("HashPreviousStage"))); } + } + + public int StageCount + { + get { return Convert.ToInt32(GetAttribute(BaseNode, XMLNames.ManufacturingStage_StageCount)); } + } + + public IVehicleDeclarationInputData Vehicle + { + get { return _vehicle ?? (_vehicle = Reader.Vehicle); } + } + + public IApplicationInformation ApplicationInformation + { + get + { + return _applicationInformation ?? (_applicationInformation = Reader.ApplicationInformation); + } + } + + public DigestData Signature + { + get { return _signature ?? (_signature = Reader.GetDigestData(_signatureXmlNode)); } + } + + public IXMLMultistageReader Reader { protected get; set; } + } + + // --------------------------------------------------------------------------------------- + + + public class XMLDeclarationVIFInputData : IMultistageVIFInputData + { + private readonly IMultistageBusInputDataProvider _multistageJobInputData; + private readonly IVehicleDeclarationInputData _vehicleInput; + + public XMLDeclarationVIFInputData(IMultistageBusInputDataProvider multistageJobInputData, + IVehicleDeclarationInputData vehicleInput) + { + _multistageJobInputData = multistageJobInputData; + _vehicleInput = vehicleInput; + } + + public IVehicleDeclarationInputData VehicleInputData + { + get { return _vehicleInput; } + } + public IMultistageBusInputDataProvider MultistageJobInputData + { + get { return _multistageJobInputData; } + } + + public DataSource DataSource { get; } + } + +} \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.cs index 3a2197108fabe44fd2824a3833826b69eeaaa5d9..8c6ea37fca75d78cb60f5268afd4990336189229 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.cs @@ -1,12 +1,6 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; -using Castle.Components.DictionaryAdapter.Xml; -using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; @@ -14,15 +8,16 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { - public class XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01 : AbstractXMLType, IXMLApplicationInformationData + public class XMLDeclarationMultistagePrimaryVehicleBusApplicationInformationDataProviderV01 : + AbstractXMLType, IXMLApplicationInformationData { - public static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "ApplicationInformationPIFType"; + public const string XSD_TYPE = "ApplicationInformationPrimaryVehicleType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01(XmlNode applicationNode) + public XMLDeclarationMultistagePrimaryVehicleBusApplicationInformationDataProviderV01(XmlNode applicationNode) : base(applicationNode) { } public string SimulationToolVersion diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs index dafcb0266ae985c22aa16932daffee26610a0f56..d21580a183a424ae4c23fb6fd68c9653292387a3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs @@ -1,11 +1,7 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; -using Castle.Components.DictionaryAdapter.Xml; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; @@ -13,23 +9,22 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.Impl; -using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { - public class XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01 : AbstractXMLType, IXMLResultsInputData + public class XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01 : AbstractXMLType, IXMLResultsInputData { - public static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "ResultsPIFType"; + public const string XSD_TYPE = "ResultsPrimaryVehicleType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); private XmlNode _resultsNode; private IList<IResult> _results; - public XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01(XmlNode resultsNode) : base(resultsNode) + public XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01(XmlNode resultsNode) : base(resultsNode) { _resultsNode = resultsNode; } @@ -40,9 +35,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public IList<IResult> Results { - get { return _results ?? (_results = ReadResults()); } + get { return _results ?? (_results = ReadResults()); } } - + private IList<IResult> ReadResults() { @@ -51,11 +46,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider var results = new List<IResult>(); - foreach (XmlNode resultNode in _resultsNode.ChildNodes) { - if(resultNode.Name == XMLNames.Report_Result_Result) + foreach (XmlNode resultNode in _resultsNode.ChildNodes) + { + if (resultNode.LocalName == XMLNames.Report_Result_Result) results.Add(GetResult(resultNode)); } - + return results; } @@ -74,7 +70,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider string.Format(".//*[local-name()='{0}' and @unit='MJ/km']", XMLNames.Report_Result_EnergyConsumption))?.InnerText .ToDouble().SI(Unit.SI.Mega.Joule.Per.Kilo.Meter).Cast<JoulePerMeter>())).ToDictionary(x => x.Key, x => x.Value); - return new Result { + + return new Result + { ResultStatus = resultStatus, Mission = mission, VehicleGroup = VehicleClassHelper.Parse(vehicleGroup), @@ -91,8 +89,8 @@ 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) + PassengerCount = GetString(XMLNames.Bus_PassengerCount, xmlNode).ToDouble(), + 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 1b64bd6656417e044caeb5c7ce8754444cfc281a..a3052497b920bb106c7d09963ca54a71eda9e181 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs @@ -99,20 +99,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public class XMLDeclarationTorqueConverterDataProviderPIF01 : XMLDeclarationTorqueConverterDataProviderV20 + // --------------------------------------------------------------------------------------- + public class XMLDeclarationMultistagePrimaryTorqueConverterDataProviderV01 : XMLDeclarationTorqueConverterDataProviderV20 { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "TorqueConverterDataPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationTorqueConverterDataProviderPIF01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + public XMLDeclarationMultistagePrimaryTorqueConverterDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + + #region Overrides of AbstractCommonComponentType + + public override string CertificationNumber + { + get { return GetString(XMLNames.Component_CertificationNumber, required: false); } + } + + #endregion protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } } } - } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index 66f55bd7c4e7f8221be4f5c2cdc9c8a387a627a7..15de858e1ec65989b13ce5c405642bf4f7f3f2d2 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -32,8 +32,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.InteropServices; -using System.Windows.Forms.VisualStyles; using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.BusAuxiliaries; @@ -42,7 +40,6 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.InputData.Impl; @@ -123,7 +120,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetString(XMLNames.Vehicle_VIN); } } - public virtual LegislativeClass LegislativeClass + public virtual string LegislativeCategory + { + get { return null; } + } + + public virtual LegislativeClass? LegislativeClass { get { return GetString(XMLNames.Vehicle_LegislativeClass).ParseEnum<LegislativeClass>(); } } @@ -227,6 +229,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_SleeperCab)); } } + public virtual bool? AirdragModifiedMultistage { get; } + public virtual TankSystem? TankSystem { get { @@ -274,17 +278,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public virtual RegistrationClass RegisteredClass + public virtual RegistrationClass? RegisteredClass { get { return RegistrationClass.unknown; } } - public virtual int NumberOfPassengersUpperDeck + public virtual int? NumberPassengerSeatsUpperDeck { get { return 0; } } - public virtual int NumberOfPassengersLowerDeck + public virtual int? NumberPassengerSeatsLowerDeck + { + get { return 0; } + } + + public virtual int? NumberPassengersStandingLowerDeck + { + get { return 0; } + } + public virtual int? NumberPassengersStandingUpperDeck { get { return 0; } } @@ -294,12 +307,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return 0.SI<CubicMeter>(); } } - public virtual VehicleCode VehicleCode + public virtual VehicleCode? VehicleCode { - get { return VehicleCode.NOT_APPLICABLE; } + get { return VectoCommon.Models.VehicleCode.NOT_APPLICABLE; } } - public virtual bool LowEntry + public virtual bool? LowEntry { get { return false; } } @@ -329,7 +342,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return null; } } - public virtual ConsumerTechnology DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual VehicleDeclarationType VehicleDeclarationType { get; } + public virtual IVehicleComponentsDeclaration Components { @@ -675,9 +690,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Overrides of XMLDeclarationVehicleDataProviderV10 - public override LegislativeClass LegislativeClass + public override LegislativeClass? LegislativeClass { - get { return LegislativeClass.M3; } + get { return VectoCommon.Models.LegislativeClass.M3; } } #endregion @@ -814,12 +829,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return VehicleCategory.HeavyBusCompletedVehicle; } } - public override RegistrationClass RegisteredClass + public override RegistrationClass? RegisteredClass { get { return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); } } - public override VehicleCode VehicleCode + public override VehicleCode? VehicleCode { get { return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>(); } } @@ -840,7 +855,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public override int NumberOfPassengersLowerDeck + public override int? NumberPassengerSeatsLowerDeck { get { var node = GetNode(XMLNames.Bus_LowerDeck); @@ -848,7 +863,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public override int NumberOfPassengersUpperDeck + public override int? NumberPassengerSeatsUpperDeck { get { var node = GetNode(XMLNames.Bus_UpperDeck); @@ -882,7 +897,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion - public override bool LowEntry + public override bool? LowEntry { get { return GetBool(XMLNames.Bus_LowEntry); } } @@ -892,7 +907,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetDouble(XMLNames.Bus_EntranceHeight).SI<Meter>(); } } - public override ConsumerTechnology DoorDriveTechnology + public override ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnologyHelper.Parse(GetString(XMLNames.BusAux_PneumaticSystem_DoorDriveTechnology)); } } @@ -911,11 +926,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } - // --------------------------------------------------------------------------------------- - - public class XMLDeclarationPrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData + public class XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData { - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public const string XSD_TYPE = "VehiclePIFType"; @@ -926,9 +940,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private IAdvancedDriverAssistantSystemDeclarationInputData _adas; private XmlElement _componentNode; private IVehicleComponentsDeclaration _components; - - - public XMLDeclarationPrimaryVehicleBusDataProviderV01( + + public XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01( IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(xmlNode, sourceFile) { @@ -957,9 +970,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return GetString(XMLNames.Vehicle_VIN); } } + public string LegislativeCategory + { + get { return GetString(XMLNames.Bus_LegislativeCategory); } + } + public VehicleCategory VehicleCategory { - get { return VehicleCategoryHelper.Parse(GetString(XMLNames.Vehicle_VehicleCategory)); } + get { return VehicleCategoryHelper.Parse(GetString("ChassisConfiguration")); } } public AxleConfiguration AxleConfiguration @@ -1019,8 +1037,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public XmlElement ComponentNode { - get { - if (ExemptedVehicle) { + get + { + if (ExemptedVehicle) + { return null; } @@ -1032,11 +1052,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public Meter EntranceHeight { get; } - public virtual ConsumerTechnology DoorDriveTechnology + public virtual ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual VehicleDeclarationType VehicleDeclarationType { get; } + + public IVehicleComponentsDeclaration Components { get { return _components ?? (_components = ComponentReader.ComponentInputData); } @@ -1047,9 +1070,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public string Identifier { get; } public bool ExemptedVehicle { get; } - public LegislativeClass LegislativeClass { get; } - public int NumberOfPassengersUpperDeck { get; } - public int NumberOfPassengersLowerDeck { get; } + public LegislativeClass? LegislativeClass { get; } + public int? NumberPassengerSeatsUpperDeck { get; } + public int? NumberPassengerSeatsLowerDeck { get; } + public int? NumberPassengersStandingLowerDeck { get; } + public int? NumberPassengersStandingUpperDeck { get; } + public CubicMeter CargoVolume { get { return 0.SI<CubicMeter>(); } @@ -1057,15 +1083,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public Kilogram CurbMassChassis { get; } public bool VocationalVehicle { get; } public bool SleeperCab { get; } + public bool? AirdragModifiedMultistage { get; } public TankSystem? TankSystem { get; } public bool HybridElectricHDV { get; } public bool DualFuelVehicle { get; } public Watt MaxNetPower1 { get; } public Watt MaxNetPower2 { get; } - public RegistrationClass RegisteredClass { get; } - public VehicleCode VehicleCode { get; } - public bool LowEntry { get; } + public RegistrationClass? RegisteredClass { get; } + public VehicleCode? VehicleCode { get; } + public bool? LowEntry { get; } public bool Articulated { get { return GetBool(XMLNames.Vehicle_Articulated); } } public Meter Height { get; } public Meter Length { get; } @@ -1098,10 +1125,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { var torqueLimits = new List<ITorqueLimitInputData>(); var limits = GetNodes(new[] { XMLNames.Vehicle_TorqueLimits, XMLNames.Vehicle_TorqueLimits_Entry }); - foreach (XmlNode current in limits) { - if (current.Attributes != null) { + foreach (XmlNode current in limits) + { + if (current.Attributes != null) + { torqueLimits.Add( - new TorqueLimitInputData() { + new TorqueLimitInputData() + { Gear = GetAttribute(current, XMLNames.Vehicle_TorqueLimits_Entry_Gear_Attr).ToInt(), MaxTorque = GetAttribute(current, XMLNames.Vehicle_TorqueLimits_Entry_MaxTorque_Attr) .ToDouble().SI<NewtonMeter>() @@ -1112,4 +1142,434 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider return torqueLimits; } } + + + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationInterimStageBusDataProviderV28 : XMLDeclarationVehicleDataProviderV20 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + public new const string XSD_TYPE = "InterimStageInputType"; + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + private IAdvancedDriverAssistantSystemDeclarationInputData _adas; + + public XMLDeclarationInterimStageBusDataProviderV28( + IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) + : base(jobData, xmlNode, sourceFile) { } + + public override string Model + { + get + { + return ElementExists(new [] {XMLNames.Component_Vehicle, XMLNames.Component_Model}) + ? GetString(new[] { XMLNames.Component_Vehicle, XMLNames.Component_Model }) : null; + } + } + + public override LegislativeClass? LegislativeClass + { + get + { + return ElementExists(XMLNames.Bus_LegislativeCategory) + ? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>() + : (LegislativeClass?)null; + } + } + + public override Kilogram CurbMassChassis + { + get + { + return ElementExists(XMLNames.Bus_CorrectedActualMass) + ? GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>() + : null; + } + } + + public override Kilogram GrossVehicleMassRating + { + get { + return ElementExists(XMLNames.Vehicle_TPMLM) + ? GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>() + : null; + } + } + + public override bool? AirdragModifiedMultistage + { + get + { + return ElementExists(XMLNames.Bus_AirdragModifiedMultistage) + ? GetBool(XMLNames.Bus_AirdragModifiedMultistage) + : (bool?)null; + } + } + + public override RegistrationClass? RegisteredClass + { + get + { + return ElementExists(XMLNames.Vehicle_RegisteredClass) + ? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First() + : null; + } + } + + public override TankSystem? TankSystem + { + get + { + return ElementExists(XMLNames.Vehicle_NgTankSystem) + ? EnumHelper.ParseEnum<TankSystem>(GetString(XMLNames.Vehicle_NgTankSystem)) + : (TankSystem?)null; + } + } + + + public override int? NumberPassengerSeatsLowerDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengerSeatsLowerDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengerSeatsLowerDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + public override int? NumberPassengerSeatsUpperDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengerSeatsUpperDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengerSeatsUpperDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + public override int? NumberPassengersStandingLowerDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengersStandingLowerDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengersStandingLowerDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + public override int? NumberPassengersStandingUpperDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengersStandingUpperDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengersStandingUpperDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + + + public override VehicleCode? VehicleCode + { + get + { + return ElementExists(XMLNames.Vehicle_BodyworkCode) + ? GetString(XMLNames.Vehicle_BodyworkCode).ParseEnum<VehicleCode>() + : (VehicleCode?)null; + } + } + + public override bool? LowEntry + { + get + { + return ElementExists(XMLNames.Bus_LowEntry) + ? GetBool(XMLNames.Bus_LowEntry) + : (bool?)null; + } + } + + public override Meter Height + { + get + { + return ElementExists(XMLNames.Bus_HeighIntegratedBody) + ? GetDouble(XMLNames.Bus_HeighIntegratedBody).SI(Unit.SI.Milli.Meter).Cast<Meter>() + : null; + } + } + + public override Meter Length + { + get + { + return ElementExists(XMLNames.Bus_VehicleLength) + ? GetDouble(XMLNames.Bus_VehicleLength).SI(Unit.SI.Milli.Meter).Cast<Meter>() + : null; + } + } + + public override Meter Width + { + get + { + return ElementExists(XMLNames.Bus_VehicleWidth) + ? GetDouble(XMLNames.Bus_VehicleWidth).SI(Unit.SI.Milli.Meter).Cast<Meter>() + : null; + } + } + + public override Meter EntranceHeight + { + get + { + return ElementExists(XMLNames.Bus_EntranceHeight) + ? GetDouble(XMLNames.Bus_EntranceHeight).SI(Unit.SI.Milli.Meter).Cast<Meter>() + : null; + } + } + + public override ConsumerTechnology? DoorDriveTechnology + { + get + { + return ElementExists(XMLNames.BusAux_PneumaticSystem_DoorDriveTechnology) + ? ConsumerTechnologyHelper.Parse(GetString(XMLNames.BusAux_PneumaticSystem_DoorDriveTechnology)) + : (ConsumerTechnology?)null; + } + } + + public override VehicleDeclarationType VehicleDeclarationType + { + get { return VehicleDeclarationTypeHelper.Parse(GetString(XMLNames.Bus_VehicleDeclarationType)); } + } + + + public override XmlElement ADASNode + { + get + { + return _adasNode ?? (_adasNode = GetNode(XMLNames.Vehicle_ADAS, required: false) as XmlElement); + } + } + + + public override XmlElement ComponentNode + { + get + { + if (ExemptedVehicle) + return null; + + return _componentNode ?? (_componentNode = GetNode(XMLNames.Vehicle_Components, required:false) as XmlElement); + } + } + + + public override IAdvancedDriverAssistantSystemDeclarationInputData ADAS + { + get + { + if (ADASNode == null) + return null; + return _adas ?? (_adas = ADASReader.ADASInputData); + } + } + + + + public override IVehicleComponentsDeclaration Components + { + get + { + if (ComponentNode == null) + return null; + + if(_components == null) + _components = ComponentReader.ComponentInputData; + + if (_components.BusAuxiliaries == null && _components.AirdragInputData == null) + return null; + + return _components; + } + } + + public override XmlElement PTONode + { + get { return null; } + } + + + + + #region Overrides of AbstractXMLResource + + protected override DataSourceType SourceType + { + get { return DataSourceType.XMLFile; } + } + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + #endregion + + } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationExemptedInterimStageBusDataProviderV28 : XMLDeclarationVehicleDataProviderV20 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + public new const string XSD_TYPE = "ExemptedInterimStageInputType"; + public new static readonly string QUALIFIED_XSD_TYPE = + XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationExemptedInterimStageBusDataProviderV28(IXMLDeclarationJobInputData jobData, + XmlNode xmlNode, string sourceFile) + : base(jobData, xmlNode, sourceFile) {} + + + public override string Model + { + get + { + return ElementExists(XMLNames.Component_Model) + ? GetString(XMLNames.Component_Model) : null; + } + } + + public override LegislativeClass? LegislativeClass + { + get + { + return ElementExists(XMLNames.Bus_LegislativeCategory) + ? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>() + : (LegislativeClass?)null; + } + } + + public override Kilogram CurbMassChassis + { + get + { + return ElementExists(XMLNames.Bus_CorrectedActualMass) + ? GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>() + : null; + } + } + + public override Kilogram GrossVehicleMassRating + { + get + { + return ElementExists(XMLNames.Vehicle_TPMLM) + ? GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>() + : null; + } + } + + public override RegistrationClass? RegisteredClass + { + get + { + return ElementExists(XMLNames.Vehicle_RegisteredClass) + ? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First() + : null; + } + } + + public override int? NumberPassengerSeatsLowerDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengersLowerDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + public override int? NumberPassengerSeatsUpperDeck + { + get + { + if (!ElementExists(XMLNames.Bus_NumberPassengersUpperDeck)) + return null; + var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck); + return XmlConvert.ToInt32(node.InnerText); + } + } + + public override VehicleCode? VehicleCode + { + get + { + return ElementExists(XMLNames.Vehicle_BodyworkCode) + ? GetString(XMLNames.Vehicle_BodyworkCode).ParseEnum<VehicleCode>() + : (VehicleCode?)null; + } + } + + public override bool? LowEntry + { + get + { + return ElementExists(XMLNames.Bus_LowEntry) + ? GetBool(XMLNames.Bus_LowEntry) + : (bool?)null; + } + } + + public override Meter Height + { + get + { + return ElementExists(XMLNames.Bus_HeighIntegratedBody) + ? GetDouble(XMLNames.Bus_HeighIntegratedBody).SI(Unit.SI.Milli.Meter).Cast<Meter>() + : null; + } + } + + public override XmlElement PTONode + { + get { return null; } + } + + public override XmlElement ComponentNode + { + get{ return null; } + } + + public override IVehicleComponentsDeclaration Components + { + get { return null; } + } + + #region Overrides of AbstractXMLResource + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + protected override DataSourceType SourceType + { + get { return DataSourceType.XMLFile; } + } + + + #endregion + } } + + diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs index ec124076a9887b178b2744fb85f99ba3a267cad0..6a13d75d4bc3e7ad2faaf9597ad82006eaf8bad0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs @@ -155,17 +155,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - // --------------------------------------------------------------------------------------- - public class XMLPrimaryVehicleBusTransmissionDataV01 : XMLGearDataV10 + // --------------------------------------------------------------------------------------- + + public class XMLMultistagePrimaryVehicleBusTransmissionDataV01 : XMLGearDataV10 { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; public new const string XSD_TYPE = "TransmissionGearPIFType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLPrimaryVehicleBusTransmissionDataV01(XmlNode gearNode, string sourceFile) + public XMLMultistagePrimaryVehicleBusTransmissionDataV01(XmlNode gearNode, string sourceFile) : base(gearNode, sourceFile) { } protected override XNamespace SchemaNamespace @@ -173,4 +174,5 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return NAMESPACE_URI; } } } + } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Factory/IDeclarationInjectFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Factory/IDeclarationInjectFactory.cs index 90a4ab233da64d2cf25180aeb443f0e40f4f22ae..bf0643c332da71999615be7bb29b2a17502d4134 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Factory/IDeclarationInjectFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Factory/IDeclarationInjectFactory.cs @@ -50,10 +50,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory IXMLPrimaryVehicleBusInputData CreatePrimaryVehicleBusInputProvider(string version, XmlDocument xmlDoc, string fileName); + IXMLMultistageInputDataProvider CreateMultistageInputProvider(string version, XmlDocument xmlDoc, + string fileName); IXMLDeclarationJobInputData CreateJobData( string version, XmlNode node, IXMLDeclarationInputData inputProvider, string fileName); + IXMLDeclarationMultistageJobInputData CreateMultiStageJobData( + string version, XmlNode node, IXMLMultistageInputDataProvider inputProvider, string fileName); + IXMLPrimaryVehicleBusJobInputData CreatePrimaryVehicleJobData( string version, XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, string fileName); @@ -64,7 +69,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory IXMLDeclarationVehicleData CreatePrimaryVehicleData( string version, IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile); + + IXMLPrimaryVehicleBusInputData CreatePrimaryMultistageVehicleData( + string version, XmlNode xmlNode, string fileName); + IXMLMultistageEntryInputDataProvider CreateMultistageData(string version, XmlNode xmlNode, string fileName); IXMLVehicleComponentsDeclaration CreateComponentData( @@ -122,9 +131,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory IXMLDeclarationPrimaryVehicleBusInputDataReader CreatePrimaryVehicleBusInputReader( string version, IXMLPrimaryVehicleBusInputData inputData, XmlNode baseNode); + IXMLDeclarationMultistageVehicleInputDataReader CreateMultistageInputReader(string version, + IXMLMultistageInputDataProvider inputData, XmlNode baseNode); + IXMLJobDataReader CreateJobReader( string version, IXMLDeclarationJobInputData jobData, XmlNode jobNode); + + IXMLMultistageJobReader CreateMultistageJobReader( + string version, IXMLDeclarationMultistageJobInputData inputData, XmlNode baseNode); IXMLJobDataReader CreatePrimaryVehicleJobReader( string version, IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode); @@ -144,11 +159,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory IXMLAxleReader CreateAxleReader(string version, IXMLDeclarationVehicleData vehicle, XmlNode componentsNode); IXMLGearboxReader CreateGearboxReader(string version, IXMLDeclarationVehicleData vehicle, XmlNode componentsNode); IXMLAuxiliaryReader CreateAuxiliariesReader(string version, IXMLDeclarationVehicleData vehicle, XmlNode componentsNode); + IXMLApplicationInformationData CreateApplicationInformationReader(string version, XmlNode applicationNode); IXMLResultsInputData CreateResultsInputDataReader(string version, XmlNode resultsNode); + + IXMLMultistageReader CreateMultistageDataReader(string version, IXMLMultistageEntryInputDataProvider multistageData, XmlNode node); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/IXMLDeclarationInputDataReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/IXMLDeclarationInputDataReader.cs index 70a26e492a82064c55b00bbe8db45ea1d9ae123b..60c24aeed47d0d135d3ee999a171021251685a44 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/IXMLDeclarationInputDataReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/IXMLDeclarationInputDataReader.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.Collections.Generic; using System.Xml; using TUGraz.VectoCommon.InputData; @@ -47,4 +48,31 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration IApplicationInformation ApplicationInformation { get; } } + + public interface IXMLDeclarationMultistageVehicleInputDataReader + { + IDeclarationMultistageJobInputData JobData { get; } + } + + public interface IXMLMultistageJobReader + { + IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; } + + IList<IManufacturingStageInputData> ManufacturingStages { get; } + + IManufacturingStageInputData ConsolidateManufacturingStage { get; } + + VectoSimulationJobType JobType { get; } + + bool InputComplete { get; } + } + + public interface IXMLMultistageReader + { + IVehicleDeclarationInputData Vehicle { get; } + + IApplicationInformation ApplicationInformation { get; } + + DigestData GetDigestData(XmlNode xmlNode); + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs index cc4a5f01db121b515efc6b713b4eda7f9cd7bb8b..37de4917517342fc4abe7c4f7159064a273332af 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs @@ -38,9 +38,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces { IXMLDeclarationInputDataReader Reader { set; } } - - - + public interface IXMLPrimaryVehicleBusInputData : IPrimaryVehicleInformationInputDataProvider, IXMLResource { IXMLDeclarationPrimaryVehicleBusInputDataReader Reader { set; } @@ -49,4 +47,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces XmlNode ApplicationInformationNode { get; } } + + public interface IXMLMultistageInputDataProvider : IMultistageBusInputDataProvider, IXMLResource + { + IXMLDeclarationMultistageVehicleInputDataReader Reader { set; } + } + + public interface IXMLMultistageEntryInputDataProvider : IMultiStageTypeInputData, IXMLResource + { + IXMLMultistageReader Reader { set; } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationJobInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationJobInputData.cs index d0680dc5f27d8e40f838402e7372db23d609bb6c..0ced4a65b1d4161625e584cd3c424c2478f112ae 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationJobInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationJobInputData.cs @@ -41,6 +41,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces IXMLDeclarationInputData InputData { get; } } + public interface IXMLDeclarationMultistageJobInputData : IDeclarationMultistageJobInputData, IXMLResource + { + IXMLMultistageJobReader Reader { set; } + + IXMLMultistageInputDataProvider InputData { get; } + } + public interface IXMLPrimaryVehicleBusJobInputData : IDeclarationJobInputData, IXMLResource { IXMLJobDataReader Reader { set; } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..1f50d3e2cf3f36e5ae92825eaa0da7f33a38fcf7 --- /dev/null +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs @@ -0,0 +1,107 @@ +using Ninject.Modules; +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 XMLDeclarationInputDataMultistageV01InjectModule : NinjectModule + { + public override void Load() + { + Bind<IXMLMultistageInputDataProvider>().To<XMLDeclarationInputDataProviderMultistageV01>() + .Named(XMLDeclarationInputDataProviderMultistageV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationMultistageJobInputData>().To<XMLDeclarationMultistageJobInputDataV01>() + .Named(XMLDeclarationMultistageJobInputDataV01.QUALIFIED_XSD_TYPE); + + // ----------------------------------- + + Bind<IXMLDeclarationMultistageVehicleInputDataReader>().To<XMLDeclarationMultistageInputReaderV01>() + .Named(XMLDeclarationMultistageInputReaderV01.QUALIFIED_XSD_TYPE); + + + Bind<IXMLMultistageJobReader>().To<XMLMultistageJobReaderV01>() + .Named(XMLMultistageJobReaderV01.QUALIFIED_XSD_TYPE); + + // ----------------------------------- + + Bind<IXMLPrimaryVehicleBusInputData>().To<XMLDeclarationMultistagePrimaryVehicleInputDataV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleInputDataV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLDeclarationPrimaryBusAuxiliariesDataProviderV01>() + .Named(XMLDeclarationPrimaryBusAuxiliariesDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationPrimaryVehicleBusInputDataReader>().To<XMLMultistagePrimaryVehicleReaderV01>() + .Named(XMLMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); + + + Bind<IXMLJobDataReader>().To<XMLJobDataMultistagePrimaryVehicleReaderV01>() + .Named(XMLJobDataMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + + // ----------------------------------- + + Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLGearboxReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE); + + Bind<IXMLAxlesReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>() + .Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.AXLES_READER_QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>() + .To<XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01>() + .Named(XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); + + // ----------------------------------- + + Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusEngineDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusEngineDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLGearboxDeclarationInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusGearboxDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusGearboxDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLGearData>().To<XMLMultistagePrimaryVehicleBusTransmissionDataV01>() + .Named(XMLMultistagePrimaryVehicleBusTransmissionDataV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLAngledriveInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusAngledriveDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusAngledriveDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLTorqueConverterDeclarationInputData>() + .To<XMLDeclarationMultistagePrimaryTorqueConverterDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryTorqueConverterDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLAxleGearInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusAxlegearDataProviderV01>().Named( + XMLDeclarationMultistagePrimaryVehicleBusAxlegearDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLAxlesDeclarationInputData>().To<XMLDeclarationAxlesDataProviderV01>().Named( + XMLDeclarationAxlesDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLApplicationInformationData>().To<XMLDeclarationMultistagePrimaryVehicleBusApplicationInformationDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusApplicationInformationDataProviderV01.QUALIFIED_XSD_TYPE); + + Bind<IXMLResultsInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01>() + .Named(XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01.QUALIFIED_XSD_TYPE); + + + // ----------------------------------- + + Bind<IXMLMultistageEntryInputDataProvider>().To<XMLDeclarationMultistageTypeInputDataV01>() + .Named(XMLDeclarationMultistageTypeInputDataV01.QUALIFIED_XSD_TYPE); + + + Bind<IXMLMultistageReader>().To<XMLMultistageEntryReaderV01>() + .Named(XMLMultistageEntryReaderV01.QUALIFIED_XSD_TYPE); + + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..d9a3f39dd9b48b5fc4fa579cfdda6333266fd3c4 --- /dev/null +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs @@ -0,0 +1,37 @@ +using Ninject.Modules; +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 XMLDeclarationInputDataV28InjectModule : NinjectModule + { + #region Overrides of NinjectModlue + + public override void Load() + { + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationInterimStageBusDataProviderV28>() + .Named(XMLDeclarationInterimStageBusDataProviderV28.QUALIFIED_XSD_TYPE); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationExemptedInterimStageBusDataProviderV28>() + .Named(XMLDeclarationExemptedInterimStageBusDataProviderV28.QUALIFIED_XSD_TYPE); + + Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationInterimStageBusComponentsDataProviderV28>() + .Named(XMLDeclarationInterimStageBusComponentsDataProviderV28.QUALIFIED_XSD_TYPE); + + Bind<IXMLComponentReader>().To<XMLComponentReaderV28>().Named(XMLComponentReaderV28.QUALIFIED_XSD_TYPE); + + Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLDeclarationCompleteBusAuxiliariesDataProviderV28>() + .Named(XMLDeclarationCompleteBusAuxiliariesDataProviderV28.QUALIFIED_XSD_TYPE); + + Bind<IXMLAirdragDeclarationInputData>().To<XMLDeclarationAirdragDataProviderV28>().Named( + XMLDeclarationAirdragDataProviderV28.QUALIFIED_XSD_TYPE); + } + + #endregion + + + } +} diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationPrimaryVehicleBusV01InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationPrimaryVehicleBusV01InjectModule.cs deleted file mode 100644 index cae1a0cf7b993f861c1ce77999a8ab65eeecfa85..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationPrimaryVehicleBusV01InjectModule.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Ninject.Modules; -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 XMLDeclarationPrimaryVehicleBusV01InjectModule : NinjectModule - { - #region Overrides of NinjectModule - - public override void Load() - { - - Bind<IXMLPrimaryVehicleBusInputData>().To<XMLPrimaryVehicleBusInputDataV01>() - .Named(XMLPrimaryVehicleBusInputDataV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationPrimaryVehicleBusJobInputDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLJobDataReader>().To<XMLJobDataPrimaryVehicleReaderV01>() - .Named(XMLJobDataPrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationPrimaryVehicleBusDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLDeclarationPrimaryVehicleBusInputDataReader>().To<XMLPrimaryVehicleBusInputReaderV01>() - .Named(XMLPrimaryVehicleBusInputReaderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLComponentReader>().To<XMLPrimaryVehicleBusComponentReaderV01>() - .Named(XMLPrimaryVehicleBusComponentReaderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationComponentsPrimaryVehicleBusDataProviderV01>() - .Named(XMLDeclarationComponentsPrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationPrimaryVehicleBusEngineDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusEngineDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLGearboxDeclarationInputData>().To<XMLDeclarationPrimaryVehicleBusGearboxDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusGearboxDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLGearboxReader>().To<XMLPrimaryVehicleBusComponentReaderV01>() - .Named(XMLPrimaryVehicleBusComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE); - - Bind<IXMLGearData>().To<XMLPrimaryVehicleBusTransmissionDataV01>() - .Named(XMLPrimaryVehicleBusTransmissionDataV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLTorqueConverterDeclarationInputData>() - .To<XMLDeclarationTorqueConverterDataProviderPIF01>() - .Named(XMLDeclarationTorqueConverterDataProviderPIF01.QUALIFIED_XSD_TYPE); - - Bind<IXMLAngledriveInputData>().To<XMLDeclarationPrimaryVehicleBusAngledriveDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusAngledriveDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLAxleGearInputData>().To<XMLDeclarationPrimaryVehicleBusAxlegearDataProviderV01>().Named( - XMLDeclarationPrimaryVehicleBusAxlegearDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLApplicationInformationData>().To<XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.QUALIFIED_XSD_TYPE); - - Bind<IXMLResultsInputData>().To<XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01>() - .Named(XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.QUALIFIED_XSD_TYPE); - - - } - - #endregion - - } -} diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs index 3354f77dc0e222f23325d727ec3c0e3bf552c7a6..3d7f043aac1a7e8fd4eb5b6501acea72734e776b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs @@ -52,7 +52,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration new XMLDeclarationInputDataV22InjectModule(), new XMLDeclarationInputDataV23InjectModule(), new XMLDeclarationInputDataV26InjectModule(), - new XMLDeclarationPrimaryVehicleBusV01InjectModule(), + new XMLDeclarationInputDataV28InjectModule(), + new XMLDeclarationInputDataMultistageV01InjectModule(), }); #endregion 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 802735d8c76145446e2eee33327c759b5e9e7d24..d7c7189f171db6b35ded6ffc9f5acd5ab976c902 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs @@ -392,21 +392,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } + // --------------------------------------------------------------------------------------- - public class XMLPrimaryVehicleBusComponentReaderV01 : XMLComponentReaderV20 + public class XMLMultistagePrimaryVehicleBusComponentReaderV01 : XMLComponentReaderV20 { - public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; + 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 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); protected IBusAuxiliariesDeclarationData _busAuxInputData; - - public XMLPrimaryVehicleBusComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) + public XMLMultistagePrimaryVehicleBusComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { } public override IGearboxDeclarationInputData GearboxInputData @@ -416,22 +418,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return _gearboxInputData ?? (_gearboxInputData = CreateComponent(XMLNames.Component_Transmission, GearboxCreator)); } } - + public override IRetarderInputData RetarderInputData { get { return null; } } - + public override IAirdragDeclarationInputData AirdragInputData { get { return null; } } - + public override IAuxiliariesDeclarationInputData AuxiliaryData { get { return null; } } - + public override IBusAuxiliariesDeclarationData BusAuxiliariesInputData { get { return _busAuxInputData ?? (_busAuxInputData = CreateComponent(XMLNames.Component_Auxiliaries, BusAuxCreator)); } @@ -442,6 +444,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return Factory.CreateBusAuxiliaires(version, Vehicle, componentNode, sourceFile); } } + // --------------------------------------------------------------------------------------- @@ -483,4 +486,89 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } + // --------------------------------------------------------------------------------------- + + public class XMLComponentReaderV28 : XMLComponentReaderV20 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28; + + public new const string XSD_TYPE = "CompletedVehicleComponentsDeclarationType"; + + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + protected IBusAuxiliariesDeclarationData _busAuxInputData; + + + public XMLComponentReaderV28(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) + : base(vehicle, componentsNode) + { + + } + + public override IAngledriveInputData AngledriveInputData + { + get { return null; } + } + + public override IAxleGearInputData AxleGearInputData + { + get { return null; } + } + + public override IAxlesDeclarationInputData AxlesDeclarationInputData + { + get { return null; } + } + + public override IEngineDeclarationInputData EngineInputData + { + get { return null; } + } + + public override IGearboxDeclarationInputData GearboxInputData + { + get { return null; } + } + + public override ITorqueConverterDeclarationInputData TorqueConverterInputData + { + get { return null; } + } + + public override ITyreDeclarationInputData Tyre + { + get { return null; } + } + + public override IRetarderInputData RetarderInputData + { + get { return null; } + } + + public override IAuxiliariesDeclarationInputData AuxiliaryData + { + get { return null; } + } + + public override IAirdragDeclarationInputData AirdragInputData + { + get + { + return _airdragInputData ?? + (_airdragInputData = CreateComponent(XMLNames.Component_AirDrag, AirdragCreator)); + } + } + + public override IBusAuxiliariesDeclarationData BusAuxiliariesInputData + { + get { return _busAuxInputData ?? (_busAuxInputData = CreateComponent(XMLNames.Component_Auxiliaries, BusAuxCreator)); } + } + + protected virtual IBusAuxiliariesDeclarationData BusAuxCreator(string version, XmlNode componentNode, string sourceFile) + { + return Factory.CreateBusAuxiliaires(version, Vehicle, componentNode, sourceFile); + } + + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs index efeb18dcfb9f0e114ce3369dfe4791dce1b4e680..83f3379d34e424ef3c58988674c44da604027275 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs @@ -90,88 +90,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationInputReaderV20(IXMLDeclarationInputData inputData, XmlNode baseNode) : base(inputData, - baseNode) - { - - } - } - - - // --------------------------------------------------------------------------------------- - - public class XMLPrimaryVehicleBusInputReaderV01 : AbstractComponentReader, IXMLDeclarationPrimaryVehicleBusInputDataReader - { - - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_NAMESPACE; - - public const string XSD_TYPE = "PrimaryVehicleHeavyBusType"; - - public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - - - protected XmlNode JobNode; - protected IDeclarationJobInputData _jobData; - protected IXMLPrimaryVehicleBusInputData _primaryInputData; - protected IApplicationInformation _applicationInformation; - protected IResultsInputData _resultsInputData; - - [Inject] - public IDeclarationInjectFactory Factory { protected get; set; } - - - public XMLPrimaryVehicleBusInputReaderV01(IXMLPrimaryVehicleBusInputData inputData, XmlNode baseNode) : base(inputData, baseNode) - { - JobNode = baseNode; - _primaryInputData = inputData; - } - - public IDeclarationJobInputData JobData - { - get - { - return _jobData ?? (_jobData = CreateComponent(XMLNames.VectoPrimaryVehicleReport, JobCreator)); - } - } - - - protected IDeclarationJobInputData JobCreator(string version, XmlNode node, string arg3) - { - var job = Factory.CreatePrimaryVehicleJobData(version, BaseNode, _primaryInputData, - (_primaryInputData as IXMLResource).DataSource.SourceFile); - job.Reader = Factory.CreatePrimaryVehicleJobReader(version, job, JobNode); - return job; - } - - - public IResultsInputData ResultsInputData - { - get{ return _resultsInputData ?? - (_resultsInputData = CreateComponent(XMLNames.Report_Results, ResultsInputDataCreator)); } - } - - protected IResultsInputData ResultsInputDataCreator(string version, XmlNode node, string arg3) - { - return Factory.CreateResultsInputDataReader(version, node); - } - - - public DigestData GetDigestData(XmlNode xmlNode) - { - return xmlNode == null ? null : new DigestData(xmlNode); - } - - - protected IApplicationInformation ApplicationCreator(string version, XmlNode node, string agr3) - { - return Factory.CreateApplicationInformationReader(version, node); - } - - - public IApplicationInformation ApplicationInformation - { - get { return _applicationInformation ?? - (_applicationInformation = CreateComponent(XMLNames.Tag_ApplicationInformation, ApplicationCreator)); } - } + public XMLDeclarationInputReaderV20(IXMLDeclarationInputData inputData, XmlNode baseNode) + : base(inputData, baseNode) { } } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs new file mode 100644 index 0000000000000000000000000000000000000000..aca0d0a9e7f3ca929114984d2e52b9c9455e3bf2 --- /dev/null +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs @@ -0,0 +1,1368 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using Castle.Core.Internal; +using Ninject; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl +{ + public class XMLDeclarationMultistageInputReaderV01 : AbstractComponentReader, IXMLDeclarationMultistageVehicleInputDataReader + { + + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "VectoOutputMultistageType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + [Inject] + public IDeclarationInjectFactory Factory { protected get; set; } + + protected IDeclarationMultistageJobInputData _jobData; + + protected IXMLMultistageInputDataProvider InputData; + + protected XmlNode JobNode; + + public XMLDeclarationMultistageInputReaderV01(IXMLMultistageInputDataProvider inputData, XmlNode baseNode) + : base(inputData, baseNode) + { + JobNode = baseNode; + InputData = inputData; + } + + public IDeclarationMultistageJobInputData JobData + { + get { return _jobData ?? (_jobData = CreateComponent(XMLNames.VectoOutputMultistage, JobCreator)); } + } + + protected virtual IDeclarationMultistageJobInputData JobCreator(string version, XmlNode node, string arg3) + { + var job = Factory.CreateMultiStageJobData(version, BaseNode, InputData, (InputData as IXMLResource).DataSource.SourceFile); + job.Reader = Factory.CreateMultistageJobReader(version, job, JobNode); + return job; + + } + } + + // --------------------------------------------------------------------------------------- + + public class XMLMultistageJobReaderV01 : AbstractComponentReader, IXMLMultistageJobReader + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "VectoOutputMultistageType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + protected IXMLDeclarationMultistageJobInputData InputData; + protected IPrimaryVehicleInformationInputDataProvider _primaryVehicle; + protected IList<IManufacturingStageInputData> _manufacturingStages; + protected ConsolidateManufacturingStages _consolidateManufacturingStages; + + private XmlNodeList _manufacturingNodeStages; + + [Inject] + public IDeclarationInjectFactory Factory { protected get; set; } + + + + public XMLMultistageJobReaderV01(IXMLDeclarationMultistageJobInputData inputData, XmlNode baseNode) + : base(inputData, baseNode) + { + InputData = inputData; + SetManufacturingStageNodes(); + } + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle + { + get { return _primaryVehicle ?? (_primaryVehicle = CreateComponent(XMLNames.Bus_PrimaryVehicle, PrimaryVehicleCreator)); } + } + + protected IPrimaryVehicleInformationInputDataProvider PrimaryVehicleCreator(string version, XmlNode node, + string arg3) + { + var primaryVehicle = Factory.CreatePrimaryMultistageVehicleData(version, node, arg3); + primaryVehicle.Reader = Factory.CreatePrimaryVehicleBusInputReader(version, primaryVehicle, node.FirstChild); + return primaryVehicle; + } + + public IList<IManufacturingStageInputData> ManufacturingStages + { + get + { + if (_manufacturingNodeStages.IsNullOrEmpty()) + return null; + + return _manufacturingStages ?? (_manufacturingStages = ManufacturingStagesCreator()); + } + } + + private IList<IManufacturingStageInputData> ManufacturingStagesCreator() + { + var stages = new List<IManufacturingStageInputData>(); + + foreach (XmlNode manufacturingNodeStage in _manufacturingNodeStages) + { + var version = XMLHelper.GetXsdType(manufacturingNodeStage?.SchemaInfo.SchemaType); + stages.Add(ManufacturingStageCreator(version, manufacturingNodeStage)); + } + return stages; + } + + protected IManufacturingStageInputData ManufacturingStageCreator(string version, XmlNode node) + { + var stage = Factory.CreateMultistageData(version, node, null); + stage.Reader = Factory.CreateMultistageDataReader(version, stage, node); + return stage; + } + + public IManufacturingStageInputData ConsolidateManufacturingStage + { + get + { + if (ManufacturingStages.IsNullOrEmpty()) + return null; + + return _consolidateManufacturingStages ?? + (_consolidateManufacturingStages = GetConsolidateManufacturingStage()); + } + } + + public VectoSimulationJobType JobType + { + get { return InputData.JobType; } + } + + public bool InputComplete + { + get + { + if (ManufacturingStages.IsNullOrEmpty()) + return false; + + if (_consolidateManufacturingStages == null) + _consolidateManufacturingStages = GetConsolidateManufacturingStage(); + + return _consolidateManufacturingStages.IsInputDataComplete(JobType); + } + } + + private ConsolidateManufacturingStages GetConsolidateManufacturingStage() + { + return new ConsolidateManufacturingStages(PrimaryVehicle, ManufacturingStages.Reverse()); + } + + + private void SetManufacturingStageNodes() + { + _manufacturingNodeStages = BaseNode.SelectNodes(XMLHelper.QueryLocalName(XMLNames.ManufacturingStage)); + } + } + + // --------------------------------------------------------------------------------------- + + public class XMLMultistageEntryReaderV01 : AbstractComponentReader, IXMLMultistageReader + { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "ManufacturingStageType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + + protected readonly XmlNode JobNode; + protected readonly IXMLMultistageEntryInputDataProvider _multistageData; + protected IApplicationInformation _applicationInformation; + protected IVehicleDeclarationInputData _vehicle; + + [Inject] + public IDeclarationInjectFactory Factory { protected get; set; } + + public XMLMultistageEntryReaderV01(IXMLMultistageEntryInputDataProvider multistageData, XmlNode node) : base( + multistageData, node) + { + JobNode = node; + _multistageData = multistageData; + } + + public IVehicleDeclarationInputData Vehicle + { + get { return _vehicle ?? (_vehicle = CreateComponent(XMLNames.Tag_Vehicle, VehicleCreator)); } + } + + private IVehicleDeclarationInputData VehicleCreator(string version, XmlNode node, string arg3) + { + var vehicle = Factory.CreateVehicleData(version, null, node, arg3); + + if (vehicle.ComponentNode != null) + vehicle.ComponentReader = GetReader(vehicle, vehicle.ComponentNode, Factory.CreateComponentReader); + + if (vehicle.ADASNode != null) + vehicle.ADASReader = GetReader(vehicle, vehicle.ADASNode, Factory.CreateADASReader); + + return vehicle; + } + + public IApplicationInformation ApplicationInformation + { + get + { + return _applicationInformation ?? + (_applicationInformation = CreateComponent(XMLNames.Tag_ApplicationInformation, ApplicationCreator)); + } + } + + protected IApplicationInformation ApplicationCreator(string version, XmlNode node, string agr3) + { + return Factory.CreateApplicationInformationReader(version, node); + } + + public DigestData GetDigestData(XmlNode xmlNode) + { + return xmlNode == null ? null : new DigestData(xmlNode); + } + } + + // --------------------------------------------------------------------------------------- + + + public class XMLMultistagePrimaryVehicleReaderV01 : AbstractComponentReader, IXMLDeclarationPrimaryVehicleBusInputDataReader + { + + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; + + public const string XSD_TYPE = "PrimaryVehicleDataType"; + + public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + protected XmlNode JobNode; + protected IDeclarationJobInputData _jobData; + protected IXMLPrimaryVehicleBusInputData _primaryInputData; + protected IApplicationInformation _applicationInformation; + protected IResultsInputData _resultsInputData; + + [Inject] + public IDeclarationInjectFactory Factory { protected get; set; } + + + public XMLMultistagePrimaryVehicleReaderV01(IXMLPrimaryVehicleBusInputData inputData, XmlNode baseNode) : base(inputData, baseNode) + { + JobNode = baseNode; + _primaryInputData = inputData; + } + + public virtual IDeclarationJobInputData JobData + { + get + { + return _jobData ?? (_jobData = CreateComponent(XMLNames.Tag_Vehicle, JobCreator)); + } + } + + + protected IDeclarationJobInputData JobCreator(string version, XmlNode node, string arg3) + { + var job = Factory.CreatePrimaryVehicleJobData(version, BaseNode, _primaryInputData, + (_primaryInputData as IXMLResource).DataSource.SourceFile); + job.Reader = Factory.CreatePrimaryVehicleJobReader(version, job, JobNode); + return job; + } + + public IResultsInputData ResultsInputData + { + get + { + return _resultsInputData ?? + (_resultsInputData = CreateComponent(XMLNames.Report_Results, ResultsInputDataCreator)); + } + } + + protected IResultsInputData ResultsInputDataCreator(string version, XmlNode node, string arg3) + { + return Factory.CreateResultsInputDataReader(version, node); + } + + public DigestData GetDigestData(XmlNode xmlNode) + { + return xmlNode == null ? null : new DigestData(xmlNode); + } + + protected IApplicationInformation ApplicationCreator(string version, XmlNode node, string agr3) + { + return Factory.CreateApplicationInformationReader(version, node); + } + + public IApplicationInformation ApplicationInformation + { + get + { + return _applicationInformation ?? + (_applicationInformation = CreateComponent(XMLNames.Tag_ApplicationInformation, ApplicationCreator)); + } + } + } + + // --------------------------------------------------------------------------------------- + + + #region Generate Consolidated Multistage InputData + + public abstract class ConsolidatedDataBase + { + protected readonly IEnumerable<IManufacturingStageInputData> _manufacturingStages; + protected string InvalidEntry { get; private set; } + + public ConsolidatedDataBase(IEnumerable<IManufacturingStageInputData> manufacturingStages) + { + _manufacturingStages = manufacturingStages; + } + + protected T GetPropertyValue<T>(object obj, string name) + { + var propertyValue = GetPropertyValue(obj, name); + if (propertyValue == null) + return default; + + return (T)propertyValue; + } + + protected object GetPropertyValue(object obj, string name) + { + foreach (var part in name.Split('.')) + { + if (obj == null) { return null; } + + var type = obj.GetType(); + var info = type.GetProperty(part); + if (info == null) { return null; } + + obj = info.GetValue(obj, null); + } + return obj; + } + + public abstract bool IsInputDataComplete(VectoSimulationJobType jobType); + + public abstract string GetInvalidEntry(); + + protected bool MethodComplete(bool result, string methodName) + { + if (result) + return true; + + InvalidEntry = methodName; + return false; + } + + protected bool InputComplete<T>(T value, string variableName) + { + if (value != null) + return true; + + InvalidEntry = variableName; + return false; + } + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidateManufacturingStages : ConsolidatedDataBase, IManufacturingStageInputData + { + private ConsolidatedVehicleData _consolidatedVehicleData; + private IPrimaryVehicleInformationInputDataProvider _primaryVehicle; + + public ConsolidateManufacturingStages(IPrimaryVehicleInformationInputDataProvider primaryVehicle, + IEnumerable<IManufacturingStageInputData> manufacturingStages) : base(manufacturingStages) + { + _primaryVehicle = primaryVehicle; + } + + public DigestData HashPreviousStage + { + get { return _manufacturingStages.First().HashPreviousStage; } + } + + public int StageCount + { + get { return _manufacturingStages.First().StageCount; } + } + + public IVehicleDeclarationInputData Vehicle + { + get { return GetConsolidatedVehicleData(); } + } + + public IApplicationInformation ApplicationInformation + { + get { return _manufacturingStages.First().ApplicationInformation; } + } + + public DigestData Signature + { + get { return _manufacturingStages.First().Signature; } + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + return GetConsolidatedVehicleData().IsInputDataComplete(jobType); + } + + public override string GetInvalidEntry() + { + return _consolidatedVehicleData.GetInvalidEntry(); + } + + private ConsolidatedVehicleData GetConsolidatedVehicleData() + { + return _consolidatedVehicleData ?? + (_consolidatedVehicleData = new ConsolidatedVehicleData(_primaryVehicle, _manufacturingStages)); + } + + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidatedVehicleData : ConsolidatedDataBase, IVehicleDeclarationInputData + { + private ConsolidatedADASData _consolidatedADAS; + private ConsolidatedComponentData _consolidatedComponents; + private readonly IPrimaryVehicleInformationInputDataProvider _primaryVehicle; + + public ConsolidatedVehicleData(IPrimaryVehicleInformationInputDataProvider primaryVehicle, + IEnumerable<IManufacturingStageInputData> manufacturingStages) : base(manufacturingStages) + { + _primaryVehicle = primaryVehicle; + } + + #region ManufacturingStage mandatory properties + + public string Manufacturer + { + get { return _manufacturingStages.First().Vehicle.Manufacturer; } + } + + public string ManufacturerAddress + { + get { return _manufacturingStages.First().Vehicle.ManufacturerAddress; } + } + + public DateTime Date + { + get { return _manufacturingStages.First().Vehicle.Date; } + } + + public string VIN + { + get { return _manufacturingStages.First().Vehicle.VIN; } + } + + public string LegislativeCategory + { + get { return null; } + } + + public VehicleDeclarationType VehicleDeclarationType + { + get { return _manufacturingStages.First().Vehicle.VehicleDeclarationType; } + } + + #endregion + + #region ManufacturingStage optional properties + + public string Model + { + get { return GetVehiclePropertyValue<string>(nameof(Model)); } + } + + public LegislativeClass? LegislativeClass + { + get { return GetVehiclePropertyValue<LegislativeClass?>(nameof(LegislativeClass)); } + } + + public Kilogram CurbMassChassis + { + get { return GetVehiclePropertyValue<Kilogram>(nameof(CurbMassChassis)); } + } + + public Kilogram GrossVehicleMassRating + { + get + { + return GetVehiclePropertyValue<Kilogram>(nameof(GrossVehicleMassRating)); + } + } + + public bool? AirdragModifiedMultistage + { + get + { + return GetVehiclePropertyValue<bool?>(nameof(AirdragModifiedMultistage)); + } + } + + public TankSystem? TankSystem + { + get { return GetVehiclePropertyValue<TankSystem?>(nameof(TankSystem)); } + } + + public RegistrationClass? RegisteredClass + { + get { return GetVehiclePropertyValue<RegistrationClass?>(nameof(RegisteredClass)); } + } + + + public int? NumberPassengerSeatsUpperDeck + { + get { return GetVehiclePropertyValue<int?>(nameof(NumberPassengerSeatsUpperDeck)); } + } + + public int? NumberPassengerSeatsLowerDeck + { + get { return GetVehiclePropertyValue<int?>(nameof(NumberPassengerSeatsLowerDeck)); } + } + + public int? NumberPassengersStandingLowerDeck + { + get { return GetVehiclePropertyValue<int?>(nameof(NumberPassengersStandingLowerDeck)); } + } + + public int? NumberPassengersStandingUpperDeck + { + get { return GetVehiclePropertyValue<int?>(nameof(NumberPassengersStandingUpperDeck)); } + } + + public VehicleCode? VehicleCode + { + get { return GetVehiclePropertyValue<VehicleCode?>(nameof(VehicleCode)); } + } + + public bool? LowEntry + { + get { return GetVehiclePropertyValue<bool?>(nameof(LowEntry)); } + } + + public Meter Height + { + get { return GetVehiclePropertyValue<Meter>(nameof(Height)); } + } + + public Meter Length + { + get { return GetVehiclePropertyValue<Meter>(nameof(Length)); } + } + + public Meter Width + { + get { return GetVehiclePropertyValue<Meter>(nameof(Width)); } + } + + public Meter EntranceHeight + { + get { return GetVehiclePropertyValue<Meter>(nameof(EntranceHeight)); } + } + + public ConsumerTechnology? DoorDriveTechnology + { + get { return GetVehiclePropertyValue<ConsumerTechnology?>(nameof(DoorDriveTechnology)); } + + } + + public IAdvancedDriverAssistantSystemDeclarationInputData ADAS + { + get { return GetADAS(); } + } + + private IAdvancedDriverAssistantSystemDeclarationInputData GetADAS() + { + if (GetVehiclePropertyValue<IAdvancedDriverAssistantSystemDeclarationInputData>(nameof(ADAS)) == null) + return null; + + return _consolidatedADAS + ?? (_consolidatedADAS = new ConsolidatedADASData(_manufacturingStages)); + } + + + public IVehicleComponentsDeclaration Components + { + get { return GetComponents(); } + } + + private IVehicleComponentsDeclaration GetComponents() + { + if (GetVehiclePropertyValue<IVehicleComponentsDeclaration>(nameof(Components)) == null) + return null; + + return _consolidatedComponents + ?? (_consolidatedComponents = new ConsolidatedComponentData(_manufacturingStages)); + } + + #endregion + + #region Non set IVehicleDeclarationInputData interface properties + + public DataSource DataSource { get; } + public bool SavedInDeclarationMode { get; } + public string AppVersion { get; } + public CertificationMethod CertificationMethod { get; } + public string CertificationNumber { get; } + public DigestData DigestValue { get; } + public string Identifier { get; } + public bool ExemptedVehicle { get; } + public VehicleCategory VehicleCategory { get; } + public AxleConfiguration AxleConfiguration { get; } + public IList<ITorqueLimitInputData> TorqueLimits { get; } + + 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 CubicMeter CargoVolume { get; } + public bool Articulated { get; } + + public XmlNode XMLSource { get; } + + #endregion + + private T GetVehiclePropertyValue<T>(string propertyName) + { + foreach (var manufacturingStage in _manufacturingStages) { + var value = GetPropertyValue<T>(manufacturingStage.Vehicle, propertyName); + if (value != null) + return value; + } + return default; + } + + private bool PrimaryEngineWithNGTankSystem() + { + var enginePrimaryEngine = _primaryVehicle?.Vehicle?.Components?.EngineInputData; + if (enginePrimaryEngine == null) + return false; + + foreach (var engineMode in enginePrimaryEngine.EngineModes) + { + foreach (var fuel in engineMode.Fuels) + { + if (fuel.FuelType == FuelType.NGPI || fuel.FuelType == FuelType.NGCI) + return true; + } + } + + return false; + } + + + private bool IsTankSystemValid() + { + if (PrimaryEngineWithNGTankSystem()) + return TankSystem != null; + return true; + } + + private bool IsAirdragEntriesValid() + { + var checkAirdragModified = false; + var validAirdragEntries = true; + + var t = _manufacturingStages.ToList(); + + var stages = _manufacturingStages.Reverse().ToList(); + foreach (var manufacturingStage in stages) { + if (manufacturingStage.Vehicle?.Components?.AirdragInputData != null && !checkAirdragModified ) { + checkAirdragModified = true; + continue; + } + + if (checkAirdragModified && manufacturingStage.Vehicle?.AirdragModifiedMultistage == null) { + validAirdragEntries = false; + break; + } + } + + return validAirdragEntries; + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + GetADAS(); + GetComponents(); + + return InputComplete(Model, nameof(Model)) + && InputComplete(LegislativeClass, nameof(LegislativeClass)) + && InputComplete(CurbMassChassis, nameof(CurbMassChassis)) + && InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating)) + && MethodComplete(IsAirdragEntriesValid(), nameof(IsAirdragEntriesValid)) + && MethodComplete(IsTankSystemValid(), nameof(IsTankSystemValid)) + && InputComplete(RegisteredClass, nameof(RegisteredClass)) + && InputComplete(NumberPassengerSeatsLowerDeck, nameof(NumberPassengerSeatsLowerDeck)) + && InputComplete(NumberPassengerSeatsUpperDeck, nameof(NumberPassengerSeatsUpperDeck)) + && InputComplete(NumberPassengersStandingLowerDeck, nameof(NumberPassengersStandingLowerDeck)) + && InputComplete(NumberPassengersStandingUpperDeck, nameof(NumberPassengersStandingUpperDeck)) + && InputComplete(VehicleCode, nameof(VehicleCode)) + && InputComplete(LowEntry, nameof(LowEntry)) && InputComplete(Height, nameof(Height)) + && InputComplete(Length, nameof(Length)) && InputComplete(Width, nameof(Width)) + && InputComplete(EntranceHeight, nameof(EntranceHeight)) + && InputComplete(DoorDriveTechnology, nameof(DoorDriveTechnology)) + && InputComplete(_consolidatedADAS, nameof(_consolidatedADAS)) + && _consolidatedADAS.IsInputDataComplete(jobType) + && InputComplete(_consolidatedComponents, nameof(_consolidatedComponents)) + && _consolidatedComponents.IsInputDataComplete(jobType); + } + + public override string GetInvalidEntry() + { + if (InvalidEntry != null) + return InvalidEntry; + + if (_consolidatedADAS?.GetInvalidEntry() != null) + return _consolidatedADAS.GetInvalidEntry(); + + if (_consolidatedComponents?.GetInvalidEntry() != null) + return _consolidatedComponents.GetInvalidEntry(); + + return null; + } + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidatedADASData : ConsolidatedDataBase, IAdvancedDriverAssistantSystemDeclarationInputData + { + public ConsolidatedADASData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) { } + + public bool EngineStopStart + { + get { return GetADASPropertyValue<bool>(nameof(EngineStopStart)); } + } + + public EcoRollType EcoRoll + { + get { return GetADASPropertyValue<EcoRollType>(nameof(EcoRoll)); } + } + + public PredictiveCruiseControlType PredictiveCruiseControl + { + get { return GetADASPropertyValue<PredictiveCruiseControlType>(nameof(PredictiveCruiseControl)); } + } + + public bool? ATEcoRollReleaseLockupClutch + { + get { return GetADASPropertyValue<bool?>(nameof(ATEcoRollReleaseLockupClutch)); } + } + + public XmlNode XMLSource { get; } + + + private T GetADASPropertyValue<T>(string propertyName) + { + foreach (var manufacturingStage in _manufacturingStages) { + var adas = manufacturingStage.Vehicle.ADAS; + if (adas == null) + continue; + var value = GetPropertyValue<T>(adas, propertyName); + if (value != null) + return value; + } + + return default; + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + return InputComplete(ATEcoRollReleaseLockupClutch, nameof(ATEcoRollReleaseLockupClutch)); + } + + public override string GetInvalidEntry() + { + return InvalidEntry; + } + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidatedComponentData : ConsolidatedDataBase, IVehicleComponentsDeclaration + { + private ConsolidatedAirdragData _consolidateAirdragData; + private ConsolidatedBusAuxiliariesData _consolidateBusAuxiliariesData; + + public ConsolidatedComponentData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) { } + + + public IAirdragDeclarationInputData AirdragInputData + { + get { return GetAirdragInputData(); } + } + + private IAirdragDeclarationInputData GetAirdragInputData() + { + if (GetComponentPropertyValue<IAirdragDeclarationInputData>(nameof(AirdragInputData)) == null) + return null; + + return _consolidateAirdragData ?? + (_consolidateAirdragData = new ConsolidatedAirdragData(_manufacturingStages)); + } + + public IGearboxDeclarationInputData GearboxInputData + { + get { return null; } + } + public ITorqueConverterDeclarationInputData TorqueConverterInputData + { + get { return null; } + } + public IAxleGearInputData AxleGearInputData + { + get { return null; } + } + public IAngledriveInputData AngledriveInputData + { + get { return null; } + } + public IEngineDeclarationInputData EngineInputData + { + get { return null; } + } + public IAuxiliariesDeclarationInputData AuxiliaryInputData + { + get { return null; } + } + public IRetarderInputData RetarderInputData + { + get { return null; } + } + public IPTOTransmissionInputData PTOTransmissionInputData + { + get { return null; } + } + public IAxlesDeclarationInputData AxleWheels + { + get { return null; } + } + + public IBusAuxiliariesDeclarationData BusAuxiliaries + { + get { return GetBusAuxiliaries(); } + } + + private IBusAuxiliariesDeclarationData GetBusAuxiliaries() + { + if (GetComponentPropertyValue<IBusAuxiliariesDeclarationData>(nameof(BusAuxiliaries)) == null) + return null; + + return _consolidateBusAuxiliariesData ?? + (_consolidateBusAuxiliariesData = new ConsolidatedBusAuxiliariesData(_manufacturingStages)); + } + + + public IElectricStorageDeclarationInputData ElectricStorage + { + get { return null; } + } + public IElectricMachinesDeclarationInputData ElectricMachines + { + get { return null; } + } + + private T GetComponentPropertyValue<T>(string propertyName) + { + + foreach (var manufacturingStage in _manufacturingStages) { + var component = manufacturingStage.Vehicle?.Components; + if (component == null) + continue; + var value = GetPropertyValue<T>(component, propertyName); + if (value != null) + return value; + } + + return default; + } + + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + GetAirdragInputData(); + GetBusAuxiliaries(); + + return InputComplete(_consolidateBusAuxiliariesData, nameof(_consolidateBusAuxiliariesData)) + && _consolidateBusAuxiliariesData.IsInputDataComplete(jobType); + } + + public override string GetInvalidEntry() + { + if (InvalidEntry != null) + return InvalidEntry; + + if (_consolidateAirdragData?.GetInvalidEntry() != null) + return _consolidateAirdragData.GetInvalidEntry(); + + if (_consolidateBusAuxiliariesData?.GetInvalidEntry() != null) + return _consolidateBusAuxiliariesData.GetInvalidEntry(); + + return InvalidEntry; + } + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidatedAirdragData : ConsolidatedDataBase, IAirdragDeclarationInputData + { + public IAirdragDeclarationInputData AirdragEntry { private set; get; } + + public ConsolidatedAirdragData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) + { + SetLastValidAirdragEntry(); + } + + public string Manufacturer + { + get { return AirdragEntry?.Manufacturer; } + } + + public string Model + { + get { return AirdragEntry?.Model; } + } + + public DateTime Date + { + get { return AirdragEntry.Date; } + } + + public string AppVersion + { + get { return AirdragEntry?.AppVersion; } + } + public CertificationMethod CertificationMethod + { + get { return AirdragEntry.CertificationMethod; } + } + public string CertificationNumber + { + get { return AirdragEntry?.CertificationNumber; } + } + public DigestData DigestValue + { + get { return AirdragEntry?.DigestValue; } + } + public SquareMeter AirDragArea + { + get { return AirdragEntry?.AirDragArea; } + } + + public SquareMeter TransferredAirDragArea + { + get { return AirdragEntry?.TransferredAirDragArea; } + } + + public SquareMeter AirDragArea_0 + { + get { return AirdragEntry.AirDragArea_0; } + } + + public DataSource DataSource + { + get { return AirdragEntry?.DataSource; } + } + public bool SavedInDeclarationMode { get; } + + private void SetLastValidAirdragEntry() + { + foreach (var manufacturingStage in _manufacturingStages) { + var airdragData = manufacturingStage.Vehicle?.Components?.AirdragInputData; + if (airdragData == null) + continue; + + var value = airdragData.AirDragArea; + if (value == null) + continue; + + AirdragEntry = airdragData; + return; + } + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + return InputComplete(AirdragEntry, nameof(AirdragEntry)); + } + + public override string GetInvalidEntry() + { + return InvalidEntry; + } + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidatedBusAuxiliariesData : ConsolidatedDataBase, IBusAuxiliariesDeclarationData + { + private ConsolidateElectricConsumerData _consolidateElectricConsumerData; + private ConsolidatedHVACBusAuxiliariesData _consolidatedHVACBusAuxiliariesData; + private XmlNode _xmlNode; + + + public ConsolidatedBusAuxiliariesData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) { } + + public XmlNode XMLSource + { + get { return _xmlNode ?? (_xmlNode = GetBusAuxXMLSource()); } + } + public string FanTechnology + { + get { return null; } + } + public IList<string> SteeringPumpTechnology + { + get { return null; } + } + public IElectricSupplyDeclarationData ElectricSupply + { + get { return null; } + } + + public IElectricConsumersDeclarationData ElectricConsumers + { + get { return GetElectricConsumers(); } + } + + private IElectricConsumersDeclarationData GetElectricConsumers() + { + if (GetBusAuxPropertyValue<IElectricConsumersDeclarationData>(nameof(ElectricConsumers)) == null) + return null; + + return _consolidateElectricConsumerData ?? + (_consolidateElectricConsumerData = new ConsolidateElectricConsumerData(_manufacturingStages)); + } + + public IPneumaticSupplyDeclarationData PneumaticSupply + { + get { return null; } + } + + public IPneumaticConsumersDeclarationData PneumaticConsumers + { + get { return null; } + } + + public IHVACBusAuxiliariesDeclarationData HVACAux + { + get { return GetHVACAux(); } + } + + private IHVACBusAuxiliariesDeclarationData GetHVACAux() + { + if (GetBusAuxPropertyValue<IHVACBusAuxiliariesDeclarationData>(nameof(HVACAux)) == null) + return null; + + return _consolidatedHVACBusAuxiliariesData ?? + (_consolidatedHVACBusAuxiliariesData = new ConsolidatedHVACBusAuxiliariesData(_manufacturingStages)); + } + + private T GetBusAuxPropertyValue<T>(string propertyName) + { + foreach (var manufacturingStage in _manufacturingStages) { + var busAux = manufacturingStage.Vehicle?.Components?.BusAuxiliaries; + if (busAux == null) + continue; + var value = GetPropertyValue<T>(busAux, propertyName); + if (value != null) + return value; + } + + return default; + } + + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + GetElectricConsumers(); + GetHVACAux(); + + return InputComplete(_consolidateElectricConsumerData, nameof(_consolidateElectricConsumerData)) + && _consolidateElectricConsumerData.IsInputDataComplete(jobType) + && InputComplete(_consolidatedHVACBusAuxiliariesData, nameof(_consolidatedHVACBusAuxiliariesData)) + && _consolidatedHVACBusAuxiliariesData.IsInputDataComplete(jobType); + } + + public override string GetInvalidEntry() + { + if (InvalidEntry != null) + return InvalidEntry; + + if (_consolidateElectricConsumerData?.GetInvalidEntry() != null) + return _consolidateElectricConsumerData.GetInvalidEntry(); + if (_consolidatedHVACBusAuxiliariesData?.GetInvalidEntry() != null) + return _consolidatedHVACBusAuxiliariesData.GetInvalidEntry(); + + return null; + } + + + private XmlNode GetBusAuxXMLSource() + { + var multistageBusReport = new XMLMultistageBusReport(); + var auxElement = multistageBusReport.GetBusAuxiliaries(this); + + if (auxElement == null) + return null; + + using (var xmlReader = auxElement.CreateReader()) + { + var xmlDoc = new XmlDocument(); + xmlDoc.Load(xmlReader); + return xmlDoc.FirstChild; + } + } + + } + + // --------------------------------------------------------------------------------------- + + public class ConsolidateElectricConsumerData : ConsolidatedDataBase, IElectricConsumersDeclarationData + { + public ConsolidateElectricConsumerData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) { } + + public bool? InteriorLightsLED + { + get { return GetElectricConsumerPropertyValue<bool?>(nameof(InteriorLightsLED)); } + } + + public bool? DayrunninglightsLED + { + get { return GetElectricConsumerPropertyValue<bool?>(nameof(DayrunninglightsLED)); } + } + + public bool? PositionlightsLED + { + get { return GetElectricConsumerPropertyValue<bool?>(nameof(PositionlightsLED)); } + } + + public bool? HeadlightsLED + { + get { return GetElectricConsumerPropertyValue<bool?>(nameof(HeadlightsLED)); } + } + + public bool? BrakelightsLED + { + get { return GetElectricConsumerPropertyValue<bool?>(nameof(BrakelightsLED)); } + } + + + private T GetElectricConsumerPropertyValue<T>(string propertyName) + { + foreach (var manufacturingStage in _manufacturingStages) { + var electricConsumer = manufacturingStage.Vehicle?.Components?.BusAuxiliaries?.ElectricConsumers; + if (electricConsumer == null) + continue; + var value = GetPropertyValue<T>(electricConsumer, propertyName); + if (value != null) + return value; + } + return default; + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + return InputComplete(InteriorLightsLED, nameof(InteriorLightsLED)) + && InputComplete(DayrunninglightsLED, nameof(DayrunninglightsLED)) + && InputComplete(PositionlightsLED, nameof(PositionlightsLED)) + && InputComplete(HeadlightsLED, nameof(HeadlightsLED)) + && InputComplete(BrakelightsLED, nameof(BrakelightsLED)); + } + + public override string GetInvalidEntry() + { + return InvalidEntry; + } + } + + // --------------------------------------------------------------------------------------- + public class ConsolidatedHVACBusAuxiliariesData : ConsolidatedDataBase, IHVACBusAuxiliariesDeclarationData + { + public ConsolidatedHVACBusAuxiliariesData(IEnumerable<IManufacturingStageInputData> manufacturingStages) + : base(manufacturingStages) { } + + public BusHVACSystemConfiguration? SystemConfiguration + { + get + { + return GetHVACBusAuxPropertyValue<BusHVACSystemConfiguration?>(nameof(SystemConfiguration)); + } + } + + public HeatPumpType? HeatPumpTypeDriverCompartment + { + get + { + return GetHVACBusAuxPropertyValue<HeatPumpType?>(nameof(HeatPumpTypeDriverCompartment)); + } + } + + public HeatPumpMode? HeatPumpModeDriverCompartment + { + get + { + return GetHVACBusAuxPropertyValue<HeatPumpMode?>(nameof(HeatPumpModeDriverCompartment)); + } + } + + public IList<Tuple<HeatPumpType, HeatPumpMode>> HeatPumpPassengerCompartments + { + get + { + return GetHeatPumpPassengerCompartments(); + } + } + + public Watt AuxHeaterPower + { + get + { + return GetHVACBusAuxPropertyValue<Watt>(nameof(AuxHeaterPower)); + } + } + + public bool? DoubleGlazing + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(DoubleGlazing)); + } + } + + public bool? AdjustableAuxiliaryHeater + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(AdjustableAuxiliaryHeater)); + } + } + + public bool? SeparateAirDistributionDucts + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(SeparateAirDistributionDucts)); + } + } + + public bool? WaterElectricHeater + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(WaterElectricHeater)); + } + } + + public bool? AirElectricHeater + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(AirElectricHeater)); + } + } + + public bool? OtherHeatingTechnology + { + get + { + return GetHVACBusAuxPropertyValue<bool?>(nameof(OtherHeatingTechnology)); + } + } + + public bool? AdjustableCoolantThermostat { get; } + + public bool EngineWasteGasHeatExchanger { get; } + + + private IList<Tuple<HeatPumpType, HeatPumpMode>> GetHeatPumpPassengerCompartments() + { + if (_manufacturingStages?.Any() != true) + return null; + + foreach (var entry in _manufacturingStages) { + if (entry.Vehicle?.Components?.BusAuxiliaries?.HVACAux?.HeatPumpPassengerCompartments != null) + return entry.Vehicle.Components.BusAuxiliaries.HVACAux.HeatPumpPassengerCompartments; + } + + return null; + } + + + private T GetHVACBusAuxPropertyValue<T>(string propertyName) + { + foreach (var manufacturingStage in _manufacturingStages) { + var havacAux = manufacturingStage.Vehicle?.Components?.BusAuxiliaries?.HVACAux; + if (havacAux == null) + continue; + var value = GetPropertyValue<T>(havacAux, propertyName); + if (value != null) + return value; + } + + return default; + } + + private bool IsCorrectSystemConfiguration() + { + return SystemConfiguration != null && SystemConfiguration != BusHVACSystemConfiguration.Unknown; + } + + private bool RequiredParametersForJobType(VectoSimulationJobType jobType) + { + switch (jobType) { + case VectoSimulationJobType.ConventionalVehicle: + return true; + case VectoSimulationJobType.ParallelHybridVehicle: + case VectoSimulationJobType.SerialHybridVehicle: + case VectoSimulationJobType.BatteryElectricVehicle: + return WaterElectricHeater != null && AirElectricHeater != null && OtherHeatingTechnology != null; + default: + return false; + } + } + + public override bool IsInputDataComplete(VectoSimulationJobType jobType) + { + return MethodComplete(IsCorrectSystemConfiguration(), nameof(IsCorrectSystemConfiguration)) + && InputComplete(HeatPumpTypeDriverCompartment, nameof(HeatPumpTypeDriverCompartment)) + && InputComplete(HeatPumpModeDriverCompartment, nameof(HeatPumpModeDriverCompartment)) + && InputComplete(HeatPumpPassengerCompartments, nameof(HeatPumpPassengerCompartments)) + && InputComplete(AuxHeaterPower, nameof(AuxHeaterPower)) + && InputComplete(DoubleGlazing, nameof(DoubleGlazing)) + && InputComplete(AdjustableAuxiliaryHeater, nameof(AdjustableAuxiliaryHeater)) + && InputComplete(SeparateAirDistributionDucts, nameof(SeparateAirDistributionDucts)) + && MethodComplete(RequiredParametersForJobType(jobType), nameof(RequiredParametersForJobType)); + } + + public override string GetInvalidEntry() + { + return InvalidEntry; + } + } + + #endregion +} \ No newline at end of file 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 8590fa0abd3c386e468a02089a0e1a50fc382963..ebf913e97e2e8c54cbe4b2f80e86f3f7f3c063d1 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs @@ -136,16 +136,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return vehicle; } } - + // --------------------------------------------------------------------------------------- - - public class XMLJobDataPrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader + + public class XMLJobDataMultistagePrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader { + public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01; - - public const string XSD_TYPE = "PrimaryVehicleHeavyBusDataType"; + public const string XSD_TYPE = "VehiclePIFType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); @@ -156,13 +155,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl protected IVehicleDeclarationInputData _vehicle; private readonly IXMLPrimaryVehicleBusJobInputData _primaryBusJobData; - - public XMLJobDataPrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) + + public XMLJobDataMultistagePrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode) : base(busJobData, jobNode) { _primaryBusJobData = busJobData; } - + public IVehicleDeclarationInputData CreateVehicle { get { return _vehicle ?? (_vehicle = CreateComponent(XMLNames.Component_Vehicle, VehicleCreator)); } @@ -173,8 +172,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl var vehicle = Factory.CreatePrimaryVehicleData(version, _primaryBusJobData, vehicleNode, sourceFile); vehicle.ComponentReader = GetReader(vehicle, vehicle.ComponentNode, Factory.CreateComponentReader); vehicle.ADASReader = GetReader(vehicle, vehicle.ADASNode, Factory.CreateADASReader); - + return vehicle; } } + } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs index 92c3ce6cf6a8ec24a5f2bbd935f1f9babf5da07f..55450db3f4dd33bead859bb32b77379994fc375d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs @@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return AirDragArea; } } - public virtual SquareMeter AirdragArea_0 + public virtual SquareMeter AirDragArea_0 { get { return AirDragArea; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs index 2e56477399b275141881ed4fbce799174f4e59ea..22319c5afe44092106ef7f8294200783fca3e7fe 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs @@ -160,9 +160,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return new[] { this }.Cast<IEngineFuelEngineeringInputData>().ToList(); } } - public virtual IList<IEngineFuelDelcarationInputData> Fuels + public virtual IList<IEngineFuelDeclarationInputData> Fuels { - get { return new[] { this }.Cast<IEngineFuelDelcarationInputData>().ToList(); } + get { return new[] { this }.Cast<IEngineFuelDeclarationInputData>().ToList(); } } public virtual IWHRData WasteHeatRecoveryDataElectrical @@ -367,9 +367,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider - IList<IEngineFuelDelcarationInputData> IEngineModeDeclarationInputData.Fuels + IList<IEngineFuelDeclarationInputData> IEngineModeDeclarationInputData.Fuels { - get { return (_fuels ?? (_fuels = ReadFuels())).Cast<IEngineFuelDelcarationInputData>().ToList(); } + get { return (_fuels ?? (_fuels = ReadFuels())).Cast<IEngineFuelDeclarationInputData>().ToList(); } } public virtual IWHRData WasteHeatRecoveryDataElectrical diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs index 9fb039026e007b13d6406050bf657a5064b8aa44..0856567215232a6ed62cf5190ef0a5f62c8a6a18 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs @@ -108,7 +108,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return GetString(XMLNames.Vehicle_VIN); } } - public virtual LegislativeClass LegislativeClass + public string LegislativeCategory + { + get { return null; } + } + + public virtual LegislativeClass? LegislativeClass { get { return GetString(XMLNames.Vehicle_LegislativeClass).ParseEnum<LegislativeClass>(); } } @@ -161,6 +166,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return false; } } + public virtual bool? AirdragModifiedMultistage + { + get { return null; } + } + public TankSystem? TankSystem { get { @@ -196,18 +206,21 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return null; } } - public virtual RegistrationClass RegisteredClass { get { return RegistrationClass.unknown;} } - public virtual int NumberOfPassengersUpperDeck { get { return 0; } } - public virtual int NumberOfPassengersLowerDeck { get { return 0; } } + public virtual RegistrationClass? RegisteredClass { get { return RegistrationClass.unknown;} } + public virtual int? NumberPassengerSeatsUpperDeck { get { return 0; } } + public virtual int? NumberPassengerSeatsLowerDeck { get { return 0; } } + public int? NumberPassengersStandingLowerDeck { get { return 0; } } + public int? NumberPassengersStandingUpperDeck { get { return 0; } } public CubicMeter CargoVolume { get; } - public virtual VehicleCode VehicleCode { get { return VehicleCode.NOT_APPLICABLE; } } - public virtual bool LowEntry { get { return false; } } + public virtual VehicleCode? VehicleCode { get { return VectoCommon.Models.VehicleCode.NOT_APPLICABLE; } } + public virtual bool? LowEntry { get { return false; } } public virtual bool Articulated { get { return false; } } public virtual Meter Width { get { return null; } } public virtual Meter EntranceHeight { get { return null; } } - public ConsumerTechnology DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } } + public virtual VehicleDeclarationType VehicleDeclarationType { get; } public TableData MaxPropulsionTorque { diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs index aa3fc9b2693d39705ba6403932cf8b2399c4bccf..c96b5604661cab3a4bd09fa6be19019b6ee3030f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs @@ -144,7 +144,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML { case XmlDocumentType.DeclarationJobData: return ReadDeclarationJob(xmlDoc, source); case XmlDocumentType.EngineeringJobData: return ReadEngineeringJob(xmlDoc, source); - case XmlDocumentType.PrimaryVehicleBusOutputData: return ReadPrimaryVehicleDeclarationJob(xmlDoc, source); + //case XmlDocumentType.PrimaryVehicleBusOutputData: return ReadPrimaryVehicleDeclarationJob(xmlDoc, source); + case XmlDocumentType.MultistageOutputData: return ReadMultistageDeclarationJob(xmlDoc, source); case XmlDocumentType.EngineeringComponentData: case XmlDocumentType.DeclarationComponentData: case XmlDocumentType.ManufacturerReport: @@ -154,6 +155,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML } } + private IMultistageBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source) + { + var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType); + try { + var input = DeclarationFactory.CreateMultistageInputProvider(versionNumber, xmlDoc, source); + input.Reader = DeclarationFactory.CreateMultistageInputReader(versionNumber, input, xmlDoc.DocumentElement); + return input; + } catch (Exception e) { + throw new VectoException("Failed to read Declaration job version {0}", e, versionNumber); + } + } + private IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source) { var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType); diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs index 3974a33de429b22d238f83eedace8acbf732965e..a7df5c9d5f21dc070dcb577c193bd351a1e2ad38 100644 --- a/VectoCore/VectoCore/InputData/Impl/InputData.cs +++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs @@ -32,12 +32,15 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Runtime.CompilerServices; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.Declaration; +[assembly: InternalsVisibleTo("VECTO3GUI2020")] + namespace TUGraz.VectoCore.InputData.Impl { public class CycleInputData : ICycleData @@ -201,20 +204,72 @@ namespace TUGraz.VectoCore.InputData.Impl public class AlternatorInputData : IAlternatorDeclarationInputData { - public AlternatorInputData(string technology) + public AlternatorInputData(Volt ratedVoltage, Ampere ratedCurrent) { - Technology = technology; - + RatedCurrent = ratedCurrent; + RatedVoltage = ratedVoltage; + } #region Implementation of IAlternatorDeclarationInputData - - public virtual string Technology { get; } + public Ampere RatedCurrent { get; } + public Volt RatedVoltage { get; } + #endregion } - + public class BusAuxBatteryInputData : IBusAuxElectricStorageDeclarationInputData + { + public BusAuxBatteryInputData(string technology, Volt voltage, AmpereSecond ratedCapacity) + { + Technology = technology; + Voltage = voltage; + Capacity = ratedCapacity; + } + + public Volt Voltage { get; set; } + + public AmpereSecond Capacity { get; set; } + + #region Implementation of IBusAuxElectricStorageDeclarationInputData + + public string Technology { get; } + + public WattSecond ElectricStorageCapacity + { + get { return Capacity * Voltage; } + } + + #endregion + } + + public class BusAuxCapacitorInputData : IBusAuxElectricStorageDeclarationInputData + { + public BusAuxCapacitorInputData(string technology, Volt voltage, Farad ratedCapacity) + { + Technology = technology; + Voltage = voltage; + Capacity = ratedCapacity; + } + + public Volt Voltage { get; set; } + + public Farad Capacity { get; set; } + + #region Implementation of IBusAuxElectricStorageDeclarationInputData + + public string Technology { get; } + public WattSecond ElectricStorageCapacity + { + get { return Capacity * Voltage * Voltage / 2.0; } + } + + #endregion + } + + + public class ResultInputData : IResultsInputData { public string Status { get; internal set; } diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs index 3e1e871c4c85eec869a405e2fddd33bfc22a6277..25ff21d243e816aa4ea17d93180e7b795e5e6ac3 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs @@ -25,7 +25,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { { LoggingObject.Logger<FuelConsumptionMap>().Warn( "Efficiencymap: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}", - FuelConsumptionMapReader.Fields.EngineSpeed, FuelConsumptionMapReader.Fields.Torque, FuelConsumptionMapReader.Fields.FuelConsumption, + Fields.MotorSpeed, Fields.Torque, Fields.PowerElectrical, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); data.Columns[0].ColumnName = Fields.MotorSpeed; data.Columns[1].ColumnName = Fields.Torque; @@ -68,8 +68,8 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { private static bool HeaderIsValid(DataColumnCollection columns) { - return columns.Contains(FuelConsumptionMapReader.Fields.EngineSpeed) && columns.Contains(FuelConsumptionMapReader.Fields.Torque) && - columns.Contains(FuelConsumptionMapReader.Fields.FuelConsumption); + return columns.Contains(Fields.MotorSpeed) && columns.Contains(Fields.Torque) && + columns.Contains(Fields.PowerElectrical); } public static class Fields diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs index 5cac5c5971a34f2b0abfeb7a56e9b55687319913..8ade80f4d3a16da911cd3be7bdb8fa70a840bd99 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs @@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter protected override TorqueConverterData CreateTorqueConverterData(GearboxType gearboxType, ITorqueConverterDeclarationInputData torqueConverter, double ratio, CombustionEngineData engineData) { - if (torqueConverter != null) { + if (torqueConverter != null && torqueConverter.TCData != null) { return TorqueConverterDataReader.Create( torqueConverter.TCData, DeclarationData.TorqueConverter.ReferenceRPM, DeclarationData.TorqueConverter.MaxInputSpeed, diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index 86d357ae64a22fad511e00202e4f3bb63265fca5..4d2412e43fee7342e56f67e0c217aba6302d618f 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -25,9 +25,23 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter IVehicleDeclarationInputData completedVehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) { + if (completedVehicle.NumberPassengerSeatsLowerDeck == null) { + throw new VectoException("NumberOfPassengerSeatsLowerDeck input parameter is required"); + } + if (completedVehicle.NumberPassengerSeatsUpperDeck == null) { + throw new VectoException("NumberOfPassengerSeatsUpperDeck input parameter is required"); + } + if (completedVehicle.NumberPassengersStandingLowerDeck == null) { + throw new VectoException("NumberOfPassengersStandingLowerDeck input parameter is required"); + } + if (completedVehicle.NumberPassengersStandingUpperDeck == null) { + throw new VectoException("NumberOfPassengersStandingUpperDeck input parameter is required"); + } var passengers = GetNumberOfPassengers( mission, completedVehicle.Length, completedVehicle.Width, - completedVehicle.NumberOfPassengersLowerDeck + completedVehicle.NumberOfPassengersUpperDeck, loading.Key); + completedVehicle.NumberPassengerSeatsLowerDeck.Value + completedVehicle.NumberPassengerSeatsUpperDeck.Value, + completedVehicle.NumberPassengersStandingLowerDeck.Value + completedVehicle.NumberPassengersStandingUpperDeck.Value, + loading.Key); var vehicleData = base.CreateVehicleData(primaryVehicle, segment, mission, loading, false); vehicleData.InputData = completedVehicle; @@ -64,7 +78,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter mission.DefaultCDxA, GetDeclarationAirResistanceCurve( mission.CrossWindCorrectionParameters, mission.DefaultCDxA, completedVehicle.Height + mission.BusParameter.DeltaHeight), - CrossWindCorrectionMode.DeclarationModeCorrection) + CrossWindCorrectionMode.DeclarationModeCorrection), + CrossWindCorrectionMode = CrossWindCorrectionMode.DeclarationModeCorrection }; } @@ -84,7 +99,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return retVal; } - public IAuxiliaryConfig CreateBusAuxiliariesData(Mission mission, IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle, VectoRunData runData) + public virtual IAuxiliaryConfig CreateBusAuxiliariesData(Mission mission, IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle, VectoRunData runData) { var actuations = DeclarationData.BusAuxiliaries.ActuationsMap.Lookup(runData.Mission.MissionType); var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries; @@ -102,7 +117,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter }; } - protected ElectricsUserInputsConfig CreateElectricsUserInputsConfig(IVehicleDeclarationInputData primaryVehicle, + protected virtual ElectricsUserInputsConfig CreateElectricsUserInputsConfig(IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle, Mission mission, IActuations actuations, VehicleClass vehicleClass) { var currentDemand = GetElectricConsumers(mission, completedVehicle, actuations, vehicleClass); @@ -115,18 +130,22 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var retVal = GetDefaultElectricalUserConfig(); var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries; - retVal.AlternatorType = primaryBusAuxiliaries.ElectricSupply.SmartElectrics ? AlternatorType.Smart : AlternatorType.Conventional; + retVal.AlternatorType = primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology; retVal.ElectricalConsumers = currentDemand; retVal.AlternatorMap = new SimpleAlternator( CalculateAlternatorEfficiency( primaryBusAuxiliaries.ElectricSupply.Alternators - .Concat(completedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators).ToList())) { - Technologies = primaryBusAuxiliaries.ElectricSupply.Alternators - .Concat(completedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators).Select(x => x.Technology) - .ToList() - }; - retVal.MaxAlternatorPower = primaryBusAuxiliaries.ElectricSupply.MaxAlternatorPower; - retVal.ElectricStorageCapacity = primaryBusAuxiliaries.ElectricSupply.ElectricStorageCapacity ?? 0.SI<WattSecond>(); + .Concat(completedVehicle.Components.BusAuxiliaries.ElectricSupply?.Alternators ?? + new List<IAlternatorDeclarationInputData>()).ToList())); + switch (retVal.AlternatorType) { + case AlternatorType.Smart when primaryBusAuxiliaries.ElectricSupply.Alternators.Count == 0: + throw new VectoException("at least one alternator is required when specifying smart electrics!"); + case AlternatorType.Smart when primaryBusAuxiliaries.ElectricSupply.ElectricStorage.Count == 0: + throw new VectoException("at least one electric storage (battery or capacitor) is required when specifying smart electrics!"); + } + + retVal.MaxAlternatorPower = primaryBusAuxiliaries.ElectricSupply.Alternators.Sum(x => x.RatedVoltage * x.RatedCurrent); + retVal.ElectricStorageCapacity = primaryBusAuxiliaries.ElectricSupply.ElectricStorage.Sum(x => x.ElectricStorageCapacity) ?? 0.SI<WattSecond>(); return retVal; } @@ -176,31 +195,69 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter }; } - private SSMInputs GetCompletedSSMInput(Mission mission, IVehicleDeclarationInputData completedVehicle, + protected SSMInputs GetCompletedSSMInput(Mission mission, IVehicleDeclarationInputData completedVehicle, IVehicleDeclarationInputData primaryVehicle, LoadingType loadingType) { var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckerBus(); var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration; var busAux = completedVehicle.Components.BusAuxiliaries.HVACAux; - if (hvacConfiguration.RequiresDriverAC() && (busAux.CompressorTypeDriver == ACCompressorType.None || busAux.CompressorTypeDriver == ACCompressorType.Unknown)) { - throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration); + + if (mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfiguration) && + (busAux.SeparateAirDistributionDucts == null || !busAux.SeparateAirDistributionDucts.Value)) { + throw new VectoException("Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group '{0}' and HVAC configuration '{1}'", + mission.BusParameter.BusGroup.GetClassNumber(), hvacConfiguration.GetName()); } - if (hvacConfiguration.RequiresPassengerAC() && (busAux.CompressorTypePassenger == ACCompressorType.None || busAux.CompressorTypePassenger == ACCompressorType.Unknown)) { - throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration); + if (completedVehicle.NumberPassengerSeatsLowerDeck == null) { + throw new VectoException("NumberOfPassengerSeatsLowerDeck input parameter is required"); + } + if (completedVehicle.NumberPassengerSeatsUpperDeck == null) { + throw new VectoException("NumberOfPassengerSeatsUpperDeck input parameter is required"); + } + if (completedVehicle.NumberPassengersStandingLowerDeck == null) { + throw new VectoException("NumberOfPassengersStandingLowerDeck input parameter is required"); + } + if (completedVehicle.NumberPassengersStandingUpperDeck == null) { + throw new VectoException("NumberOfPassengersStandingUpperDeck input parameter is required"); + } + if (busAux.HeatPumpTypeDriverCompartment == null) { + throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required"); + } + if (busAux.HeatPumpPassengerCompartments == null || busAux.HeatPumpPassengerCompartments.Count == 0) { + throw new VectoException("HeatPumpPassengerCompartments input parameter is required"); + } + if (busAux.HeatPumpModeDriverCompartment == null || (busAux.HeatPumpTypeDriverCompartment != HeatPumpType.none && busAux.HeatPumpModeDriverCompartment.Value == HeatPumpMode.N_A)) { + throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required"); } - if (mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfiguration) && - !completedVehicle.Components.BusAuxiliaries.HVACAux.SeparateAirDistributionDucts) { - throw new VectoException("Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group '{0}' and HVAC configuration '{1}'", - mission.BusParameter.BusGroup.GetClassNumber(), hvacConfiguration.GetName()); + if (hvacConfiguration.RequiresDriverAC() && busAux.HeatPumpTypeDriverCompartment == HeatPumpType.none) { + throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration); + } + + if (hvacConfiguration.RequiresPassengerAC() && busAux.HeatPumpPassengerCompartments.All(x => x.Item1 == HeatPumpType.none)) { + throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration); } - var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2 + + if (busAux.HeatPumpPassengerCompartments.Any(x => x.Item1 != HeatPumpType.none && x.Item2 == HeatPumpMode.N_A)) { + throw new VectoException("HeatPumpModePassengerCompartment input parameter is required"); + } + + var heatPumpTypeDriverCompartment = + busAux.HeatPumpModeDriverCompartment == HeatPumpMode.heating + ? HeatPumpType.none + : busAux.HeatPumpTypeDriverCompartment.Value; + + var heatPumpTypePassengerCompartment = ( + busAux.HeatPumpPassengerCompartments.All(x => x.Item2 == HeatPumpMode.heating) + ? new[] {HeatPumpType.none}.ToList() + : busAux.HeatPumpPassengerCompartments.Select(x => x.Item1).ToList()).FirstOrDefault(); + + var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2 ? 2 * Constants.BusParameters.DriverCompartmentLength // OK : DeclarationData.BusAuxiliaries.CalculateInternalLength( completedVehicle.Length, completedVehicle.VehicleCode, - completedVehicle.NumberOfPassengersLowerDeck); + completedVehicle.NumberPassengerSeatsLowerDeck.Value); var correctionLengthDrivetrainVolume = DeclarationData.BusAuxiliaries.CorrectionLengthDrivetrainVolume( completedVehicle.VehicleCode, completedVehicle.LowEntry, primaryVehicle.AxleConfiguration.NumAxles(), primaryVehicle.Articulated); @@ -227,20 +284,25 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ssmInputs.UValue = DeclarationData.BusAuxiliaries.UValue(completedVehicle.VehicleCode.GetFloorType()); ssmInputs.NumberOfPassengers = GetNumberOfPassengers( mission, internalLength, correctedBusWidth, - completedVehicle.NumberOfPassengersLowerDeck + completedVehicle.NumberOfPassengersUpperDeck, loadingType) + 1; // add driver for 'heat input' + completedVehicle.NumberPassengerSeatsLowerDeck.Value + completedVehicle.NumberPassengerSeatsUpperDeck.Value, + completedVehicle.NumberPassengersStandingLowerDeck.Value + completedVehicle.NumberPassengersStandingUpperDeck.Value, + loadingType) + 1; // add driver for 'heat input' ssmInputs.VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, false); ssmInputs.VentilationRateHeating = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, true); ssmInputs.HVACMaxCoolingPower = coolingPower.Item1 + coolingPower.Item2; - ssmInputs.HVACCompressorType = busAux.CompressorTypePassenger; // use passenger compartment - ssmInputs.HVACTechnology = string.Format( - "{0} ({1})", busAux.SystemConfiguration.GetName(), - string.Join(", ", new[] { busAux.CompressorTypePassenger.GetName(), busAux.CompressorTypeDriver.GetName() })); ; - ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP( - coolingPower.Item1, busAux.CompressorTypeDriver, coolingPower.Item2, busAux.CompressorTypePassenger, - floorType); - - return ssmInputs; + + //ToDo FK COP calculation + ssmInputs.HVACCompressorType = heatPumpTypePassengerCompartment; // use passenger compartment + ssmInputs.HVACTechnology = string.Format( + "{0} ({1})", busAux.SystemConfiguration.GetName(), + string.Join(", ", new[] { heatPumpTypePassengerCompartment.GetName(), heatPumpTypeDriverCompartment.GetName() })); + ; + ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP( + coolingPower.Item1, heatPumpTypeDriverCompartment, coolingPower.Item2, heatPumpTypePassengerCompartment /* average */, + floorType); + + return ssmInputs; } @@ -257,11 +319,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { onVehicle.Add(item); } - if ("Heat pump systems".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - (completedBuxAux?.HVACAux.HeatPump ?? false)) - { - onVehicle.Add(item); - } if ("Adjustable auxiliary heater".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && (completedBuxAux?.HVACAux.AdjustableAuxiliaryHeater ?? false)) { @@ -299,7 +356,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var pasengerCompartmentLength = DeclarationData.BusAuxiliaries.CalculateInternalLength( completedVehicle.Length , completedVehicle.VehicleCode, - completedVehicle.NumberOfPassengersLowerDeck) - Constants.BusParameters.DriverCompartmentLength - correctionLengthDrivetrainVolume; + (int)completedVehicle.NumberPassengerSeatsLowerDeck) - Constants.BusParameters.DriverCompartmentLength - correctionLengthDrivetrainVolume; var internalHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.Height); var volume = pasengerCompartmentLength * internalHeight * completedVehicle.Width; @@ -320,15 +377,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter protected override bool VehicleHasElectricalConsumer(string consumerName, IBusAuxiliariesDeclarationData busAux) { - if (consumerName == "Day running lights LED bonus" && busAux.ElectricConsumers.DayrunninglightsLED) + if (consumerName == "Day running lights LED bonus" && (bool)busAux.ElectricConsumers.DayrunninglightsLED) return true; - if (consumerName == "Position lights LED bonus" && busAux.ElectricConsumers.PositionlightsLED) + if (consumerName == "Position lights LED bonus" && (bool)busAux.ElectricConsumers.PositionlightsLED) return true; - if (consumerName == "Brake lights LED bonus" && busAux.ElectricConsumers.BrakelightsLED) + if (consumerName == "Brake lights LED bonus" && (bool)busAux.ElectricConsumers.BrakelightsLED) return true; - if (consumerName == "Interior lights LED bonus" && busAux.ElectricConsumers.InteriorLightsLED) + if (consumerName == "Interior lights LED bonus" && (bool)busAux.ElectricConsumers.InteriorLightsLED) return true; - if (consumerName == "Headlights LED bonus" && busAux.ElectricConsumers.HeadlightsLED) + if (consumerName == "Headlights LED bonus" && (bool)busAux.ElectricConsumers.HeadlightsLED) return true; return false; @@ -346,7 +403,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter #endregion - protected double GetNumberOfPassengers(Mission mission, Meter length, Meter width, double registeredPassengers, LoadingType loading) + protected double GetNumberOfPassengers(Mission mission, Meter length, Meter width, double registeredPassengers, + double registeredPassengersStanding, LoadingType loading) { var busFloorArea = DeclarationData.BusAuxiliaries.CalculateBusFloorSurfaceArea(length, width); var passengerCountRef = busFloorArea * (loading == LoadingType.LowLoading diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs index c32f4f9f3c69ecd67d4b97779ec3468c12cd9fcf..4d580242574703c7f7f7beb015af281ec4f78e23 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs @@ -418,10 +418,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter retVal.TorqueConverterData = CreateTorqueConverterData(gearbox.Type, torqueConverter, ratio, engine); if (torqueConverter != null) { + retVal.TorqueConverterData.Manufacturer = torqueConverter.Manufacturer; retVal.TorqueConverterData.ModelName = torqueConverter.Model; retVal.TorqueConverterData.DigestValueInput = torqueConverter.DigestValue?.DigestValue; retVal.TorqueConverterData.CertificationMethod = torqueConverter.CertificationMethod; retVal.TorqueConverterData.CertificationNumber = torqueConverter.CertificationNumber; + retVal.TorqueConverterData.Date = torqueConverter.Date; + retVal.TorqueConverterData.AppVersion = torqueConverter.AppVersion; } } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs new file mode 100644 index 0000000000000000000000000000000000000000..d4895ea0363ba2a54b1f941e3d0fe50cfd503419 --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs @@ -0,0 +1,72 @@ +using System.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.BusAuxiliaries; +using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; + + +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +{ + public class DeclarationDataAdapterMultistageBus : DeclarationDataAdapterCompletedBusSpecific + { + + public override IAuxiliaryConfig CreateBusAuxiliariesData(Mission mission, + IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle, + VectoRunData runData) + { + var actuations = DeclarationData.BusAuxiliaries.ActuationsMap.Lookup(runData.Mission.MissionType); + var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries; + + return new AuxiliaryConfig + { + InputData = completedVehicle.Components.BusAuxiliaries, + ElectricalUserInputsConfig = CreateElectricsUserInputsConfig( + primaryVehicle, completedVehicle, mission, actuations, runData.VehicleData.VehicleClass), + PneumaticUserInputsConfig = CreatePneumaticUserInputsConfig( + primaryBusAuxiliaries, completedVehicle), + PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(runData.Retarder.Type), + Actuations = actuations, + SSMInputs = GetCompletedSSMInput(mission, completedVehicle, primaryVehicle, runData.Loading), + VehicleData = runData.VehicleData + }; + } + + protected override ElectricsUserInputsConfig CreateElectricsUserInputsConfig(IVehicleDeclarationInputData primaryVehicle, + IVehicleDeclarationInputData completedVehicle, Mission mission, IActuations actuations, VehicleClass vehicleClass) + { + var currentDemand = GetElectricConsumers(mission, completedVehicle, actuations, vehicleClass); + + // add electrical steering pump or electric fan defined in primary vehicle + foreach (var entry in GetElectricAuxConsumersPrimary(mission, completedVehicle, vehicleClass, primaryVehicle.Components.BusAuxiliaries)) + { + currentDemand[entry.Key] = entry.Value; + } + + var retVal = GetDefaultElectricalUserConfig(); + + var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries; + retVal.AlternatorType = primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology; + retVal.ElectricalConsumers = currentDemand; + + retVal.AlternatorMap = new SimpleAlternator( + CalculateAlternatorEfficiency(primaryBusAuxiliaries.ElectricSupply.Alternators)); + + switch (retVal.AlternatorType) { + case AlternatorType.Smart when primaryBusAuxiliaries.ElectricSupply.Alternators.Count == 0: + throw new VectoException("at least one alternator is required when specifying smart electrics!"); + case AlternatorType.Smart when primaryBusAuxiliaries.ElectricSupply.ElectricStorage.Count == 0: + throw new VectoException("at least one electric storage (battery or capacitor) is required when specifying smart electrics!"); + } + + retVal.MaxAlternatorPower = primaryBusAuxiliaries.ElectricSupply.Alternators.Sum(x => x.RatedVoltage * x.RatedCurrent); + retVal.ElectricStorageCapacity = primaryBusAuxiliaries.ElectricSupply.ElectricStorage.Sum(x => x.ElectricStorageCapacity) ?? 0.SI<WattSecond>(); + + return retVal; + } + } +} diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs index 9545832b406996db6c3e89c13a134460c5104ea3..f7b09265fd25ac83a610590545459d9b1481b567 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs @@ -101,14 +101,20 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var retVal = GetDefaultElectricalUserConfig(); - retVal.AlternatorType = busAux.ElectricSupply.SmartElectrics ? AlternatorType.Smart : AlternatorType.Conventional; + retVal.AlternatorType = busAux.ElectricSupply.AlternatorTechnology; retVal.ElectricalConsumers = currentDemand; - retVal.AlternatorMap = new SimpleAlternator(CalculateAlternatorEfficiency(busAux.ElectricSupply.Alternators)) { - Technologies = busAux.ElectricSupply.Alternators.Select(x => x.Technology).ToList() - }; - retVal.MaxAlternatorPower = busAux.ElectricSupply.MaxAlternatorPower; - retVal.ElectricStorageCapacity = busAux.ElectricSupply.ElectricStorageCapacity ?? 0.SI<WattSecond>(); - + retVal.AlternatorMap = new SimpleAlternator(CalculateAlternatorEfficiency(busAux.ElectricSupply.Alternators)); + + switch (retVal.AlternatorType) { + case AlternatorType.Smart when busAux.ElectricSupply.Alternators.Count == 0: + throw new VectoException("at least one alternator is required when specifying smart electrics!"); + case AlternatorType.Smart when busAux.ElectricSupply.ElectricStorage.Count == 0: + throw new VectoException("at least one electric storage (battery or capacitor) is required when specifying smart electrics!"); + } + + retVal.MaxAlternatorPower = busAux.ElectricSupply.Alternators.Sum(x => x.RatedVoltage * x.RatedCurrent); + retVal.ElectricStorageCapacity = busAux.ElectricSupply.ElectricStorage.Sum(x => x.ElectricStorageCapacity) ?? 0.SI<WattSecond>(); + return retVal; } @@ -127,12 +133,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter protected virtual double CalculateAlternatorEfficiency(IList<IAlternatorDeclarationInputData> alternators) { - var sum = 0.0; - foreach (var entry in alternators) { - sum += DeclarationData.BusAuxiliaries.AlternatorTechnologies.Lookup(entry.Technology); - } - - return sum / alternators.Count; + return DeclarationData.BusAuxiliaries.AlternatorTechnologies.Lookup("default"); } protected virtual Dictionary<string, ElectricConsumerEntry> GetElectricConsumers(Mission mission, IVehicleDeclarationInputData vehicleData, IActuations actuations, VehicleClass vehicleClass) @@ -195,7 +196,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Constants.BusAuxiliaries.ElectricalConsumers.DoorsPerVehicleConsumer, StringComparison.CurrentCultureIgnoreCase)).NumberInActualVehicle.ToDouble(); - switch (vehicleData.DoorDriveTechnology) + switch (vehicleData.DoorDriveTechnology) { case ConsumerTechnology.Electrically: return count; @@ -205,7 +206,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return 0; } } - if (mission.BusParameter.ElectricalConsumers.ContainsKey(consumer.ConsumerName)) { + if (mission.BusParameter.ElectricalConsumers.ContainsKey(consumer.ConsumerName)) { return mission.BusParameter.ElectricalConsumers[consumer.ConsumerName]; } @@ -348,11 +349,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter retVal.HVACCompressorType = busParams.HVACCompressorType; // use passenger compartment retVal.COP = DeclarationData.BusAuxiliaries.CalculateCOP( - coolingPower.Item1, ACCompressorType.None, coolingPower.Item2, busParams.HVACCompressorType, + coolingPower.Item1, HeatPumpType.none, coolingPower.Item2, busParams.HVACCompressorType, busParams.VehicleCode.GetFloorType()); retVal.HVACTechnology = string.Format( "{0} ({1})", busParams.HVACConfiguration.GetName(), - string.Join(", ", new[] { busParams.HVACCompressorType.GetName(), ACCompressorType.None.GetName() })); + string.Join(", ", new[] { busParams.HVACCompressorType.GetName(), HeatPumpType.none.GetName() })); //SetHVACParameters(retVal, vehicleData, mission); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs index 9ceed3dba7a31e27b8aacf60e9873e81519b308a..dbfe126ca6db278b5688a2f9c9e6f58bb5d69257 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs @@ -32,7 +32,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var passengerCountRef = busFloorArea * (loading.Key == LoadingType.LowLoading ? mission.BusParameter.PassengerDensityLow : mission.BusParameter.PassengerDensityRef); - var passengerCountDecl = CompletedVehicle.NumberOfPassengersUpperDeck + CompletedVehicle.NumberOfPassengersLowerDeck; + var passengerCountDecl = CompletedVehicle.NumberPassengerSeatsUpperDeck + CompletedVehicle.NumberPassengerSeatsLowerDeck; //var refLoad = passengerCount * mission.MissionType.GetAveragePassengerMass(); if (loading.Key != LoadingType.ReferenceLoad && loading.Key != LoadingType.LowLoading) { @@ -40,7 +40,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter } var passengerCountCalc = loading.Key == LoadingType.ReferenceLoad - ? VectoMath.Min(passengerCountRef, passengerCountDecl) + ? VectoMath.Min(passengerCountRef, (int)passengerCountDecl) : passengerCountRef * mission.MissionType.GetLowLoadFactorBus(); var payload = passengerCountCalc * mission.MissionType.GetAveragePassengerMass(); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 7ebb331a15bcfb56f6348ffe3b55a51f47cf296b..13e7cf0bf8dc5357230762b4ef61ebeb92d0d5bf 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -527,9 +527,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ResultCardTraction = new DummyResultCard(), AlternatorGearEfficiency = Constants.BusAuxiliaries.ElectricSystem.AlternatorGearEfficiency, DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond, - AlternatorMap = new SimpleAlternator(busAux.ElectricSystem.AlternatorEfficiency) { - Technologies = new List<string>() { "engineering mode" } - }, + AlternatorMap = new SimpleAlternator(busAux.ElectricSystem.AlternatorEfficiency), AlternatorType = busAux.ElectricSystem.ESSupplyFromHEVREESS && busAux.ElectricSystem.AlternatorType != AlternatorType.Smart diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationMultistageBusVectoRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..94a915835788f1149da57c3e58b77f1e470eaacf --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationMultistageBusVectoRunDataFactory.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoCore.InputData.Reader.Impl +{ + public abstract class AbstractDeclarationMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory + { + protected readonly IMultistageVIFInputData InputDataProvider; + + protected IDeclarationReport Report; + + + protected AbstractDeclarationMultistageBusVectoRunDataFactory(IMultistageVIFInputData dataProvider, IDeclarationReport report) + { + InputDataProvider = dataProvider; + Report = report; + } + + public IEnumerable<VectoRunData> NextRun() + { + if(Report != null) + InitializeReport(); + + return GetNextRun(); + } + + protected abstract IEnumerable<VectoRunData> GetNextRun(); + + protected abstract VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading); + + protected virtual void InitializeReport() + { + var vehicle = InputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle; + var powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); + var fuels = new List<List<FuelData.Entry>>(); + Report.InitializeReport(powertrainConfig, fuels); + } + } +} diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/CombinedBusAuxiliaries.cs b/VectoCore/VectoCore/InputData/Reader/Impl/CombinedBusAuxiliaries.cs index 4fde30d1ad20db79cb9966a89e2330ce880add89..a69d3d657786a0efd7a1ffba713cd87e53556f7e 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/CombinedBusAuxiliaries.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/CombinedBusAuxiliaries.cs @@ -6,84 +6,90 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCore.InputData.Reader.Impl { - public class CombinedBusAuxiliaries : IBusAuxiliariesDeclarationData, IElectricSupplyDeclarationData, IPneumaticSupplyDeclarationData, IElectricConsumersDeclarationData, IPneumaticConsumersDeclarationData, IHVACBusAuxiliariesDeclarationData - { - private IBusAuxiliariesDeclarationData CompletedAux; - private IBusAuxiliariesDeclarationData PrimaryAux; - - public CombinedBusAuxiliaries(IBusAuxiliariesDeclarationData primary, IBusAuxiliariesDeclarationData completed) - { - PrimaryAux = primary; - CompletedAux = completed; - } - - #region Implementation of IBusAuxiliariesDeclarationData - - public XmlNode XMLSource { get { return null; } } - public string FanTechnology { get { return PrimaryAux.FanTechnology; } } - public IList<string> SteeringPumpTechnology { get { return PrimaryAux.SteeringPumpTechnology; } } - public IElectricSupplyDeclarationData ElectricSupply { get { return this; } } - public IElectricConsumersDeclarationData ElectricConsumers { get { return this; } } - public IPneumaticSupplyDeclarationData PneumaticSupply { get { return this; } } - public IPneumaticConsumersDeclarationData PneumaticConsumers { get { return this; } } - public IHVACBusAuxiliariesDeclarationData HVACAux { get { return this; } } - - #endregion - - #region Implementation of IElectricSupplyDeclarationData - - public IList<IAlternatorDeclarationInputData> Alternators - { - get { return PrimaryAux.ElectricSupply.Alternators.Concat(CompletedAux.ElectricSupply.Alternators).ToList(); } - } - - public bool SmartElectrics { get; } - public Watt MaxAlternatorPower { get; } - public WattSecond ElectricStorageCapacity { get; } - - #endregion - - #region Implementation of IPneumaticSupplyDeclarationData - - public string Clutch { get; } - public double Ratio { get; } - public string CompressorSize { get; } - public bool SmartAirCompression { get; } - public bool SmartRegeneration { get; } - - #endregion - - #region Implementation of IElectricConsumersDeclarationData - - public bool InteriorLightsLED { get; } - public bool DayrunninglightsLED { get; } - public bool PositionlightsLED { get; } - public bool HeadlightsLED { get; } - public bool BrakelightsLED { get; } - - #endregion - - #region Implementation of IPneumaticConsumersDeclarationData - - public ConsumerTechnology AirsuspensionControl { get; } - public ConsumerTechnology AdBlueDosing { get; } - public ConsumerTechnology DoorDriveTechnology { get; } - - #endregion - - #region Implementation of IHVACBusAuxiliariesDeclarationData - - public BusHVACSystemConfiguration SystemConfiguration { get; } - public ACCompressorType CompressorTypeDriver { get; } - public ACCompressorType CompressorTypePassenger { get; } - public Watt AuxHeaterPower { get; } - public bool DoubleGlazing { get; } - public bool HeatPump { get; } - public bool AdjustableCoolantThermostat { get; } - public bool AdjustableAuxiliaryHeater { get; } - public bool EngineWasteGasHeatExchanger { get; } - public bool SeparateAirDistributionDucts { get; } - - #endregion - } + //public class CombinedBusAuxiliaries : IBusAuxiliariesDeclarationData, IElectricSupplyDeclarationData, IPneumaticSupplyDeclarationData, IElectricConsumersDeclarationData, IPneumaticConsumersDeclarationData, IHVACBusAuxiliariesDeclarationData + //{ + // private IBusAuxiliariesDeclarationData CompletedAux; + // private IBusAuxiliariesDeclarationData PrimaryAux; + + // public CombinedBusAuxiliaries(IBusAuxiliariesDeclarationData primary, IBusAuxiliariesDeclarationData completed) + // { + // PrimaryAux = primary; + // CompletedAux = completed; + // } + + // #region Implementation of IBusAuxiliariesDeclarationData + + // public XmlNode XMLSource { get { return null; } } + // public string FanTechnology { get { return PrimaryAux.FanTechnology; } } + // public IList<string> SteeringPumpTechnology { get { return PrimaryAux.SteeringPumpTechnology; } } + // public IElectricSupplyDeclarationData ElectricSupply { get { return this; } } + // public IElectricConsumersDeclarationData ElectricConsumers { get { return this; } } + // public IPneumaticSupplyDeclarationData PneumaticSupply { get { return this; } } + // public IPneumaticConsumersDeclarationData PneumaticConsumers { get { return this; } } + // public IHVACBusAuxiliariesDeclarationData HVACAux { get { return this; } } + + // #endregion + + // #region Implementation of IElectricSupplyDeclarationData + + // public IList<IAlternatorDeclarationInputData> Alternators + // { + // get { return PrimaryAux.ElectricSupply.Alternators.Concat(CompletedAux.ElectricSupply.Alternators).ToList(); } + // } + + // public bool SmartElectrics { get; } + // public Watt MaxAlternatorPower { get; } + // public WattSecond ElectricStorageCapacity { get; } + + // #endregion + + // #region Implementation of IPneumaticSupplyDeclarationData + + // public CompressorDrive CompressorDrive { get; } + // public string Clutch { get; } + // public double Ratio { get; } + // public string CompressorSize { get; } + // public bool SmartAirCompression { get; } + // public bool SmartRegeneration { get; } + + // #endregion + + // #region Implementation of IElectricConsumersDeclarationData + + // public bool? InteriorLightsLED { get; } + // public bool? DayrunninglightsLED { get; } + // public bool? PositionlightsLED { get; } + // public bool? HeadlightsLED { get; } + // public bool? BrakelightsLED { get; } + + // #endregion + + // #region Implementation of IPneumaticConsumersDeclarationData + + // public ConsumerTechnology AirsuspensionControl { get; } + // public ConsumerTechnology AdBlueDosing { get; } + // public ConsumerTechnology DoorDriveTechnology { get; } + + // #endregion + + // #region Implementation of IHVACBusAuxiliariesDeclarationData + + // public BusHVACSystemConfiguration? SystemConfiguration { get; } + // public HeatPumpType? HeatPumpTypeDriverCompartment { get; } + // public HeatPumpMode? HeatPumpModeDriverCompartment { get; } + // public HeatPumpType? HeatPumpTypePassengerCompartment { get; } + // public HeatPumpMode? HeatPumpModePassengerCompartment { get; } + // public Watt AuxHeaterPower { get; } + // public bool? DoubleGlazing { get; } + // public bool HeatPump { get; } + // public bool? OtherHeatingTechnology { get; } + // public bool? AdjustableCoolantThermostat { get; } + // public bool? AdjustableAuxiliaryHeater { get; } + // public bool EngineWasteGasHeatExchanger { get; } + // public bool? SeparateAirDistributionDucts { get; } + // public bool? WaterElectricHeater { get; } + // public bool? AirElectricHeater { get; } + + // #endregion + //} } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs index 505c5d9351aa735adcba286c88c2d45bf423da2c..dbf57e760315e9ff244ba97f13539cbfe691c971 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs @@ -221,13 +221,13 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } var segment = DeclarationData.CompletedBusSegments.Lookup( - axleConfiguration.NumAxles(), vehicle.VehicleCode, vehicle.RegisteredClass, vehicle.NumberOfPassengersLowerDeck, + axleConfiguration.NumAxles(), vehicle.VehicleCode, vehicle.RegisteredClass, vehicle.NumberPassengerSeatsLowerDeck, vehicle.Height, vehicle.LowEntry); if (!segment.Found) { throw new VectoException( "no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, articulated: {2}, vehicle code: {3}, registered class: {4}, passengersLowerDeck: {5}, height: {6}, lowEntry: {7}. completed", vehicle.VehicleCategory, axleConfiguration, - vehicle.Articulated, vehicle.VehicleCode, vehicle.RegisteredClass.GetLabel(), vehicle.NumberOfPassengersLowerDeck, + vehicle.Articulated, vehicle.VehicleCode, vehicle.RegisteredClass.GetLabel(), vehicle.NumberPassengerSeatsLowerDeck, vehicle.Height, vehicle.LowEntry); } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..bf96069f51cffad6510f6cf89723d82a6ab14c9b --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCommon.Exceptions; +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.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoCore.InputData.Reader.Impl +{ + public class DeclarationModeCompletedMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory + { + protected static readonly object CyclesCacheLock = new object(); + protected static readonly Dictionary<MissionType, DrivingCycleData> CyclesCache = + new Dictionary<MissionType, DrivingCycleData>(); + + + protected readonly IMultistageBusInputDataProvider InputDataProvider; + protected IDeclarationReport Report; + + + protected Segment _segmentCompletedBus; + protected AxleGearData _axlegearData; + protected AngledriveData _angledriveData; + protected GearboxData _gearboxData; + protected RetarderData _retarderData; + protected ShiftStrategyParameters _gearshiftData; + private DriverData _driverData; + + + protected DeclarationDataAdapterMultistageBus DataAdapterSpecific = new DeclarationDataAdapterMultistageBus(); + + protected DeclarationDataAdapterCompletedBusGeneric DataAdapterGeneric = new DeclarationDataAdapterCompletedBusGeneric(); + + public DeclarationModeCompletedMultistageBusVectoRunDataFactory( + IMultistageBusInputDataProvider dataProvider, IDeclarationReport report) + { + + InputDataProvider = dataProvider; + Report = report; + } + + + + protected IVehicleDeclarationInputData PrimaryVehicle + { + get { return InputDataProvider.JobInputData.PrimaryVehicle.Vehicle; } + } + + protected IVehicleDeclarationInputData CompletedVehicle + { + get { return InputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle; } + } + + + + + public IEnumerable<VectoRunData> NextRun() + { + Initialize(); + if (Report != null) + { + InitializeReport(); + } + + return GetNextRun(); + } + + protected virtual void InitializeReport() + { + var powertrainConfig = _segmentCompletedBus.Missions.Select( + mission => CreateVectoRunDataSpecific( + mission, mission.Loadings.First(), 0)) + .FirstOrDefault(x => x != null); + + Report.InitializeReport(powertrainConfig, new List<List<FuelData.Entry>>()); + } + + + + protected virtual void Initialize() + { + if (CompletedVehicle.ExemptedVehicle || PrimaryVehicle.ExemptedVehicle) + { + return; + } + + _segmentCompletedBus = GetCompletedSegment(CompletedVehicle, PrimaryVehicle.AxleConfiguration); + + var tmpVehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segmentCompletedBus, _segmentCompletedBus.Missions.First(), + _segmentCompletedBus.Missions.First().Loadings.First()); + tmpVehicleData.VehicleCategory = VehicleCategory.GenericBusVehicle; + + var combustionEngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, 0, _segmentCompletedBus.Missions.First()); + + _axlegearData = DataAdapterGeneric.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData); + + _angledriveData = DataAdapterGeneric.CreateAngledriveData(PrimaryVehicle.Components.AngledriveInputData); + + var tmpRunData = new VectoRunData() + { + ShiftStrategy = null,//ToDo missing ShiftStrategy InputDataProvider.JobInputData.ShiftStrategy + GearboxData = new GearboxData() + { + Type = PrimaryVehicle.Components.GearboxInputData.Type, + } + }; + var tmpStrategy = PowertrainBuilder.GetShiftStrategy(new SimplePowertrainContainer(tmpRunData)); + + _gearboxData = DataAdapterGeneric.CreateGearboxData(PrimaryVehicle, new VectoRunData() { EngineData = combustionEngineData, AxleGearData = _axlegearData, VehicleData = tmpVehicleData }, + tmpStrategy); + + _gearshiftData = DataAdapterGeneric.CreateGearshiftData( + _gearboxData, _axlegearData.AxleGear.Ratio * (_angledriveData?.Angledrive.Ratio ?? 1.0), combustionEngineData.IdleSpeed); + + _retarderData = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData); + + _driverData = DataAdapterGeneric.CreateDriverData(); + _driverData.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segmentCompletedBus.AccelerationFile); + } + + protected virtual IEnumerable<VectoRunData> GetNextRun() + { + return VectoRunDataHeavyBusCompleted(); + } + + private IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted() + { + 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"; + } + 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.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; + } + } + } + } + + protected virtual Segment GetPrimarySegment(IVehicleDeclarationInputData primaryVehicle) + { + var primarySegment = DeclarationData.PrimaryBusSegments.Lookup( + primaryVehicle.VehicleCategory, primaryVehicle.AxleConfiguration, primaryVehicle.Articulated); + + return primarySegment; + } + + + protected virtual Segment GetCompletedSegment(IVehicleDeclarationInputData vehicle, AxleConfiguration axleConfiguration) + { + var segment = DeclarationData.CompletedBusSegments.Lookup( + axleConfiguration.NumAxles(), vehicle.VehicleCode, vehicle.RegisteredClass, vehicle.NumberPassengerSeatsLowerDeck, + vehicle.Height, vehicle.LowEntry); + if (!segment.Found) + { + throw new VectoException( + "no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, articulated: {2}, vehicle code: {3}, registered class: {4}, passengersLowerDeck: {5}, height: {6}, lowEntry: {7}. completed", + vehicle.VehicleCategory, axleConfiguration, + vehicle.Articulated, vehicle.VehicleCode, vehicle.RegisteredClass.GetLabel(), vehicle.NumberPassengerSeatsLowerDeck, + vehicle.Height, vehicle.LowEntry); + } + + return segment; + } + + + protected VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) + { + DrivingCycleData cycle; + lock (CyclesCacheLock) + { + if (CyclesCache.ContainsKey(mission.MissionType)) + { + cycle = CyclesCache[mission.MissionType]; + } + else + { + cycle = DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false); + CyclesCache.Add(mission.MissionType, cycle); + } + } + + var simulationRunData = new VectoRunData + { + Loading = loading.Key, + VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segmentCompletedBus, + mission, loading), + 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), + 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.ToString(), + Report = Report, + Mission = mission, + InputDataHash = InputDataProvider.XMLHash,// right hash?!? + SimulationType = SimulationType.DistanceCycle, + VehicleDesignSpeed = _segmentCompletedBus.DesignSpeed, + GearshiftParameters = _gearshiftData, + }; + simulationRunData.EngineData.FuelMode = 0; + simulationRunData.VehicleData.VehicleClass = _segmentCompletedBus.VehicleClass; + simulationRunData.BusAuxiliaries = DataAdapterSpecific.CreateBusAuxiliariesData(mission, PrimaryVehicle, CompletedVehicle, simulationRunData); + + return simulationRunData; + } + + + protected VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) + { + DrivingCycleData cycle; + lock (CyclesCacheLock) { + if (CyclesCache.ContainsKey(mission.MissionType)) { + cycle = CyclesCache[mission.MissionType]; + } else { + cycle = DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false); + CyclesCache.Add(mission.MissionType, cycle); + } + } + + var primaryBusAuxiliaries = PrimaryVehicle.Components.BusAuxiliaries; + + var simulationRunData = new VectoRunData { + Loading = loading.Key, + VehicleData = DataAdapterGeneric.CreateVehicleData(PrimaryVehicle, primarySegment, mission, loading, false), + AirdragData = DataAdapterGeneric.CreateAirdragData(null, mission, new Segment()), + EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx, mission), + ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(), + GearboxData = _gearboxData, + AxleGearData = _axlegearData, + AngledriveData = _angledriveData, + Aux = DataAdapterGeneric.CreateAuxiliaryData(PrimaryVehicle.Components.AuxiliaryInputData, + primaryBusAuxiliaries, mission.MissionType, primarySegment.VehicleClass, + mission.BusParameter.VehicleLength), + Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), + Retarder = _retarderData, + DriverData = _driverData, + ExecutionMode = ExecutionMode.Declaration, + JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier, + ModFileSuffix = "_" + _segmentCompletedBus.VehicleClass.GetClassNumber() + "-Generic_" + loading.Key.ToString(), + Report = Report, + Mission = mission, + InputDataHash = InputDataProvider.XMLHash, + SimulationType = SimulationType.DistanceCycle, + VehicleDesignSpeed = _segmentCompletedBus.DesignSpeed, + GearshiftParameters = _gearshiftData, + }; + simulationRunData.EngineData.FuelMode = 0; + simulationRunData.VehicleData.VehicleClass = _segmentCompletedBus.VehicleClass; + simulationRunData.BusAuxiliaries = + DataAdapterGeneric.CreateBusAuxiliariesData(mission, PrimaryVehicle, simulationRunData); + + return simulationRunData; + } + + + } +} diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..708b3efa8969ae980b3a742b842b5bcba4ee9cea --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.InputData.Reader.Impl +{ + public class DeclarationModeMultistageBusVectoRunDataFactory : AbstractDeclarationMultistageBusVectoRunDataFactory + { + public DeclarationModeMultistageBusVectoRunDataFactory(IMultistageVIFInputData dataProvider, IDeclarationReport report) + : base(dataProvider, report) { } + + protected override IEnumerable<VectoRunData> GetNextRun() + { + yield return CreateVectoRunData(null, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); + } + + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + { + return new VectoRunData + { + Exempted = true, + Report = Report, + Mission = new Mission { MissionType = MissionType.ExemptedMission }, + VehicleData = CreateExemptedVehicleData(InputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle), + MultistageVIFInputData = InputDataProvider + }; + } + + private VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data) + { + var exempted = SetCommonVehicleData(data); + exempted.VIN = data.VIN; + exempted.ManufacturerAddress = data.ManufacturerAddress; + exempted.LegislativeClass = data.LegislativeClass; + exempted.ZeroEmissionVehicle = data.ZeroEmissionVehicle; + exempted.HybridElectricHDV = data.HybridElectricHDV; + exempted.DualFuelVehicle = true; + exempted.MaxNetPower1 = data.MaxNetPower1; + exempted.MaxNetPower2 = data.MaxNetPower2; + + return exempted; + } + + private VehicleData SetCommonVehicleData(IVehicleDeclarationInputData data) + { + var retVal = new VehicleData + { + InputData = data, + SavedInDeclarationMode = data.SavedInDeclarationMode, + Manufacturer = data.Manufacturer, + ModelName = data.Model, + Date = data.Date, + //CertificationNumber = data.CertificationNumber, + DigestValueInput = data.DigestValue != null ? data.DigestValue.DigestValue : "", + VehicleCategory = data.VehicleCategory, + CurbMass = data.CurbMassChassis, + GrossVehicleMass = data.GrossVehicleMassRating, + AirDensity = Physics.AirDensity, + }; + + return retVal; + } + } +} diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs index 2f6c3507573f7866f29bcbf75bf3d478f93ea61c..bd665772cf6740688e677448df8f94f2f1a75d95 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -41,13 +41,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { var completedVehicle = _singleBusInputData.CompletedVehicle; var segment = DeclarationData.CompletedBusSegments.Lookup( - _singleBusInputData.PrimaryVehicle.AxleConfiguration.NumAxles(), completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.NumberOfPassengersLowerDeck, + _singleBusInputData.PrimaryVehicle.AxleConfiguration.NumAxles(), completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.NumberPassengerSeatsLowerDeck, completedVehicle.Height, completedVehicle.LowEntry); if (!segment.Found) { throw new VectoException( "no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, articulated: {2}, vehicle code: {3}, registered class: {4}, passengersLowerDeck: {5}, height: {6}, lowfloor: {7}. completed", vehicle.VehicleCategory, _singleBusInputData.PrimaryVehicle.AxleConfiguration, - vehicle.Articulated, completedVehicle.VehicleCode, completedVehicle.RegisteredClass.GetLabel(), completedVehicle.NumberOfPassengersLowerDeck, + vehicle.Articulated, completedVehicle.VehicleCode, completedVehicle.RegisteredClass.GetLabel(), completedVehicle.NumberPassengerSeatsLowerDeck, completedVehicle.Height, completedVehicle.LowEntry); } foreach (var mission in segment.Missions) { @@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) { - var doubleDecker = _singleBusInputData.CompletedVehicle.NumberOfPassengersUpperDeck > 0; + var doubleDecker = _singleBusInputData.CompletedVehicle.NumberPassengerSeatsUpperDeck > 0; if (mission.BusParameter.DoubleDecker != doubleDecker) { return null; } diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/SimpleAlternator.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/SimpleAlternator.cs index d5cefea0660cb1e0b230dfa61068bd91c0a5a6cb..8ef09f4b2c30c3398fa426d75cb4cef3a2fd7a86 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/SimpleAlternator.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/SimpleAlternator.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics; @@ -23,8 +24,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric return _efficiency; } - public IList<string> Technologies { get; set; } - public string Source { get { return null; } } #endregion diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs index 2bbc39b83965bbfc62631365c20845d828dde906..feaa56a3fa93bc58e850a756b2b042a03912592c 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs @@ -120,13 +120,8 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC // C53 - "Continous/2-stage/3-stage/4-stage - public ACCompressorType HVACCompressorType { get; set; } + public HeatPumpType HVACCompressorType { get; set; } - // mechanical/electrical - public string CompressorTypeDerived - { - get { return HVACCompressorType == ACCompressorType.Continuous ? "Electrical" : "Mechanical"; } - } // C54 - ( KW ) public Watt HVACMaxCoolingPower { get; set; } diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs index 80f1e54e912db7382300fde29f52e3124b904ef9..f64f58bb707a87eb82c8fbf983aa412d43a1b266 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs @@ -27,7 +27,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati public ConsumerTechnology AirSuspensionControl { get; set; } // pneumatic or electric - public ConsumerTechnology Doors { get; set; } + public ConsumerTechnology? Doors { get; set; } public Meter KneelingHeight { get; set; } //public bool RetarderBrake { get; set; } diff --git a/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs b/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs index d063760bb4a3ccac5dcfeea7f3afba7b451e833b..3587c6bd982a6fd4e785865c1e9e05b8662d681b 100644 --- a/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs +++ b/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs @@ -11,7 +11,7 @@ using TUGraz.VectoCore.Configuration; namespace TUGraz.VectoCore.Models.Declaration { - public sealed class CompletedBusSegments : LookupData<int , VehicleCode, RegistrationClass, int, Meter, bool, Segment> + public sealed class CompletedBusSegments : LookupData<int , VehicleCode?, RegistrationClass?, int?, Meter, bool?, Segment> { private const string COMPLETED_BUS_SEGMENTS_CSV = ".CompletedBusSegmentationTable.csv"; @@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.Models.Declaration _segmentTable = table.Copy(); } - public override Segment Lookup(int numberOfAxles, VehicleCode vehicleCode, RegistrationClass registrationClass, int passengersLowerDeck, Meter bodyHeight, bool lowEntry) + public override Segment Lookup(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int? passengersLowerDeck, Meter bodyHeight, bool? lowEntry) { return LookupCompletedBusVehicle(numberOfAxles, vehicleCode, registrationClass, passengersLowerDeck, bodyHeight, lowEntry); } @@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.Declaration #endregion - private Segment LookupCompletedBusVehicle(int numberOfAxles, VehicleCode vehicleCode, RegistrationClass registrationClass, int passengersLowerDeck, Meter bodyHeight, bool lowEntry) + private Segment LookupCompletedBusVehicle(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int? passengersLowerDeck, Meter bodyHeight, bool? lowEntry) { var rows = _segmentTable.AsEnumerable().Where( r => { @@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Models.Declaration rows = rows.Where( r => { var limits = r.Field<string>("passengerslowerdeck").Split('-'); - return passengersLowerDeck.IsBetween(limits[0].ToInt(), limits[1].ToInt()); + return ((int)passengersLowerDeck).IsBetween(limits[0].ToInt(), limits[1].ToInt()); }).ToList(); } else if (rows.Any(r => r.Field<string>("bodyheight") != "-")) { rows = rows.Where( @@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.Models.Declaration PassengerDensityRef = row.ParseDouble(missionType.ToString()).SI<PerSquareMeter>(), AirDragMeasurementAllowed = row.ParseBoolean(missionType == MissionType.Interurban ? "airdragmeasurementinterurban" : "airdragmeasurement"), ElectricalConsumers = GetVehicleEquipment(row), - DoubleDecker = row.Field<string>("vehiclecode").ParseEnum<VehicleCode>().IsDoubleDeckerBus(), + DoubleDecker = ((VehicleCode?) row.Field<string>("vehiclecode").ParseEnum<VehicleCode>()).IsDoubleDeckerBus(), DeltaHeight = row.ParseDouble("deltaheight").SI<Meter>(), SeparateAirDistributionDuctsHVACCfg = row.Field<string>("sepairdistrductshvaccfg").Split('/').Select(BusHVACSystemConfigurationHelper.Parse).ToArray() } diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 730ae8238b2d6e6db5b621badd206014d2ac4cc2..90d40f9efa8974be81e787f15c4b4503b92eeb2d 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -241,7 +241,7 @@ namespace TUGraz.VectoCore.Models.Declaration get { return hvacMaxCoolingPower ?? (hvacMaxCoolingPower = new HVACCoolingPower()); } } - public static PerSecond VentilationRate(BusHVACSystemConfiguration hvacSystemConfig, bool heating) + public static PerSecond VentilationRate(BusHVACSystemConfiguration? hvacSystemConfig, bool heating) { switch (hvacSystemConfig) { @@ -279,7 +279,7 @@ namespace TUGraz.VectoCore.Models.Declaration } - public static Meter CalculateInternalLength(Meter vehicleLength, VehicleCode vehicleCode, double numPassLowFloor) + public static Meter CalculateInternalLength(Meter vehicleLength, VehicleCode? vehicleCode, double numPassLowFloor) { if (vehicleCode.GetFloorType() == FloorType.LowFloor) { return vehicleCode.IsDoubleDeckerBus() ? 2 * vehicleLength : vehicleLength; @@ -296,12 +296,12 @@ namespace TUGraz.VectoCore.Models.Declaration } public static Meter CalculateLengthInteriorLights( - Meter vehicleLength, VehicleCode vehicleCode, double numPassLowFloor) + Meter vehicleLength, VehicleCode? vehicleCode, double numPassLowFloor) { return CalculateInternalLength(vehicleLength, vehicleCode, numPassLowFloor); } - public static Meter CalculateInternalHeight(VehicleCode vehicleCode, RegistrationClass registrationClass, Meter bodyHeight) + public static Meter CalculateInternalHeight(VehicleCode? vehicleCode, RegistrationClass? registrationClass, Meter bodyHeight) { if (vehicleCode.IsDoubleDeckerBus()) { return Constants.BusParameters.InternalHeightDoubleDecker; @@ -348,9 +348,9 @@ namespace TUGraz.VectoCore.Models.Declaration } } - public static double CalculateCOP(Watt coolingPwrDriver, ACCompressorType comprTypeDriver, Watt coolingPwrPass, ACCompressorType comprTypePass, FloorType floorType) + public static double CalculateCOP(Watt coolingPwrDriver, HeatPumpType comprTypeDriver, Watt coolingPwrPass, HeatPumpType comprTypePass, FloorType floorType) { - if (coolingPwrDriver.IsGreater(0) && comprTypeDriver == ACCompressorType.None) { + if (coolingPwrDriver.IsGreater(0) && comprTypeDriver == HeatPumpType.none) { comprTypeDriver = comprTypePass; } if (coolingPwrDriver.IsEqual(0) && coolingPwrPass.IsEqual(0)) { @@ -360,9 +360,9 @@ namespace TUGraz.VectoCore.Models.Declaration (coolingPwrDriver + coolingPwrPass); } - public static Meter CorrectionLengthDrivetrainVolume(VehicleCode vehicleCode, bool lowEntry, int numAxles, bool articulated) + public static Meter CorrectionLengthDrivetrainVolume(VehicleCode? vehicleCode, bool? lowEntry, int numAxles, bool articulated) { - if ((vehicleCode == VehicleCode.CE || vehicleCode == VehicleCode.CG) && !lowEntry) { + if ((vehicleCode == VehicleCode.CE || vehicleCode == VehicleCode.CG) && !(bool)lowEntry) { switch (numAxles) { case 2: return 1.0.SI<Meter>(); case 3: return articulated ? 1.0.SI<Meter>() : 1.25.SI<Meter>(); diff --git a/VectoCore/VectoCore/Models/Declaration/HVACCoolingPower.cs b/VectoCore/VectoCore/Models/Declaration/HVACCoolingPower.cs index 3ad906a673f47ae9306ca6ad7c90d08e8bf1f3f5..f320d5cf9bac426ec7f04e2474baea3370293ffa 100644 --- a/VectoCore/VectoCore/Models/Declaration/HVACCoolingPower.cs +++ b/VectoCore/VectoCore/Models/Declaration/HVACCoolingPower.cs @@ -12,18 +12,18 @@ namespace TUGraz.VectoCore.Models.Declaration { private static HVACLookup DriverCoolingPower = new HVACLookup(".Buses.HVACCoolingPowerDriver.csv"); private static HVACLookup PassengerCoolingPower = new HVACLookup(".Buses.HVACCoolingPowerPassenger.csv"); - public Watt DriverMaxCoolingPower(BusHVACSystemConfiguration configuration, MissionType mission) + public Watt DriverMaxCoolingPower(BusHVACSystemConfiguration? configuration, MissionType mission) { return DriverCoolingPower.Lookup(configuration, mission).SI<Watt>(); } - public Watt PassengerMaxCoolingPower(BusHVACSystemConfiguration configuration, MissionType mission, CubicMeter volume) + public Watt PassengerMaxCoolingPower(BusHVACSystemConfiguration? configuration, MissionType mission, CubicMeter volume) { return PassengerCoolingPower.Lookup(configuration, mission).SI<WattPerCubicMeter>() * volume; } - private class HVACLookup : LookupData<BusHVACSystemConfiguration, MissionType, double>{ + private class HVACLookup : LookupData<BusHVACSystemConfiguration?, MissionType, double>{ public HVACLookup(string resource) { ResourceId = DeclarationData.DeclarationDataResourcePrefix + resource; diff --git a/VectoCore/VectoCore/Models/Declaration/Mission.cs b/VectoCore/VectoCore/Models/Declaration/Mission.cs index 6076de72b4da5dea341166bfa18722feb900e2b7..592ca44b1ed91bdd30216fa4c721a4d14d7d07c4 100644 --- a/VectoCore/VectoCore/Models/Declaration/Mission.cs +++ b/VectoCore/VectoCore/Models/Declaration/Mission.cs @@ -119,11 +119,11 @@ namespace TUGraz.VectoCore.Models.Declaration // #### HVAC Model Parameters - public BusHVACSystemConfiguration HVACConfiguration { get; internal set; } + public BusHVACSystemConfiguration? HVACConfiguration { get; internal set; } public Watt HVACAuxHeaterPower { get; internal set; } - public ACCompressorType HVACCompressorType { get; internal set; } + public HeatPumpType HVACCompressorType { get; internal set; } public bool HVACDoubleGlasing { get; internal set; } @@ -155,9 +155,9 @@ namespace TUGraz.VectoCore.Models.Declaration public Meter DeltaHeight { get; internal set; } public Meter EntranceHeight { get; set; } - public VehicleCode VehicleCode { get; set; } + public VehicleCode? VehicleCode { get; set; } public FloorType FloorType { get; set; } - public IList<BusHVACSystemConfiguration> SeparateAirDistributionDuctsHVACCfg { get; set; } + public IList<BusHVACSystemConfiguration?> SeparateAirDistributionDuctsHVACCfg { get; set; } } diff --git a/VectoCore/VectoCore/Models/Declaration/PrimaryBusSegments.cs b/VectoCore/VectoCore/Models/Declaration/PrimaryBusSegments.cs index c4761fa0d54af707900fd9206ac6773a0cdd70e0..a69f6935f75e86423de9d1ad844bcf80213f8f37 100644 --- a/VectoCore/VectoCore/Models/Declaration/PrimaryBusSegments.cs +++ b/VectoCore/VectoCore/Models/Declaration/PrimaryBusSegments.cs @@ -138,7 +138,7 @@ namespace TUGraz.VectoCore.Models.Declaration VehicleCode = row.Field<string>("vehiclecode").ParseEnum<VehicleCode>(), HVACConfiguration = BusHVACSystemConfigurationHelper.Parse(row.Field<string>("hvacsystemconfiguration")), HVACAuxHeaterPower = row.ParseDouble("hvacauxheater").SI(Unit.SI.Kilo.Watt).Cast<Watt>(), - HVACCompressorType = ACCompressorTypeExtensions.ParseEnum(row.Field<string>("hvaccompressortype")), + HVACCompressorType = HeatPumpTypeHelper.Parse(row.Field<string>("hvaccompressortype")), HVACDoubleGlasing = row.ParseBoolean("hvacdoubleglasing"), HVACHeatpump = row.ParseBoolean("hvacheatpump"), HVACAdjustableAuxHeater = row.ParseBoolean("hvacadjustableauxiliaryheater"), diff --git a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs index f6cd1f33babf28036912c7a52e383fbe08670ee7..dd376e59ebb0bb46dd356783c42b0d79e5063b81 100644 --- a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs +++ b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs @@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.Models.Declaration } - private bool UseDieselFuel(IList<IEngineFuelDelcarationInputData> fuels) + private bool UseDieselFuel(IList<IEngineFuelDeclarationInputData> fuels) { var fuelType = fuels.First().FuelType; var isDualFuel = fuels.Count > 1; @@ -111,24 +111,24 @@ namespace TUGraz.VectoCore.Models.Declaration } } - private string GetEngineRessourceId(IList<IEngineFuelDelcarationInputData> fuels) + private string GetEngineRessourceId(IList<IEngineFuelDeclarationInputData> fuels) { return UseDieselFuel(fuels) ? GenericEngineCM_Normed_CI : GenericEngineCM_Normed_PI; } - private IFuelProperties GetFuelData(IList<IEngineFuelDelcarationInputData> fuels) + private IFuelProperties GetFuelData(IList<IEngineFuelDeclarationInputData> fuels) { return UseDieselFuel(fuels) ? FuelData.Diesel : FuelData.Instance().Lookup(FuelType.NGPI, TankSystem.Compressed); } - private double[] GetEngineCorrectionFactors(IList<IEngineFuelDelcarationInputData> fuels) + private double[] GetEngineCorrectionFactors(IList<IEngineFuelDeclarationInputData> fuels) { return UseDieselFuel(fuels) ? DieselCIFactors : PIFactors; } - private CombustionEngineFuelData GetCombustionEngineFuelData(IList<IEngineFuelDelcarationInputData> fuels, PerSecond idleSpeed, EngineFullLoadCurve fullLoadCurve, Mission mission) + private CombustionEngineFuelData GetCombustionEngineFuelData(IList<IEngineFuelDeclarationInputData> fuels, PerSecond idleSpeed, EngineFullLoadCurve fullLoadCurve, Mission mission) { var ressourceId = GetEngineRessourceId(fuels); diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs index ff0f22e2d9d50dfeeb467726ea4ba32cf4f9c351..67b3aaaf5c4dff81638043a4449c823e18ec7180 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -152,6 +152,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data public Watt ElectricAuxDemand { get; internal set; } + [JsonIgnore] + public IMultistageVIFInputData MultistageVIFInputData { get; internal set; } + public class AuxData { // ReSharper disable once InconsistentNaming diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index fe21d5fc97e99fda657a2d07b571db7081b4566b..bddcacb7b1bd208134967d46255bbed923fd45c0 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -134,6 +134,30 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl return; } } + + if (dataProvider is IMultistageVIFInputData) { + var declDataProvider = dataProvider as IMultistageVIFInputData; + + //ToDo FK: check if data completed == true && final + //declDataProvider.MultistageJobInputData.JobInputData.InputComplete + //declDataProvider.VehicleInputData.VehicleDeclarationType == VehicleDeclarationType.final + + if (declDataProvider.VehicleInputData == null) { + var reportCompleted = declarationReport ?? new XMLDeclarationReportCompletedVehicle(ModWriter, true) { + PrimaryVehicleReportInputData = declDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle, + }; + DataReader = new DeclarationModeCompletedMultistageBusVectoRunDataFactory( + declDataProvider.MultistageJobInputData, + reportCompleted); + } + else if(declDataProvider.VehicleInputData != null) { + var report = declarationReport ?? new XMLDeclarationReportMultistageBusVehicle(ModWriter); + DataReader = new DeclarationModeMultistageBusVectoRunDataFactory(declDataProvider, report); + } + return; + } + + throw new VectoException("Unknown InputData for Declaration Mode!"); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs index 551c0a6514d8469a005e5af08d1594cfce90939f..ec6e9c4e7008a76dfa580b512792fad571ca3d22 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs @@ -32,12 +32,14 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Data; using System.Diagnostics; using System.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; + namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox { [CustomValidation(typeof(TorqueConverterData), "ValidateData")] @@ -45,6 +47,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox { protected internal readonly TorqueConverterEntry[] TorqueConverterEntries; + public string AppVersion { get; protected internal set; } + [Required, SIRange(0, double.MaxValue)] public PerSecond ReferenceSpeed { get; protected internal set; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs index 073f5e6c6c5095b91dd14f4344d4370a123ee2a3..ba466b68f6de66b15a4d600d44225d81da4974e2 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs @@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data { public string VIN { get; internal set; } - public LegislativeClass LegislativeClass { get; internal set; } + public LegislativeClass? LegislativeClass { get; internal set; } public VehicleCategory VehicleCategory { get; internal set; } @@ -253,8 +253,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [JsonIgnore] public IVehicleDeclarationInputData InputData { get; internal set; } - public RegistrationClass RegisteredClass { get; internal set; } - public VehicleCode VehicleCode { get; internal set; } + public RegistrationClass? RegisteredClass { get; internal set; } + public VehicleCode? VehicleCode { get; internal set; } // #region "Bus Parameters" diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs index fb13bd67ce4364735c0f8ef9e16357877753d66a..4360fca3bd65040cab9671a635d5dd21d2145446 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs @@ -20,6 +20,7 @@ using TUGraz.VectoCore.OutputData; namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { + public class PEVAMTShiftStrategy : LoggingObject, IShiftStrategy { protected readonly IDataBus DataBus; diff --git a/VectoCore/VectoCore/OutputData/FileIO/FileOutputVIFWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/FileOutputVIFWriter.cs new file mode 100644 index 0000000000000000000000000000000000000000..bf397d5ef0299c4595347ebb76ea533c9f8065e5 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/FileIO/FileOutputVIFWriter.cs @@ -0,0 +1,70 @@ +using System; +using System.IO; +using System.Text; +using System.Xml; +using System.Xml.Linq; + + +namespace TUGraz.VectoCore.OutputData.FileIO +{ + public class FileOutputVIFWriter : FileOutputWriter + { + public const string REPORT_ENDING_PREFIX = "VIF_Report_"; + + private string _jobFile; + private readonly int _numberOfManufacturingStages; + + public string XMLMultistageReportFileName + { + get { return Path.ChangeExtension(_jobFile, $"{REPORT_ENDING_PREFIX}{_numberOfManufacturingStages + 2}.xml"); } + } + + public FileOutputVIFWriter(string jobFile, int numberOfManufacturingStages) : base(jobFile) + { + _jobFile = jobFile; + RemoveExistingEndingPrefix(); + _numberOfManufacturingStages = numberOfManufacturingStages; + } + + private void RemoveExistingEndingPrefix() + { + var vifReportIndex = _jobFile.IndexOf(REPORT_ENDING_PREFIX, StringComparison.Ordinal); + if (vifReportIndex == -1) + return; + + if (!_jobFile.Contains(REPORT_ENDING_PREFIX)) + return; + + _jobFile = $"{_jobFile.Substring(0, vifReportIndex - 1)}.xml"; + } + + + public override void WriteReport(ReportType type, XDocument data) + { + var fileName = (string)null; + switch (type) { + case ReportType.DeclarationReportMultistageVehicleXML: + fileName = XMLMultistageReportFileName; + break; + default: + base.WriteReport(type, data); + break; + } + + if (fileName == null) + return; + + using (var writer = new FileStream(fileName, FileMode.Create)) + { + using (var xmlWriter = new XmlTextWriter(writer, Encoding.UTF8)) + { + xmlWriter.Formatting = Formatting.Indented; + data.WriteTo(xmlWriter); + xmlWriter.Flush(); + xmlWriter.Close(); + } + } + + } + } +} diff --git a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs index 75b8bea80157e8090dce452553de21a8fa10e255..cf36a8dd30ddda62e1a4721f7e504c15806a14d6 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs @@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO public string XMLPrimaryVehicleReportName { - get { return Path.ChangeExtension(_jobFile, "RSLT_PIF.xml"); } + get { return Path.ChangeExtension(_jobFile, "RSLT_VIF.xml"); } } public string XMLMonitoringReportName @@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO { get { return Path.ChangeExtension(_jobFile, Constants.FileExtensions.SumFile); } } - + /// <summary> /// /// </summary> diff --git a/VectoCore/VectoCore/OutputData/IDataWriter.cs b/VectoCore/VectoCore/OutputData/IDataWriter.cs index 10eb1a634ec450749dfa01452d0c60c0902bbf3b..408e432732b35b07f48b1d481b33ff98e5a3bfa9 100644 --- a/VectoCore/VectoCore/OutputData/IDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/IDataWriter.cs @@ -61,6 +61,7 @@ namespace TUGraz.VectoCore.OutputData DeclarationReportCustomerXML, DeclarationVTPReportXML, DeclarationReportMonitoringXML, - DeclarationReportPrimaryVehicleXML + DeclarationReportPrimaryVehicleXML, + DeclarationReportMultistageVehicleXML } } \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 4b12004b4b9ff979f3ce399abe2b29198d6c8485..8f96e87f1b2c4c3d381baa7491721cd3277376b2 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -905,7 +905,7 @@ namespace TUGraz.VectoCore.OutputData row[string.Format(Fields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.HeatingVentilationAirCondition)] = busAux.SSMInputs is ISSMDeclarationInputs inputs ? inputs.HVACTechnology : "engineering mode"; row[string.Format(Fields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.ElectricSystem)] = - string.Join("/", busAux.ElectricalUserInputsConfig.AlternatorMap.Technologies); + string.Join("/", busAux.ElectricalUserInputsConfig.AlternatorType.GetLabel()); row[string.Format(Fields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.PneumaticSystem)] = busAux.PneumaticUserInputsConfig.CompressorMap.Technology; } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReportCompletedBus.cs index db78cf3f1ffa26bc7da69e006435a33fe285b8d3..c53f43e48c30f4c0edda372a091e6565e2d88afd 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReportCompletedBus.cs @@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.OutputData.XML { //new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), //new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab), new XElement( - tns + "RegisteredPassengers", modelData.VehicleData.InputData.NumberOfPassengersLowerDeck + modelData.VehicleData.InputData.NumberOfPassengersUpperDeck + tns + "RegisteredPassengers", modelData.VehicleData.InputData.NumberPassengerSeatsLowerDeck + modelData.VehicleData.InputData.NumberPassengerSeatsUpperDeck ), new XElement(tns + XMLNames.Bus_LowEntry, modelData.VehicleData.InputData.LowEntry), new XElement(tns + XMLNames.Bus_HeighIntegratedBody, modelData.VehicleData.InputData.Height.ToXMLFormat(3)), diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs new file mode 100644 index 0000000000000000000000000000000000000000..b26cbb222e3baf40aac3ad94d5c32aad7dd04f69 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; + +namespace TUGraz.VectoCore.OutputData.XML +{ + public class XMLDeclarationReportMultistageBusVehicle : XMLDeclarationReport + { + private readonly XMLMultistageBusReport _multistageBusReport; + + public XMLDeclarationReportMultistageBusVehicle(IReportWriter writer) + : base(writer) + { + _multistageBusReport = new XMLMultistageBusReport(); + } + + public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + _multistageBusReport.Initialize(modelData); + } + + protected override void GenerateReports() + { + _multistageBusReport.GenerateReport(); + } + + protected override void OutputReports() + { + Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, _multistageBusReport.Report); + } + + protected override void DoStoreResult(XMLDeclarationReport.ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + throw new NotSupportedException(); + } + protected override void WriteResult(XMLDeclarationReport.ResultEntry result) + { + throw new NotSupportedException(); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs index d7f2559a675e9c5fbd20827c230ea8c6f13aff9e..cb166c50c44758fb2ae47b81f43b93ef549b4a77 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs @@ -1,17 +1,17 @@ using System; using System.Collections.Generic; -using System.Linq; +using System.Xml; 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.InputData.FileIO.XML.Declaration.Reader.Impl; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; -using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML { @@ -51,8 +51,8 @@ namespace TUGraz.VectoCore.OutputData.XML { new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.DualFuelVehicle), new XElement(tns + "RegisteredPassengers", - new XElement(tns + XMLNames.Bus_LowerDeck, modelData.VehicleData.InputData.NumberOfPassengersLowerDeck), - new XElement(tns + XMLNames.Bus_UpperDeck, modelData.VehicleData.InputData.NumberOfPassengersUpperDeck) + new XElement(tns + XMLNames.Bus_LowerDeck, modelData.VehicleData.InputData.NumberPassengerSeatsLowerDeck), + new XElement(tns + XMLNames.Bus_UpperDeck, modelData.VehicleData.InputData.NumberPassengerSeatsUpperDeck) ), new XElement(tns +XMLNames.Bus_LowEntry, modelData.VehicleData.InputData.LowEntry), new XElement(tns + XMLNames.Bus_HeighIntegratedBody, modelData.VehicleData.InputData.Height.ToXMLFormat(3)), @@ -209,7 +209,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected internal static double CalculateFactorMethodFactor(IResult primaryResult, XMLDeclarationReport.ResultEntry specific, XMLDeclarationReport.ResultEntry generic) { - return specific.EnergyConsumptionTotal.Value() / generic.EnergyConsumptionTotal.Value(); + return specific.EnergyConsumptionTotal.Value() / generic.EnergyConsumptionTotal.Value(); // var energyConsumptionPrimary = primaryResult.EnergyConsumption.Sum(x => x.Value); //var energyConsumptionCompeted = energyConsumptionPrimary + // specific.EnergyConsumptionTotal / specific.Distance - @@ -372,8 +372,19 @@ namespace TUGraz.VectoCore.OutputData.XML { { var busAuxiliaries = modelData.BusAuxiliaries; var busAuxXML = busAuxiliaries.InputData.XMLSource; - var ns = XNamespace.Get(busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Namespace); const string auxPrefix = "aux"; + + if (busAuxiliaries.InputData is ConsolidatedBusAuxiliariesData) { + var namespaceName = ((XmlElement)busAuxXML.FirstChild).NamespaceURI; + return new XElement( + tns + XMLNames.Component_Auxiliaries, + new XAttribute(XNamespace.Xmlns + auxPrefix, namespaceName), + new XAttribute(xsi + "type", $"{auxPrefix}:CompletedVehicleAuxiliaryDataDeclarationType"), + XElement.Parse(busAuxXML.InnerXml).Elements() + ); + } + + var ns = XNamespace.Get(busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Namespace); return new XElement( tns + XMLNames.Component_Auxiliaries, new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName), diff --git a/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..106ef6b5d02102fa977ed58382f0fc881e618764 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs @@ -0,0 +1,557 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Hashing; +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.Models.Simulation.Data; +using TUGraz.VectoCore.Utils; +using TUGraz.VectoHashing; + + +namespace TUGraz.VectoCore.OutputData.XML +{ + public interface IXMLMultistageReport + { + void Initialize(VectoRunData modelData); + XDocument Report { get; } + void GenerateReport(); + } + + public class XMLMultistageBusReport: IXMLMultistageReport + { + 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"); + + protected XNamespace v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"; + protected XNamespace v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3"; + protected XNamespace v28 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"; + protected XNamespace v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"; + + private XElement _primaryVehicle; + private List<XElement> _manufacturingStages; + private List<XAttribute> _namespaceAttributes; + + private IPrimaryVehicleInformationInputDataProvider _primaryVehicleInputData; + private IList<IManufacturingStageInputData> _manufacturingStageInputData; + private IManufacturingStageInputData _consolidatedInputData; + private IVehicleDeclarationInputData _vehicleInputData; + + + public XDocument Report { get; protected set; } + + public XMLMultistageBusReport() + { + _manufacturingStages = new List<XElement>(); + _namespaceAttributes = new List<XAttribute>(); + } + + public void Initialize(VectoRunData modelData) + { + _primaryVehicleInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.PrimaryVehicle; + _manufacturingStageInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ManufacturingStages; + _consolidatedInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage; + _vehicleInputData = modelData.MultistageVIFInputData.VehicleInputData; + + SetInputXMLData(_primaryVehicleInputData.Vehicle.XMLSource); + } + + #region Set current VIF Data + + 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.ManufacturingStage) + _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.VectoOutputMultistage) { + 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); + } + + + + #endregion + + public void GenerateReport() + { + var retVal = new XDocument(); + retVal.Add( + new XElement(tns + XMLNames.VectoOutputMultistage, + _namespaceAttributes, + _primaryVehicle, + _manufacturingStages, + GenerateInputManufacturingStage() + ) + ); + Report = retVal; + } + + #region Generate new manfuacturing Stage + + private XElement GetSignatureElement(XElement stage) + { + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(stage); + writer.Flush(); + stream.Seek(0, SeekOrigin.Begin); + + return new XElement(tns + XMLNames.DI_Signature, + VectoHash.Load(stream).ComputeXmlHash + (VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod)); + } + + + private XElement GenerateInputManufacturingStage() + { + var multistageId = $"{VectoComponents.VectoManufacturingStage.HashIdPrefix()}{GetGUID()}"; + var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}"; + + var stage = new XElement(tns + XMLNames.ManufacturingStage, + new XAttribute("stageCount", GetStageNumber()), + new XElement(tns + XMLNames.Report_DataWrap, + new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStageDataType"), + new XAttribute(XMLNames.Component_ID_Attr, multistageId), + GetHashPreviousStageElement(), + GetVehicleElement(vehicleId), + GetApplicationInformation())); + + var sigXElement = GetSignatureElement(stage); + stage.LastNode.Parent.Add(sigXElement); + return stage; + } + + private int GetStageNumber() + { + if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0) + return 2; + + return _manufacturingStageInputData.Last().StageCount + 1; + } + + private XElement GetHashPreviousStageElement() + { + DigestData digitData; + if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0) { + digitData = _primaryVehicleInputData.VehicleSignatureHash; + } else { + digitData = _manufacturingStageInputData.Last().Signature; + } + + return new XElement(tns + "HashPreviousStage", + digitData.ToXML(di)); + } + + + private XElement GetVehicleElement(string vehicleId) + { + return new XElement(tns + XMLNames.Tag_Vehicle, + new XAttribute(xsi + XMLNames.Attr_Type, "v2.8:InterimStageInputType"), + new XAttribute(XMLNames.Component_ID_Attr, vehicleId), + new XElement(v28 + XMLNames.Component_Manufacturer, _vehicleInputData.Manufacturer), + new XElement(v28 + XMLNames.Component_ManufacturerAddress, _vehicleInputData.ManufacturerAddress), + new XElement(v28 + XMLNames.Vehicle_VIN, _vehicleInputData.VIN), + new XElement(v28 + XMLNames.Component_Date, + XmlConvert.ToString(_vehicleInputData.Date, XmlDateTimeSerializationMode.Utc)), + _vehicleInputData.Model != null + ? new XElement(v28 + XMLNames.Component_Model, _vehicleInputData.Model) : null, + _vehicleInputData.LegislativeClass != null + ? new XElement(v28 + XMLNames.Bus_LegislativeCategory, _vehicleInputData.LegislativeClass.ToXMLFormat()) : null, + _vehicleInputData.CurbMassChassis != null + ? new XElement(v28 + XMLNames.Bus_CorrectedActualMass, _vehicleInputData.CurbMassChassis.ToXMLFormat(0)) : null, + _vehicleInputData.GrossVehicleMassRating != null + ? new XElement(v28 + XMLNames.TPMLM, _vehicleInputData.GrossVehicleMassRating.ToXMLFormat(0)) : null, + GetAirdragModifiedMultistageEntry(), + _vehicleInputData.TankSystem != null + ? new XElement(v28 + XMLNames.Vehicle_NgTankSystem, _vehicleInputData.TankSystem.ToString()) : null, + _vehicleInputData.RegisteredClass != null + ? new XElement(v28 + XMLNames.Vehicle_RegisteredClass, _vehicleInputData.RegisteredClass.ToXMLFormat()) : null, + _vehicleInputData.NumberPassengerSeatsLowerDeck != null + ? new XElement(v28 + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _vehicleInputData.NumberPassengerSeatsLowerDeck) : null, + _vehicleInputData.NumberPassengersStandingLowerDeck != null + ? new XElement(v28 + XMLNames.Bus_NumberPassengersStandingLowerDeck, _vehicleInputData.NumberPassengersStandingLowerDeck) : null, + _vehicleInputData.NumberPassengerSeatsUpperDeck != null + ? new XElement(v28 + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _vehicleInputData.NumberPassengerSeatsUpperDeck) : null, + _vehicleInputData.NumberPassengersStandingUpperDeck != null + ? new XElement(v28 + XMLNames.Bus_NumberPassengersStandingUpperDeck, _vehicleInputData.NumberPassengersStandingUpperDeck) : null, + _vehicleInputData.VehicleCode != null + ? new XElement(v28 + XMLNames.Vehicle_BodyworkCode, _vehicleInputData.VehicleCode.ToXMLFormat()) : null, + _vehicleInputData.LowEntry != null + ? new XElement(v28 + XMLNames.Bus_LowEntry, _vehicleInputData.LowEntry) : null, + _vehicleInputData.Height != null + ? new XElement(v28 + XMLNames.Bus_HeighIntegratedBody, _vehicleInputData.Height.ConvertToMilliMeter().ToXMLFormat(0)) : null, + _vehicleInputData.Length != null + ? new XElement(v28 + XMLNames.Bus_VehicleLength, _vehicleInputData.Length.ConvertToMilliMeter().ToXMLFormat(0)) : null, + _vehicleInputData.Width != null + ? new XElement(v28 + XMLNames.Bus_VehicleWidth, _vehicleInputData.Width.ConvertToMilliMeter().ToXMLFormat(0)) : null, + _vehicleInputData.EntranceHeight != null + ? new XElement(v28 + XMLNames.Bus_EntranceHeight, _vehicleInputData.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)) : null, + _vehicleInputData.DoorDriveTechnology != null + ? new XElement(v28 + XMLNames.Bus_DoorDriveTechnology, _vehicleInputData.DoorDriveTechnology.ToXMLFormat()) : null, + new XElement(v28 + XMLNames.Bus_VehicleDeclarationType, _vehicleInputData.VehicleDeclarationType.GetLabel()), + GetADAS(_vehicleInputData.ADAS), + GetBusVehicleComponents(_vehicleInputData.Components) + ); + } + + private XElement GetAirdragModifiedMultistageEntry() + { + if (_consolidatedInputData?.Vehicle?.Components?.AirdragInputData == null) + return null; + + switch (_vehicleInputData.AirdragModifiedMultistage) { + case null: + throw new VectoException("AirdragModifiedMultistage must be set if an airdrag component has been set in previous stages."); + default: + return new XElement(v28 + XMLNames.Bus_AirdragModifiedMultistage, _vehicleInputData.AirdragModifiedMultistage); + } + } + + private XElement GetADAS(IAdvancedDriverAssistantSystemDeclarationInputData adasData) + { + if (adasData == null) + return null; + + return new XElement( + v28 + XMLNames.Vehicle_ADAS, + new XElement(v23 + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart), + new XElement(v23 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()), + new XElement(v23 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()), + new XElement(v23 + XMLNames.Vehicle_ADAS_PCC, adasData.PredictiveCruiseControl.ToXMLFormat()), + adasData.ATEcoRollReleaseLockupClutch != null + ? new XElement(v23 + XMLNames.Bus_ADAS_APTEcoRollReleaseLockupClutch, adasData.ATEcoRollReleaseLockupClutch) + : null + ); + } + + private XElement GetBusVehicleComponents(IVehicleComponentsDeclaration vehicleComponents) + { + var busAirdrag = GetBusAirdrag(vehicleComponents?.AirdragInputData); + var busAux = GetBusAuxiliaries(vehicleComponents?.BusAuxiliaries); + + if (busAirdrag == null && busAux == null) + return null; + + return new XElement(v28 + XMLNames.Vehicle_Components, + new XAttribute(XNamespace.Xmlns + "v2.8", v28), + new XAttribute(xsi + XMLNames.Attr_Type, "v2.8:CompletedVehicleComponentsDeclarationType"), + busAirdrag, + busAux + ); + } + + private XElement GetBusAirdrag(IAirdragDeclarationInputData airdrag) + { + if (airdrag != null && _vehicleInputData.AirdragModifiedMultistage != false) + return GetAirdragElement(airdrag); + + return _vehicleInputData.AirdragModifiedMultistage == true + ? GetBusAirdragUseStandardValues() + : null; + } + + private XElement GetAirdragElement(IAirdragDeclarationInputData airdrag) + { + if (airdrag == null) + 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); + } + + private XElement GetAirdragXMLElementV1(XmlNode dataNode, XmlNode signatureNode) + { + return new XElement(v28 + XMLNames.Component_AirDrag, + new XElement(v20 + XMLNames.Report_DataWrap, + new XAttribute(xsi + XMLNames.Component_Type_Attr, XMLNames.AirDrag_Data_Type_Attr), + new XAttribute("xmlns", v10.NamespaceName), + dataNode.Attributes != null && dataNode.Attributes[XMLNames.Component_ID_Attr] != null ? + new XAttribute(XMLNames.Component_ID_Attr, dataNode.Attributes[XMLNames.Component_ID_Attr].InnerText) : null, + GetElements(dataNode.ChildNodes) + ), + new XElement(v20 + XMLNames.DI_Signature, + GetElements(signatureNode.ChildNodes) + ) + ); + } + + private XElement GetAirdragXMLElementV2(XmlNode dataNode, XmlNode signatureNode) + { + var dataElement = XElement.Parse(dataNode.OuterXml); + var signatureElement = XElement.Parse(signatureNode.OuterXml); + dataElement.Attribute(XNamespace.Xmlns + "xsi")?.Remove(); + + return new XElement(v28 + XMLNames.Component_AirDrag, + dataElement, + signatureElement); + } + + private List<XElement> GetElements(XmlNodeList list) + { + var res = new List<XElement>(); + + foreach (XmlNode node in list) { + var element = XElement.Parse(node.OuterXml); + element.Attribute("xmlns")?.Remove(); + res.Add(element); + } + + return res; + } + + private XElement GetBusAirdragUseStandardValues() + { + var id = $"{VectoComponents.Airdrag.HashIdPrefix()}{GetGUID()}"; + + return new XElement(v28 + XMLNames.Component_AirDrag, + new XElement(v20 + XMLNames.ComponentDataWrapper, + new XAttribute(XNamespace.Xmlns + "v2.0", v20), + new XAttribute(xsi + XMLNames.Attr_Type, "v2.8:AirDragModifiedUseStandardValueType"), + new XAttribute(XMLNames.Component_ID_Attr, id) + ), + new XElement(v20 + XMLNames.DI_Signature, XMLHelper.CreateDummySig(di))); + } + + + public XElement GetBusAuxiliaries(IBusAuxiliariesDeclarationData busAux) + { + 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(v28 + XMLNames.Component_Auxiliaries, + + new XElement(v28 + XMLNames.ComponentDataWrapper, + new XAttribute(xsi + XMLNames.Attr_Type, "v2.8:CompletedVehicleAuxiliaryDataDeclarationType"), + electricSystemEntry != null + ? GetElectricSystem(busAux.ElectricConsumers) : null, + hvacEntry != null + ? GetHVAC(busAux.HVACAux) : null + )); + } + + + private 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(v28 + XMLNames.BusAux_ElectricSystem, + new XElement(v28 + XMLNames.BusAux_LEDLights, + electricConsumer.InteriorLightsLED != null + ? new XElement(v28 + XMLNames.Bus_Interiorlights, electricConsumer.InteriorLightsLED) : null, + electricConsumer.DayrunninglightsLED != null + ? new XElement(v28 + XMLNames.Bus_Dayrunninglights, electricConsumer.DayrunninglightsLED) : null, + electricConsumer.PositionlightsLED != null + ? new XElement(v28 + XMLNames.Bus_Positionlights, electricConsumer.PositionlightsLED) : null, + electricConsumer.BrakelightsLED != null + ? new XElement(v28 + XMLNames.Bus_Brakelights, electricConsumer.BrakelightsLED) : null, + electricConsumer.HeadlightsLED != null + ? new XElement(v28 + XMLNames.Bus_Headlights, electricConsumer.HeadlightsLED) : null + )); + } + + private XElement GetHVAC(IHVACBusAuxiliariesDeclarationData hvac) + { + if (hvac == null) + return null; + + if (hvac.SystemConfiguration == null && + hvac.HeatPumpModeDriverCompartment == null && hvac.HeatPumpTypeDriverCompartment == null && + hvac.HeatPumpPassengerCompartments?.Any() != true && 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(v28 + XMLNames.BusAux_HVAC, + hvac.SystemConfiguration != null + ? new XElement(v28 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.GetXmlFormat()) : null, + hvac.HeatPumpTypeDriverCompartment != null + ? new XElement(v28 + XMLNames.Bus_HeatPumpTypeDriver, hvac.HeatPumpTypeDriverCompartment.GetLabel()) : null, + hvac.HeatPumpModeDriverCompartment != null + ? new XElement(v28 + XMLNames.Bus_HeatPumpModeDriver, hvac.HeatPumpModeDriverCompartment.GetLabel()) : null, + GetHeatPumpPassengerCompartments(hvac.HeatPumpPassengerCompartments), + hvac.AuxHeaterPower != null + ? new XElement(v28 + XMLNames.Bus_AuxiliaryHeaterPower, hvac.AuxHeaterPower.ToXMLFormat(0)) : null, + hvac.DoubleGlazing != null + ? new XElement(v28 + XMLNames.Bus_DoubleGlazing, hvac.DoubleGlazing) : null, + hvac.AdjustableAuxiliaryHeater != null + ? new XElement(v28 + XMLNames.Bus_AdjustableAuxiliaryHeater, hvac.AdjustableAuxiliaryHeater) : null, + hvac.SeparateAirDistributionDucts != null + ? new XElement(v28 + XMLNames.Bus_SeparateAirDistributionDucts, hvac.SeparateAirDistributionDucts) : null, + hvac.WaterElectricHeater != null + ? new XElement(v28 + XMLNames.Bus_WaterElectricHeater, hvac.WaterElectricHeater) : null, + hvac.AirElectricHeater != null + ? new XElement(v28 + XMLNames.Bus_AirElectricHeater, hvac.AirElectricHeater) : null, + hvac.OtherHeatingTechnology != null + ? new XElement(v28 + XMLNames.Bus_OtherHeatingTechnology, hvac.OtherHeatingTechnology) : null + ); + } + + private IList<XElement> GetHeatPumpPassengerCompartments(IList<Tuple<HeatPumpType,HeatPumpMode>> heatPumps) + { + if (heatPumps?.Any() != true) + return null; + + var result = new List<XElement>(); + + for (int i = 0; i < heatPumps.Count; i++) { + result.Add(new XElement(v28 + XMLNames.Bus_HeatPumpTypePassenger, heatPumps[i].Item1.GetLabel())); + result.Add(new XElement(v28 + XMLNames.Bus_HeatPumpModePassenger, heatPumps[i].Item2.GetLabel())); + } + + return result; + } + + + private XElement GetApplicationInformation() + { + return new XElement( + tns + XMLNames.Report_ApplicationInfo_ApplicationInformation, + new XElement(tns + XMLNames.Report_ApplicationInfo_SimulationToolVersion, VectoSimulationCore.VersionNumber), + new XElement( + tns + XMLNames.Report_ApplicationInfo_Date, + XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc))); + } + + private XElement GetInputdataSignature(string multistageId) + { + return new XElement(tns + XMLNames.DI_Signature, + new XElement(di + XMLNames.DI_Signature_Reference, + new XAttribute(XMLNames.DI_Signature_Reference_URI_Attr, $"#{multistageId}"), + new XElement(di + XMLNames.DI_Signature_Reference_Transforms, + new XElement(di + XMLNames.DI_Signature_Reference_Transforms_Transform, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "urn:vecto:xml:2017:canonicalization")), + new XElement(di + XMLNames.DI_Signature_Reference_Transforms_Transform, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "http://www.w3.org/2001/10/xml-exc-c14n#")) + ), + new XElement(di + XMLNames.DI_Signature_Reference_DigestMethod, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "http://www.w3.org/2001/04/xmlenc#sha256")), + new XElement(di + XMLNames.DI_Signature_Reference_DigestValue, GetDigestValue(multistageId))) + + ); + } + + private string GetGUID() + { + return Guid.NewGuid().ToString("n").Substring(0, 20); + } + + private string GetDigestValue(string multistageId) + { + var alg = SHA256.Create(); + alg.ComputeHash(Encoding.UTF8.GetBytes(multistageId)); + return Convert.ToBase64String(alg.Hash); + } + + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs index d79466d8bd9afa212ed19f924e5fbae21daf50c4..1f3a72425991957da71fba810e05e09fb421965b 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs @@ -1,20 +1,23 @@ using System; using System.Collections.Generic; -using System.Data; using System.IO; using System.Linq; using System.Xml; using System.Xml.Linq; -using TUGraz.IVT.VectoXML.Writer; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Hashing; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Utils; using TUGraz.VectoHashing; @@ -22,16 +25,19 @@ namespace TUGraz.VectoCore.OutputData.XML { public class XMLPrimaryVehicleReport { - protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1"; + 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"); - protected XNamespace RootNS = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation"; - + 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:DEV:v2.3"; + protected XNamespace v26 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"; + protected XNamespace v28 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"; + protected XNamespace v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"; + protected XElement VehiclePart; - protected XElement InputDataIntegrity; - protected XElement Results; private bool _allSuccess = true; @@ -48,43 +54,58 @@ namespace TUGraz.VectoCore.OutputData.XML public void GenerateReport(XElement resultSignature) { - var xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); var retVal = new XDocument(); - var results = new XElement(Results); - results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error")); - - //retVal.Add(new XProcessingInstruction("xml-stylesheet", "href=\"https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/CSS/VectoReports.css\"")); retVal.Add( - new XElement( - RootNS + XMLNames.VectoPrimaryVehicleReport, - - //new XAttribute("schemaVersion", CURRENT_SCHEMA_VERSION), - new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), + new XElement(XMLNames.VectoOutputMultistage, new XAttribute("xmlns", tns), - - //new XAttribute(XNamespace.Xmlns + "pbus", tns), - new XAttribute(XNamespace.Xmlns + "pif", RootNS), new XAttribute(XNamespace.Xmlns + "di", di), - new XAttribute( - xsi + "schemaLocation", - string.Format("{0} {1}/DEV/VectoOutputPrimaryVehicleInformation.xsd", RootNS, AbstractXMLWriter.SchemaLocationBaseUrl)), - new XElement( - RootNS + XMLNames.Report_DataWrap, - new XAttribute(xsi + "type", "PrimaryVehicleHeavyBusDataType"), - VehiclePart, - InputDataIntegrity, - new XElement(tns + "ManufacturerRecordSignature", resultSignature), - results, - GetApplicationInfo()) - ) + new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), + 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.6", v26), + new XAttribute(XNamespace.Xmlns + "v2.8", v28), + new XAttribute(xsi + "schemaLocation", $"{tns.NamespaceName} "+ @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"), + + GeneratePrimaryVehicle(resultSignature)) + ); + + Report = retVal; + } + + private XElement GeneratePrimaryVehicle(XElement resultSignature) + { + var results = new XElement(Results); + results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error")); + var vehicleId = $"{VectoComponents.Vehicle.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"), + VehiclePart, + InputDataIntegrity, + new XElement(tns + "ManufacturerRecordSignature", resultSignature), + results, + GetApplicationInfo()) ); + + var sigXElement = GetSignatureElement(primaryVehicle); + primaryVehicle.LastNode.Parent.Add(sigXElement); + return primaryVehicle; + } + + private XElement GetSignatureElement(XElement stage) + { var stream = new MemoryStream(); var writer = new StreamWriter(stream); - writer.Write(retVal); + writer.Write(stage); writer.Flush(); stream.Seek(0, SeekOrigin.Begin); - var h = VectoHash.Load(stream); - Report = h.AddHash(); + + return new XElement(tns + XMLNames.DI_Signature, + VectoHash.Load(stream).ComputeXmlHash + (VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod)); } private XElement GetApplicationInfo() @@ -110,9 +131,9 @@ namespace TUGraz.VectoCore.OutputData.XML new XElement(tns + XMLNames.ManufacturerAddressPrimaryVehicle, 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)), - new XElement(tns + XMLNames.Vehicle_VehicleCategory, modelData.VehicleData.VehicleCategory.ToXMLFormat()), + new XElement(tns + XMLNames.Component_Date, XmlConvert.ToString(modelData.VehicleData.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(tns + XMLNames.Bus_LegislativeCategory, modelData.VehicleData.LegislativeClass.ToXMLFormat()), + new XElement(tns + XMLNames.Bus_ChassisConfiguration, modelData.VehicleData.VehicleCategory.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Vehicle_Articulated, modelData.VehicleData.InputData.Articulated), new XElement(tns + XMLNames.TPMLM, modelData.VehicleData.InputData.GrossVehicleMassRating.ToXMLFormat(0)), @@ -121,8 +142,7 @@ namespace TUGraz.VectoCore.OutputData.XML modelData.Retarder.Type.IsDedicatedComponent() ? new XElement(tns + XMLNames.Vehicle_RetarderRatio, modelData.Retarder.Ratio.ToXMLFormat(3)) : null, - new XElement( - tns + XMLNames.Vehicle_AngledriveType, (modelData.AngledriveData?.Type ?? AngledriveType.None).ToXMLFormat()), + new XElement(tns + XMLNames.Vehicle_AngledriveType, (modelData.AngledriveData?.Type ?? AngledriveType.None).ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_ZeroEmissionVehicle, modelData.VehicleData.ZeroEmissionVehicle), GetADAS(modelData.VehicleData.ADAS), GetTorqueLimits(modelData), @@ -173,6 +193,7 @@ namespace TUGraz.VectoCore.OutputData.XML new XAttribute(xsi + "type", "VehicleComponentsPIFType"), GetEngineDescription(modelData.EngineData, fuelModes), GetGearboxDescription(modelData.GearboxData), + GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), GetAngledriveDescription(modelData.AngledriveData), GetAxlegearDescription(modelData.AxleGearData), GetAxleWheelsDescription(modelData), @@ -180,44 +201,179 @@ namespace TUGraz.VectoCore.OutputData.XML ); } + private XElement GetTorqueConverterDescription(TorqueConverterData torqueConverter) + { + if (torqueConverter == null) + return null; + + return new XElement(tns + XMLNames.Component_TorqueConverter, + new XElement(tns + XMLNames.Report_DataWrap, + new XAttribute(xsi + "type", "TorqueConverterDataPIFType"), + GetCommonDescription(torqueConverter), + new XElement(tns + XMLNames.Component_AppVersion, torqueConverter.AppVersion) + )); + } + protected virtual XElement GetAxleWheelsDescription(VectoRunData modeldData) { var axles = modeldData.VehicleData.InputData.Components.AxleWheels.XMLSource; + var axlesNode = axles.SelectSingleNode(".//*[local-name()='Axles']"); + var axlesNodes = axlesNode.SelectNodes(".//*[local-name()='Axle']"); + + return new XElement(tns + XMLNames.Component_AxleWheels, + new XElement(tns + XMLNames.Report_DataWrap, + new XAttribute(xsi + "type", "AxleWheelsDataPIFType"), + new XElement(tns + XMLNames.AxleWheels_Axles, + GetAxlesNodes(axlesNodes) + ))); + } - var ns = XNamespace.Get(axles.SchemaInfo.SchemaType.QualifiedName.Namespace); - //const string adasPrefix = "axl"; - return new XElement( - tns + XMLNames.Component_AxleWheels, + private List<XElement> GetAxlesNodes(XmlNodeList nodes) + { + var axles = new List<XElement>(); + foreach (XmlNode axleNode in nodes) { + + 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"), + XElement.Parse(axleNode.OuterXml.Replace("xsi:type=\"TyreDataDeclarationType\"", "xsi:type=\"v2.0:TyreDataDeclarationType\"")).Elements()); + + axles.Add(axle); + } - //new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName), - new XAttribute(XNamespace.Xmlns + "pbus", tns), - new XAttribute("xmlns", ns.NamespaceName), - new XAttribute( - xsi + "type", axles.SchemaInfo.SchemaType.QualifiedName.Name), - XElement.Parse(axles.OuterXml).Elements() - ); + return axles; } private XElement GetAuxiliariesDescription(VectoRunData modelData) { - var busAuxiliaries = modelData.BusAuxiliaries; - var busAuxXML = busAuxiliaries.InputData.XMLSource; - var ns = XNamespace.Get(busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Namespace); - const string auxPrefix = "aux"; - return new XElement( - tns + XMLNames.Component_Auxiliaries, - new XElement( - tns + XMLNames.ComponentDataWrapper, - new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName), - new XAttribute( - xsi + "type", string.Format("{0}:{1}", auxPrefix, busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name)), - XElement.Parse(busAuxXML.InnerXml).Elements() - )); + var aux = modelData.BusAuxiliaries.InputData; + var supplyHevPossible = XmlConvert.ToBoolean( + aux.XMLSource.SelectSingleNode( + $".//*[local-name()='{XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible}']")?.InnerText); + + + return new XElement(tns + XMLNames.Component_Auxiliaries, + new XElement(tns + XMLNames.ComponentDataWrapper, + new XAttribute(xsi + "type", "AuxiliaryDataPIFType"), + new XAttribute("xmlns", tns.NamespaceName), + new XElement(tns + XMLNames.BusAux_Fan, new XElement(tns + XMLNames.BusAux_Technology, aux.FanTechnology)), + GetSteeringPumpElement(aux.SteeringPumpTechnology), + GetElectricSystem(aux.ElectricSupply, supplyHevPossible), + GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers), + GetHvac(aux.HVACAux)) + ); + } + + + private XElement GetSteeringPumpElement(IList<string> steeringPumps) + { + var technologies = new List<XElement>(); + + for (int i = 0; i < steeringPumps.Count; i++) + { + var technology = new XElement(tns + XMLNames.BusAux_Technology, + new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i + 1), steeringPumps[i]); + technologies.Add(technology); + } + + return new XElement(tns + XMLNames.BusAux_SteeringPump, + technologies + ); + } + + private XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply, bool supplyHevPossible) + { + var alternatorTech = new XElement(tns + 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(tns + XMLNames.BusAux_ElectricSystem_SmartAlternator, + new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCurrent, alternator.RatedCurrent.Value()), + new XElement(tns + 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) { + var battery = electricStorage as BusAuxBatteryInputData; + auxBattery.Add(new XElement(tns + XMLNames.BusAux_ElectricSystem_Battery, + new XElement(tns + XMLNames.BusAux_ElectricSystem_BatteryTechnology, battery.Technology), + new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCapacity, battery.Capacity.AsAmpHour), + new XElement(tns + XMLNames.BusAux_ElectricSystem_NominalVoltage, battery.Voltage.Value()))); + } + else if (electricStorage is BusAuxCapacitorInputData) { + var capacitor = electricStorage as BusAuxCapacitorInputData; + auxCapacitor.Add(new XElement(tns + XMLNames.BusAux_ElectricSystem_Capacitor, + new XElement(tns + XMLNames.BusAux_ElectricSystem_CapacitorTechnology, capacitor.Technology), + new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCapacitance, capacitor.Capacity.Value()), + new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedVoltage, capacitor.Voltage.Value()))); + } + } + + auxBattery = auxBattery.Any() ? auxBattery : null; + auxCapacitor = auxCapacitor.Any() ? auxCapacitor : null; + } + + return new XElement(tns + XMLNames.BusAux_ElectricSystem, + alternatorTech, + smartAlternators, + auxBattery, + auxCapacitor, + new XElement(tns + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, supplyHevPossible) + ); + } + + + private XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData supply, IPneumaticConsumersDeclarationData consumer) + { + return new XElement(tns + XMLNames.BusAux_PneumaticSystem, + new XElement(tns + XMLNames.Bus_SizeOfAirSupply, supply.CompressorSize), + new XElement(tns + XMLNames.CompressorDrive, supply.CompressorDrive.GetLabel()), + new XElement(tns + XMLNames.Vehicle_Clutch, supply.Clutch), + new XElement(tns + XMLNames.Bus_CompressorRatio, supply.Ratio.ToMinSignificantDigits(3)), + new XElement(tns + XMLNames.Bus_SmartCompressionSystem, supply.SmartAirCompression), + new XElement(tns + XMLNames.Bus_SmartRegenerationSystem, supply.SmartRegeneration), + new XElement(tns + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(consumer.AirsuspensionControl)), + new XElement(tns + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, consumer.AdBlueDosing == ConsumerTechnology.Pneumatically) + ); + } + + private string GetXMLAirsuspensionControl(ConsumerTechnology airsuspensionControl) + { + switch (airsuspensionControl) { + case ConsumerTechnology.Electrically: + return "electronically"; + case ConsumerTechnology.Mechanically: + return "mechanically"; + default: + throw new VectoException("Unknown AirsuspensionControl!"); + } + } + + + private XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac) + { + return new XElement(new XElement(tns + XMLNames.BusAux_HVAC, + new XElement(tns + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat), + new XElement(tns + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger))); } + private XElement GetAxlegearDescription(AxleGearData axleGearData) { return WrapComponent( @@ -230,15 +386,14 @@ namespace TUGraz.VectoCore.OutputData.XML private XElement GetAngledriveDescription(AngledriveData angledriveData) { - if (angledriveData == null) { + if (angledriveData == null) return null; - } - - return new XElement( - tns + XMLNames.Component_Angledrive, + + return WrapComponent(XMLNames.Component_Angledrive, "AngledriveDataPIFType", GetCommonDescription(angledriveData), - new XElement(tns + XMLNames.Component_AppVersion, angledriveData.InputData.AppVersion), - new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3))); + new XElement(tns + XMLNames.Component_AppVersion, angledriveData.InputData.AppVersion), + new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3)) + ); } private XElement GetGearboxDescription(GearboxData gearboxData) @@ -269,8 +424,6 @@ namespace TUGraz.VectoCore.OutputData.XML private XElement GetEngineDescription(CombustionEngineData engineData, List<List<FuelData.Entry>> fuelModes) { - XNamespace v23 = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23; - var fuels = new List<XElement>(); foreach (var mode in engineData.InputData.EngineModes) { fuels.Add( @@ -288,7 +441,7 @@ namespace TUGraz.VectoCore.OutputData.XML )), new XElement( tns + "Fuels", - mode.Fuels.Select(x => new XElement(tns + "FuelType", x.FuelType.ToXMLFormat()))) + mode.Fuels.Select(x => new XElement(tns + XMLNames.Engine_FuelType, x.FuelType.ToXMLFormat()))) ) ); } @@ -441,6 +594,11 @@ namespace TUGraz.VectoCore.OutputData.XML return retVal.Cast<object>().ToArray(); } + + private string GetGUID() + { + return Guid.NewGuid().ToString("n").Substring(0, 20); + } } } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLVTPReport.cs index fcfa31cbe9e2ec43c9aab021d32d5954e57507d7..c22ac6e1e0ba1ee2ed04b49be6548181ab8fac6c 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLVTPReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLVTPReport.cs @@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.OutputData.XML private LoggingRule cycleChecksRule; protected VehicleClass VehicleClass = VehicleClass.Unknown; - protected VehicleCode VehicleCode = VehicleCode.NOT_APPLICABLE; + protected VehicleCode? VehicleCode = VectoCommon.Models.VehicleCode.NOT_APPLICABLE; //protected XNamespace di; //private bool allSuccess = true; diff --git a/VectoCore/VectoCore/Properties/AssemblyInfo.cs b/VectoCore/VectoCore/Properties/AssemblyInfo.cs index c8cb7872fd5cb2161391e1f72853711d93bfc0d7..5fd395da17b9de7d1f42e61dcd4c457ded7b7d38 100644 --- a/VectoCore/VectoCore/Properties/AssemblyInfo.cs +++ b/VectoCore/VectoCore/Properties/AssemblyInfo.cs @@ -54,3 +54,4 @@ using System.Runtime.InteropServices; [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VECTO_GIT")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoAuxiliariesTests")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VECTO3")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VECTOMultistage")] diff --git a/VectoCore/VectoCore/Resources/Declaration/PrimaryBusSegmentationTable.csv b/VectoCore/VectoCore/Resources/Declaration/PrimaryBusSegmentationTable.csv index 68b9c7309f5a5f752321de38c10db5a638a81f9f..d5d16c78947c3b809e6ed844d630bc8d4bf3bd00 100644 --- a/VectoCore/VectoCore/Resources/Declaration/PrimaryBusSegmentationTable.csv +++ b/VectoCore/VectoCore/Resources/Declaration/PrimaryBusSegmentationTable.csv @@ -1,26 +1,26 @@ HDV group , Production Stage , Vehicle Category , HDV SuperGroup , Articulated , Num Axles , TPMLM_Min , TPMLM_Max , doubledecker , vehicle code , low entry , floor type , DesignSpeed , Body , .vacc file , Cross Wind Correction , CdxA Standard , AxlesWeights , Width , Length , Body Height , entrance height , CurbMass , PassengersLowerDeck , PassengersUpperDeck , Heavy Urban , Urban , Suburban , Interurban , Coach , ES_External displays , ES_Internal displays , ES_Fridge , ES_Kitchen Standard , HVAC System Configuration , HVAC Compressor type , HVAC Aux Heater , HVAC Double Glasing , HVAC Heatpump , HVAC Adjustable AuxiliaryHeater , HVAC SeparateAirDistributionDucts ## Heavy Bus Primary Vehicles -P31SD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 4.9 , 37.5/62.5 , 2.55 , 12 , 2.8 , 340 , 11975 , 80 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 2 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P31DD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.2 , 37.5/62.5 , 2.55 , 10.5 , 3.8 , 340 , 12350 , 60 , 40 , 3.7 , 3.7 , 3.7 , , , 3 , 3 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P32SD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.45 , 37.5/62.5 , 2.55 , 12 , 3.15 , 340 , 13150 , 45 , 0 , , , , 2.2/1.8 , 1.4 , 2 , 2 , 0.5 , 0.5 , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 -P32DD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 3.9 , 37.5/62.5 , 2.55 , 10.5 , 3.7 , 340 , 13400 , 25 , 35 , , , , 3/2.5 , 2 , 1 , 2 , 1 , 1 , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 +P31SD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 4.9 , 37.5/62.5 , 2.55 , 12 , 2.8 , 340 , 11975 , 80 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 2 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P31DD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.2 , 37.5/62.5 , 2.55 , 10.5 , 3.8 , 340 , 12350 , 60 , 40 , 3.7 , 3.7 , 3.7 , , , 3 , 3 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P32SD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.45 , 37.5/62.5 , 2.55 , 12 , 3.15 , 340 , 13150 , 45 , 0 , , , , 2.2/1.8 , 1.4 , 2 , 2 , 0.5 , 0.5 , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 +P32DD , 1 , HeavyBus , P31_32 , - , 2 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 3.9 , 37.5/62.5 , 2.55 , 10.5 , 3.7 , 340 , 13400 , 25 , 35 , , , , 3/2.5 , 2 , 1 , 2 , 1 , 1 , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 ## , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- -P33SD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.0 , 27.3/45.4/27.3 , 2.55 , 14.2 , 2.8 , 340 , 14175 , 104 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 2 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P33DD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.3 , 27.3/45.4/27.3 , 2.55 , 13.5 , 3.8 , 340 , 14725 , 78 , 52 , 3.7 , 3.7 , 3.7 , , , 3 , 3 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P34SD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.53 , 27.3/45.4/27.3 , 2.55 , 13.8 , 3.15 , 340 , 15213 , 59 , 0 , , , , 2.2/1.8 , 1.4 , 2 , 2 , 0.5 , 0.5 , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 -P34DD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 3.98 , 27.3/45.4/27.3 , 2.55 , 14 , 3.7 , 340 , 17850 , 33 , 46 , , , , 3/2.5 , 2 , 1 , 4 , 1 , 1.5 , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 +P33SD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.0 , 27.3/45.4/27.3 , 2.55 , 14.2 , 2.8 , 340 , 14175 , 104 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 2 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P33DD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.3 , 27.3/45.4/27.3 , 2.55 , 13.5 , 3.8 , 340 , 14725 , 78 , 52 , 3.7 , 3.7 , 3.7 , , , 3 , 3 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P34SD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.53 , 27.3/45.4/27.3 , 2.55 , 13.8 , 3.15 , 340 , 15213 , 59 , 0 , , , , 2.2/1.8 , 1.4 , 2 , 2 , 0.5 , 0.5 , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 +P34DD , 1 , HeavyBus , P33_34 , 0 , 3 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 3.98 , 27.3/45.4/27.3 , 2.55 , 14 , 3.7 , 340 , 17850 , 33 , 46 , , , , 3/2.5 , 2 , 1 , 4 , 1 , 1.5 , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 ## , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- -P35SD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 0 , CG , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.1 , 24.3/35.2/40.5 , 2.55 , 18.2 , 2.8 , 340 , 17800 , 104 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 3 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P35DD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 1 , CH , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.4 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.8 , 340 , 20250 , 78 , 52 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P36SD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 0 , CC , - , high floor , 100 , , Bus.vacc , CoachBus , 3.60 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.15 , 340 , 19267 , 59 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 -P36DD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 1 , CD , - , high floor , 100 , , Bus.vacc , CoachBus , 4.05 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.7 , 340 , 21375 , 33 , 46 , , , , 3/2.5 , 2 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 +P35SD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 0 , CG , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.1 , 24.3/35.2/40.5 , 2.55 , 18.2 , 2.8 , 340 , 17800 , 104 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 3 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P35DD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 1 , CH , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.4 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.8 , 340 , 20250 , 78 , 52 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P36SD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 0 , CC , - , high floor , 100 , , Bus.vacc , CoachBus , 3.60 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.15 , 340 , 19267 , 59 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 +P36DD , 1 , HeavyBus , P35_36 , 1 , 3 , 7.4 , 999 , 1 , CD , - , high floor , 100 , , Bus.vacc , CoachBus , 4.05 , 24.3/35.2/40.5 , 2.55 , 18.2 , 3.7 , 340 , 21375 , 33 , 46 , , , , 3/2.5 , 2 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 ## , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- -P37SD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.1 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 2.8 , 340 , 15000 , 125 , 0 , 3 , 3 , 3 , 2.2/1.8 , , , , , , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P37DD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.4 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.8 , 340 , 18700 , 94 , 62 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P38SD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.60 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.15 , 340 , 17500 , 70 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 -P38DD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 4.05 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.7 , 340 , 21200 , 39 , 55 , , , , 3/2.5 , 2 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 +P37SD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 0 , CE , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.1 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 2.8 , 340 , 15000 , 125 , 0 , 3 , 3 , 3 , 2.2/1.8 , , , , , , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P37DD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 1 , CF , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.4 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.8 , 340 , 18700 , 94 , 62 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P38SD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 0 , CA , - , high floor , 100 , , Bus.vacc , CoachBus , 3.60 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.15 , 340 , 17500 , 70 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 +P38DD , 1 , HeavyBus , P37_38 , 0 , 4 , 7.4 , 999 , 1 , CB , - , high floor , 100 , , Bus.vacc , CoachBus , 4.05 , 21.4/21.4/35.8/21.4 , 2.55 , 15 , 3.7 , 340 , 21200 , 39 , 55 , , , , 3/2.5 , 2 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 ## , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- , ----- -P39SD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 0 , CG , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.2 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 2.6 , 340 , 19600 , 125 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 3 , 0 , 0 , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P39DD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 1 , CH , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.5 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.8 , 340 , 24800 , 94 , 62 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , 2-stage , 15 , 0 , 0 , 0 , 0 -P40SD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 0 , CC , - , high floor , 100 , , Bus.vacc , CoachBus , 3.68 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.15 , 340 , 20950 , 70 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 -P40DD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 1 , CD , - , high floor , 100 , , Bus.vacc , CoachBus , 4.13 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.7 , 340 , 24600 , 39 , 55 , , , , 3/2.5 , 2 , , , , , 6 , 2-stage , 30 , 1 , 0 , 0 , 1 +P39SD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 0 , CG , 0 , low floor , 100 , , Bus.vacc , CoachBus , 5.2 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 2.6 , 340 , 19600 , 125 , 0 , 3 , 3 , 3 , 2.2/1.8 , , 3 , 3 , 0 , 0 , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P39DD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 1 , CH , 0 , low floor , 100 , , Bus.vacc , CoachBus , 6.5 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.8 , 340 , 24800 , 94 , 62 , 3.7 , 3.7 , 3.7 , , , , , , , 6 , non R-744 2-stage , 15 , 0 , 0 , 0 , 0 +P40SD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 0 , CC , - , high floor , 100 , , Bus.vacc , CoachBus , 3.68 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.15 , 340 , 20950 , 70 , 0 , , , , 2.2/1.8 , 1.4 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 +P40DD , 1 , HeavyBus , P39_40 , 1 , 4 , 7.4 , 999 , 1 , CD , - , high floor , 100 , , Bus.vacc , CoachBus , 4.13 , 20.0/28.2/32.4/19.4 , 2.55 , 21 , 3.7 , 340 , 24600 , 39 , 55 , , , , 3/2.5 , 2 , , , , , 6 , non R-744 2-stage , 30 , 1 , 0 , 0 , 1 diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3_DEV.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3_DEV.xsd index 275fb7f9ca175f1a1f9c92e73af59a568aa54a13..6d0b3d17a604d82700205f812631c9f3b50666aa 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3_DEV.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3_DEV.xsd @@ -9,12 +9,20 @@ <xs:complexType name="AdvancedDriverAssistantSystemsType"> <xs:complexContent> <xs:extension base="v2.1:AbstractAdvancedDriverAssistantSystemsType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle/ADAS">333</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> <xs:sequence> <xs:element name="EngineStopStart" type="v2.1:EngineStopStartType"/> <xs:element name="EcoRollWithoutEngineStop" type="v2.1:EcoRollWithoutEngineStopType"/> <xs:element name="EcoRollWithEngineStop" type="v2.1:EcoRollWithEngineStopType"/> <xs:element name="PredictiveCruiseControl" type="v2.1:PredictiveCruiseControlType"/> - <xs:element name="ATEcoRollReleaseLockupClutch" type="xs:boolean" minOccurs="0"/> + <xs:element name="APTEcoRollReleaseLockupClutch" type="xs:boolean" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd index fabf7cdbcceb1d98f90b40144ab61a3926fe9756..d326dd477692891a60ebeaa3bba600af1ab05c09 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> <xs:schema xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" 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.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" 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"/> @@ -9,171 +9,6 @@ <xs:complexType name="AbstractCompletedVehicleComponentsDeclarationType" abstract="true"/> <xs:complexType name="AbstractPrimaryVehicleAuxiliaryDataDeclarationType" abstract="true"/> <xs:complexType name="AbstractPrimaryVehicleComponentsDeclarationType" abstract="true"/> - <xs:complexType name="CompletedVehicleAuxiliariesComponentDeclarationType"> - <xs:sequence> - <xs:element name="Data" type="v2.6:AbstractCompletedVehicleAuxiliaryDataDeclarationType"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="CompletedVehicleAuxiliaryDataDeclarationType"> - <xs:complexContent> - <xs:extension base="v2.6:AbstractCompletedVehicleAuxiliaryDataDeclarationType"> - <xs:sequence> - <xs:element name="ElectricSystem"> - <xs:complexType> - <xs:sequence> - <xs:element name="AlternatorTechnology" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>PXXX</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="v2.6:AlternatorTechnologyType"/> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="LEDLights"> - <xs:complexType> - <xs:sequence> - <xs:element name="Dayrunninglights" type="xs:boolean"/> - <xs:element name="Headlights" type="xs:boolean"/> - <xs:element name="Positionlights" type="xs:boolean"/> - <xs:element name="Brakelights" type="xs:boolean"/> - <xs:element name="Interiorlights" type="xs:boolean"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="HVAC"> - <xs:complexType> - <xs:sequence> - <xs:element name="SystemConfiguration"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minInclusive value="1"/> - <xs:maxInclusive value="10"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="CompressorType"> - <xs:complexType> - <xs:sequence> - <xs:element name="DriverAC" type="v2.6:HVACTechnology"/> - <xs:element name="PassengerAC" type="v2.6:HVACTechnology"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="AuxiliaryHeaterPower"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minInclusive value="0"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="DoubleGlazing" type="xs:boolean"/> - <xs:element name="HeatPump" type="xs:boolean"/> - <xs:element name="AdjustableAuxiliaryHeater" type="xs:boolean"/> - <xs:element name="SeparateAirDistributionDucts" type="xs:boolean"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="CompletedVehicleComponentsDeclarationType"> - <xs:complexContent> - <xs:extension base="v2.6:AbstractCompletedVehicleComponentsDeclarationType"> - <xs:sequence> - <xs:element name="AirDrag" type="v2.0:AirDragComponentDeclarationType" minOccurs="0"/> - <xs:element name="Auxiliaries" type="v2.6:CompletedVehicleAuxiliariesComponentDeclarationType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="CompletedVehicleDeclarationType"> - <xs:complexContent> - <xs:extension base="v2.0:AbstractVehicleDeclarationType"> - <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="VIN" type="v1.0:VINType"/> - <xs:element name="Date" type="v1.0:DateTimeWithTimezone"/> - <xs:element name="LegislativeClass" type="v2.6:LegislativeClassDeclarationType"/> - <xs:element name="ClassBus"> - <xs:simpleType> - <xs:restriction base="v2.6:RegisteredClassType"> - <xs:enumeration value="I"/> - <xs:enumeration value="II"/> - <xs:enumeration value="III"/> - <xs:enumeration value="A"/> - <xs:enumeration value="B"/> - <xs:enumeration value="I+II"/> - <xs:enumeration value="II+III"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="VehicleCode" type="v2.6:VehicleCodeType"/> - <xs:element name="CurbMassChassis" type="v1.0:VehicleCurbMassChassisType"/> - <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType"/> - <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType" minOccurs="0"/> - <xs:element name="RegisteredPassengers"> - <xs:complexType> - <xs:sequence> - <xs:element name="LowerDeck"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minInclusive value="0"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="UpperDeck"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minInclusive value="0"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="LowEntry" type="xs:boolean"/> - <xs:element name="HeightIntegratedBody"> - <xs:simpleType> - <xs:restriction base="v1.0:Double3"> - <xs:minExclusive value="0.000"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="VehicleLength"> - <xs:simpleType> - <xs:restriction base="v1.0:Double3"> - <xs:minExclusive value="0.000"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="VehicleWidth"> - <xs:simpleType> - <xs:restriction base="v1.0:Double3"> - <xs:minExclusive value="0.000"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="EntranceHeight"> - <xs:simpleType> - <xs:restriction base="v1.0:Double3"> - <xs:minExclusive value="0.000"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element name="DoorDriveTechnology" type="v2.6:DoorDriveTechnologyType"/> - <xs:element name="Components" type="v2.6:AbstractCompletedVehicleComponentsDeclarationType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> <xs:complexType name="GearboxDataDeclarationType"> <xs:annotation> <xs:documentation>Gearbox Component</xs:documentation> @@ -292,9 +127,9 @@ <xs:element name="ElectricSystem"> <xs:complexType> <xs:sequence> - <xs:element name="AlternatorTechnology" maxOccurs="unbounded"> + <xs:element name="AlternatorTechnology"> <xs:annotation> - <xs:documentation>PXXX</xs:documentation> + <xs:documentation>P294 - enum</xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> @@ -302,23 +137,99 @@ </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="SmartElectrics" type="xs:boolean"/> <xs:sequence minOccurs="0"> - <xs:element name="MaxAlternatorPower"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minExclusive value="0"/> - </xs:restriction> - </xs:simpleType> + <xs:element name="SmartAlternator" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="RatedCurrent" type="xs:integer"> + <xs:annotation> + <xs:documentation>P295 - [A]</xs:documentation> + </xs:annotation> + </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="ElectricStorageCapacity"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minExclusive value="0"/> - </xs:restriction> - </xs:simpleType> + <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" type="xs:integer"> + <xs:annotation> + <xs:documentation>P301 - [F]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedVoltage" type="xs:integer"> + <xs:annotation> + <xs:documentation>P302 - [V]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> </xs:element> </xs:sequence> + <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> @@ -326,6 +237,17 @@ <xs:complexType> <xs:sequence> <xs:element name="SizeOfAirSupply" type="v2.6:PneumaticSystemTechnologyType"/> + <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.6:PneumaticSystemClutchTypeType"/> <xs:element name="CompressorRatio" type="v1.0:Double3"/> <xs:element name="SmartCompressionSystem" type="xs:boolean"/> @@ -338,7 +260,7 @@ </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="AdBlueDosing" type="xs:boolean"/> + <xs:element name="PneumaticSCRReagentDosing" type="xs:boolean"/> </xs:sequence> </xs:complexType> </xs:element> @@ -391,7 +313,7 @@ <xs:documentation>P239</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="VehicleCategory" type="v2.6:VehicleCategoryDeclarationType"> + <xs:element name="ChassisConfiguration" type="v2.6:ChassisConfigurationDeclarationType"> <xs:annotation> <xs:documentation>P036 - enum</xs:documentation> </xs:annotation> @@ -550,7 +472,9 @@ </xs:complexType> <xs:simpleType name="AlternatorTechnologyType"> <xs:restriction base="xs:string"> - <xs:enumeration value="default"/> + <xs:enumeration value="conventional"/> + <xs:enumeration value="smart"/> + <xs:enumeration value="no alternator"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="AuxFanTechnologyType"> @@ -593,6 +517,14 @@ </xs:restriction> </xs:simpleType> <xs:simpleType name="DoorDriveTechnologyType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">291</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="electric"/> <xs:enumeration value="pneumatic"/> @@ -629,10 +561,28 @@ <xs:enumeration value="Medium Supply 2-stage"/> <xs:enumeration value="Large Supply 1-stage"/> <xs:enumeration value="Large Supply 2-stage"/> + <xs:enumeration value="not applicable"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="RegisteredClassType"> - <xs:restriction base="xs:string"/> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">282</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P282 - enum</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="I"/> + <xs:enumeration value="II"/> + <xs:enumeration value="III"/> + <xs:enumeration value="A"/> + <xs:enumeration value="B"/> + <xs:enumeration value="I+II"/> + <xs:enumeration value="II+III"/> + </xs:restriction> </xs:simpleType> <xs:simpleType name="VehicleAxleConfigurationDeclarationType"> <xs:annotation> @@ -653,7 +603,7 @@ <xs:enumeration value="8x4"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="VehicleCategoryDeclarationType"> + <xs:simpleType name="ChassisConfigurationDeclarationType"> <xs:annotation> <xs:appinfo> <vectoParam:description> @@ -668,6 +618,15 @@ </xs:restriction> </xs:simpleType> <xs:simpleType name="VehicleCodeType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">285</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P285 - enum</xs:documentation> + </xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="CA"/> <xs:enumeration value="CB"/> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.8_Stage.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.8_Stage.xsd new file mode 100644 index 0000000000000000000000000000000000000000..cfa6dd856c1bd6b443f310632f6f4318c8e08b48 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.8_Stage.xsd @@ -0,0 +1,483 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Franz Josef Kober (Technische Universität Graz) --> +<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: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:DEV:v2.4" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" 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"/> + <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:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/> + <xs:complexType name="AbstractCompletedVehicleAuxiliaryDataDeclarationType" abstract="true"/> + <xs:complexType name="AbstractCompletedVehicleComponentsDeclarationType" abstract="true"/> + <xs:complexType name="CompletedVehicleComponentsDeclarationType"> + <xs:complexContent> + <xs:extension base="v2.8:AbstractCompletedVehicleComponentsDeclarationType"> + <xs:sequence> + <xs:element name="AirDrag" type="v2.0:AirDragComponentDeclarationType" minOccurs="0"/> + <xs:element name="Auxiliaries" type="v2.8:CompletedVehicleAuxiliariesComponentDeclarationType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CompletedVehicleAuxiliariesComponentDeclarationType"> + <xs:sequence> + <xs:element name="Data" type="v2.8:AbstractCompletedVehicleAuxiliaryDataDeclarationType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CompletedVehicleAuxiliaryDataDeclarationType"> + <xs:complexContent> + <xs:extension base="v2.8:AbstractCompletedVehicleAuxiliaryDataDeclarationType"> + <xs:sequence minOccurs="0"> + <xs:element name="ElectricSystem" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="LEDLights"> + <xs:complexType> + <xs:sequence minOccurs="0"> + <xs:element name="Interiorlights" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P304 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Dayrunninglights" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P305 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Positionlights" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P306 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Brakelights" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P307 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Headlights" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P308 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC" minOccurs="0"> + <xs:complexType> + <xs:sequence minOccurs="0"> + <xs:sequence minOccurs="0"> + <xs:element name="SystemConfiguration"> + <xs:annotation> + <xs:documentation>P317 - int</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="10"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="HeatPumpTypeDriverCompartment" type="v2.8:HVACHeatPumpType"> + <xs:annotation> + <xs:documentation>P318 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HeatPumpModeDriverCompartment" type="v2.8:HVACHeatPumpModeType"> + <xs:annotation> + <xs:documentation>P319 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence maxOccurs="unbounded"> + <xs:element name="HeatPumpTypePassengerCompartment" type="v2.8:HVACHeatPumpType"> + <xs:annotation> + <xs:documentation>P320 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HeatPumpModePassengerCompartment" type="v2.8:HVACHeatPumpModeType"> + <xs:annotation> + <xs:documentation>P321 - enum</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:sequence> + <xs:element name="AuxiliaryHeaterPower" minOccurs="0"> + <xs:annotation> + <xs:documentation>P322 - [W]</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="DoubleGlazing" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P323 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AdjustableAuxiliaryHeater" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P325 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SeparateAirDistributionDucts" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P327 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="WaterElectricHeater" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P328 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AirElectricHeater" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P329 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="OtherHeatingTechnology" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P330 - bool</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExemptedInterimStageInputType"> + <xs:annotation> + <xs:documentation>Exempted vehicle stage input parts</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="v2.8:AbstractCompletedBusVehicleType"> + <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="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:element name="Model" type="v1.0:ModelType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P236</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LegislativeCategory" type="v2.8:LegislativeClassDeclarationType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P251 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P038 - [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P041 - [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ClassBus" type="v2.6:RegisteredClassType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P282 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="NumberPassengersLowerDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P283 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NumberPassengersUpperDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P284 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:element name="BodyworkCode" type="v2.6:VehicleCodeType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P285 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LowEntry" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P286 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HeightIntegratedBody" type="v2.8:VehicleDimensionType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P287 - [mm]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="InterimStageInputType"> + <xs:annotation> + <xs:documentation>Vehicle stage input parts</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="v2.8:AbstractCompletedBusVehicleType"> + <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="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:element name="Model" type="v1.0:ModelType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P236</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LegislativeCategory" type="v2.8:LegislativeClassDeclarationType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P251 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P038 - [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P041 - [kg]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AirdragModifiedMultistage" type="v2.8:AirdragModifiedMultistageType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P334 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NgTankSystem" type="v1.0:NgTankSystemType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P275 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ClassBus" type="v2.6:RegisteredClassType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P282 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="NumberPassengerSeatsLowerDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P283 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NumberPassengersStandingLowerDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P354 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NumberPassengerSeatsUpperDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P284 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="NumberPassengersStandingUpperDeck" type="v2.8:NumberOfPassengersType"> + <xs:annotation> + <xs:documentation>P355 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:element name="BodyworkCode" type="v2.6:VehicleCodeType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P285 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LowEntry" type="xs:boolean" minOccurs="0"> + <xs:annotation> + <xs:documentation>P286 - bool</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="HeightIntegratedBody" type="v2.8:VehicleDimensionType"> + <xs:annotation> + <xs:documentation>P287 - [mm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleLength" type="v2.8:VehicleDimensionType"> + <xs:annotation> + <xs:documentation>P288 - [mm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleWidth" type="v2.8:VehicleDimensionType"> + <xs:annotation> + <xs:documentation>P289 - [mm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EntranceHeight" type="v2.8:VehicleDimensionType"> + <xs:annotation> + <xs:documentation>P290 - [mm]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:element name="DoorDriveTechnology" type="v2.6:DoorDriveTechnologyType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P291 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleDeclarationType" type="v2.8:DeclarationType"> + <xs:annotation> + <xs:documentation>P293 - enum</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ADAS" type="v2.3:AdvancedDriverAssistantSystemsType" minOccurs="0"/> + <xs:element name="Components" type="v2.8:AbstractCompletedVehicleComponentsDeclarationType" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:simpleType name="LegislativeClassDeclarationType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">251</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P251 - enum</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="M3"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="AirdragModifiedMultistageType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">334</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P334 - [-]</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:boolean"/> + </xs:simpleType> + <xs:simpleType name="NumberOfPassengersType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">283</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">284</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="VehicleDimensionType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">287</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">288</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">289</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle">290</vectoParam:parameterId> + <vectoParam:unit>mm</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:int"/> + </xs:simpleType> + <xs:simpleType name="DeclarationType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle">293</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + <xs:documentation>P293 - enum</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="interim"/> + <xs:enumeration value="final"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="HVACHeatPumpModeType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle/Auxiliaries">319</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle/Auxiliaries">321</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="heating"/> + <xs:enumeration value="heating and cooling"/> + <xs:enumeration value="cooling"/> + <xs:enumeration value="N.A."/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="HVACHeatPumpType"> + <xs:annotation> + <xs:appinfo> + <vectoParam:description> + <vectoParam:parameterId component="Vehicle/Auxiliaries">318</vectoParam:parameterId> + <vectoParam:parameterId component="Vehicle/Auxiliaries">320</vectoParam:parameterId> + <vectoParam:unit>-</vectoParam:unit> + </vectoParam:description> + </xs:appinfo> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="none"/> + <xs:enumeration value="R-744"/> + <xs:enumeration value="non R-744 2-stage"/> + <xs:enumeration value="non R-744 3-stage"/> + <xs:enumeration value="non R-744 4-stage"/> + <xs:enumeration value="non R-744 continuous"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="AirDragModifiedUseStandardValueType"> + <xs:complexContent> + <xs:extension base="v1.0:AbstractAirdragDataDeclarationType"/> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AbstractCompletedBusVehicleType" abstract="true"> + <xs:complexContent> + <xs:extension base="v2.0:AbstractVehicleDeclarationType"/> + </xs:complexContent> + </xs:complexType> +</xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd index 9e7dbb7a1331c76e99b1f73448265ed86d2aa72f..b6bb8bdea932e537c34583f7c489ae9da1ac79a6 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd @@ -12,4 +12,5 @@ <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2" schemaLocation="VectoDeclarationDefinitions.2.2.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaLocation="VectoDeclarationDefinitions.2.8_Stage.xsd"/> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistage.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistage.0.1.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a85e0519d4d3deebc3ca5035b4cddf972fb61ad2 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistage.0.1.xsd @@ -0,0 +1,814 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Franz Josef Kober (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:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.4" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" 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"/> + <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:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaLocation="VectoDeclarationDefinitions.2.8_Stage.xsd"/> + <xs:complexType name="AbstractAxleWheelsComponentPIFType" abstract="true"/> + <xs:complexType name="AbstractAxleWheelsDataPIFType" abstract="true"/> + <xs:complexType name="AxleWheelsComponentPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractAxleWheelsComponentPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAxleWheelsDataPIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AxleWheelsDataPIFType"> + <xs:annotation> + <xs:documentation>Axles & Wheels Component</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="vif:AbstractAxleWheelsDataPIFType"> + <xs:sequence> + <xs:element name="Axles"> + <xs:complexType> + <xs:sequence> + <xs:element name="Axle" type="v2.0:AbstractAxleDataDeclarationType" minOccurs="2" maxOccurs="4"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:element name="VectoOutputMultistage" type="vif:VectoOutputMultistageType"> + <xs:annotation> + <xs:documentation>Comment describing your root element</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="AbstractAngledriveDataPIFType" abstract="true"/> + <xs:complexType name="AbstractAxlegearDataPIFType" abstract="true"/> + <xs:complexType name="AbstractEngineDataPIFType" abstract="true"/> + <xs:complexType name="AbstractManufacturingStageDataType" abstract="true"> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:complexType> + <xs:complexType name="AbstractAuxiliaryDataPIFType" abstract="true"/> + <xs:complexType name="AuxiliaryDataPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractAuxiliaryDataPIFType"> + <xs:sequence> + <xs:element name="Fan"> + <xs:complexType> + <xs:sequence> + <xs:element name="Technology"> + <xs:annotation> + <xs:documentation>P181</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="Crankshaft mounted - Electronically controlled visco clutch"/> + <xs:enumeration value="Crankshaft mounted - Bimetallic controlled visco clutch"/> + <xs:enumeration value="Crankshaft mounted - Discrete step clutch 2 stages"/> + <xs:enumeration value="Crankshaft mounted - Discrete step clutch 3 stages"/> + <xs:enumeration value="Crankshaft mounted - On/off clutch"/> + <xs:enumeration value="Belt driven or driven via transm. - Electronically controlled visco clutch"/> + <xs:enumeration value="Belt driven or driven via transm. - Bimetallic controlled visco clutch"/> + <xs:enumeration value="Belt driven or driven via transm. - Discrete step clutch 2 stages"/> + <xs:enumeration value="Belt driven or driven via transm. - Discrete step clutch 3 stages"/> + <xs:enumeration value="Belt driven or driven via transm. - On/off clutch"/> + <xs:enumeration value="Hydraulic driven - Variable displacement pump"/> + <xs:enumeration value="Hydraulic driven - Constant displacement pump"/> + <xs:enumeration value="Electrically driven - Electronically controlled"/> + </xs:restriction> + </xs:simpleType> + </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</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.6:AuxSPTechnologyType"> + <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"> + <xs:annotation> + <xs:documentation>P294 - enum</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="v2.6:AlternatorTechnologyType"/> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="SmartAlternator" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="RatedCurrent" type="xs:integer"> + <xs:annotation> + <xs:documentation>P295 - [A]</xs:documentation> + </xs:annotation> + </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" type="xs:string"> + <xs:annotation> + <xs:documentation>P300 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedCapacitance" type="xs:integer"> + <xs:annotation> + <xs:documentation>P301 - [F]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedVoltage" type="xs:integer"> + <xs:annotation> + <xs:documentation>P302 - [V]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <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:element name="SizeOfAirSupply" type="v2.6:PneumaticSystemTechnologyType"/> + <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.6:PneumaticSystemClutchTypeType"/> + <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"> + <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:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HVAC"> + <xs:complexType> + <xs:sequence> + <xs:element name="AdjustableCoolantThermostat" type="xs:boolean"/> + <xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </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:complexContent> + <xs:extension base="vif:AbstractAngledriveDataPIFType"> + <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="Ratio"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="AngledrivePIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAngledriveDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="ApplicationInformationPrimaryVehicleType"> + <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:complexType name="AuxiliaryComponentPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAuxiliaryDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxlegearDataPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractAxlegearDataPIFType"> + <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="AxlegearComponentPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractAxlegearDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="BusManufacturingStageDataType"> + <xs:complexContent> + <xs:extension base="vif:AbstractManufacturingStageDataType"> + <xs:sequence> + <xs:element name="HashPreviousStage" type="v1.0:SignatureType"/> + <xs:element name="Vehicle" type="v2.8:AbstractCompletedBusVehicleType"/> + <xs:element name="ApplicationInformation" type="vif:ApplicationInformationPrimaryVehicleType"/> + </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="EngineComponentPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractEngineDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EngineDataPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractEngineDataPIFType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P200</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P201</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"> + <xs:annotation> + <xs:documentation>P261</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P203</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P204</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Displacement" type="v1.0:EngineDisplacementType" nillable="false"> + <xs:annotation> + <xs:documentation>P061 - [cm³]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedSpeed" type="v1.0:EngineDeclaredSpeedType"> + <xs:annotation> + <xs:documentation>P249 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedPower" type="v1.0:EngineRatedPower"> + <xs:annotation> + <xs:documentation>P250 - [W]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxEngineTorque" type="v1.0:EngineMaxTorque"> + <xs:annotation> + <xs:documentation>P259 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="WHRType" type="v2.3:WHRTypeType"/> + <xs:element name="Mode" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/> + <xs:element name="FullLoadAndDragCurve"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="v1.0:FullLoadAndDragCurveEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Fuels"> + <xs:complexType> + <xs:sequence> + <xs:element name="FuelType" type="v1.0:FuelTypeType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </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:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="ManufacturingStageType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractManufacturingStageDataType"/> + <xs:element name="Signature" type="v1.0:SignatureType"/> + </xs:sequence> + <xs:attribute name="stageCount" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="2"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="PrimaryVehicleDataType"> + <xs:complexContent> + <xs:extension base="out:AbstractPrimaryVehicleDataPIFType"> + <xs:sequence> + <xs:element name="Vehicle" type="vif:AbstractPrimaryVehicleType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"/> + <xs:element name="Results" type="vif:ResultsPrimaryVehicleType"/> + <xs:element name="ApplicationInformation" type="vif:ApplicationInformationPrimaryVehicleType"/> + </xs:sequence> + <xs:attribute name="id" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <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="ResultPrimaryVehicleType"> + <xs:sequence> + <xs:element name="VehicleGroup"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Mission" type="vif:MissionTypeType"> + <xs:annotation> + <xs:documentation>I.2.1.1 / #56</xs:documentation> + </xs:annotation> + </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:sequence> + <xs:element name="Error" type="xs:string"/> + <xs:element name="ErrorDetails" type="xs:string"/> + </xs:sequence> + </xs:choice> + </xs:sequence> + <xs:attribute name="status" use="required"/> + </xs:complexType> + <xs:complexType name="ResultsPrimaryVehicleType"> + <xs:sequence> + <xs:element name="Status"/> + <xs:element name="Result" type="vif:ResultPrimaryVehicleType" maxOccurs="unbounded"/> + </xs:sequence> + </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="vif: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="vif:MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="PassengerCount"> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="FuelMode"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="dual fuel mode"/> + <xs:enumeration value="single fuel mode"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TorqueConverterDataPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractTorqueConverterDataPIFType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P205</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P206</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="v1.0:TorqueConverterCertificationOptionType"> + <xs:annotation> + <xs:documentation>P254 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P262</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P208</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P209</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Characteristics" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" type="v1.0:TorqueConverterCharacteristicsEntryType" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="TorqueConverterPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractTorqueConverterDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TransmissionComponentPIFType"> + <xs:sequence> + <xs:element name="Data" type="vif:AbstractTransmissionDataPIFType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TransmissionDataPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractTransmissionDataPIFType"> + <xs:sequence> + <xs:element name="Manufacturer" type="v1.0:ManufacturerType"> + <xs:annotation> + <xs:documentation>P205</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Model" type="v1.0:ModelType"> + <xs:annotation> + <xs:documentation>P206</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MainCertificationMethod" type="v1.0:GearboxCertificationOptionType"> + <xs:annotation> + <xs:documentation>P254 - [-]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P262</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="v1.0:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>P208</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AppVersion" type="v1.0:AppVersionType"> + <xs:annotation> + <xs:documentation>P209</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TransmissionType"/> + <xs:element name="Gears" type="vif:AbstractTransmissionGearsPIFType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="TransmissionGearPIFType"> + <xs:sequence> + <xs:element name="Ratio"/> + <xs:element name="MaxTorque" type="v1.0:GearboxGearMaxTorqueType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P157 - [Nm]</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="MaxSpeed" type="v1.0:GearboxGearMaxSpeedType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P194 - [1/min]</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="number" use="required"/> + </xs:complexType> + <xs:complexType name="TransmissionGearsPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractTransmissionGearsPIFType"> + <xs:sequence> + <xs:element name="Gear" type="vif:TransmissionGearPIFType" maxOccurs="unbounded"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="VehicleComponentsPIFType"> + <xs:complexContent> + <xs:extension base="vif:AbstractVehicleComponentsPIFType"> + <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:sequence> + </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.6:ChassisConfigurationDeclarationType"/> + <xs:element name="AxleConfiguration" type="v2.6:VehicleAxleConfigurationDeclarationType"/> + <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"/> + <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="EnergyConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="MJ/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="MissionTypeType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="Long Haul EMS"/> + <xs:enumeration value="Long Haul"/> + <xs:enumeration value="Regional Delivery EMS"/> + <xs:enumeration value="Regional Delivery"/> + <xs:enumeration value="Urban Delivery"/> + <xs:enumeration value="Municipal Utility"/> + <xs:enumeration value="Construction"/> + <xs:enumeration value="Heavy Urban"/> + <xs:enumeration value="Urban"/> + <xs:enumeration value="Suburban"/> + <xs:enumeration value="Interurban"/> + <xs:enumeration value="Coach"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="VectoOutputMultistageType"> + <xs:sequence> + <xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/> + <xs:element name="ManufacturingStage" type="vif:ManufacturingStageType" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> +</xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd index 384274351789ed30416313f658e6726b18cd1820..cd3ff1b79fcba880420809855d0a7678992b8652 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Franz Kober (Technische Universität Graz) --> <xs:schema xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" 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:DEV:v2.3" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> @@ -15,7 +15,7 @@ <xs:complexType name="AbstractTransmissionDataPIFType" abstract="true"/> <xs:complexType name="AbstractTransmissionGearsPIFType" abstract="true"/> <xs:complexType name="AbstractVehicleComponentsPIFType" abstract="true"/> - <xs:complexType name="AbstractVehiclePIFType" abstract="true"/> + <xs:complexType name="AbstractPrimaryVehicleType" abstract="true"/> <xs:complexType name="AngledriveDataPIFType"> <xs:complexContent> <xs:extension base="AbstractAngledriveDataPIFType"> @@ -249,21 +249,21 @@ </xs:extension> </xs:simpleContent> </xs:complexType> - <xs:complexType name="PrimaryVehicleHeavyBusDataType"> + <xs:complexType name="PrimaryVehicleDataType"> <xs:complexContent> <xs:extension base="out:AbstractPrimaryVehicleDataPIFType"> <xs:sequence> - <xs:element name="Vehicle" type="AbstractVehiclePIFType"/> + <xs:element name="Vehicle" type="AbstractPrimaryVehicleType"/> <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"/> - <xs:element name="Results" type="ResultsPIFType"/> + <xs:element name="Results" type="ResultsPrimaryVehicleType"/> <xs:element name="ApplicationInformation" type="ApplicationInformationPIFType"/> </xs:sequence> <xs:attribute name="id" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="ResultPIFType"> + <xs:complexType name="ResultPrimaryVehicleType"> <xs:sequence> <xs:element name="VehicleGroup"> <xs:simpleType> @@ -306,10 +306,10 @@ </xs:sequence> <xs:attribute name="status" use="required"/> </xs:complexType> - <xs:complexType name="ResultsPIFType"> + <xs:complexType name="ResultsPrimaryVehicleType"> <xs:sequence> <xs:element name="Status"/> - <xs:element name="Result" type="ResultPIFType" maxOccurs="unbounded"/> + <xs:element name="Result" type="ResultPrimaryVehicleType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="SimulationParametersType"> @@ -600,7 +600,7 @@ </xs:complexType> <xs:complexType name="VehiclePIFType"> <xs:complexContent> - <xs:extension base="AbstractVehiclePIFType"> + <xs:extension base="AbstractPrimaryVehicleType"> <xs:sequence> <xs:element name="ManufacturerPrimaryVehicle" type="v1.0:ManufacturerType"/> <xs:element name="ManufacturerAddressPrimaryVehicle" type="v1.0:ManufacturerAddressType"/> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryVehicleInformation.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryVehicleInformation.xsd deleted file mode 100644 index 11b60d54f4ca6b6262775acd9f0021a8a8482f56..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryVehicleInformation.xsd +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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:tns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" 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:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" schemaLocation="VectoOutputPrimaryBus.xsd"/> - <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> - <xs:element name="VectoOutputPrimaryVehicle" type="tns:PrimaryVehicleHeavyBusType"> - <xs:annotation> - <xs:documentation>Comment describing your root element</xs:documentation> - </xs:annotation> - </xs:element> - <xs:complexType name="PrimaryVehicleHeavyBusType"> - <xs:sequence> - <xs:element name="Data" type="out:AbstractPrimaryVehicleDataPIFType"/> - <xs:element name="Signature" type="v1.0:SignatureType"/> - </xs:sequence> - </xs:complexType> -</xs:schema> diff --git a/VectoCore/VectoCore/Utils/XMLDefinitions.cs b/VectoCore/VectoCore/Utils/XMLDefinitions.cs index 6503d0bf2d60a361e92ccf9670e327d070bd5d16..65099861ac3093164a3c3b35dd9b2b17e84315d3 100644 --- a/VectoCore/VectoCore/Utils/XMLDefinitions.cs +++ b/VectoCore/VectoCore/Utils/XMLDefinitions.cs @@ -39,14 +39,15 @@ namespace TUGraz.VectoCore.Utils public enum XmlDocumentType { DeclarationJobData = 1 << 1, - PrimaryVehicleBusOutputData = 1 << 2, + //PrimaryVehicleBusOutputData = 1 << 2, DeclarationComponentData = 1 << 3, EngineeringJobData = 1 << 4, EngineeringComponentData = 1 << 5, ManufacturerReport = 1 << 6, CustomerReport = 1 << 7, MonitoringReport = 1 << 8, - VTPReport = 1 << 9 + VTPReport = 1 << 9, + MultistageOutputData = 1 << 10 } @@ -86,6 +87,8 @@ namespace TUGraz.VectoCore.Utils public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V26 = DECLARATION_NAMESPACE + ":DEV:v2.6"; + public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V28 = DECLARATION_NAMESPACE + ":DEV:v2.8"; + public const string DECLARATION_INPUT_NAMESPACE = "urn:tugraz:ivt:VectoAPI:DeclarationInput"; public const string DECLARATION_INPUT_NAMESPACE_URI_V10 = DECLARATION_INPUT_NAMESPACE + ":v1.0"; @@ -99,6 +102,12 @@ namespace TUGraz.VectoCore.Utils public const string DECLARATION_PRIMARY_BUS_VEHICLE_URI_V01 = DECLARATION_PRIMARY_BUS_VEHICLE_NAMESPACE + ":HeavyBus:v0.1"; + public const string DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE = + "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile"; + + public const string DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1 = + DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE + ":v0.1"; + public const string DECLARATION_MANUFACTURER_REPORT_V05 = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5"; @@ -115,7 +124,7 @@ namespace TUGraz.VectoCore.Utils private static Dictionary<XmlDocumentType, string> schemaFilenames = new Dictionary<XmlDocumentType, string>() { {XmlDocumentType.DeclarationJobData, "VectoDeclarationJob.xsd"}, - {XmlDocumentType.PrimaryVehicleBusOutputData, "VectoOutputPrimaryVehicleInformation.xsd"}, + //{XmlDocumentType.PrimaryVehicleBusOutputData, "VectoOutputPrimaryVehicleInformation.xsd"}, {XmlDocumentType.DeclarationComponentData, "VectoDeclarationComponent.xsd"}, {XmlDocumentType.EngineeringJobData, "VectoEngineeringJob.xsd" }, {XmlDocumentType.EngineeringComponentData, "VectoEngineeringComponent.xsd" }, @@ -123,6 +132,7 @@ namespace TUGraz.VectoCore.Utils {XmlDocumentType.CustomerReport , "VectoOutputCustomer.xsd"}, {XmlDocumentType.MonitoringReport , "VectoMonitoring.xsd"}, {XmlDocumentType.VTPReport , "VTPReport.xsd"}, + {XmlDocumentType.MultistageOutputData, "VectoOutputMultistage.0.1.xsd"} }; public static XNamespace DECLARATION_OUTPUT_PRIMARY_HEAVY_BUS = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1"; @@ -131,7 +141,7 @@ namespace TUGraz.VectoCore.Utils public static string GetSchemaFilename(XmlDocumentType type) { if (!schemaFilenames.ContainsKey(type)) { - throw new Exception(string.Format("Invalid argument {0} - only use single flags", type)); + throw new Exception(string.Format("Invalid argument '{0}' - only use single flags", type)); } var entry = schemaFilenames[type]; diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs index 0adc70f4216f5faefb846d540af3182c1c9e7e68..1e44881524766d936f31e5910ae2f30efd500723 100644 --- a/VectoCore/VectoCore/Utils/XMLHelper.cs +++ b/VectoCore/VectoCore/Utils/XMLHelper.cs @@ -53,7 +53,8 @@ namespace TUGraz.VectoCore.Utils case "VectoInputDeclaration": return XmlDocumentType.DeclarationJobData; case "VectoInputEngineering": return XmlDocumentType.EngineeringJobData; case "VectoComponentEngineering": return XmlDocumentType.EngineeringComponentData; - case "VectoOutputPrimaryVehicle": return XmlDocumentType.PrimaryVehicleBusOutputData; + //case "VectoOutputPrimaryVehicle": return XmlDocumentType.PrimaryVehicleBusOutputData; + case "VectoOutputMultistage": return XmlDocumentType.MultistageOutputData; } return null; diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index ea7baf6e11937a3d3a64b50de800aeb56af6f60f..c18d3e626e01f9afac798ea0ef3bb1f6bf383e9e 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -152,6 +152,7 @@ <Compile Include="InputData\FileIO\XML\Common\AbstractXMLResource.cs" /> <Compile Include="InputData\FileIO\XML\Common\AbstractXMLType.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLAuxiliaryDeclarationDataProvider.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationMultistageInputData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationPrimaryVehicleBusApplicationInformationDataProviderV01.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationBusAuxiliariesDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationADASDataProvider.cs" /> @@ -189,15 +190,17 @@ <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTorqueConverterDeclarationInputData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTyreDeclarationInputData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLVehicleComponentsDeclaration.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataMultistageV01InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV20InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV21InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV22InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV23InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV26InjectModule.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationPrimaryVehicleBusV01InjectModule.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV28InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\AbstractComponentReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLADASReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLComponentReader.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLDeclarationMultistageInputReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLPTOReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\IXMLADASReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\IXMLComponentReader.cs" /> @@ -285,9 +288,13 @@ <Compile Include="Models\SimulationComponent\Impl\PTODriveAuxiliary.cs" /> <Compile Include="Models\SimulationComponent\Impl\RoadSweeperAuxiliary.cs" /> <Compile Include="InputData\Reader\ComponentData\ElectricMotorMapReader.cs" /> + <Compile Include="InputData\Reader\DataObjectAdapter\DeclarationDataAdapterMultistageBus.cs" /> <Compile Include="InputData\Reader\ComponentData\MaxPropulsionTorqueReader.cs" /> <Compile Include="InputData\Reader\DataObjectAdapter\DeclarationDataAdapterPrimaryBus.cs" /> <Compile Include="InputData\Reader\ComponentData\ElectricFullLoadCurveReader.cs" /> + <Compile Include="InputData\Reader\Impl\AbstractDeclarationMultistageBusVectoRunDataFactory.cs" /> + <Compile Include="InputData\Reader\Impl\DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs" /> + <Compile Include="InputData\Reader\Impl\DeclarationModeMultistageBusVectoRunDataFactory.cs" /> <Compile Include="Models\Connector\Ports\Impl\BatteryResponse.cs" /> <Compile Include="Models\Connector\Ports\IElectricEnergyStoragePort.cs" /> <Compile Include="Models\SimulationComponent\Data\Battery\BatteryData.cs" /> @@ -436,6 +443,7 @@ <Compile Include="Models\Simulation\ISimulatorFactoryFactory.cs" /> <Compile Include="Models\Simulation\SimulationFactoryNinjectModule.cs" /> <Compile Include="OutputData\FileIO\BusAuxWriter.cs" /> + <Compile Include="OutputData\FileIO\FileOutputVIFWriter.cs" /> <Compile Include="OutputData\FileIO\JSONFileWriter.cs" /> <Compile Include="OutputData\ModalDataPostprocessingCorrection.cs" /> <Compile Include="OutputData\XML\AbstractXMLManufacturerReport.cs" /> @@ -476,10 +484,12 @@ <Compile Include="OutputData\XML\Engineering\XMLWriterMapping.cs" /> <Compile Include="OutputData\XML\XMLCustomerReportCompletedBus.cs" /> <Compile Include="OutputData\XML\XMLDeclarationReportCompletedVehicle.cs" /> + <Compile Include="OutputData\XML\XMLDeclarationReportMultistageBusVehicle.cs" /> <Compile Include="OutputData\XML\XMLDeclarationReportPrimaryVehicle.cs" /> <Compile Include="OutputData\XML\XMLManufacturerReportCompletedBus.cs" /> <Compile Include="OutputData\XML\XMLManufacturerReportExemptedTruck.cs" /> <Compile Include="OutputData\XML\XMLManufacturerReportPrimaryBus.cs" /> + <Compile Include="OutputData\XML\XMLMultistageBusReport.cs" /> <Compile Include="OutputData\XML\XMLPrimaryVehicleReport.cs" /> <Compile Include="Utils\Ninject\UseFirstArgumentAsInstanceProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationReaderInjectModule.cs" /> @@ -933,9 +943,6 @@ <EmbeddedResource Include="Resources\XSD\VectoOutputPrimaryBus.xsd"> <SubType>Designer</SubType> </EmbeddedResource> - <EmbeddedResource Include="Resources\XSD\VectoOutputPrimaryVehicleInformation.xsd"> - <SubType>Designer</SubType> - </EmbeddedResource> <EmbeddedResource Include="Resources\XSD\VectoVTPReport.xsd"> <SubType>Designer</SubType> </EmbeddedResource> @@ -956,6 +963,12 @@ <EmbeddedResource Include="Resources\Declaration\VAUXBus\SP-Factors_Bus.csv" /> <EmbeddedResource Include="Resources\Declaration\GenericBusData\EngineConsumptionMap_CI_normalized.vmap" /> <EmbeddedResource Include="Resources\Declaration\GenericBusData\EngineConsumptionMap_PI_normalized.vmap" /> + <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.8_Stage.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Resources\XSD\VectoOutputMultistage.0.1.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> <None Include="Utils\VectoVersionCore.tt"> <Generator>TextTemplatingFileGenerator</Generator> <LastGenOutput>VectoVersionCore.cs</LastGenOutput> diff --git a/VectoCore/VectoCore/VersionNumber.t4 b/VectoCore/VectoCore/VersionNumber.t4 index 7d9bd4d0811fbd48721eb56afb8abdb6ce7afd18..d7dbf9feaad787938124242673fa9a823162e64a 100644 --- a/VectoCore/VectoCore/VersionNumber.t4 +++ b/VectoCore/VectoCore/VersionNumber.t4 @@ -6,6 +6,6 @@ int GetBuildNumber() string GetVectoCoreVersionNumber() { - return "0.7.3." + GetBuildNumber(); + return "0.7.5." + GetBuildNumber(); } #> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs index 5493d6a51819ba7a407c2657a804df62d013a288..65ce70d494ecece738bdb9e2dc739fae153e40fa 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs @@ -34,6 +34,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; using System.IO; +using TUGraz.VECTO; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -45,7 +46,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Tests.Utils; -using TUGraz.VECTO; + namespace TUGraz.VectoCore.Tests.FileIO { @@ -493,8 +494,8 @@ namespace TUGraz.VectoCore.Tests.FileIO Assert.AreEqual(1, busAux.ElectricSupply.Alternators.Count); - Assert.AreEqual("standard alternator", busAux.ElectricSupply.Alternators[0].Technology); - Assert.AreEqual(false, busAux.ElectricSupply.SmartElectrics); + //Assert.AreEqual("standard alternator", busAux.ElectricSupply.Alternators[0].Technology); + Assert.AreEqual(AlternatorType.Conventional, busAux.ElectricSupply.AlternatorTechnology); Assert.AreEqual("", busAux.PneumaticSupply.CompressorSize); Assert.AreEqual(1.0, busAux.PneumaticSupply.Ratio); diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs index ea25b3c784ad652722bfca17590b5b300f269146..7c1c4d19dd210c8bd2bf18d22c8b92af4b38ed9a 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Reflection; using System.Runtime.InteropServices.WindowsRuntime; +using System.Xml; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Ninject; @@ -17,6 +18,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -27,7 +29,10 @@ using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Tests.Models.Simulation; +using TUGraz.VectoCore.Tests.Utils; using TUGraz.VectoCore.Utils; +using Formatting = Newtonsoft.Json.Formatting; namespace TUGraz.VectoCore.Tests.Integration.CompletedBus { @@ -98,7 +103,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus public void TestCompletedBus() { var writer = new FileOutputWriter(Path.Combine(Path.GetDirectoryName(JobFile_Group41), Path.GetFileName(JobFile_Group41))); - var inputData = JSONInputDataFactory.ReadJsonJob(JobFile_Group41); + var inputData = CompletedVIF.CreateCompletedVif( + JSONInputDataFactory.ReadJsonJob(JobFile_Group41) as JSONInputDataCompletedBusFactorMethodV7, + xmlInputReader); var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { @@ -593,7 +600,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus Assert.AreEqual(1.0, genericPneumaticUI.CompressorGearRatio); Assert.AreEqual(genericPneumaticUI.CompressorGearRatio, specificPneumaticUI.CompressorGearRatio); - Assert.AreEqual(false, genericPneumaticUI.SmartAirCompression); + Assert.AreEqual(true, genericPneumaticUI.SmartAirCompression); Assert.AreEqual(genericPneumaticUI.SmartAirCompression, specificPneumaticUI.SmartAirCompression); Assert.AreEqual(false, genericPneumaticUI.SmartRegeneration); @@ -1010,9 +1017,25 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus private List<VectoRunData> GetVectoRunData(string jobFile) { var writer = new FileOutputWriter(Path.Combine(Path.GetDirectoryName(JobFile_Group41), Path.GetFileName(JobFile_Group41))); - var inputData = Path.GetExtension(jobFile).Equals(".xml") - ? xmlInputReader.CreateDeclaration(jobFile) - : JSONInputDataFactory.ReadJsonJob(jobFile); + IInputDataProvider inputData = null; + if (Path.GetExtension(jobFile).Equals(".xml")) { + // a complete VIF + inputData = xmlInputReader.CreateDeclaration(jobFile); + } else { + // Primary VIF and completed XML separate + var tmp = JSONInputDataFactory.ReadJsonJob(jobFile); + + switch (tmp) { + case JSONInputDataSingleBusV6 _: + case JSONVTPInputDataV4 _: + inputData = tmp; + break; + case JSONInputDataCompletedBusFactorMethodV7 completedJson: { + inputData = CompletedVIF.CreateCompletedVif(completedJson, xmlInputReader); + break; + } + } + } var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { WriteModalResults = true, @@ -1025,6 +1048,8 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus return runs; } + + [TestCase(JobFile_Group41, TestName = "RunCompletedBusSimulation Group41/32b"), TestCase(JobFile_Group42, TestName = "RunCompletedBusSimulation Group42/33b"), TestCase(JobFilePrimary41, TestName = "RunPrimaryBusSimulation Group41"), diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs index 872c09107507e6ddb8a21df09cb7a75bd8c2f1b2..b17f338240e5d60bbd4607cd2d5386111e3bf7fd 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs @@ -1,4 +1,6 @@ -using System.IO; +using System; +using System.Collections.Generic; +using System.IO; using System.Linq; using System.Xml; using System.Xml.Linq; @@ -11,8 +13,10 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.Models.Simulation; using TUGraz.VectoCore.Tests.Utils; namespace TUGraz.VectoCore.Tests.Integration.CompletedBus @@ -20,14 +24,18 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus [TestFixture] public class CompletedBusSanityCheckTests { + private IXMLInputDataReader _xmlInputReader; public const string CompletedFile32 = @"TestData\Integration\Buses\FactorMethod\vecto_vehicle-completed_heavyBus_41.xml"; - public const string CompletedFile33b1 = @"TestData\Integration\Buses\FactorMethod\vecto_vehicle-completed_heavyBus_42.xml"; - public const string PifFile_33_34 = @"TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.RSLT_PIF.xml"; + //public const string CompletedFile33b1 = @"TestData\Integration\Buses\FactorMethod\CompletedHeavyBus_33b1.RSLT_VIF.xml"; + public const string CompletedFile33b1 = @"TestData\Integration\Buses\FactorMethod\vecto_vehicle-completed_heavyBus_42.xml"; + public const string PifFile_33_34 = @"TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.RSLT_VIF.xml"; [OneTimeSetUp] public void RunBeforeAnyTests() { Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + var kernel = new StandardKernel(new VectoNinjectModule()); + _xmlInputReader = kernel.Get<IXMLInputDataReader>(); } [TestCase(CompletedFile33b1, BusHVACSystemConfiguration.Configuration8, false, TestName = "CompletedBus AirDistribution sanitycheck error, grp 33b1 cfg 8/false"), @@ -47,12 +55,16 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ] public void TestSeparateAirDistributionDuctsError(string completedJob, BusHVACSystemConfiguration hvacConfig, bool separateDucts) { - var modified = GetModifiedXML(completedJob, hvacConfig, separateDucts); + var modified = GetModifiedXML(PifFile_33_34, completedJob, hvacConfig, separateDucts); var writer = new FileOutputWriter("SanityCheckTest"); - var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) + //var vifDataProvider = _xmlInputReader.Create(modified); + //var inputData = new XMLDeclarationVIFInputData(modified as IMultistageBusInputDataProvider, null); + //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); + //var inputData = _xmlInputReader.CreateDeclaration(modified); + + var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer) { WriteModalResults = true, Validate = false @@ -96,12 +108,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ] public void TestSeparateAirDistributionDuctsOk(string completedJob, BusHVACSystemConfiguration hvacConfig, bool separateDucts) { - var modified = GetModifiedXML(completedJob, hvacConfig, separateDucts); + var modified = GetModifiedXML(PifFile_33_34, completedJob, hvacConfig, separateDucts); var writer = new FileOutputWriter("SanityCheckTest"); - var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); + //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); + //var inputData = new MockCompletedBusInputData(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) + var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer) { WriteModalResults = true, Validate = false @@ -112,8 +125,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); } - private static XmlReader GetModifiedXML(string completedJob, BusHVACSystemConfiguration hvacConfig, bool separateDucts) + private IMultistageBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts) { + var vifDataProvider = _xmlInputReader.Create(XmlReader.Create(vifPrimary)); + //var completeDataProvider = _xmlInputReader.CreateDeclaration(comple); + var completedXML = new XmlDocument(); completedXML.Load(completedJob); @@ -123,38 +139,83 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var airDuctsNode = completedXML.SelectSingleNode("//*[local-name()='SeparateAirDistributionDucts']"); airDuctsNode.InnerText = XmlConvert.ToString(separateDucts); var modified = XmlReader.Create(new StringReader(completedXML.OuterXml)); - return modified; + + var completeDataProvider = _xmlInputReader.CreateDeclaration(modified); + + var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); + + var filename = Guid.NewGuid().ToString().Substring(0, 20); + var writer = new FileOutputVIFWriter(filename, 0); + + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var jobContainer = new JobContainer(new MockSumWriter()); + jobContainer.AddRuns(factory); + jobContainer.Execute(); + jobContainer.WaitFinished(); + + var completedVifXML = new XmlDocument(); + completedVifXML.Load(writer.XMLMultistageReportFileName); + + var completedVif = _xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(completedVifXML.OuterXml))); + File.Delete(writer.XMLMultistageReportFileName); + + return completedVif as IMultistageBusInputDataProvider; } } - public class MockCompletedBusInputData : IInputDataProvider, IDeclarationInputDataProvider, IDeclarationJobInputData + public class MockCompletedBusInputData : IInputDataProvider, IMultistageBusInputDataProvider { - public MockCompletedBusInputData(XmlReader pif, XmlReader completed) + private IMultistageBusInputDataProvider input; + + public MockCompletedBusInputData(XmlReader vif) { var kernel = new StandardKernel(new VectoNinjectModule()); var _xmlInputReader = kernel.Get<IXMLInputDataReader>(); - Vehicle = _xmlInputReader.CreateDeclaration(completed).JobInputData.Vehicle; - PrimaryVehicleData = (_xmlInputReader.Create(pif) as IPrimaryVehicleInformationInputDataProvider); - JobName = Vehicle.VIN; + input = _xmlInputReader.CreateDeclaration(vif) as IMultistageBusInputDataProvider; + + //JobName = Vehicle.VIN; } - public IDeclarationJobInputData JobInputData + public IDeclarationMultistageJobInputData JobInputData { - get { return this; } + get { return input.JobInputData; } } - public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; } - public XElement XMLHash { get; } + + + IDeclarationJobInputData IDeclarationInputDataProvider.JobInputData => null; + + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData + { + get { return input.PrimaryVehicleData; } + } + public XElement XMLHash { get; } public bool SavedInDeclarationMode { get { return true; } } - public IVehicleDeclarationInputData Vehicle { get; } - public string JobName { get; } - public string ShiftStrategy { get; } + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle + { + get { return PrimaryVehicleData; } + } + public IList<IManufacturingStageInputData> ManufacturingStages + { + get { return input.JobInputData.ManufacturingStages; } + } + public IManufacturingStageInputData ConsolidateManufacturingStage + { + get { return input.JobInputData.ConsolidateManufacturingStage; } + } + + public VectoSimulationJobType JobType + { + get { return VectoSimulationJobType.ConventionalVehicle; } + } + + public bool InputComplete { get; } public DataSource DataSource { get; } } diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..ed000eb7d38711d7a9c60e0cdecf0debe6f78020 --- /dev/null +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs @@ -0,0 +1,787 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.Linq; +using System.Xml.XPath; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +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.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.Tests.Models.Simulation; +using TUGraz.VectoCore.Utils; + + +namespace TUGraz.VectoCore.Tests.Integration.Multistage +{ + [TestFixture] + [Parallelizable(ParallelScope.All)] + public class MultistageVehicleTest + { + const string VIFDirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\"; + const string InputDirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\"; + private const string PrimaryInputDirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\"; + + + const string InputFilePath = InputDirPath + "vecto_vehicle-stage_input_full-sample.xml"; + const string VIFInputFile = VIFDirPath + "vecto_multistage_primary_vehicle_stage_2_3.xml"; + + + const string InputFilePathGroup41 = InputDirPath + "vecto_vehicle-stage_input_full-sample_group41.xml"; + const string VIFInputFileGroup41 = VIFDirPath + "vecto_multistage_primary_vehicle_stage_2_3_group41.xml"; + + const string vifResult = VIFDirPath + "vif_vehicle-sample.VIF_Report_3.xml"; + + + public const string PrimaryBus = PrimaryInputDirPath + "vecto_vehicle-primary_heavyBus-sample.xml"; + public const string PrimaryBus_SmartES = PrimaryInputDirPath + "vecto_vehicle-primary_heavyBusSmartES-sample.xml"; + + const string PrimaryBusAdasV23 = PrimaryInputDirPath + "vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml"; + + + protected IXMLInputDataReader xmlInputReader; + protected IXMLInputDataReader xmlVIFInputReader; + + private IKernel _kernel; + private string _generatedVIFFilepath; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + xmlVIFInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + [TestCase(VIFInputFile, InputFilePath, 1)] + public void TestSimulationMultistageVehicle(string vifFilename, string inputFilename, int numRuns) + { + //Input files + var inputReader = XmlReader.Create(inputFilename); + var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + var vifReader = XmlReader.Create(vifFilename); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0; + var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); + _generatedVIFFilepath = writer.XMLMultistageReportFileName; + + var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + + var jobContainer = new JobContainer(new MockSumWriter()); + + var runs = factory.SimulationRuns().ToList(); + Assert.AreEqual(numRuns, runs.Count); + foreach (var run in runs) + { + jobContainer.AddRun(run); + } + + jobContainer.Execute(); + jobContainer.WaitFinished(); + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + + using (var xmlReader = XmlReader.Create(writer.XMLMultistageReportFileName)) { + var validator = new XMLValidator(xmlReader); + Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError); + } + } + + #region VIF result file test + + [TestCase(VIFInputFile, InputFilePath, 1)] + public void TestVifGeneration(string vifFilename, string inputFilename, int numRuns) + { + //Input files + var inputReader = XmlReader.Create(inputFilename); + var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + var vifReader = XmlReader.Create(vifFilename); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0; + var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); + + var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var jobContainer = new JobContainer(new MockSumWriter()); + + var runs = factory.SimulationRuns().ToList(); + Assert.AreEqual(numRuns, runs.Count); + foreach (var run in runs) + { + jobContainer.AddRun(run); + } + + jobContainer.Execute(); + jobContainer.WaitFinished(); + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + + using (var xmlReader = XmlReader.Create(writer.XMLMultistageReportFileName)) + { + var validator = new XMLValidator(xmlReader); + Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError); + } + + TestNewVifData(writer.XMLMultistageReportFileName); + } + + + + + private void TestNewVifData(string filePath) + { + var vifReader = XmlReader.Create(filePath); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count()); + TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]); + TestVifStage3Data(vifDataProvider.JobInputData.ManufacturingStages[1]); + TestVifStage4Data(vifDataProvider.JobInputData.ManufacturingStages[2]); + } + + private void TestVifStage2Data(IManufacturingStageInputData data) + { + Assert.AreEqual(2, data.StageCount); + TestSignatureData(data.HashPreviousStage, "nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=", + "#PIF-d10aff76c5d149948046"); + + Assert.AreEqual("Intermediate Manufacturer 1", data.Vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 1", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType); + Assert.AreEqual(null, data.Vehicle.ADAS); + Assert.AreEqual(null, data.Vehicle.Components); + + TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!", + "2021-01-12T07:20:08.0187663Z"); + + TestSignatureData(data.Signature, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-6f30c7fe665a47938f6b"); + } + + private void TestVifStage3Data(IManufacturingStageInputData data) + { + Assert.AreEqual(3, data.StageCount); + TestSignatureData(data.HashPreviousStage, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-6f30c7fe665a47938f6b"); + + Assert.AreEqual("Intermediate Manufacturer 2", data.Vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 2", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-2234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.final, data.Vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, data.Vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, data.Vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(null, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + var aux = data.Vehicle.Components.BusAuxiliaries; + Assert.AreEqual(true, aux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.HeadlightsLED); + + var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, hvac.SystemConfiguration); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower); + Assert.AreEqual(false, hvac.DoubleGlazing); + Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvac.SeparateAirDistributionDucts); + Assert.AreEqual(false, hvac.WaterElectricHeater); + Assert.AreEqual(false, hvac.AirElectricHeater); + Assert.AreEqual(true, hvac.OtherHeatingTechnology); + + TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!!", + "2021-03-13T07:20:08.0187663Z"); + + TestSignatureData(data.Signature, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-8f30c7fe665a47938f6b"); + } + + private void TestVifStage4Data(IManufacturingStageInputData data) + { + Assert.AreEqual(4, data.StageCount); + TestSignatureData(data.HashPreviousStage, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-8f30c7fe665a47938f6b"); + + Assert.AreEqual("Some Manufacturer", data.Vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual("Sample Bus Model", data.Vehicle.Model); + Assert.AreEqual(LegislativeClass.M3, data.Vehicle.LegislativeClass); + Assert.AreEqual(500, data.Vehicle.CurbMassChassis.Value()); + Assert.AreEqual(3500, data.Vehicle.GrossVehicleMassRating.Value()); + Assert.AreEqual(null, data.Vehicle.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Compressed, data.Vehicle.TankSystem); + Assert.AreEqual(RegistrationClass.II_III, data.Vehicle.RegisteredClass); + Assert.AreEqual(1, data.Vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(10, data.Vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(11, data.Vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(2, data.Vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, data.Vehicle.VehicleCode); + Assert.AreEqual(false, data.Vehicle.LowEntry); + Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Height);//HeightIntegratedBody + Assert.AreEqual(9.5.SI<Meter>(), data.Vehicle.Length); + Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Width); + Assert.AreEqual(2.SI<Meter>(), data.Vehicle.EntranceHeight); + Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.None, data.Vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.None, data.Vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + var airdrag = data.Vehicle.Components.AirdragInputData as AbstractCommonComponentType; + Assert.NotNull(airdrag); + Assert.AreEqual("Generic Manufacturer", airdrag.Manufacturer); + Assert.AreEqual("Generic Model", airdrag.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", airdrag.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-03-24T15:00:00Z").ToUniversalTime(), airdrag.Date); + Assert.AreEqual("Vecto AirDrag x.y", airdrag.AppVersion); + Assert.AreEqual(6.34.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea); + Assert.AreEqual(6.31.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea_0); + Assert.AreEqual(6.32.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.TransferredAirDragArea); + TestSignatureData(airdrag.DigestValue, "b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=", "#CabinX23h"); + + var aux = data.Vehicle.Components.BusAuxiliaries; + Assert.AreEqual(false, aux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.HeadlightsLED); + + var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvac.SystemConfiguration); + Assert.AreEqual(HeatPumpType.none, hvac.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment); + Assert.AreEqual(3, hvac.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpPassengerCompartments[1].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[2].Item2); + Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower); + Assert.AreEqual(false, hvac.DoubleGlazing); + Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvac.SeparateAirDistributionDucts); + Assert.AreEqual(true, hvac.WaterElectricHeater); + Assert.AreEqual(false, hvac.AirElectricHeater); + Assert.AreEqual(false, hvac.OtherHeatingTechnology); + } + + private void TestSignatureData(DigestData digestData, string digestValue, string reference) + { + Assert.AreEqual(reference, digestData.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", digestData.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", digestData.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", digestData.DigestMethod); + Assert.AreEqual(digestValue, digestData.DigestValue); + } + + private void TestApplicationInformation(IApplicationInformation appInfo, string version, string date) + { + Assert.AreEqual(version, appInfo.SimulationToolVersion); + Assert.AreEqual(DateTime.Parse(date).ToUniversalTime(), appInfo.Date); + } + + #endregion + + + + [TestCase()] + public void TestMultistageSimulationRun() + { + TestSimulationMultistageVehicle(VIFInputFileGroup41, InputFilePathGroup41, 1); + + var vifReader = XmlReader.Create(_generatedVIFFilepath); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null); + var writer = new FileOutputWriter("vif_vehicle-sample_test.xml"); + + + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) + { + WriteModalResults = true, + //ActualModalData = true, + Validate = false + }; + + var jobContainer = new JobContainer(new SummaryDataContainer(writer)); + jobContainer.AddRuns(factory); + + jobContainer.Execute(); + jobContainer.WaitFinished(); + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat<Exception>(jobContainer.Runs.Select(r => r.ExecException))); + } + + [NonParallelizable] + [TestCase(PrimaryBus, TestName = "Multistage Write VIF Primary"), + TestCase(PrimaryBus_SmartES, TestName = "Multistage Write VIF Primary SmartES")] + public void TestMultistageWritingVif(string primaryFile) + { + var inputData = xmlInputReader.Create(primaryFile); + + var writer = new FileOutputWriter("vif_writing_test.xml"); + + //var xmlreport = new XMLDeclarationReportMultistageBusVehicle(writer); + var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport) { + WriteModalResults = true, + //ActualModalData = true, + Validate = false + }; + + var jobContainer = new JobContainer(new SummaryDataContainer(writer)); + jobContainer.AddRuns(factory); + + xmlreport.DoWriteReport(); + } + + + [TestCase(PrimaryBus, "vif_primary_bus_writing_test.xml", TestName = "Multistage Write VIF Primary With Simulation"), + 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 writer = new FileOutputWriter(outputFile); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) + { + WriteModalResults = true, + //ActualModalData = true, + Validate = false + }; + + var jobContainer = new JobContainer(new SummaryDataContainer(writer)); + jobContainer.AddRuns(factory); + jobContainer.Execute(); + jobContainer.WaitFinished(); + + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat<Exception>(jobContainer.Runs.Select(r => r.ExecException))); + } + + + [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 writer = new FileOutputWriter(outputFile); + + var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport) + { + WriteModalResults = true, + Validate = false + }; + + var jobContainer = new JobContainer(new SummaryDataContainer(writer)); + jobContainer.AddRuns(factory); + xmlreport.DoWriteReport(); + + //Set fake test result for validation and unit tests + SetTestResults(xmlreport.PrimaryVehicleReport); + writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, xmlreport.PrimaryVehicleReport); + + using (var xmlReader = XmlReader.Create(writer.XMLPrimaryVehicleReportName)) + { + var validator = new XMLValidator(xmlReader); + Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError); + } + + ValidateVIFData(writer.XMLPrimaryVehicleReportName); + } + + + + private void ValidateVIFData(string vifFilePath) + { + var vifReader = XmlReader.Create(vifFilePath); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + var res = vifDataProvider.JobInputData.PrimaryVehicle; + TestVehicleData(res.Vehicle); + TestADASData(res.Vehicle.ADAS); + TestTorqueLimitsData(res.Vehicle.TorqueLimits); + TestComponentsData(res.Vehicle.Components); + } + + + #region Test Result VIF Primary Data + + private void TestVehicleData(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual("Generic Truck Manufacturer", vehicleData.Manufacturer); + Assert.AreEqual("Street, ZIP City", vehicleData.ManufacturerAddress); + Assert.AreEqual("Generic Model", vehicleData.Model); + Assert.AreEqual("VEH-1234567890", vehicleData.VIN); + Assert.AreEqual(DateTime.Parse("2017-02-15T11:00:00Z").ToUniversalTime(), vehicleData.Date); + Assert.AreEqual("M3", vehicleData.LegislativeCategory); + Assert.AreEqual("Bus", vehicleData.VehicleCategory.ToXMLFormat()); + Assert.AreEqual(AxleConfiguration.AxleConfig_4x2, vehicleData.AxleConfiguration); + Assert.AreEqual(false, vehicleData.Articulated); + Assert.AreEqual(25000, vehicleData.GrossVehicleMassRating.Value()); + Assert.AreEqual(600, vehicleData.EngineIdleSpeed.AsRPM); + Assert.AreEqual("Transmission Output Retarder", vehicleData.Components.RetarderInputData.Type.ToXMLFormat()); + Assert.AreEqual(1.000, vehicleData.Components.RetarderInputData.Ratio); + Assert.AreEqual("Separate Angledrive", vehicleData.Components.AngledriveInputData.Type.ToXMLFormat()); + Assert.AreEqual(false, vehicleData.ZeroEmissionVehicle); + } + + private void TestADASData(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + Assert.AreEqual(true, adas.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, adas.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2_3, adas.PredictiveCruiseControl); + Assert.AreEqual(false, adas.ATEcoRollReleaseLockupClutch); + } + + private void TestTorqueLimitsData(IList<ITorqueLimitInputData> torqueLimits) + { + Assert.AreEqual(3, torqueLimits.Count); + Assert.AreEqual(6, torqueLimits[0].Gear); + Assert.AreEqual(1800, torqueLimits[0].MaxTorque.Value()); + Assert.AreEqual(1, torqueLimits[1].Gear); + Assert.AreEqual(2500, torqueLimits[1].MaxTorque.Value()); + Assert.AreEqual(12, torqueLimits[2].Gear); + Assert.AreEqual(1900, torqueLimits[2].MaxTorque.Value()); + } + + private void TestComponentsData(IVehicleComponentsDeclaration vehicleComponents) + { + TestEngineData(vehicleComponents.EngineInputData); + TestTransmissionData(vehicleComponents.GearboxInputData); + TestTorqueConverterData(vehicleComponents.TorqueConverterInputData); + TestAngledriveData(vehicleComponents.AngledriveInputData); + TestAxelgearData(vehicleComponents.AxleGearInputData); + TestAxelWheelsData(vehicleComponents.AxleWheels); + TestAuxiliarieData(vehicleComponents.BusAuxiliaries); + } + + #region Test Engine Data + private void TestEngineData(IEngineDeclarationInputData engineData) + { + Assert.AreEqual("Generic Engine Manufacturer", engineData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck Engine", engineData.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", engineData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-02-15T11:00:00Z").ToUniversalTime(), engineData.Date); + Assert.AreEqual("VectoEngine x.y", engineData.AppVersion); + Assert.AreEqual(12730.SI(Unit.SI.Cubic.Centi.Meter).Cast<CubicMeter>(), engineData.Displacement); + Assert.AreEqual(2200, engineData.RatedSpeedDeclared.AsRPM); + Assert.AreEqual(380000.SI<Watt>(), engineData.RatedPowerDeclared); + Assert.AreEqual(2400, engineData.MaxTorqueDeclared.Value()); + Assert.AreEqual(WHRType.None, engineData.WHRType);// How ?!??! + + TestEngineModes(engineData.EngineModes); + } + + private void TestEngineModes(IList<IEngineModeDeclarationInputData> engineModes) + { + Assert.AreEqual(1, engineModes.Count); + Assert.AreEqual(560, engineModes[0].IdleSpeed.AsRPM); + + var fullLoadCurve = engineModes[0].FullLoadCurve; + var entryIndex = 0; + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("560.00", "1180.00", "-149.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("600.00", "1282.00", "-148.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("800.00", "1791.00", "-149.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1000.00", "2300.00", "-160.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1200.00", "2300.00", "-179.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1400.00", "2300.00", "-203.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1600.00", "2079.00", "-235.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1800.00", "1857.00", "-264.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("2000.00", "1352.00", "-301.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("2100.00", "1100.00", "-320.00", fullLoadCurve, ref entryIndex)); + + Assert.AreEqual(1, engineModes[0].Fuels.Count); + Assert.AreEqual(FuelType.NGCI, engineModes[0].Fuels.First().FuelType); + } + private bool CheckFullLoadAndDragCurveEntry(string engineSpeed, string maxTorque, string dragTorque, TableData loadCurve, ref int currentRow) + { + var result = engineSpeed == loadCurve.Rows[currentRow][0].ToString() && + maxTorque == loadCurve.Rows[currentRow][1].ToString() && + dragTorque == loadCurve.Rows[currentRow][2].ToString(); + + currentRow++; + return result; + } + + #endregion + + #region Test Transmission Data + + private void TestTransmissionData(IGearboxDeclarationInputData transmissionData) + { + Assert.AreEqual("Generic Gearbox Manufacturer", transmissionData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck Gearbox", transmissionData.Model); + Assert.AreEqual(CertificationMethod.Option1, transmissionData.CertificationMethod); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", transmissionData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T11:00:00Z").ToUniversalTime(), transmissionData.Date); + Assert.AreEqual("3.0.1", transmissionData.AppVersion); + Assert.AreEqual(GearboxType.ATSerial, transmissionData.Type); + Assert.AreEqual(12, transmissionData.Gears.Count); + + var entryIndex = 0; + Assert.IsTrue(CheckTransmissionGear(1, 14.930, 1900, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(2, 11.640, 1900, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(3, 9.020, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(4, 7.040, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(5, 5.640, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(6, 4.400, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(7, 3.390, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(8, 2.650, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(9, 2.050, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(10, 1.600, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(11, 1.280, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(12, 1.000, null, null, transmissionData.Gears[entryIndex], ref entryIndex)); + } + + private bool CheckTransmissionGear(int gear, double ratio, int? maxTorque, double? maxSpeed, ITransmissionInputData entry, ref int entryIndex) + { + Assert.AreEqual(gear, entry.Gear); + Assert.AreEqual(ratio, entry.Ratio); + + if (maxTorque == null) + Assert.IsNull(entry.MaxTorque); + else + Assert.AreEqual(((int)maxTorque).SI<NewtonMeter>(), entry.MaxTorque); + + if (maxSpeed == null) + Assert.IsNull(entry.MaxInputSpeed); + else + Assert.AreEqual((double)maxSpeed, entry.MaxInputSpeed.AsRPM, 1e-6); + + entryIndex++; + return true; + } + + #endregion + + #region Torque Converter Data Test + + private void TestTorqueConverterData(ITorqueConverterDeclarationInputData torqueConvData) + { + Assert.AreEqual("Some Manufacturer", torqueConvData.Manufacturer); + Assert.AreEqual("Some Model", torqueConvData.Model); + Assert.AreEqual(CertificationMethod.Measured, torqueConvData.CertificationMethod); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", torqueConvData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-02-15T11:00:00Z").ToUniversalTime(), torqueConvData.Date); + Assert.AreEqual("TC CalcApp 123", torqueConvData.AppVersion); + Assert.AreEqual(null, torqueConvData.TCData); + } + + #endregion + + #region Angledrive Data Test + + private void TestAngledriveData(IAngledriveInputData angledriveData) + { + Assert.AreEqual("Generic Gearbox Manufacturer", angledriveData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck Gearbox", angledriveData.Model); + Assert.AreEqual(CertificationMethod.Option1, angledriveData.CertificationMethod); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", angledriveData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T11:00:00Z").ToUniversalTime(), angledriveData.Date); + Assert.AreEqual("3.0.1", angledriveData.AppVersion); + Assert.AreEqual(2.345, angledriveData.Ratio); + } + + #endregion + + #region Axelgear Test + private void TestAxelgearData(IAxleGearInputData axelgearData) + { + Assert.AreEqual("Generic Gearbox Manufacturer", axelgearData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck AxleGear", axelgearData.Model); + Assert.AreEqual(CertificationMethod.Measured, axelgearData.CertificationMethod); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", axelgearData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T11:00:00Z").ToUniversalTime(), axelgearData.Date); + Assert.AreEqual("3.0.1", axelgearData.AppVersion); + Assert.AreEqual(AxleLineType.SinglePortalAxle, axelgearData.LineType); + Assert.AreEqual(2.590, axelgearData.Ratio); + } + + #endregion + + #region AxleWheels Data Test + private void TestAxelWheelsData(IAxlesDeclarationInputData axelWheels) + { + Assert.AreEqual(2, axelWheels.AxlesDeclaration.Count); + + var entry = axelWheels.AxlesDeclaration[0]; + Assert.AreEqual(AxleType.VehicleNonDriven, entry.AxleType); + Assert.AreEqual(false, entry.TwinTyres); + + var tyre1 = entry.Tyre; + Assert.AreEqual("Generic Wheels Manufacturer", tyre1.Manufacturer); + Assert.AreEqual("Generic Wheel", tyre1.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre1.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T14:00:00Z").ToUniversalTime(), tyre1.Date); + Assert.AreEqual("Tyre Generation App 1.0", tyre1.AppVersion); + Assert.AreEqual("315/70 R22.5", tyre1.Dimension); + Assert.AreEqual(0.0055, tyre1.RollResistanceCoefficient); + Assert.AreEqual(31300, tyre1.TyreTestLoad.Value());//85% of the maximum tyre payload + + Assert.AreEqual("#WHL-5432198760-315-70-R22.5", tyre1.DigestValue.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", tyre1.DigestValue.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", tyre1.DigestValue.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", tyre1.DigestValue.DigestMethod); + Assert.AreEqual("4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=", tyre1.DigestValue.DigestValue); + + entry = axelWheels.AxlesDeclaration[1]; + Assert.AreEqual(AxleType.VehicleDriven, entry.AxleType); + Assert.AreEqual(true, entry.TwinTyres); + + var tyre2 = entry.Tyre; + Assert.AreEqual("Generic Wheels Manufacturer", tyre2.Manufacturer); + Assert.AreEqual("Generic Wheel", tyre2.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre2.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T14:00:00Z").ToUniversalTime(), tyre2.Date); + Assert.AreEqual("Tyre Generation App 1.0", tyre2.AppVersion); + Assert.AreEqual("315/70 R22.5", tyre2.Dimension); + Assert.AreEqual(0.0063, tyre2.RollResistanceCoefficient); + Assert.AreEqual(31300, tyre2.TyreTestLoad.Value()); + + Assert.AreEqual("#WHL-5432198760-315-70-R22.5", tyre2.DigestValue.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", tyre2.DigestValue.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", tyre2.DigestValue.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", tyre2.DigestValue.DigestMethod); + Assert.AreEqual("KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=", tyre2.DigestValue.DigestValue); + } + + #endregion + + #region Auxiliaries Test + private void TestAuxiliarieData(IBusAuxiliariesDeclarationData aux) + { + Assert.AreEqual("Hydraulic driven - Constant displacement pump", aux.FanTechnology); + + Assert.AreEqual(1, aux.SteeringPumpTechnology.Count); + Assert.AreEqual("Variable displacement elec. controlled", aux.SteeringPumpTechnology[0]); + + //ToDo SupplyFromHEVPossible to interface and reader? + Assert.AreEqual(AlternatorType.Smart, aux.ElectricSupply.AlternatorTechnology); + + Assert.AreEqual(1, aux.ElectricSupply.Alternators.Count); + Assert.AreEqual(300.SI<Ampere>(), aux.ElectricSupply.Alternators[0].RatedCurrent); + Assert.AreEqual(48.SI<Volt>(), aux.ElectricSupply.Alternators[0].RatedVoltage); + + Assert.AreEqual(2, aux.ElectricSupply.ElectricStorage.Count); + + var battery = aux.ElectricSupply.ElectricStorage[0] as BusAuxBatteryInputData; + Assert.IsNotNull(battery); + Assert.AreEqual("li-ion battery - high power", battery.Technology); + Assert.AreEqual(5.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(), battery.Capacity); + Assert.AreEqual(48.SI<Volt>(), battery.Voltage); + + var capacitor = aux.ElectricSupply.ElectricStorage[1] as BusAuxCapacitorInputData; + Assert.IsNotNull(capacitor); + Assert.AreEqual("with DCDC converter", capacitor.Technology); + Assert.AreEqual(30.SI<Farad>(), capacitor.Capacity); + Assert.AreEqual(3.SI<Volt>(), capacitor.Voltage); + + Assert.AreEqual("Large Supply 2-stage", aux.PneumaticSupply.CompressorSize);//SizeOfAirSupply + Assert.AreEqual(CompressorDrive.electrically, aux.PneumaticSupply.CompressorDrive); + Assert.AreEqual("none", aux.PneumaticSupply.Clutch); + Assert.AreEqual(1.000, aux.PneumaticSupply.Ratio); + Assert.AreEqual(false, aux.PneumaticSupply.SmartAirCompression); + Assert.AreEqual(false, aux.PneumaticSupply.SmartRegeneration); + Assert.AreEqual(ConsumerTechnology.Electrically, aux.PneumaticConsumers.AirsuspensionControl); + Assert.AreEqual(ConsumerTechnology.Pneumatically, aux.PneumaticConsumers.AdBlueDosing); //true + + Assert.AreEqual(true, aux.HVACAux.AdjustableCoolantThermostat); + Assert.AreEqual(true, aux.HVACAux.EngineWasteGasHeatExchanger); + } + + #endregion + + #endregion + + #region Set Result Entry For Testing only + + private void SetTestResults(XDocument xDocument) + { + var results = xDocument.XPathSelectElement(".//*[local-name()='Results']"); + results.ReplaceWith(GetTempResultElement()); + } + + private XElement GetTempResultElement() + { + XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; + + var results = new XElement(tns + XMLNames.Report_Results); + results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, "success")); + + 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_Result_Mission, "Heavy Urban"), + new XElement(tns + + XMLNames.Report_ResultEntry_SimulationParameters, + new XElement(tns + + XMLNames.Report_ResultEntry_TotalVehicleMass, + XMLHelper.ValueAsUnit(13098.63, XMLNames.Unit_kg, 2)), + new XElement(tns + XMLNames.Report_Result_Payload, XMLHelper.ValueAsUnit(1123.63, XMLNames.Unit_kg, 2)), + new XElement(tns + XMLNames.Report_ResultEntry_PassengerCount, 16.52), + new XElement(tns + XMLNames.Report_Result_FuelMode, XMLNames.Report_Result_FuelMode_Val_Single) + ), + new XElement(tns + + XMLNames.Report_Results_Fuel, + new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, "Diesel CI"), + new XElement(tns + + XMLNames.Report_Result_EnergyConsumption, + new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/km"), 16.93598)), + + new XElement(tns+ + XMLNames.Report_Results_CO2, new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/km"), 1862.57 + ))); + + return results; + + } + + #endregion + + + + + + + + + } +} diff --git a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs index 491aa885cc1a80660cb96b078294e6300f1c5b60..cd395c0ccd67c36d7264e2f548d2c3da56ec2729 100644 --- a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs +++ b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs @@ -982,7 +982,7 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode AlternatorGearEfficiency = Constants.BusAuxiliaries.ElectricSystem.AlternatorGearEfficiency, DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond, AlternatorMap = new SimpleAlternator(AlternatorEfficiency) { - Technologies = new List<string>() { "engineering mode" } + //Technologies = new List<string>() { "engineering mode" } }, AlternatorType = esSupplyFromHevreess && alternatorType != AlternatorType.Smart diff --git a/VectoCore/VectoCoreTest/TestData/Integration/ADAS/Group9_AT_EcoRoll.xml b/VectoCore/VectoCoreTest/TestData/Integration/ADAS/Group9_AT_EcoRoll.xml index 20eabcd9ce43e83aa8ff4ceb016a3e2e5ec13f86..a160bece1a5a8097eec6e744a96d409e64f7c233 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/ADAS/Group9_AT_EcoRoll.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/ADAS/Group9_AT_EcoRoll.xml @@ -35,7 +35,7 @@ <EcoRollWithoutEngineStop>true</EcoRollWithoutEngineStop> <EcoRollWithEngineStop>false</EcoRollWithEngineStop> <PredictiveCruiseControl>none</PredictiveCruiseControl> - <ATEcoRollReleaseLockupClutch>false</ATEcoRollReleaseLockupClutch> + <APTEcoRollReleaseLockupClutch>false</APTEcoRollReleaseLockupClutch> </v2.1:ADAS> <Components xsi:type="v2.0:VehicleComponentsType"> <Engine xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="EngineComponentDeclarationType"> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b.vecto index 66c56d0d15deb710dd418223b709f3cd8ccc2162..cbcb20b77e871d7ee9719574922a9842de0200d8 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b.vecto @@ -7,6 +7,6 @@ }, "Body": { "CompletedVehicle": "vecto_vehicle-completed_heavyBus_41.xml", - "PrimaryVehicleResults": "primary_heavyBus group41.RSLT_PIF.xml" + "PrimaryVehicleResults": "primary_heavyBus group41.RSLT_VIF.xml" } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_AT-P.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_AT-P.vecto index d33c02cefcc9a9b2f943908703246f2179b74b4c..ef9fb71e6f09ed6e3519bb086836b06256c77da2 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_AT-P.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_AT-P.vecto @@ -7,6 +7,6 @@ }, "Body": { "CompletedVehicle": "vecto_vehicle-completed_heavyBus_41.xml", - "PrimaryVehicleResults": "primary_heavyBus group41_AT-P.RSLT_PIF.xml" + "PrimaryVehicleResults": "primary_heavyBus group41_AT-P.RSLT_VIF.xml" } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX.vecto index c991a72d8e2808e761f349d3665622eb3dd9e2db..481cc289a49135414334eb77eb34dd80db2712eb 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX.vecto @@ -7,6 +7,6 @@ }, "Body": { "CompletedVehicle": "vecto_vehicle-completed_heavyBus_41.xml", - "PrimaryVehicleResults": "vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml" + "PrimaryVehicleResults": "vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml" } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX_mixed.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX_mixed.vecto index 811a6e550cebc3ac5cb853c02a31f26f969d4056..644fabc36c86156d12deee7ab51669bdccf0d0c8 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX_mixed.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_41-32b_ES-AUX_mixed.vecto @@ -7,6 +7,6 @@ }, "Body": { "CompletedVehicle": "vecto_vehicle-completed_heavyBus_41_mixed.xml", - "PrimaryVehicleResults": "vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml" + "PrimaryVehicleResults": "vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml" } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_42-33b.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_42-33b.vecto index e04e75e5741df1d95298b5170629ae94dcbacbcf..c9a897687648d7b2d104d176e2bc5638172321ca 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_42-33b.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedBus_42-33b.vecto @@ -7,6 +7,6 @@ }, "Body": { "CompletedVehicle": "vecto_vehicle-completed_heavyBus_42.xml", - "PrimaryVehicleResults": "primary_heavyBus group42_SmartPS.RSLT_PIF.xml" + "PrimaryVehicleResults": "primary_heavyBus group42_SmartPS.RSLT_VIF.xml" } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml similarity index 77% rename from VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml rename to VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml index a0940ef3a6788573eb6bc25c3d7f31e3004a7b87..1fb3b2f6d2991834d3f217ab1d547ab51965bbdb 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml @@ -1,13 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-584956b9e3ab43acaf97"> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-584956b9e3ab43acaf97"> <Vehicle xsi:type="VehiclePIFType"> <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> <Model>Generic Model Primary</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> @@ -136,10 +140,12 @@ <Ratio>2.590</Ratio> </Data> </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> +<!-- <AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> <Data xsi:type="AxleWheelsDataDeclarationType"> - <Axles> - <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> +--> <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> @@ -165,8 +171,8 @@ </di:Reference> </Signature> </Tyre> - </Axle> - <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="2" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> @@ -192,8 +198,8 @@ </di:Reference> </Signature> </Tyre> - </Axle> - <Axle axleNumber="3" xsi:type="AxleDataDeclarationType"> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>false</Steered> @@ -219,37 +225,36 @@ </di:Reference> </Signature> </Tyre> - </Axle> + </vif0.1:Axle> </Axles> </Data> - </pbus:AxleWheels> + </AxleWheels> <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - <aux:MaxAlternatorPower>15000</aux:MaxAlternatorPower> - <aux:ElectricStorageCapacity>50</aux:ElectricStorageCapacity> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>true</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> </Data> </Auxiliaries> </Components> @@ -561,8 +566,8 @@ <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> <Date>2020-05-27T08:16:48.0278823Z</Date> </ApplicationInformation> - </pif:Data> - <pif:Signature> + </Data> + <Signature> <di:Reference URI="#PIF-584956b9e3ab43acaf97"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> @@ -571,5 +576,96 @@ <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <di:DigestValue>GPW3cyV+VQrDzyGeryMrakfOlD+YUWtdaHz/C2lhxJQ=</di:DigestValue> </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="vif0.1:BusManufacturingStageDataType" id="asdf"> + <HashPreviousStage> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="MST-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <ClassBus>I+II</ClassBus> + <NumberPassengersLowerDeck>30</NumberPassengersLowerDeck> + <NumberPassengersUpperDeck>0</NumberPassengersUpperDeck> + <BodyworkCode>CE</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> + <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> + <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> + <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </Signature> + </v2.8:AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>false</Dayrunninglights> + <Positionlights>false</Positionlights> + <Brakelights>false</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>7</SystemConfiguration> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 4-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> + <DoubleGlazing>true</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </vif0.1:Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:16:48.0278823Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml deleted file mode 100644 index f8583aee47343911adb25f8c6fd64833a16f1227..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml +++ /dev/null @@ -1,552 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-4121ae4751874cefa376"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>700</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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> - <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"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Generic primary bus 41 Engine</Model> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>VectoEngine x.y</AppVersion> - <Displacement>7700</Displacement> - <RatedSpeed>2200</RatedSpeed> - <RatedPower>220000</RatedPower> - <MaxEngineTorque>1100</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>700</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> - <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> - <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> - <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> - <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> - <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> - <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> - <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> - <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> - <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> - <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <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"> - <Gear number="1"> - <Ratio>3.364</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="2"> - <Ratio>1.909</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="3"> - <Ratio>1.421</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="4"> - <Ratio>1.000</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="5"> - <Ratio>0.720</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="6"> - <Ratio>0.615</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - </Gears> - </Data> - </Transmission> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic primary bus 41 AxleGear</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>6.500</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>gi7smqIT9b/iNr6yBm49IkS5ylirBLyHvjZQqlNpzUA=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-d5c4bf1b86394fd7b822"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>/z2B3MvXZr1k8vYmINK/6DLaXPreBcwwmHhHsfDvJRo=</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1520.18</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1828.60</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1241.44</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1493.13</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1102.09</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1330.13</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> - <Payload unit="kg">879.90</Payload> - <PassengerCount>12.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <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> - <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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1051.61</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1599.38</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1949.71</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1306.47</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1590.49</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1154.46</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1405.77</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">967.41</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1066.11</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">816.49</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">849.31</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">998.54</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1115.67</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">851.63</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">890.63</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-08-06T06:54:52.9756421Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-4121ae4751874cefa376"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>YnCPep7uMh3ghMrx6ZsEMLanOijFCZpku+ZDNd6rkLw=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..edac9d402239cda727e06804182bcdf5881eb98f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml @@ -0,0 +1,556 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-4121ae4751874cefa376"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>220000</RatedPower> + <MaxEngineTorque>1100</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66"/> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83"/> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44"/> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29"/> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58"/> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88"/> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11"/> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76"/> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36"/> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60"/> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66"/> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</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-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>gi7smqIT9b/iNr6yBm49IkS5ylirBLyHvjZQqlNpzUA=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-d5c4bf1b86394fd7b822"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/z2B3MvXZr1k8vYmINK/6DLaXPreBcwwmHhHsfDvJRo=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1520.18</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1828.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1241.44</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1493.13</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1102.09</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1330.13</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> + <Payload unit="kg">879.90</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1051.61</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1599.38</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1949.71</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1306.47</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1590.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1154.46</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1405.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">967.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1066.11</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">816.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">849.31</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">998.54</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1115.67</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">851.63</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">890.63</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-08-06T06:54:52.9756421Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-4121ae4751874cefa376"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>YnCPep7uMh3ghMrx6ZsEMLanOijFCZpku+ZDNd6rkLw=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_PIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_PIF.xml deleted file mode 100644 index c702eacfe3fe22f0436e6dd6bd9c083193147c5c..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_PIF.xml +++ /dev/null @@ -1,539 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-04fd187f166a4d89aa84"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>700</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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> - <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"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Generic primary bus 41 Engine</Model> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>VectoEngine x.y</AppVersion> - <Displacement>7700</Displacement> - <RatedSpeed>2200</RatedSpeed> - <RatedPower>220000</RatedPower> - <MaxEngineTorque>1100</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>700</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> - <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> - <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> - <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> - <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> - <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> - <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> - <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> - <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> - <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> - <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <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-P</TransmissionType> - <Gears xsi:type="TransmissionGearsPIFType"> - <Gear number="1"> - <Ratio>1.350</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="2"> - <Ratio>1.000</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="3"> - <Ratio>0.730</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - </Gears> - </Data> - </Transmission> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic primary bus 41 AxleGear</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>5.800</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart_ATP"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>kHJvKjlgsdqfXPm+aJHs0fEPPIvyfee8L/qYnXiXGIk=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-26e06589d2d34d69b6e8"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>rnrmrt3ib/vuMfdKNkVBq+ozl8ry6fjKxPPixWyNm8E=</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">22.31983</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1636.09</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">26.95463</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1975.83</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">17.92708</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1314.09</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.70502</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1591.02</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.43924</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1131.73</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.60503</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1363.79</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> - <Payload unit="kg">879.90</Payload> - <PassengerCount>12.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.13927</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">963.14</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.79162</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1084.26</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">23.49056</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1721.91</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">28.74258</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">2106.89</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.83855</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1380.91</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">23.12983</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1695.47</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">16.15304</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1184.05</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.66023</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1441.14</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.51319</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">990.55</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.04580</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1102.89</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.27604</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">826.56</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.75632</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">861.76</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.03138</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1028.53</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.76592</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1155.67</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.77104</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">862.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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.34058</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">904.59</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-08-06T07:05:05.6205328Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-04fd187f166a4d89aa84"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>y9M45uKl0ouxPZO+eYYCoXEWY2s6S/JlM+Kz8MFVJeg=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..2e2d5f6e986c980bc220fdd7a75b63ec16449af7 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml @@ -0,0 +1,543 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-04fd187f166a4d89aa84"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>220000</RatedPower> + <MaxEngineTorque>1100</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66"/> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83"/> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44"/> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29"/> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58"/> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88"/> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11"/> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76"/> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36"/> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60"/> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66"/> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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-P</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <Gear number="1"> + <Ratio>1.350</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>0.730</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>5.800</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <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-PrimaryBus_nonSmart_ATP"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>kHJvKjlgsdqfXPm+aJHs0fEPPIvyfee8L/qYnXiXGIk=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-26e06589d2d34d69b6e8"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>rnrmrt3ib/vuMfdKNkVBq+ozl8ry6fjKxPPixWyNm8E=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">22.31983</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1636.09</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">26.95463</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1975.83</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.92708</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1314.09</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.70502</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1591.02</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.43924</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1131.73</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.60503</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1363.79</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> + <Payload unit="kg">879.90</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.13927</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">963.14</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.79162</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1084.26</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.49056</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1721.91</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">28.74258</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">2106.89</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.83855</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1380.91</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">23.12983</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1695.47</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.15304</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1184.05</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.66023</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1441.14</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.51319</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">990.55</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.04580</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1102.89</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.27604</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">826.56</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.75632</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">861.76</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.03138</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1028.53</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.76592</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1155.67</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.77104</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">862.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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.34058</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">904.59</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-08-06T07:05:05.6205328Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-04fd187f166a4d89aa84"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>y9M45uKl0ouxPZO+eYYCoXEWY2s6S/JlM+Kz8MFVJeg=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart.xml index 4926386f464f356ea4a1c953e95ac209e19d91c3..4219c8578373897a6e02b6a4b4c16853defb697d 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> @@ -2189,17 +2189,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart_AT-P.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart_AT-P.xml index 5cfbd144c1a239d768a639c907e2984e88bbd27f..8c295412cb80623fa03bb0ed9b4939c061e7cd3e 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart_AT-P.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_nonSmart_AT-P.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart_ATP" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> @@ -1702,17 +1702,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> 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 new file mode 100644 index 0000000000000000000000000000000000000000..8280da3de3b4f002e45489138af883e7966cdf0c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml @@ -0,0 +1,577 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-584956b9e3ab43acaf97"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model Primary</Model> + <VIN>VEH-1234567890_SmartPS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>6x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer> + <Model>Bus 6x2 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>1800</RatedSpeed> + <RatedPower>325032</RatedPower> + <MaxEngineTorque>2134</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer Primary</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox Primary</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear Primary</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="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</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-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KyEUoR+pb/fnqRuLFC53Ft+RhDf+ABAdd1xxsMwH7io=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-77ea5cb9575a4fe3b401"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>jIFYjdZEqVpxFinMBSoXvJg8Wl3OjE09xRAnjEgnhhY=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1290.13</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P33DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16239.55</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>14.46</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.82464</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">866.77</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P34SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19298.40</TotalVehicleMass> + <Payload unit="kg">1448.40</Payload> + <PassengerCount>20.40</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.44807</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">985.77</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P34DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:16:48.0278823Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-584956b9e3ab43acaf97"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GPW3cyV+VQrDzyGeryMrakfOlD+YUWtdaHz/C2lhxJQ=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.xml index 78890696628598ea8967c20ab63906412ff2318c..c4bea06ee54b9f6e8dd1d963240706be853b5966 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_SmartPS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model Primary</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3338,19 +3338,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41.xml index f0e808811ad47fc03d748711543f277ff27d1da8..95cf175667d01c6c17614c00c3e49ddafcd1b2c2 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41.xml @@ -1,29 +1,38 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +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="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II+III</ClassBus> - <VehicleCode>CA</VehicleCode> - <CurbMassChassis>8300</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <NgTankSystem>Compressed</NgTankSystem> - <RegisteredPassengers> - <LowerDeck>30</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>30</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> + <BodyworkCode>CA</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>11.830</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.120</EntranceHeight> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -44,28 +53,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>false</Interiorlights> <Dayrunninglights>false</Dayrunninglights> - <Headlights>false</Headlights> <Positionlights>false</Positionlights> <Brakelights>false</Brakelights> - <Interiorlights>false</Interiorlights> + <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>7</SystemConfiguration> - <CompressorType> - <DriverAC>2-stage</DriverAC> - <PassengerAC>4-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 4-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41_mixed.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41_mixed.xml index 8c091737ec932513d11573fd7555e8f192b078db..3379693363ea865a1587972bd5c7c309716a4eb5 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41_mixed.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_41_mixed.xml @@ -1,29 +1,36 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890_mixed" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +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_mixed" xsi:type="InterimStageInputType" > <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890_m</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II+III</ClassBus> - <VehicleCode>CA</VehicleCode> - <CurbMassChassis>8300</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <NgTankSystem>Compressed</NgTankSystem> - <RegisteredPassengers> - <LowerDeck>30</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II+III</ClassBus> + <NumberPassengersLowerDeck>30</NumberPassengersLowerDeck> + <NumberPassengersUpperDeck>0</NumberPassengersUpperDeck> + <BodyworkCode>CA</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>11.830</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.120</EntranceHeight> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> <DoorDriveTechnology>mixed</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -44,28 +51,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>false</Interiorlights> <Dayrunninglights>false</Dayrunninglights> - <Headlights>false</Headlights> <Positionlights>false</Positionlights> <Brakelights>false</Brakelights> - <Interiorlights>false</Interiorlights> + <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>7</SystemConfiguration> - <CompressorType> - <DriverAC>2-stage</DriverAC> - <PassengerAC>4-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_42.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_42.xml index 5da70c06230dbff9081f27c947726958e9e754e3..102d148e65ba6cd3cae6feb7905a68470e9cae07 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_42.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-completed_heavyBus_42.xml @@ -1,28 +1,35 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +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="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>I+II</ClassBus> - <VehicleCode>CE</VehicleCode> - <CurbMassChassis>8300</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>30</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> - <LowEntry>true</LowEntry> - <HeightIntegratedBody>3.000</HeightIntegratedBody> - <VehicleLength>11.830</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.120</EntranceHeight> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <ClassBus>I+II</ClassBus> + <NumberPassengersLowerDeck>30</NumberPassengersLowerDeck> + <NumberPassengersUpperDeck>0</NumberPassengersUpperDeck> + <BodyworkCode>CE</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -43,28 +50,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>false</Interiorlights> <Dayrunninglights>false</Dayrunninglights> - <Headlights>false</Headlights> <Positionlights>false</Positionlights> <Brakelights>false</Brakelights> - <Interiorlights>false</Interiorlights> + <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>7</SystemConfiguration> - <CompressorType> - <DriverAC>2-stage</DriverAC> - <PassengerAC>4-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml deleted file mode 100644 index e24f678131a7411aa05c1a96c3e96a29ab0ce202..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml +++ /dev/null @@ -1,546 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-65de7efe65ee4b4cac4c"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>600</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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>true</adas:EngineStopStart> - <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> - <adas:EcoRollWithEngineStop>true</adas:EcoRollWithEngineStop> - <adas:PredictiveCruiseControl>none</adas: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" /> - <tcl:Entry gear="12" maxTorque="1900" /> - </TorqueLimits> - <Components xsi:type="VehicleComponentsPIFType"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <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> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</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="TransmissionDataPIFType"> - <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"> - <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="AxlegearDataPIFType"> - <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> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Electrically driven - Electronically controlled</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Full electric steering gear</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>4C7sfmETI+wy6CMQq+MZK1MO8SRxRiZu+3rQ3GUfko4=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-bc20a2dbfee54190ae90"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>+0Hg3i3G7tHlYHM2JxapJje6Ca3nE5EXZVTNdgkeyMo=</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">17.81185</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">998.21</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">21.37501</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1197.89</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">14.37972</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">805.86</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">17.36588</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">973.21</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">12.72559</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">713.16</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">15.58182</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">873.23</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">18.89946</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1059.16</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">22.89746</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1283.21</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">15.23384</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">853.73</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">18.56793</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1040.58</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.41841</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">751.99</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">16.61045</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">930.88</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P32SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">14029.90</TotalVehicleMass> - <Payload unit="kg">879.90</Payload> - <PassengerCount>12.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="NG CI"> - <EnergyConsumption unit="MJ/km">10.88604</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">610.07</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.24260</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">686.10</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.63290</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">483.80</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.09409</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">509.65</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P32DD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">14452.35</TotalVehicleMass> - <Payload unit="kg">1052.35</Payload> - <PassengerCount>14.82</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <Fuel type="NG CI"> - <EnergyConsumption unit="MJ/km">11.25244</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">630.61</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">12.91147</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">723.58</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.09497</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">509.70</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.65550</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">541.11</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-05-27T08:24:31.2197913Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-65de7efe65ee4b4cac4c"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>MgGDNMXm8x2CI30U7X27ZFWn9cqjTnylZGA0nHA6xtM=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..b2eb57ba5297be0c47006675b087f065cf2720e9 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml @@ -0,0 +1,550 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-65de7efe65ee4b4cac4c"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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>true</adas:EngineStopStart> + <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop> + <adas:EcoRollWithEngineStop>true</adas:EcoRollWithEngineStop> + <adas:PredictiveCruiseControl>none</adas: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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <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> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</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="TransmissionDataPIFType"> + <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"> + <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="AxlegearDataPIFType"> + <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="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Electrically driven - Electronically controlled</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> + <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-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>4C7sfmETI+wy6CMQq+MZK1MO8SRxRiZu+3rQ3GUfko4=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-bc20a2dbfee54190ae90"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>+0Hg3i3G7tHlYHM2JxapJje6Ca3nE5EXZVTNdgkeyMo=</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">17.81185</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">998.21</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">21.37501</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1197.89</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">14.37972</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">805.86</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">17.36588</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">973.21</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">12.72559</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">713.16</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">15.58182</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">873.23</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">18.89946</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1059.16</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">22.89746</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1283.21</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">15.23384</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">853.73</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">18.56793</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1040.58</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.41841</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">751.99</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">16.61045</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">930.88</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14029.90</TotalVehicleMass> + <Payload unit="kg">1075.44</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">10.88604</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">610.07</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.24260</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">686.10</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.63290</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">483.80</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.09409</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">509.65</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P32DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">14452.35</TotalVehicleMass> + <Payload unit="kg">1052.35</Payload> + <PassengerCount>14.82</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="NG CI"> + <EnergyConsumption unit="MJ/km">11.25244</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">630.61</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">12.91147</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">723.58</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.09497</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">509.70</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.65550</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">541.11</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:24:31.2197913Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-65de7efe65ee4b4cac4c"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>MgGDNMXm8x2CI30U7X27ZFWn9cqjTnylZGA0nHA6xtM=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml index f663ecd741dd7f0e49a33ed3a01d2e1d8eff7067..9ee432111624b9ec7e8b3b1998c51b91c3c97e02 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,17 +3265,18 @@ <Technology axleNumber="1">Full electric steering gear</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/primary_heavyBus group P39_40_nonSmart_ESS.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/primary_heavyBus group P39_40_nonSmart_ESS.xml index 61bf46efb1f83fcde569baac64b9637f62908cf4..24c1114427f0b957eda716e1e443eac0a4878376 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/primary_heavyBus group P39_40_nonSmart_ESS.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/primary_heavyBus group P39_40_nonSmart_ESS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart-ESS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>8x2</AxleConfiguration> <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> @@ -1534,17 +1534,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-completed_heavyBus.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-completed_heavyBus.xml index e850655fee89cc93344757252c6ea62128749a92..f00a8112fe4e09d458a0badf8177bf8fa22a0d60 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-completed_heavyBus.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-completed_heavyBus.xml @@ -1,28 +1,35 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="CompletedVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +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="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> - <Model>Sample Bus Model</Model> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> - <LegislativeClass>M3</LegislativeClass> - <ClassBus>II+III</ClassBus> - <VehicleCode>CA</VehicleCode> - <CurbMassChassis>8300</CurbMassChassis> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass> - <RegisteredPassengers> - <LowerDeck>50</LowerDeck> - <UpperDeck>0</UpperDeck> - </RegisteredPassengers> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <ClassBus>II+III</ClassBus> + <NumberPassengersLowerDeck>50</NumberPassengersLowerDeck> + <NumberPassengersUpperDeck>0</NumberPassengersUpperDeck> + <BodyworkCode>CA</BodyworkCode> <LowEntry>true</LowEntry> - <HeightIntegratedBody>2.700</HeightIntegratedBody> - <VehicleLength>11.830</VehicleLength> - <VehicleWidth>2.550</VehicleWidth> - <EntranceHeight>0.120</EntranceHeight> + <HeightIntegratedBody>2700</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> - <v2.6:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> <Manufacturer>Generic Manufacturer</Manufacturer> <Model>Generic Model</Model> @@ -43,28 +50,26 @@ <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </Signature> - </v2.6:AirDrag> + </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> <LEDLights> + <Interiorlights>false</Interiorlights> <Dayrunninglights>false</Dayrunninglights> - <Headlights>false</Headlights> <Positionlights>false</Positionlights> <Brakelights>false</Brakelights> - <Interiorlights>false</Interiorlights> + <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>7</SystemConfiguration> - <CompressorType> - <DriverAC>2-stage</DriverAC> - <PassengerAC>4-stage</PassengerAC> - </CompressorType> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> <DoubleGlazing>true</DoubleGlazing> - <HeatPump>false</HeatPump> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> </HVAC> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus.xml index 605186f44d6a47ace440e83b21b8a77e11ea9fdb..095050c4686fd49b8b8fce67577fd27ec30545e0 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,17 +3265,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES.xml index 4d3b9df2bb769945c332ff6d29686a87306b1b20..680613a7bd1119fdda7e5674722c44e96d1d81be 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES.xml @@ -1,14 +1,14 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_SmartES" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartES</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> + <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> @@ -3265,19 +3265,27 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>true</SmartElectrics> - <MaxAlternatorPower>35000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>730</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES_PS.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES_PS.xml index 7800c9f70e3daf6051140151d5c3fe1c817b99ac..f7452fd6df79b0c1c660e0731c03cac1a098aacf 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES_PS.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartES_PS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_SmartES-PS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartES-PS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,19 +3265,27 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>true</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>730</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>50</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartPS.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartPS.xml index d8a7313b8c0947b32ac2c56c6409105a3204b26d..510a78327853b541a61a6d9487c145292fc8ced1 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartPS.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_SmartPS.xml @@ -1,14 +1,14 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_SmartPS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> + <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> @@ -3265,19 +3265,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart.xml index 605186f44d6a47ace440e83b21b8a77e11ea9fdb..e31a44e7d3507c8bb177972986a14d1dfca04794 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,17 +3265,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml index 944965bb87f2e4b3a65e708e3f87c70adb3735de..f60a12e48e37cf148783cea1ae0e0909cdf8b0b9 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart-ESS" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,17 +3265,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/VTPMode/HeavyBus/primary_heavyBus group 42_non_Smart.xml b/VectoCore/VectoCoreTest/TestData/Integration/VTPMode/HeavyBus/primary_heavyBus group 42_non_Smart.xml index 6191bcc6d53b1535284af13da74dab9b3b1fb3f6..3b8a9919d3f236fd6510b210ddfb380664cc7f07 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/VTPMode/HeavyBus/primary_heavyBus group 42_non_Smart.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/VTPMode/HeavyBus/primary_heavyBus group 42_non_Smart.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3338,19 +3338,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration.vsum b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration.vsum new file mode 100644 index 0000000000000000000000000000000000000000..9739a6c16b86fdf56a57d9ea42fccc65eb704dc7 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration.vsum @@ -0,0 +1,11 @@ +# VECTO-DEV 0.7.3.2247-DEV - 21.05.2021 09:51 +Job [-],Input File [-],Cycle [-],Status,Vehicle manufacturer [-],VIN number,Vehicle model [-],HDV CO2 vehicle class [-],Corrected Actual Curb Mass [kg],Loading [kg],Passenger count [-],Total vehicle mass [kg],Engine manufacturer [-],Engine model [-],Engine fuel type [-],Engine rated power [kW],Engine idling speed [rpm],Engine rated speed [rpm],Engine displacement [ccm],Engine WHTCUrban,Engine WHTCRural,Engine WHTCMotorway,Engine BFColdHot,Engine CFRegPer,Engine actual CF,Vehicle fuel type [-],AirDrag model [-],Declared CdxA [m²],CdxA [m²],Sleeper cab [-],Declared RRC axle 1 [-],Declared FzISO axle 1 [N],Declared RRC axle 2 [-],Declared FzISO axle 2 [N],Declared RRC axle 3 [-],Declared FzISO axle 3 [N],Declared RRC axle 4 [-],Declared FzISO axle 4 [N],total RRC [-],weighted RRC w/o trailer [-],r_dyn [m],Number axles vehicle driven [-],Number axles vehicle non-driven [-],Number axles trailer [-],Gearbox manufacturer [-],Gearbox model [-],Gearbox type [-],Gear ratio first gear [-],Gear ratio last gear [-],Torque converter manufacturer [-],Torque converter model [-],Retarder manufacturer [-],Retarder model [-],Retarder type [-],Angledrive manufacturer [-],Angledrive model [-],Angledrive ratio [-],Axle manufacturer [-],Axle model [-],Axle gear ratio [-],Auxiliary technology STP [-],Auxiliary technology FAN [-],Auxiliary technology AC [-],Auxiliary technology PS [-],Auxiliary technology ES [-],ShiftStrategy,ADAS technology combination [-],PTOShaftsGearWheels,REESS Capacity,Cargo Volume [m³],time [s],distance [km],speed [km/h],altitudeDelta [m],FC-Map [g/h],FC-Map [g/km],FC-NCVc [g/h],FC-NCVc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],FC-ESS [g/h],FC-ESS [g/km],FC-ESS_Corr [g/h],FC-ESS_Corr [g/km],FC-BusAux_PS_Corr [g/h],FC-BusAux_PS_Corr [g/km],FC-BusAux_ES_Corr [g/h],FC-BusAux_ES_Corr [g/km],FC-WHR_Corr [g/h],FC-WHR_Corr [g/km],FC-BusAux_AuxHeater [g/h],FC-BusAux_AuxHeater [g/km],FC-BusAux_AuxHeater_Corr [g/h],FC-BusAux_AuxHeater_Corr [g/km],FC-Final [g/h],FC-Final [g/km],FC-Final [l/100km],FC-Final [l/100tkm],FC-Final [l/100m³km],FC-Final [l/100Pkm],k_vehline [g/kWh],k_engline [g/kWh],CO2 [g/km],CO2 [g/tkm],CO2 [g/m³km],CO2 [g/Pkm],P_wheel_in [kW],P_wheel_in_pos [kW],P_fcmap [kW],P_fcmap_pos [kW],E_fcmap_pos [kWh],E_fcmap_neg [kWh],E_powertrain_inertia [kWh],E_aux_FAN [kWh],E_aux_STP [kWh],E_aux_sum [kWh],E_aux_el(HV) [kWh],E_clutch_loss [kWh],E_tc_loss [kWh],E_shift_loss [kWh],E_gbx_loss [kWh],E_ret_loss [kWh],E_angle_loss [kWh],E_axl_loss [kWh],E_brake [kWh],E_vehi_inertia [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],BusAux PS air consumed [Nl],BusAux PS air generated [Nl],E_PS_compressorOff [kWh],E_PS_compressorOn [kWh],E_BusAux_ES_consumed [kWh],E_BusAux_ES_generated [kWh],ΔE_BusAux_Bat [kWh],E_BusAux_PS_corr [kWh],E_BusAux_ES_mech_corr [kWh],E_BusAux_HVAC_mech [kWh],E_BusAux_HVAC_el [kWh],E_BusAux_AuxhHeater [kWh],E_WHR_el [kWh],E_WHR_mech [kWh],E_ice_start [kWh],ice_starts [-],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],AccelerationTimeShare [%],DecelerationTimeShare [%],CruiseTimeShare [%],max. speed [km/h],max. acc [m/s²],max. dec [m/s²],n_eng_avg [rpm],n_eng_max [rpm],gear shifts [-],StopTimeShare [%],ICE max. Load time share [%],ICE off time share [%],CoastingTimeShare [%],BrakingTimeShare [%],a_avg_acc,Engine certification number,Average engine efficiency [-],Torque converter certification option,TorqueConverter certification number,Average torque converter efficiency w/o lockup [-],Average torque converter efficiency with lockup [-],Gearbox certification option,Gearbox certification number,Average gearbox efficiency [-],Retarder certification option,Retarder certification number,Angledrive certification option,Angledrive certification number,Average angledrive efficiency [-],Axlegear certification method,Axlegear certification number,Average axlegear efficiency [-],AirDrag certification number,AirDrag certification option,Gear 0 TimeShare [%],Gear 1 TimeShare [%],Gear 2 TimeShare [%],Gear 3 TimeShare [%],Gear 4 TimeShare [%],Gear 5 TimeShare [%],Gear 6 TimeShare [%] +1-0,VEH-8ed9de9562b44fd8b856,Interurban.vdri,Success,Some Manufacturer,VEH-1234567890,Sample Bus Model,32b,8300.0000,1058.5088,14.908575,9358.5088,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,0348485",Diesel CI,Generic Model,6.3400,6.3400,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00644681704423115,0.00644681704423115,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"7 (non_R_744_4_stage, non_R_744_2_stage)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,12817.8502,123.5900,34.7113,1.3106,8305.8968,239.2852,8305.8968,239.2852,8595.3449,247.6240,8595.3449,247.6240,8595.3449,247.6240,8501.9220,244.9325,8501.9220,244.9325,8501.9220,244.9325,0.0000,0.0000,8501.9220,244.9325,8501.9220,244.9325,29.2981,27.6787,,1.9652,232.5656,183.5391,766.6388,724.2631,,51.4227,15.4633,26.2126,39.3269,40.7038,144.9266,4.9024,0.0000,7.1210,2.0184,25.4737,0.0000,0.0000,0.1207,1.1546,11.0976,8.1684,0.0000,17.3940,22.7125,0.0000,34.7473,20.3048,0.0053,9822.4238,21234.7006,1.5746,5.0063,7.4427,10.6325,0.0000,-1.8123,0.0000,0.6955,1.9833,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.7138,-0.7229,18.1350,17.7581,50.7755,85.0000,1.0000,0.9400,1178.2155,2259.9238,913.0000,13.3314,5.5934,0.0000,0.0000,17.5144,0.6574,,0.399251564330983,Standard values,,0.99902428182543,0.913534455455257,Standard values,,0.915847700773797,Standard values,,,,,Standard values,,0.875661847626441,e12*0815/8051*2017/05E0000*00,Measured,14.8102,5.4163,5.6466,15.0517,21.4414,17.7497,19.8841 +1-1,VEH-8ed9de9562b44fd8b856,Interurban.vdri,Success,Generic Truck Manufacturer,VEH-1234567890_nonSmart,Generic Model,P32SD,13150.0000,1075.4370,15.147,14225.4370,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,0348485",Diesel CI,,3.4500,3.4500,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.0061824334364119,0.0061824334364119,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"6 (non_R_744_2_stage, none)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,12921.8960,123.5900,34.4318,1.3106,9579.6110,278.2200,9579.6110,278.2200,9913.4461,287.9155,9913.4461,287.9155,9913.4461,287.9155,9802.1996,284.6846,9802.1996,284.6846,9802.1996,284.6846,0.0000,0.0000,9802.1996,284.6846,9802.1996,284.6846,34.0532,31.6645,,2.2482,229.2541,186.0467,891.0627,828.5588,,58.8277,13.6622,32.2871,44.7764,46.6921,167.5973,6.8761,-0.0006,7.1788,2.0449,25.8862,0.0000,0.0000,0.3317,1.6835,13.6051,8.1006,0.0000,17.8545,45.9229,0.0006,19.4344,29.5985,0.0060,10634.3311,24127.5500,1.6709,5.5711,7.2366,10.3380,0.0000,-2.1463,0.0000,0.7534,2.2190,0.0000,0.0000,0.0000,0.0000,0.0000,0.0001,0.6578,-0.7160,19.2257,17.6180,49.9322,86.5000,1.0000,1.9398,1201.9875,2353.7884,919.0000,13.2241,11.8051,0.0000,0.0000,17.0948,0.5601,,0.397093918570611,Standard values,,0.997746369278747,0.807438962143271,Standard values,,0.913823642202997,Standard values,,,,,Standard values,,0.902977861638706,,Standard values,14.7022,5.6412,6.4592,15.5898,22.8465,16.1885,18.5726 +1-2,VEH-8ed9de9562b44fd8b856,Interurban.vdri,Success,Some Manufacturer,VEH-1234567890,Sample Bus Model,32b,8300.0000,2130.0000,30,10430.0000,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,0348485",Diesel CI,Generic Model,6.3400,6.3400,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00637731075673822,0.00637731075673822,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"7 (non_R_744_4_stage, non_R_744_2_stage)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,12841.0204,123.5900,34.6486,1.3106,8760.5109,252.8385,8760.5109,252.8385,9065.8015,261.6495,9065.8015,261.6495,9065.8015,261.6495,8968.1018,258.8298,8968.1018,258.8298,8968.1018,258.8298,0.0000,0.0000,8968.1018,258.8298,8968.1018,258.8298,30.9605,14.5354,,1.0320,233.0341,185.2902,810.1372,380.3461,,27.0046,15.9696,28.1687,41.5169,42.9565,153.2236,5.1349,0.0000,7.1339,2.0220,26.5194,0.0000,0.0000,0.1598,1.2509,11.8095,8.1494,0.0000,17.5302,26.9611,0.0000,34.5711,22.3856,0.0059,10000.3558,21845.4647,1.5760,5.1041,7.7803,11.1148,0.0000,-1.8808,0.0000,1.1446,2.3110,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.7018,-0.7200,18.3651,17.7507,50.5769,85.8619,1.0000,0.9400,1178.9158,2254.1075,905.0000,13.3074,6.9932,0.0000,0.0000,17.4122,0.6341,,0.399481849418415,Standard values,,0.998783381709677,0.888586446960969,Standard values,,0.915626140807778,Standard values,,,,,Standard values,,0.884329979085841,e12*0815/8051*2017/05E0000*00,Measured,14.7851,5.4135,5.8695,14.8992,21.6731,17.5902,19.7693 +1-3,VEH-8ed9de9562b44fd8b856,Interurban.vdri,Success,Generic Truck Manufacturer,VEH-1234567890_nonSmart,Generic Model,P32SD,13150.0000,3519.6120,49.572,16669.6120,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,0348485",Diesel CI,,3.4500,3.4500,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00608518045554018,0.00608518045554018,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"6 (non_R_744_2_stage, none)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,13001.3490,123.5900,34.2214,1.3106,10560.5789,308.5960,10560.5789,308.5960,10928.5992,319.3501,10928.5992,319.3501,10928.5992,319.3501,10810.8996,315.9108,10810.8996,315.9108,10810.8996,315.9108,0.0000,0.0000,10810.8996,315.9108,10810.8996,315.9108,37.7884,10.7365,,0.7623,228.6187,186.6465,988.8007,280.9403,,19.9468,14.7495,36.5746,49.6697,51.7367,186.8462,7.4649,-0.0012,7.2230,2.0575,27.9970,0.0000,0.0000,0.4474,1.9284,15.2751,8.0446,0.0000,18.1325,56.3418,0.0016,19.1431,34.1370,-0.0142,11070.0887,25331.4735,1.8635,5.9672,7.6272,10.8960,0.0000,-2.2774,0.0000,1.8534,2.5787,0.0000,0.0000,0.0000,0.0000,0.0000,0.0017,0.6242,-0.7177,20.1190,17.2680,49.4697,86.5000,1.0000,2.2289,1241.5241,2348.9795,891.0000,13.1433,16.1595,0.0000,0.0000,16.7880,0.5133,,0.399124603360318,Standard values,,0.997289827671648,0.780603763723825,Standard values,,0.913529123404111,Standard values,,,,,Standard values,,0.913022638218443,,Standard values,14.6096,5.8754,9.1425,14.6997,23.9821,16.1526,15.5382 +1-4,VEH-8ed9de9562b44fd8b856,Coach.vdri,Success,Some Manufacturer,VEH-1234567890,Sample Bus Model,32b,8300.0000,1077.7544,15.17964,9377.7544,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,009422",Diesel CI,Generic Model,6.3400,6.3400,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00644549276460333,0.00644549276460333,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"7 (non_R_744_4_stage, non_R_744_2_stage)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,15146.0276,275.1760,65.4055,0.8148,16563.2181,253.2389,16563.2181,253.2389,16719.2767,255.6249,16719.2767,255.6249,16719.2767,255.6249,16693.8557,255.2362,16693.8557,255.2362,16693.8557,255.2362,0.0000,0.0000,16693.8557,255.2362,16693.8557,255.2362,30.5307,28.3280,,2.0113,244.1615,183.1941,798.8894,741.2537,,52.6290,51.0541,55.5348,84.3741,85.1362,358.1874,3.2062,0.0000,8.4145,2.1326,30.6697,0.0000,0.0000,0.0206,0.2657,25.5061,28.1717,0.0000,50.9950,4.8907,0.0000,169.5004,45.2958,0.0001,10122.2487,13709.8861,3.5502,5.9077,9.3695,13.3849,0.0000,-0.5838,0.0000,0.8300,2.3436,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.4293,-0.5293,6.3700,5.1384,85.8242,102.5000,1.0000,2.7788,1581.5355,2353.7934,157.0000,2.6674,10.2031,0.0000,0.0000,4.0603,0.1975,,0.429310196023871,Standard values,,0.999937685311305,0.885678562479822,Standard values,,0.924231390036065,Standard values,,,,0,Standard values,,0.83587934120268,e12*0815/8051*2017/05E0000*00,Measured,2.8246,1.3316,0.6657,11.4741,13.1606,8.0139,62.5295 +1-5,VEH-8ed9de9562b44fd8b856,Coach.vdri,Success,Generic Truck Manufacturer,VEH-1234567890_nonSmart,Generic Model,P32SD,13150.0000,1094.9904,15.4224,14244.9904,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,009422",Diesel CI,,3.4500,3.4500,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00618158427943143,0.00618158427943143,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"6 (non_R_744_2_stage, none)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,15260.0325,275.1760,64.9169,0.8148,15167.1563,233.6397,15167.1563,233.6397,15310.0613,235.8410,15310.0613,235.8410,15310.0613,235.8410,15241.0519,234.7780,15241.0519,234.7780,15241.0519,234.7780,0.0000,0.0000,15241.0519,234.7780,15241.0519,234.7780,28.0835,25.6472,,1.8210,229.4290,178.0834,734.8551,671.1064,,47.6486,37.8900,49.7018,74.6115,76.5670,324.5596,8.2892,-0.0008,8.4778,2.1606,31.7478,0.0000,0.0000,0.0534,0.4393,23.8909,28.0713,0.0000,50.6903,21.3687,0.0011,94.6267,65.9876,-0.0037,10322.8199,20394.6601,3.7216,7.1714,9.1266,13.0380,0.0000,-1.6426,0.0000,0.9000,2.6205,0.0000,0.0000,0.0000,0.0000,0.0000,0.0003,0.3738,-0.4895,7.3823,5.6055,84.3648,102.5000,1.0000,2.7105,1605.7077,2353.7884,187.0000,2.6474,14.4408,0.0000,0.0000,3.8837,0.1548,,0.421637488548777,Standard values,,0.999821111621366,0.76920357603673,Standard values,,0.923604551729625,Standard values,,,,,Standard values,,0.834928921279073,,Standard values,2.8029,1.3747,2.1903,11.4035,14.1594,9.4904,58.5788 +1-6,VEH-8ed9de9562b44fd8b856,Coach.vdri,Success,Some Manufacturer,VEH-1234567890,Sample Bus Model,32b,8300.0000,2130.0000,30,10430.0000,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,009422",Diesel CI,Generic Model,6.3400,6.3400,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00637731075673822,0.00637731075673822,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"7 (non_R_744_4_stage, non_R_744_2_stage)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,15197.6227,275.1760,65.1835,0.8148,16920.5314,259.5832,16920.5314,259.5832,17079.9566,262.0290,17079.9566,262.0290,17079.9566,262.0290,17048.1297,261.5407,17048.1297,261.5407,17048.1297,261.5407,0.0000,0.0000,17048.1297,261.5407,17048.1297,261.5407,31.2848,14.6877,,1.0428,243.0648,183.1144,818.6225,384.3298,,27.2874,51.7195,57.1234,85.7708,86.6937,365.9826,3.8958,-0.0009,8.4431,2.1398,31.9813,0.0000,0.0000,0.0258,0.3479,26.2313,28.0630,0.0000,51.0805,6.4548,0.0008,168.4929,49.8451,-0.0020,10183.5406,14693.0157,3.5517,6.0671,9.7850,13.9786,0.0000,-0.7337,0.0000,1.3526,2.7352,0.0000,0.0000,0.0000,0.0000,0.0000,0.0002,0.4156,-0.5103,6.6009,5.3621,85.3786,102.5000,1.0000,2.7426,1578.3871,2353.7932,173.0000,2.6583,13.3860,0.0000,0.0000,3.9944,0.1628,,0.427932406139085,Standard values,,0.99992349134787,0.867669830655071,Standard values,,0.92401479165345,Standard values,,,,,Standard values,,0.841153733013261,e12*0815/8051*2017/05E0000*00,Measured,2.8161,1.3271,0.7295,11.5919,13.1697,7.7246,62.6412 +1-7,VEH-8ed9de9562b44fd8b856,Coach.vdri,Success,Generic Truck Manufacturer,VEH-1234567890_nonSmart,Generic Model,P32SD,13150.0000,2737.4760,38.556,15887.4760,,,Diesel CI,220.0000,700.0000,2200.0000,7700.0000,"1,05","1,02",1,"1,005",1,"1,009422",Diesel CI,,3.4500,3.4500,no,0.0055,31300.0000,0.0063,31300.0000,,,,,0.00611449395690455,0.00611449395690455,0.4922,1,1,0,Generic Gearbox Manufacturer,AT 6 Gear,ATSerial,3.3640,0.6150,,,,,Secondary Retarder,N/A,N/A,N/A,,,6.5000,Variable displacement elec. controlled,Hydraulic driven - Constant displacement pump,"6 (non_R_744_2_stage, none)",Large Supply 2-stage - none,Conventional,AT - EffShift,0,,,0.0000,15350.2204,275.1760,64.5355,0.8148,15793.7947,244.7305,15793.7947,244.7305,15942.6039,247.0363,15942.6039,247.0363,15942.6039,247.0363,15870.2281,245.9148,15870.2281,245.9148,15870.2281,245.9148,0.0000,0.0000,15870.2281,245.9148,15870.2281,245.9148,29.4157,10.7455,,0.7629,227.6127,178.1603,769.7134,281.1763,,19.9635,39.0542,52.6702,77.6174,79.7137,339.8953,8.9388,-0.0058,8.5279,2.1734,33.5534,0.0000,0.0000,0.0633,0.5710,25.1866,27.9110,0.0000,50.8393,27.1442,0.0065,93.8163,72.7923,-0.0899,10427.3948,21037.9172,3.8206,7.3789,9.5892,13.6988,0.0000,-1.7322,0.0000,1.7744,3.0446,0.0000,0.0000,0.0000,0.0000,0.0000,0.0051,0.3864,-0.4845,8.3601,5.6308,83.3772,102.5000,1.0000,2.6847,1614.0726,2353.7973,211.0000,2.6319,16.7125,0.0000,0.0000,3.7649,0.1604,,0.421549367470042,Standard values,,0.999797647409761,0.767229587208716,Standard values,,0.923282865687635,Standard values,,,,,Standard values,,0.84475458536789,,Standard values,2.7853,1.3761,3.2291,11.1124,14.4946,9.8085,57.1941 +#@ SHA256: zFagCksmiyBGxS7W278/G6dZRHtGB0G9rYpwMyC0eIU= 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 new file mode 100644 index 0000000000000000000000000000000000000000..283f53b26f531c059263566c1e11cb9c4f325c73 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml @@ -0,0 +1,654 @@ +<?xml version="1.0" encoding="utf-8"?> +<vif0.1:VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <vif0.1:PrimaryVehicle> + <vif0.1:Data xsi:type="PrimaryVehicleDataType" id="PIF-4121ae4751874cefa376"> + <vif0.1:Vehicle xsi:type="VehiclePIFType"> + <vif0.1:ManufacturerPrimaryVehicle>Generic Truck Manufacturer</vif0.1:ManufacturerPrimaryVehicle> + <vif0.1:ManufacturerAddressPrimaryVehicle>Street, ZIP City</vif0.1:ManufacturerAddressPrimaryVehicle> + <vif0.1:Model>Generic Model</vif0.1:Model> + <vif0.1:VIN>VEH-1234567890_nonSmart</vif0.1:VIN> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:LegislativeCategory>M3</vif0.1:LegislativeCategory> + <vif0.1:ChassisConfiguration>Bus</vif0.1:ChassisConfiguration> + <vif0.1:AxleConfiguration>4x2</vif0.1:AxleConfiguration> + <vif0.1:Articulated>false</vif0.1:Articulated> + <vif0.1:TechnicalPermissibleMaximumLadenMass>28000</vif0.1:TechnicalPermissibleMaximumLadenMass> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:RetarderType>Transmission Output Retarder</vif0.1:RetarderType> + <vif0.1:RetarderRatio>1.000</vif0.1:RetarderRatio> + <vif0.1:AngledriveType>None</vif0.1:AngledriveType> + <vif0.1:ZeroEmissionVehicle>false</vif0.1:ZeroEmissionVehicle> + <vif0.1: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> + </vif0.1:ADAS> + <vif0.1: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" /> + </vif0.1:TorqueLimits> + <vif0.1:Components xsi:type="VehicleComponentsPIFType"> + <vif0.1:Engine> + <vif0.1:Data xsi:type="EngineDataPIFType"> + <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 Engine</vif0.1:Model> + <vif0.1:CertificationNumber>e12*0815/8051*2017/05E0000*00</vif0.1:CertificationNumber> + <vif0.1:Date>2017-02-15T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>VectoEngine x.y</vif0.1:AppVersion> + <vif0.1:Displacement>7700</vif0.1:Displacement> + <vif0.1:RatedSpeed>2200</vif0.1:RatedSpeed> + <vif0.1:RatedPower>220000</vif0.1:RatedPower> + <vif0.1:MaxEngineTorque>1100</vif0.1:MaxEngineTorque> + <vif0.1:WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </vif0.1:WHRType> + <vif0.1:Mode> + <vif0.1:IdlingSpeed>700</vif0.1:IdlingSpeed> + <vif0.1:FullLoadAndDragCurve> + <vif0.1:Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <vif0.1:Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <vif0.1:Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <vif0.1:Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <vif0.1:Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <vif0.1:Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <vif0.1:Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <vif0.1:Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <vif0.1:Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <vif0.1:Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <vif0.1:Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <vif0.1:Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </vif0.1:FullLoadAndDragCurve> + <vif0.1:Fuels> + <vif0.1:FuelType>Diesel CI</vif0.1:FuelType> + </vif0.1:Fuels> + </vif0.1:Mode> + </vif0.1:Data> + </vif0.1:Engine> + <vif0.1:Transmission> + <vif0.1:Data xsi:type="TransmissionDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>AT 6 Gear</vif0.1:Model> + <vif0.1:MainCertificationMethod>Standard values</vif0.1:MainCertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:TransmissionType>APT-S</vif0.1:TransmissionType> + <vif0.1:Gears xsi:type="TransmissionGearsPIFType"> + <vif0.1:Gear number="1"> + <vif0.1:Ratio>3.364</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="2"> + <vif0.1:Ratio>1.909</vif0.1:Ratio> + <vif0.1:MaxTorque>1900</vif0.1:MaxTorque> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="3"> + <vif0.1:Ratio>1.421</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="4"> + <vif0.1:Ratio>1.000</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="5"> + <vif0.1:Ratio>0.720</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + <vif0.1:Gear number="6"> + <vif0.1:Ratio>0.615</vif0.1:Ratio> + <vif0.1:MaxSpeed>2500</vif0.1:MaxSpeed> + </vif0.1:Gear> + </vif0.1:Gears> + </vif0.1:Data> + </vif0.1:Transmission> + <vif0.1:Axlegear> + <vif0.1:Data xsi:type="AxlegearDataPIFType"> + <vif0.1:Manufacturer>Generic Gearbox Manufacturer</vif0.1:Manufacturer> + <vif0.1:Model>Generic primary bus 41 AxleGear</vif0.1:Model> + <vif0.1:CertificationMethod>Standard values</vif0.1:CertificationMethod> + <vif0.1:Date>2017-01-11T11:00:00Z</vif0.1:Date> + <vif0.1:AppVersion>3.0.1</vif0.1:AppVersion> + <vif0.1:LineType>Single portal axle</vif0.1:LineType> + <vif0.1:Ratio>6.500</vif0.1:Ratio> + </vif0.1:Data> + </vif0.1:Axlegear> + <vif0.1:AxleWheels> + <vif0.1:Data xsi:type="AxleWheelsDataPIFType"> + <vif0.1:Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + </vif0.1:Axles> + </vif0.1:Data> + </vif0.1:AxleWheels> + <vif0.1:Auxiliaries> + <vif0.1:Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <vif0.1:Fan> + <vif0.1:Technology>Hydraulic driven - Constant displacement pump</vif0.1:Technology> + </vif0.1:Fan> + <vif0.1:SteeringPump> + <vif0.1:Technology axleNumber="1">Variable displacement elec. controlled</vif0.1:Technology> + </vif0.1:SteeringPump> + <vif0.1:ElectricSystem> + <vif0.1:AlternatorTechnology>conventional</vif0.1:AlternatorTechnology> + <vif0.1:SupplyFromHEVPossible>false</vif0.1:SupplyFromHEVPossible> + </vif0.1:ElectricSystem> + <vif0.1:PneumaticSystem> + <vif0.1:SizeOfAirSupply>Large Supply 2-stage</vif0.1:SizeOfAirSupply> + <vif0.1:CompressorDrive>mechanically</vif0.1:CompressorDrive> + <vif0.1:Clutch>none</vif0.1:Clutch> + <vif0.1:CompressorRatio>1.000</vif0.1:CompressorRatio> + <vif0.1:SmartCompressionSystem>true</vif0.1:SmartCompressionSystem> + <vif0.1:SmartRegenerationSystem>false</vif0.1:SmartRegenerationSystem> + <vif0.1:AirsuspensionControl>electronically</vif0.1:AirsuspensionControl> + <vif0.1:PneumaticSCRReagentDosing>true</vif0.1:PneumaticSCRReagentDosing> + </vif0.1:PneumaticSystem> + <vif0.1:HVAC> + <vif0.1:AdjustableCoolantThermostat>true</vif0.1:AdjustableCoolantThermostat> + <vif0.1:EngineWasteGasHeatExchanger>true</vif0.1:EngineWasteGasHeatExchanger> + </vif0.1:HVAC> + </vif0.1:Data> + </vif0.1:Auxiliaries> + </vif0.1:Components> + </vif0.1:Vehicle> + <vif0.1:InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_nonSmart"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>gi7smqIT9b/iNr6yBm49IkS5ylirBLyHvjZQqlNpzUA=</di:DigestValue> + </di:Reference> + </vif0.1:InputDataSignature> + <vif0.1:ManufacturerRecordSignature> + <di:Reference URI="#RESULT-d5c4bf1b86394fd7b822"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>/z2B3MvXZr1k8vYmINK/6DLaXPreBcwwmHhHsfDvJRo=</di:DigestValue> + </di:Reference> + </vif0.1:ManufacturerRecordSignature> + <vif0.1:Results> + <vif0.1:Status>success</vif0.1:Status> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.73851</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1520.18</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">24.94611</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1828.60</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">16.93598</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1241.44</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">20.36950</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1493.13</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13098.63</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1123.63</vif0.1:Payload> + <vif0.1:PassengerCount>16.52</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.03487</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1102.09</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17593.16</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5618.16</vif0.1:Payload> + <vif0.1:PassengerCount>82.62</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">18.14589</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1330.13</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">12854.90</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">879.90</vif0.1:Payload> + <vif0.1:PassengerCount>12.39</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.90679</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">946.09</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15494.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.34621</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1051.61</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">21.81903</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1599.38</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Heavy Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">26.59833</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1949.71</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">17.82311</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1306.47</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Urban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">21.69768</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1590.49</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">13543.34</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1193.34</vif0.1:Payload> + <vif0.1:PassengerCount>17.55</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.74932</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1154.46</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P31DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Suburban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">18316.69</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">5966.69</vif0.1:Payload> + <vif0.1:PassengerCount>87.75</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">19.17775</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1405.77</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14225.44</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1075.44</vif0.1:Payload> + <vif0.1:PassengerCount>15.15</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.19757</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">967.41</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16669.61</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3519.61</vif0.1:Payload> + <vif0.1:PassengerCount>49.57</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">14.54412</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1066.11</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14244.99</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1094.99</vif0.1:Payload> + <vif0.1:PassengerCount>15.42</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.13867</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">816.49</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32SD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">15887.48</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">2737.48</vif0.1:Payload> + <vif0.1:PassengerCount>38.56</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.58643</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">849.31</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14662.82</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1262.82</vif0.1:Payload> + <vif0.1:PassengerCount>17.79</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">13.62230</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">998.54</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Interurban</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">17609.41</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">4209.41</vif0.1:Payload> + <vif0.1:PassengerCount>59.29</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">15.22020</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">1115.67</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">14747.01</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">1347.01</vif0.1:Payload> + <vif0.1:PassengerCount>18.97</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">11.61807</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">851.63</vif0.1:CO2> + </vif0.1:Result> + <vif0.1:Result status="success"> + <vif0.1:VehicleGroup>P32DD</vif0.1:VehicleGroup> + <vif0.1:Mission>Coach</vif0.1:Mission> + <vif0.1:SimulationParameters> + <vif0.1:TotalVehicleMass unit="kg">16767.53</vif0.1:TotalVehicleMass> + <vif0.1:Payload unit="kg">3367.53</vif0.1:Payload> + <vif0.1:PassengerCount>47.43</vif0.1:PassengerCount> + <vif0.1:FuelMode>single fuel mode</vif0.1:FuelMode> + </vif0.1:SimulationParameters> + <vif0.1:Fuel type="Diesel CI"> + <vif0.1:EnergyConsumption unit="MJ/km">12.15012</vif0.1:EnergyConsumption> + </vif0.1:Fuel> + <vif0.1:CO2 unit="g/km">890.63</vif0.1:CO2> + </vif0.1:Result> + </vif0.1:Results> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</vif0.1:SimulationToolVersion> + <vif0.1:Date>2020-08-06T06:54:52.9756421Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#PIF-4121ae4751874cefa376"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>YnCPep7uMh3ghMrx6ZsEMLanOijFCZpku+ZDNd6rkLw=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:PrimaryVehicle> + <vif0.1:ManufacturingStage stageCount="2"> + <vif0.1:Data xsi:type="BusManufacturingStageDataType" id="MST-ab066054c1bc431db1e3"> + <vif0.1:HashPreviousStage> + <di:Reference URI="#PIF-4121ae4751874cefa376"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>YnCPep7uMh3ghMrx6ZsEMLanOijFCZpku+ZDNd6rkLw=</di:DigestValue> + </di:Reference> + </vif0.1:HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="VEH-a00526e499f144139792"> + <v2.8:Manufacturer>Some Manufacturer</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Infinite Loop 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2021-05-23T22:00:00Z</v2.8:Date> + <v2.8:Model>Sample Bus Model</v2.8:Model> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>8300</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>18000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:ClassBus>II+III</v2.8:ClassBus> + <v2.8:NumberPassengersLowerDeck>30</v2.8:NumberPassengersLowerDeck> + <v2.8:NumberPassengersUpperDeck>0</v2.8:NumberPassengersUpperDeck> + <v2.8:BodyworkCode>CA</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>11830</v2.8:VehicleLength> + <v2.8:VehicleWidth>2550</v2.8:VehicleWidth> + <v2.8:EntranceHeight>120</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <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> + </Data> + <Signature xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <di:Reference URI="#CabinX23h" 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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>false</v2.8:Interiorlights> + <v2.8:Dayrunninglights>false</v2.8:Dayrunninglights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>false</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>7</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>cooling</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 4-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>0</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>true</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>true</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </vif0.1:Vehicle> + <vif0.1:ApplicationInformation> + <vif0.1:SimulationToolVersion>0.7.3.2247-DEV</vif0.1:SimulationToolVersion> + <vif0.1:Date>2021-05-24T12:44:06.9289488Z</vif0.1:Date> + </vif0.1:ApplicationInformation> + </vif0.1:Data> + <vif0.1:Signature> + <di:Reference URI="#MST-ab066054c1bc431db1e3"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>nOfZudPCG54oOYKKanFSCDOEQpivinYCPj2CqOTwqvE=</di:DigestValue> + </di:Reference> + </vif0.1:Signature> + </vif0.1:ManufacturingStage> +</vif0.1:VectoOutputMultistage> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/vecto_vehicle-components_1.0.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/vecto_vehicle-components_1.0.xml index 25bc6e8f3c541e9046c23f80a75e18e71625b2dd..297781894a7770fe748490850ce1d06aa40783fc 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/vecto_vehicle-components_1.0.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/vecto_vehicle-components_1.0.xml @@ -7,7 +7,7 @@ xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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 E:\QUAM\Workspace\VECTO_DEV_ADAS\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" + xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" > <Vehicle id="VEH-1234567890" xsi:type="VehicleDeclarationType"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBus-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBus-sample.xml index b161fdea75119e288e0ac2d1de2043e366a05809..49ee9ef7852834f924e8f6e1324e980a8541968d 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBus-sample.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBus-sample.xml @@ -1,12 +1,12 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <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> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> @@ -3265,19 +3265,18 @@ <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> - <MaxAlternatorPower>15000</MaxAlternatorPower> - <ElectricStorageCapacity>50</ElectricStorageCapacity> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/Tools/GraphDrawer/bin/Debug/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES-sample.xml similarity index 99% rename from Tools/GraphDrawer/bin/Debug/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml rename to VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES-sample.xml index f663ecd741dd7f0e49a33ed3a01d2e1d8eff7067..5fd281db3d357a09ecd5da29cb90008ce745cf51 100644 --- a/Tools/GraphDrawer/bin/Debug/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES-sample.xml @@ -1,14 +1,14 @@ <?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> - <v2.0:Vehicle id="VEH-PrimaryBus_nonSmart" xsi:type="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> +<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" 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="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> <Manufacturer>Generic Truck Manufacturer</Manufacturer> <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> + <VIN>VEH-1234567890</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> + <Articulated>false</Articulated> <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> @@ -16,9 +16,9 @@ <AngledriveType>None</AngledriveType> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <v2.6:ADAS xsi:type="v2.1:AdvancedDriverAssistantSystemsType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1"> - <EngineStopStart>true</EngineStopStart> + <EngineStopStart>false</EngineStopStart> <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> - <EcoRollWithEngineStop>true</EcoRollWithEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> <PredictiveCruiseControl>none</PredictiveCruiseControl> </v2.6:ADAS> <v2.6:TorqueLimits xsi:type="TorqueLimitsType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> @@ -3259,23 +3259,38 @@ <v2.6:Auxiliaries xsi:type="PrimaryVehicleAuxiliariesComponentDeclarationType"> <Data xsi:type="PrimaryVehicleAuxiliaryDataDeclarationType"> <Fan> - <Technology>Electrically driven - Electronically controlled</Technology> + <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> - <Technology axleNumber="1">Full electric steering gear</Technology> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> - <AlternatorTechnology>default</AlternatorTechnology> - <SmartElectrics>false</SmartElectrics> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>300</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>5</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>30</RatedCapacitance> + <RatedVoltage>3</RatedVoltage> + </Capacitor> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </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> - <AdBlueDosing>true</AdBlueDosing> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> </PneumaticSystem> <HVAC> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml new file mode 100644 index 0000000000000000000000000000000000000000..2be6328a751fdf5bce6fe2abf017c0e7cf0d3bf3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml @@ -0,0 +1,3306 @@ +<?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.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +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="PrimaryVehicleDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6"> + <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> + <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="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </ADAS> + <v2.6:TorqueLimits xsi:type="TorqueLimitsType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Entry gear="6" maxTorque="1800"/> + <Entry gear="1" maxTorque="2500"/> + <Entry gear="12" maxTorque="1900"/> + </v2.6:TorqueLimits> + <Components xsi:type="PrimaryVehicleComponentsDeclarationType"> + <v2.6:Engine xsi:type="v2.0:EngineComponentDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.0:Data id="ENG-gooZah3D" xsi:type="v2.1:EngineDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1"> + <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>2400</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 CI</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="0.00" fuelConsumption="1256.00"/> + <Entry engineSpeed="560.00" torque="200.00" fuelConsumption="3197.00"/> + <Entry engineSpeed="560.00" torque="400.00" fuelConsumption="5295.00"/> + <Entry engineSpeed="560.00" torque="600.00" fuelConsumption="7615.00"/> + <Entry engineSpeed="560.00" torque="800.00" fuelConsumption="9375.00"/> + <Entry engineSpeed="560.00" torque="1000.00" fuelConsumption="11239.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="600.00" torque="-148.00" fuelConsumption="0.00"/> + <Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00"/> + <Entry engineSpeed="600.00" torque="200.00" fuelConsumption="3358.00"/> + <Entry engineSpeed="600.00" torque="400.00" fuelConsumption="5498.00"/> + <Entry engineSpeed="600.00" torque="600.00" fuelConsumption="8101.00"/> + <Entry engineSpeed="600.00" torque="800.00" fuelConsumption="10014.00"/> + <Entry engineSpeed="600.00" torque="1000.00" fuelConsumption="12071.00"/> + <Entry engineSpeed="600.00" torque="1200.00" fuelConsumption="14201.00"/> + <Entry engineSpeed="600.00" torque="1282.00" fuelConsumption="15304.00"/> + <Entry engineSpeed="800.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="800.00" torque="0.00" fuelConsumption="1879.00"/> + <Entry engineSpeed="800.00" torque="200.00" fuelConsumption="4286.00"/> + <Entry engineSpeed="800.00" torque="400.00" fuelConsumption="7021.00"/> + <Entry engineSpeed="800.00" torque="600.00" fuelConsumption="10059.00"/> + <Entry engineSpeed="800.00" torque="800.00" fuelConsumption="13086.00"/> + <Entry engineSpeed="800.00" torque="1000.00" fuelConsumption="16015.00"/> + <Entry engineSpeed="800.00" torque="1200.00" fuelConsumption="19239.00"/> + <Entry engineSpeed="800.00" torque="1400.00" fuelConsumption="22426.00"/> + <Entry engineSpeed="800.00" torque="1600.00" fuelConsumption="25483.00"/> + <Entry engineSpeed="800.00" torque="1791.00" fuelConsumption="28905.00"/> + <Entry engineSpeed="1000.00" torque="-160.00" fuelConsumption="0.00"/> + <Entry engineSpeed="1000.00" torque="0.00" fuelConsumption="2865.00"/> + <Entry engineSpeed="1000.00" torque="200.00" fuelConsumption="5963.00"/> + <Entry engineSpeed="1000.00" torque="400.00" fuelConsumption="9198.00"/> + <Entry engineSpeed="1000.00" torque="600.00" fuelConsumption="12354.00"/> + <Entry engineSpeed="1000.00" torque="800.00" fuelConsumption="15965.00"/> + <Entry engineSpeed="1000.00" torque="1000.00" fuelConsumption="19864.00"/> + <Entry engineSpeed="1000.00" torque="1200.00" fuelConsumption="23530.00"/> + <Entry engineSpeed="1000.00" torque="1400.00" fuelConsumption="27202.00"/> + <Entry engineSpeed="1000.00" torque="1600.00" fuelConsumption="31165.00"/> + <Entry engineSpeed="1000.00" torque="1800.00" fuelConsumption="35103.00"/> + <Entry engineSpeed="1000.00" torque="2000.00" fuelConsumption="39360.00"/> + <Entry engineSpeed="1000.00" torque="2200.00" fuelConsumption="44120.00"/> + <Entry engineSpeed="1000.00" torque="2300.00" fuelConsumption="46836.00"/> + <Entry engineSpeed="1200.00" torque="-179.00" fuelConsumption="0.00"/> + <Entry engineSpeed="1200.00" torque="0.00" fuelConsumption="3307.00"/> + <Entry engineSpeed="1200.00" torque="200.00" fuelConsumption="6897.00"/> + <Entry engineSpeed="1200.00" torque="400.00" fuelConsumption="10651.00"/> + <Entry engineSpeed="1200.00" torque="600.00" fuelConsumption="14645.00"/> + <Entry engineSpeed="1200.00" torque="800.00" fuelConsumption="19115.00"/> + <Entry engineSpeed="1200.00" torque="1000.00" fuelConsumption="23677.00"/> + <Entry engineSpeed="1200.00" torque="1200.00" fuelConsumption="28180.00"/> + <Entry engineSpeed="1200.00" torque="1400.00" fuelConsumption="32431.00"/> + <Entry engineSpeed="1200.00" torque="1600.00" fuelConsumption="36698.00"/> + <Entry engineSpeed="1200.00" torque="1800.00" fuelConsumption="41691.00"/> + <Entry engineSpeed="1200.00" torque="2000.00" fuelConsumption="46915.00"/> + <Entry engineSpeed="1200.00" torque="2200.00" fuelConsumption="51783.00"/> + <Entry engineSpeed="1200.00" torque="2300.00" fuelConsumption="54932.00"/> + <Entry engineSpeed="1400.00" torque="-203.00" fuelConsumption="0.00"/> + <Entry engineSpeed="1400.00" torque="0.00" fuelConsumption="4306.00"/> + <Entry engineSpeed="1400.00" torque="200.00" fuelConsumption="8143.00"/> + <Entry engineSpeed="1400.00" torque="400.00" fuelConsumption="12723.00"/> + <Entry engineSpeed="1400.00" torque="600.00" fuelConsumption="17523.00"/> + <Entry engineSpeed="1400.00" torque="800.00" fuelConsumption="22288.00"/> + <Entry engineSpeed="1400.00" torque="1000.00" fuelConsumption="27093.00"/> + <Entry engineSpeed="1400.00" torque="1200.00" fuelConsumption="32536.00"/> + <Entry engineSpeed="1400.00" torque="1400.00" fuelConsumption="37746.00"/> + <Entry engineSpeed="1400.00" torque="1600.00" fuelConsumption="43194.00"/> + <Entry engineSpeed="1400.00" torque="1800.00" fuelConsumption="49453.00"/> + <Entry engineSpeed="1400.00" torque="2000.00" fuelConsumption="55830.00"/> + <Entry engineSpeed="1400.00" torque="2200.00" fuelConsumption="61072.00"/> + <Entry engineSpeed="1400.00" torque="2300.00" fuelConsumption="64377.00"/> + <Entry engineSpeed="1600.00" torque="-235.00" fuelConsumption="0.00"/> + <Entry engineSpeed="1600.00" torque="0.00" fuelConsumption="5209.00"/> + <Entry engineSpeed="1600.00" torque="200.00" fuelConsumption="9669.00"/> + <Entry engineSpeed="1600.00" torque="400.00" fuelConsumption="14838.00"/> + <Entry engineSpeed="1600.00" torque="600.00" fuelConsumption="20127.00"/> + <Entry engineSpeed="1600.00" torque="800.00" fuelConsumption="25894.00"/> + <Entry engineSpeed="1600.00" torque="1000.00" fuelConsumption="31631.00"/> + <Entry engineSpeed="1600.00" torque="1200.00" fuelConsumption="37248.00"/> + <Entry engineSpeed="1600.00" torque="1400.00" fuelConsumption="42826.00"/> + <Entry engineSpeed="1600.00" torque="1600.00" fuelConsumption="49752.00"/> + <Entry engineSpeed="1600.00" torque="1800.00" fuelConsumption="57020.00"/> + <Entry engineSpeed="1600.00" torque="2000.00" fuelConsumption="63914.00"/> + <Entry engineSpeed="1600.00" torque="2079.00" fuelConsumption="66520.00"/> + <Entry engineSpeed="1800.00" torque="-264.00" fuelConsumption="0.00"/> + <Entry engineSpeed="1800.00" torque="0.00" fuelConsumption="6409.00"/> + <Entry engineSpeed="1800.00" torque="200.00" fuelConsumption="11777.00"/> + <Entry engineSpeed="1800.00" torque="400.00" fuelConsumption="17320.00"/> + <Entry engineSpeed="1800.00" torque="600.00" fuelConsumption="23394.00"/> + <Entry engineSpeed="1800.00" torque="800.00" fuelConsumption="30501.00"/> + <Entry engineSpeed="1800.00" torque="1000.00" fuelConsumption="36378.00"/> + <Entry engineSpeed="1800.00" torque="1200.00" fuelConsumption="43079.00"/> + <Entry engineSpeed="1800.00" torque="1400.00" fuelConsumption="49796.00"/> + <Entry engineSpeed="1800.00" torque="1600.00" fuelConsumption="57436.00"/> + <Entry engineSpeed="1800.00" torque="1800.00" fuelConsumption="65157.00"/> + <Entry engineSpeed="1800.00" torque="1857.00" fuelConsumption="67574.00"/> + <Entry engineSpeed="2000.00" torque="-301.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2000.00" torque="0.00" fuelConsumption="9127.00"/> + <Entry engineSpeed="2000.00" torque="200.00" fuelConsumption="14822.00"/> + <Entry engineSpeed="2000.00" torque="400.00" fuelConsumption="20655.00"/> + <Entry engineSpeed="2000.00" torque="600.00" fuelConsumption="27076.00"/> + <Entry engineSpeed="2000.00" torque="800.00" fuelConsumption="34188.00"/> + <Entry engineSpeed="2000.00" torque="1000.00" fuelConsumption="42837.00"/> + <Entry engineSpeed="2000.00" torque="1200.00" fuelConsumption="51018.00"/> + <Entry engineSpeed="2000.00" torque="1352.00" fuelConsumption="56618.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="0.00" fuelConsumption="10470.00"/> + <Entry engineSpeed="2100.00" torque="200.00" fuelConsumption="16332.00"/> + <Entry engineSpeed="2100.00" torque="400.00" fuelConsumption="22396.00"/> + <Entry engineSpeed="2100.00" torque="600.00" fuelConsumption="28914.00"/> + <Entry engineSpeed="2100.00" torque="800.00" fuelConsumption="35717.00"/> + <Entry engineSpeed="2100.00" torque="1000.00" fuelConsumption="45643.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="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> + </v2.0:Data> + <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>sNtMe9udO39TyKXzgwYEpVKImWizFalaBVqq3jLktuo=</di:DigestValue> + </di:Reference> + </Signature> + </v2.6:Engine> + <v2.6:Gearbox xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="GearboxComponentDeclarationType"> + <Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType"> + <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>Option 1</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="3"> + <Ratio>9.020</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="4"> + <Ratio>7.040</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="5"> + <Ratio>5.640</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="6"> + <Ratio>4.400</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="7"> + <Ratio>3.390</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="8"> + <Ratio>2.650</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="9"> + <Ratio>2.050</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="10"> + <Ratio>1.600</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="11"> + <Ratio>1.280</Ratio> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="12.06"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="8.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="10.06"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="14.06"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="18.06"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="22.06"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="26.06"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="30.06"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="34.06"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="38.06"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="42.06"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="46.06"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="50.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="12.56"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="8.56"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="6.56"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="10.56"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="14.56"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="18.56"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="22.56"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="26.56"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="30.56"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="34.56"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="38.56"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="42.56"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="46.56"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="50.56"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="54.56"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="13.58"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="9.58"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="7.58"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="11.58"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="15.58"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="19.58"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="23.58"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="27.58"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="31.58"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="35.58"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="39.58"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="43.58"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="47.58"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="51.58"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="55.58"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="14.59"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="10.59"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="8.59"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="12.59"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="16.59"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="20.59"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="24.59"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="28.59"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="32.59"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="36.59"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="40.59"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="44.59"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="48.59"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="52.59"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="56.59"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="15.60"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="11.60"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="9.60"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="13.60"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="17.60"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="21.60"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="25.60"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="29.60"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="33.60"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="37.60"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="41.60"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="45.60"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="49.60"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="53.60"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="57.60"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="16.61"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="12.61"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="10.61"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="14.61"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="18.61"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="22.61"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="26.61"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="30.61"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="34.61"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="38.61"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="42.61"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="46.61"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="50.61"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="54.61"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="58.61"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="17.63"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="13.63"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="11.63"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="15.63"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="19.63"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="23.63"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="27.63"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="31.63"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="35.63"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="39.63"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="43.63"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="47.63"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="51.63"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="55.63"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="59.63"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="18.64"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="14.64"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="12.64"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="16.64"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="20.64"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="24.64"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="28.64"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="32.64"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="36.64"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="40.64"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="44.64"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="48.64"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="52.64"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="56.64"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="60.64"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="19.65"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="15.65"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="13.65"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="17.65"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="21.65"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="25.65"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="29.65"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="33.65"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="37.65"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="41.65"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="45.65"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="49.65"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="53.65"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="57.65"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="61.65"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="20.66"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="16.66"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="14.66"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="18.66"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="22.66"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="26.66"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="30.66"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="34.66"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="38.66"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="42.66"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="46.66"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="50.66"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="54.66"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="58.66"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="62.66"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="21.67"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="17.67"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="15.67"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="19.67"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="23.67"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="27.67"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="31.67"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="35.67"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="39.67"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="43.67"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="47.67"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="51.67"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="55.67"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="59.67"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="63.67"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="22.69"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="18.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="20.69"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="24.69"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="28.69"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="32.69"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="36.69"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="40.69"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="44.69"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="48.69"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="52.69"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="56.69"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="60.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="25.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="26.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="27.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="28.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="29.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="30.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="31.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="32.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="33.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="34.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + </TorqueLossMap> + </Gear> + <Gear number="12"> + <Ratio>1.000</Ratio> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-350.00" torqueLoss="6.81"/> + <Entry inputSpeed="0.00" inputTorque="-150.00" torqueLoss="5.81"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="5.31"/> + <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="6.31"/> + <Entry inputSpeed="0.00" inputTorque="450.00" torqueLoss="7.31"/> + <Entry inputSpeed="0.00" inputTorque="650.00" torqueLoss="8.31"/> + <Entry inputSpeed="0.00" inputTorque="850.00" torqueLoss="9.31"/> + <Entry inputSpeed="0.00" inputTorque="1050.00" torqueLoss="10.31"/> + <Entry inputSpeed="0.00" inputTorque="1250.00" torqueLoss="11.31"/> + <Entry inputSpeed="0.00" inputTorque="1450.00" torqueLoss="12.31"/> + <Entry inputSpeed="0.00" inputTorque="1650.00" torqueLoss="13.31"/> + <Entry inputSpeed="0.00" inputTorque="1850.00" torqueLoss="14.31"/> + <Entry inputSpeed="0.00" inputTorque="2050.00" torqueLoss="15.31"/> + <Entry inputSpeed="0.00" inputTorque="2250.00" torqueLoss="16.31"/> + <Entry inputSpeed="0.00" inputTorque="2800.00" torqueLoss="17.31"/> + <Entry inputSpeed="100.00" inputTorque="-350.00" torqueLoss="7.32"/> + <Entry inputSpeed="100.00" inputTorque="-150.00" torqueLoss="6.32"/> + <Entry inputSpeed="100.00" inputTorque="50.00" torqueLoss="5.82"/> + <Entry inputSpeed="100.00" inputTorque="250.00" torqueLoss="6.82"/> + <Entry inputSpeed="100.00" inputTorque="450.00" torqueLoss="7.82"/> + <Entry inputSpeed="100.00" inputTorque="650.00" torqueLoss="8.82"/> + <Entry inputSpeed="100.00" inputTorque="850.00" torqueLoss="9.82"/> + <Entry inputSpeed="100.00" inputTorque="1050.00" torqueLoss="10.82"/> + <Entry inputSpeed="100.00" inputTorque="1250.00" torqueLoss="11.82"/> + <Entry inputSpeed="100.00" inputTorque="1450.00" torqueLoss="12.82"/> + <Entry inputSpeed="100.00" inputTorque="1650.00" torqueLoss="13.82"/> + <Entry inputSpeed="100.00" inputTorque="1850.00" torqueLoss="14.82"/> + <Entry inputSpeed="100.00" inputTorque="2050.00" torqueLoss="15.82"/> + <Entry inputSpeed="100.00" inputTorque="2250.00" torqueLoss="16.82"/> + <Entry inputSpeed="100.00" inputTorque="2800.00" torqueLoss="17.82"/> + <Entry inputSpeed="300.00" inputTorque="-350.00" torqueLoss="8.33"/> + <Entry inputSpeed="300.00" inputTorque="-150.00" torqueLoss="7.33"/> + <Entry inputSpeed="300.00" inputTorque="50.00" torqueLoss="6.83"/> + <Entry inputSpeed="300.00" inputTorque="250.00" torqueLoss="7.83"/> + <Entry inputSpeed="300.00" inputTorque="450.00" torqueLoss="8.83"/> + <Entry inputSpeed="300.00" inputTorque="650.00" torqueLoss="9.83"/> + <Entry inputSpeed="300.00" inputTorque="850.00" torqueLoss="10.83"/> + <Entry inputSpeed="300.00" inputTorque="1050.00" torqueLoss="11.83"/> + <Entry inputSpeed="300.00" inputTorque="1250.00" torqueLoss="12.83"/> + <Entry inputSpeed="300.00" inputTorque="1450.00" torqueLoss="13.83"/> + <Entry inputSpeed="300.00" inputTorque="1650.00" torqueLoss="14.83"/> + <Entry inputSpeed="300.00" inputTorque="1850.00" torqueLoss="15.83"/> + <Entry inputSpeed="300.00" inputTorque="2050.00" torqueLoss="16.83"/> + <Entry inputSpeed="300.00" inputTorque="2250.00" torqueLoss="17.83"/> + <Entry inputSpeed="300.00" inputTorque="2800.00" torqueLoss="18.83"/> + <Entry inputSpeed="500.00" inputTorque="-350.00" torqueLoss="9.34"/> + <Entry inputSpeed="500.00" inputTorque="-150.00" torqueLoss="8.34"/> + <Entry inputSpeed="500.00" inputTorque="50.00" torqueLoss="7.84"/> + <Entry inputSpeed="500.00" inputTorque="250.00" torqueLoss="8.84"/> + <Entry inputSpeed="500.00" inputTorque="450.00" torqueLoss="9.84"/> + <Entry inputSpeed="500.00" inputTorque="650.00" torqueLoss="10.84"/> + <Entry inputSpeed="500.00" inputTorque="850.00" torqueLoss="11.84"/> + <Entry inputSpeed="500.00" inputTorque="1050.00" torqueLoss="12.84"/> + <Entry inputSpeed="500.00" inputTorque="1250.00" torqueLoss="13.84"/> + <Entry inputSpeed="500.00" inputTorque="1450.00" torqueLoss="14.84"/> + <Entry inputSpeed="500.00" inputTorque="1650.00" torqueLoss="15.84"/> + <Entry inputSpeed="500.00" inputTorque="1850.00" torqueLoss="16.84"/> + <Entry inputSpeed="500.00" inputTorque="2050.00" torqueLoss="17.84"/> + <Entry inputSpeed="500.00" inputTorque="2250.00" torqueLoss="18.84"/> + <Entry inputSpeed="500.00" inputTorque="2800.00" torqueLoss="19.84"/> + <Entry inputSpeed="700.00" inputTorque="-350.00" torqueLoss="10.35"/> + <Entry inputSpeed="700.00" inputTorque="-150.00" torqueLoss="9.35"/> + <Entry inputSpeed="700.00" inputTorque="50.00" torqueLoss="8.85"/> + <Entry inputSpeed="700.00" inputTorque="250.00" torqueLoss="9.85"/> + <Entry inputSpeed="700.00" inputTorque="450.00" torqueLoss="10.85"/> + <Entry inputSpeed="700.00" inputTorque="650.00" torqueLoss="11.85"/> + <Entry inputSpeed="700.00" inputTorque="850.00" torqueLoss="12.85"/> + <Entry inputSpeed="700.00" inputTorque="1050.00" torqueLoss="13.85"/> + <Entry inputSpeed="700.00" inputTorque="1250.00" torqueLoss="14.85"/> + <Entry inputSpeed="700.00" inputTorque="1450.00" torqueLoss="15.85"/> + <Entry inputSpeed="700.00" inputTorque="1650.00" torqueLoss="16.85"/> + <Entry inputSpeed="700.00" inputTorque="1850.00" torqueLoss="17.85"/> + <Entry inputSpeed="700.00" inputTorque="2050.00" torqueLoss="18.85"/> + <Entry inputSpeed="700.00" inputTorque="2250.00" torqueLoss="19.85"/> + <Entry inputSpeed="700.00" inputTorque="2800.00" torqueLoss="20.85"/> + <Entry inputSpeed="900.00" inputTorque="-350.00" torqueLoss="11.36"/> + <Entry inputSpeed="900.00" inputTorque="-150.00" torqueLoss="10.36"/> + <Entry inputSpeed="900.00" inputTorque="50.00" torqueLoss="9.86"/> + <Entry inputSpeed="900.00" inputTorque="250.00" torqueLoss="10.86"/> + <Entry inputSpeed="900.00" inputTorque="450.00" torqueLoss="11.86"/> + <Entry inputSpeed="900.00" inputTorque="650.00" torqueLoss="12.86"/> + <Entry inputSpeed="900.00" inputTorque="850.00" torqueLoss="13.86"/> + <Entry inputSpeed="900.00" inputTorque="1050.00" torqueLoss="14.86"/> + <Entry inputSpeed="900.00" inputTorque="1250.00" torqueLoss="15.86"/> + <Entry inputSpeed="900.00" inputTorque="1450.00" torqueLoss="16.86"/> + <Entry inputSpeed="900.00" inputTorque="1650.00" torqueLoss="17.86"/> + <Entry inputSpeed="900.00" inputTorque="1850.00" torqueLoss="18.86"/> + <Entry inputSpeed="900.00" inputTorque="2050.00" torqueLoss="19.86"/> + <Entry inputSpeed="900.00" inputTorque="2250.00" torqueLoss="20.86"/> + <Entry inputSpeed="900.00" inputTorque="2800.00" torqueLoss="21.86"/> + <Entry inputSpeed="1100.00" inputTorque="-350.00" torqueLoss="12.37"/> + <Entry inputSpeed="1100.00" inputTorque="-150.00" torqueLoss="11.37"/> + <Entry inputSpeed="1100.00" inputTorque="50.00" torqueLoss="10.88"/> + <Entry inputSpeed="1100.00" inputTorque="250.00" torqueLoss="11.88"/> + <Entry inputSpeed="1100.00" inputTorque="450.00" torqueLoss="12.88"/> + <Entry inputSpeed="1100.00" inputTorque="650.00" torqueLoss="13.88"/> + <Entry inputSpeed="1100.00" inputTorque="850.00" torqueLoss="14.88"/> + <Entry inputSpeed="1100.00" inputTorque="1050.00" torqueLoss="15.88"/> + <Entry inputSpeed="1100.00" inputTorque="1250.00" torqueLoss="16.88"/> + <Entry inputSpeed="1100.00" inputTorque="1450.00" torqueLoss="17.88"/> + <Entry inputSpeed="1100.00" inputTorque="1650.00" torqueLoss="18.88"/> + <Entry inputSpeed="1100.00" inputTorque="1850.00" torqueLoss="19.88"/> + <Entry inputSpeed="1100.00" inputTorque="2050.00" torqueLoss="20.88"/> + <Entry inputSpeed="1100.00" inputTorque="2250.00" torqueLoss="21.88"/> + <Entry inputSpeed="1100.00" inputTorque="2800.00" torqueLoss="22.88"/> + <Entry inputSpeed="1300.00" inputTorque="-350.00" torqueLoss="13.39"/> + <Entry inputSpeed="1300.00" inputTorque="-150.00" torqueLoss="12.39"/> + <Entry inputSpeed="1300.00" inputTorque="50.00" torqueLoss="11.89"/> + <Entry inputSpeed="1300.00" inputTorque="250.00" torqueLoss="12.89"/> + <Entry inputSpeed="1300.00" inputTorque="450.00" torqueLoss="13.89"/> + <Entry inputSpeed="1300.00" inputTorque="650.00" torqueLoss="14.89"/> + <Entry inputSpeed="1300.00" inputTorque="850.00" torqueLoss="15.89"/> + <Entry inputSpeed="1300.00" inputTorque="1050.00" torqueLoss="16.89"/> + <Entry inputSpeed="1300.00" inputTorque="1250.00" torqueLoss="17.89"/> + <Entry inputSpeed="1300.00" inputTorque="1450.00" torqueLoss="18.89"/> + <Entry inputSpeed="1300.00" inputTorque="1650.00" torqueLoss="19.89"/> + <Entry inputSpeed="1300.00" inputTorque="1850.00" torqueLoss="20.89"/> + <Entry inputSpeed="1300.00" inputTorque="2050.00" torqueLoss="21.89"/> + <Entry inputSpeed="1300.00" inputTorque="2250.00" torqueLoss="22.89"/> + <Entry inputSpeed="1300.00" inputTorque="2800.00" torqueLoss="23.89"/> + <Entry inputSpeed="1500.00" inputTorque="-350.00" torqueLoss="14.40"/> + <Entry inputSpeed="1500.00" inputTorque="-150.00" torqueLoss="13.40"/> + <Entry inputSpeed="1500.00" inputTorque="50.00" torqueLoss="12.90"/> + <Entry inputSpeed="1500.00" inputTorque="250.00" torqueLoss="13.90"/> + <Entry inputSpeed="1500.00" inputTorque="450.00" torqueLoss="14.90"/> + <Entry inputSpeed="1500.00" inputTorque="650.00" torqueLoss="15.90"/> + <Entry inputSpeed="1500.00" inputTorque="850.00" torqueLoss="16.90"/> + <Entry inputSpeed="1500.00" inputTorque="1050.00" torqueLoss="17.90"/> + <Entry inputSpeed="1500.00" inputTorque="1250.00" torqueLoss="18.90"/> + <Entry inputSpeed="1500.00" inputTorque="1450.00" torqueLoss="19.90"/> + <Entry inputSpeed="1500.00" inputTorque="1650.00" torqueLoss="20.90"/> + <Entry inputSpeed="1500.00" inputTorque="1850.00" torqueLoss="21.90"/> + <Entry inputSpeed="1500.00" inputTorque="2050.00" torqueLoss="22.90"/> + <Entry inputSpeed="1500.00" inputTorque="2250.00" torqueLoss="23.90"/> + <Entry inputSpeed="1500.00" inputTorque="2800.00" torqueLoss="24.90"/> + <Entry inputSpeed="1700.00" inputTorque="-350.00" torqueLoss="15.41"/> + <Entry inputSpeed="1700.00" inputTorque="-150.00" torqueLoss="14.41"/> + <Entry inputSpeed="1700.00" inputTorque="50.00" torqueLoss="13.91"/> + <Entry inputSpeed="1700.00" inputTorque="250.00" torqueLoss="14.91"/> + <Entry inputSpeed="1700.00" inputTorque="450.00" torqueLoss="15.91"/> + <Entry inputSpeed="1700.00" inputTorque="650.00" torqueLoss="16.91"/> + <Entry inputSpeed="1700.00" inputTorque="850.00" torqueLoss="17.91"/> + <Entry inputSpeed="1700.00" inputTorque="1050.00" torqueLoss="18.91"/> + <Entry inputSpeed="1700.00" inputTorque="1250.00" torqueLoss="19.91"/> + <Entry inputSpeed="1700.00" inputTorque="1450.00" torqueLoss="20.91"/> + <Entry inputSpeed="1700.00" inputTorque="1650.00" torqueLoss="21.91"/> + <Entry inputSpeed="1700.00" inputTorque="1850.00" torqueLoss="22.91"/> + <Entry inputSpeed="1700.00" inputTorque="2050.00" torqueLoss="23.91"/> + <Entry inputSpeed="1700.00" inputTorque="2250.00" torqueLoss="24.91"/> + <Entry inputSpeed="1700.00" inputTorque="2800.00" torqueLoss="25.91"/> + <Entry inputSpeed="1900.00" inputTorque="-350.00" torqueLoss="16.42"/> + <Entry inputSpeed="1900.00" inputTorque="-150.00" torqueLoss="15.42"/> + <Entry inputSpeed="1900.00" inputTorque="50.00" torqueLoss="14.92"/> + <Entry inputSpeed="1900.00" inputTorque="250.00" torqueLoss="15.92"/> + <Entry inputSpeed="1900.00" inputTorque="450.00" torqueLoss="16.92"/> + <Entry inputSpeed="1900.00" inputTorque="650.00" torqueLoss="17.92"/> + <Entry inputSpeed="1900.00" inputTorque="850.00" torqueLoss="18.92"/> + <Entry inputSpeed="1900.00" inputTorque="1050.00" torqueLoss="19.92"/> + <Entry inputSpeed="1900.00" inputTorque="1250.00" torqueLoss="20.92"/> + <Entry inputSpeed="1900.00" inputTorque="1450.00" torqueLoss="21.92"/> + <Entry inputSpeed="1900.00" inputTorque="1650.00" torqueLoss="22.92"/> + <Entry inputSpeed="1900.00" inputTorque="1850.00" torqueLoss="23.92"/> + <Entry inputSpeed="1900.00" inputTorque="2050.00" torqueLoss="24.92"/> + <Entry inputSpeed="1900.00" inputTorque="2250.00" torqueLoss="25.92"/> + <Entry inputSpeed="1900.00" inputTorque="2800.00" torqueLoss="26.92"/> + <Entry inputSpeed="2100.00" inputTorque="-350.00" torqueLoss="17.43"/> + <Entry inputSpeed="2100.00" inputTorque="-150.00" torqueLoss="16.43"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="15.94"/> + <Entry inputSpeed="2100.00" inputTorque="250.00" torqueLoss="16.94"/> + <Entry inputSpeed="2100.00" inputTorque="450.00" torqueLoss="17.94"/> + <Entry inputSpeed="2100.00" inputTorque="650.00" torqueLoss="18.94"/> + <Entry inputSpeed="2100.00" inputTorque="850.00" torqueLoss="19.94"/> + <Entry inputSpeed="2100.00" inputTorque="1050.00" torqueLoss="20.94"/> + <Entry inputSpeed="2100.00" inputTorque="1250.00" torqueLoss="21.94"/> + <Entry inputSpeed="2100.00" inputTorque="1450.00" torqueLoss="22.94"/> + <Entry inputSpeed="2100.00" inputTorque="1650.00" torqueLoss="23.94"/> + <Entry inputSpeed="2100.00" inputTorque="1850.00" torqueLoss="24.94"/> + <Entry inputSpeed="2100.00" inputTorque="2050.00" torqueLoss="25.94"/> + <Entry inputSpeed="2100.00" inputTorque="2250.00" torqueLoss="26.94"/> + <Entry inputSpeed="2100.00" inputTorque="2800.00" torqueLoss="27.94"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="10.06"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="10.56"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="11.58"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="12.59"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="13.60"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="14.61"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="15.63"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="16.64"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="17.65"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="18.66"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="19.67"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="20.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </Data> + <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> + </Signature> + </v2.6:Gearbox> + <v2.6:TorqueConverter xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="TorqueConverterComponentDeclarationType"> + <Data id="tc-123xyz" xsi:type="TorqueConverterDataDeclarationType"> + <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>Measured</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> + </Data> + <Signature> + <di:Reference URI="#tc-123xyz"> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>q2sumDwsqQKLw4xwkEllgsygF5bHBwZPSS66UNaXXis=</di:DigestValue> + </di:Reference> + </Signature> + </v2.6:TorqueConverter> + <v2.6:Angledrive xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AngledriveComponentDeclarationType"> + <Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType"> + <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>Option 1</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> + </Data> + <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>1tuF9SoA8luoUBQGym4bYi1TurDSmcYqBDJ6AP20OSs=</di:DigestValue> + </di:Reference> + </Signature> + </v2.6:Angledrive> + <v2.6:Retarder xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="RetarderComponentDeclarationType"> + <Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType"> + <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="100.00" torqueLoss="10.02"/> + <Entry retarderSpeed="200.00" torqueLoss="10.08"/> + <Entry retarderSpeed="300.00" torqueLoss="10.18"/> + <Entry retarderSpeed="400.00" torqueLoss="10.32"/> + <Entry retarderSpeed="500.00" torqueLoss="10.50"/> + <Entry retarderSpeed="600.00" torqueLoss="10.72"/> + <Entry retarderSpeed="700.00" torqueLoss="10.98"/> + <Entry retarderSpeed="800.00" torqueLoss="11.28"/> + <Entry retarderSpeed="900.00" torqueLoss="11.62"/> + <Entry retarderSpeed="1000.00" torqueLoss="12.00"/> + <Entry retarderSpeed="1100.00" torqueLoss="12.42"/> + <Entry retarderSpeed="1200.00" torqueLoss="12.88"/> + <Entry retarderSpeed="1300.00" torqueLoss="13.38"/> + <Entry retarderSpeed="1400.00" torqueLoss="13.92"/> + <Entry retarderSpeed="1500.00" torqueLoss="14.50"/> + <Entry retarderSpeed="1600.00" torqueLoss="15.12"/> + <Entry retarderSpeed="1700.00" torqueLoss="15.78"/> + <Entry retarderSpeed="1800.00" torqueLoss="16.48"/> + <Entry retarderSpeed="1900.00" torqueLoss="17.22"/> + <Entry retarderSpeed="2000.00" torqueLoss="18.00"/> + <Entry retarderSpeed="2100.00" torqueLoss="18.82"/> + <Entry retarderSpeed="2200.00" torqueLoss="19.68"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </Data> + <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>fcEtYfDAbfuRq0xpuzapmEj+Py1PIPUZwVmx+amNvcc=</di:DigestValue> + </di:Reference> + </Signature> + </v2.6:Retarder> + <v2.6:Axlegear xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxlegearComponentDeclarationType"> + <Data id="AXL-EC3ohnoh" xsi:type="AxlegearDataDeclarationType"> + <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>Measured</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="300.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="300.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="300.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="300.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="300.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="300.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="300.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="300.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="0.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="0.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="0.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="0.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="0.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="0.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="0.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="0.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="0.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="0.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="100.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="100.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="100.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="100.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="100.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="100.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="100.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="100.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="0.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="0.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="0.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="0.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="0.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="0.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="0.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="0.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="0.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="0.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="0.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="0.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="0.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="0.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="0.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="0.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="100.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="100.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="100.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="0.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="0.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="0.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="0.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="100.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="100.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="100.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="100.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="100.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="100.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="100.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="100.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="100.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="100.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="100.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="100.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="100.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="100.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="100.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="100.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="100.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="100.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="100.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="100.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="100.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="100.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="100.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="100.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="100.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="100.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="100.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="100.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="300.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="300.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="300.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="300.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="300.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="300.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="300.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="300.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="300.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="300.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="300.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="300.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="300.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="300.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="300.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="300.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="300.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="300.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="300.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="300.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="300.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="300.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="300.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="300.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="300.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="300.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="300.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="300.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="300.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="300.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="300.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="300.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="300.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="500.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="500.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="500.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="500.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="500.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="500.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="500.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="500.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="500.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="500.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="500.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="500.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="500.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="500.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="500.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="500.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="500.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="500.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="500.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="500.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="500.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="500.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="500.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="500.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="500.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="500.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="500.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="500.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="500.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="500.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="500.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="500.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="500.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="500.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="500.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="500.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="500.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="500.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="500.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="500.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="500.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="700.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="700.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="700.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="700.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="700.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="700.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="700.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="700.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="700.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="700.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="700.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="700.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="700.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="700.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="700.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="700.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="700.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="700.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="700.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="700.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="700.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="700.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="700.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="700.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="700.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="700.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="700.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="700.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="700.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="700.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="700.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="700.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="700.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="700.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="700.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="700.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="700.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="700.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="700.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="700.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="700.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="900.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="900.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="900.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="900.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="900.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="900.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="900.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="900.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="900.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="900.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="900.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="900.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="900.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="900.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="900.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="900.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="900.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="900.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="900.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="900.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="900.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="900.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="900.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="900.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="900.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="900.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="900.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="900.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="900.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="900.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="900.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="900.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="900.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="900.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="900.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="900.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="900.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="900.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="900.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="900.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="900.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="1100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1100.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1100.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1100.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1100.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="1100.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1100.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1100.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1100.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1100.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1100.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="1100.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="1100.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="1100.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="1100.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="1100.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="1100.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="1100.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="1100.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="1100.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="1100.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="1100.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="1100.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="1100.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="1100.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="1100.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="1100.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="1100.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="1100.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="1100.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="1100.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="1100.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="1100.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="1100.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="1100.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="1100.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="1100.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="1100.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="1100.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="1100.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="1300.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1300.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1300.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1300.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1300.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1300.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="1300.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1300.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1300.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1300.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1300.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1300.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="1300.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="1300.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="1300.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="1300.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="1300.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="1300.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="1300.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="1300.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="1300.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="1300.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="1300.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="1300.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="1300.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="1300.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="1300.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="1300.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="1300.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="1300.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="1300.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="1300.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="1300.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="1300.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="1300.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="1300.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="1300.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="1300.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="1300.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="1300.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="1300.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="1500.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1500.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1500.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1500.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1500.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1500.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="1500.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1500.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1500.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1500.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1500.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1500.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="1500.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="1500.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="1500.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="1500.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="1500.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="1500.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="1500.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="1500.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="1500.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="1500.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="1500.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="1500.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="1500.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="1500.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="1500.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="1500.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="1500.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="1500.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="1500.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="1500.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="1500.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="1500.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="1500.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="1500.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="1500.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="1500.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="1500.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="1500.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="1500.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="1700.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1700.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1700.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1700.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1700.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1700.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="1700.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1700.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1700.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1700.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1700.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1700.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="1700.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="1700.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="1700.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="1700.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="1700.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="1700.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="1700.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="1700.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="1700.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="1700.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="1700.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="1700.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="1700.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="1700.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="1700.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="1700.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="1700.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="1700.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="1700.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="1700.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="1700.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="1700.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="1700.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="1700.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="1700.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="1700.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="1700.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="1700.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="1700.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="1900.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1900.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1900.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1900.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1900.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1900.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="1900.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="1900.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="1900.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="1900.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1900.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="1900.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="1900.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="1900.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="1900.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="1900.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="1900.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="1900.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="1900.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="1900.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="1900.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="1900.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="1900.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="1900.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="1900.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="1900.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="1900.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="1900.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="1900.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="1900.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="1900.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="1900.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="1900.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="1900.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="1900.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="1900.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="1900.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="1900.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="1900.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="1900.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="1900.00" inputTorque="35000.00" torqueLoss="565.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="-4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="2100.00" inputTorque="-3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="2100.00" inputTorque="-2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="1000.00" torqueLoss="55.00"/> + <Entry inputSpeed="2100.00" inputTorque="2000.00" torqueLoss="70.00"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="85.00"/> + <Entry inputSpeed="2100.00" inputTorque="4000.00" torqueLoss="100.00"/> + <Entry inputSpeed="2100.00" inputTorque="5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="6000.00" torqueLoss="130.00"/> + <Entry inputSpeed="2100.00" inputTorque="7000.00" torqueLoss="145.00"/> + <Entry inputSpeed="2100.00" inputTorque="8000.00" torqueLoss="160.00"/> + <Entry inputSpeed="2100.00" inputTorque="9000.00" torqueLoss="175.00"/> + <Entry inputSpeed="2100.00" inputTorque="10000.00" torqueLoss="190.00"/> + <Entry inputSpeed="2100.00" inputTorque="11000.00" torqueLoss="205.00"/> + <Entry inputSpeed="2100.00" inputTorque="12000.00" torqueLoss="220.00"/> + <Entry inputSpeed="2100.00" inputTorque="13000.00" torqueLoss="235.00"/> + <Entry inputSpeed="2100.00" inputTorque="14000.00" torqueLoss="250.00"/> + <Entry inputSpeed="2100.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="16000.00" torqueLoss="280.00"/> + <Entry inputSpeed="2100.00" inputTorque="17000.00" torqueLoss="295.00"/> + <Entry inputSpeed="2100.00" inputTorque="18000.00" torqueLoss="310.00"/> + <Entry inputSpeed="2100.00" inputTorque="19000.00" torqueLoss="325.00"/> + <Entry inputSpeed="2100.00" inputTorque="20000.00" torqueLoss="340.00"/> + <Entry inputSpeed="2100.00" inputTorque="21000.00" torqueLoss="355.00"/> + <Entry inputSpeed="2100.00" inputTorque="22000.00" torqueLoss="370.00"/> + <Entry inputSpeed="2100.00" inputTorque="23000.00" torqueLoss="385.00"/> + <Entry inputSpeed="2100.00" inputTorque="24000.00" torqueLoss="400.00"/> + <Entry inputSpeed="2100.00" inputTorque="25000.00" torqueLoss="415.00"/> + <Entry inputSpeed="2100.00" inputTorque="26000.00" torqueLoss="430.00"/> + <Entry inputSpeed="2100.00" inputTorque="27000.00" torqueLoss="445.00"/> + <Entry inputSpeed="2100.00" inputTorque="28000.00" torqueLoss="460.00"/> + <Entry inputSpeed="2100.00" inputTorque="29000.00" torqueLoss="475.00"/> + <Entry inputSpeed="2100.00" inputTorque="30000.00" torqueLoss="490.00"/> + <Entry inputSpeed="2100.00" inputTorque="31000.00" torqueLoss="505.00"/> + <Entry inputSpeed="2100.00" inputTorque="32000.00" torqueLoss="520.00"/> + <Entry inputSpeed="2100.00" inputTorque="33000.00" torqueLoss="535.00"/> + <Entry inputSpeed="2100.00" inputTorque="34000.00" torqueLoss="550.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </Data> + <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> + </Signature> + </v2.6:Axlegear> + <v2.6:AxleWheels xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> + <Data xsi:type="AxleWheelsDataDeclarationType"> + <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> + </Data> + </v2.6:AxleWheels> + <v2.6:Auxiliaries xsi:type="PrimaryVehicleAuxiliariesComponentDeclarationType"> + <Data xsi:type="PrimaryVehicleAuxiliaryDataDeclarationType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>300</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>5</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> + <Capacitor> + <CapacitorTechnology>with DCDC converter</CapacitorTechnology> + <RatedCapacitance>30</RatedCapacitance> + <RatedVoltage>3</RatedVoltage> + </Capacitor> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </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> + </v2.6:Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_full-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..b6069da5a5049db6e1487e69ca57609b1e78efc3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_full-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <Model>Sample Bus Model 2</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>7000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <ClassBus>A</ClassBus> <NumberPassengersLowerDeck>10</NumberPassengersLowerDeck> <NumberPassengersUpperDeck>20</NumberPassengersUpperDeck> <BodyworkCode>CC</BodyworkCode> <LowEntry>true</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..33194bccad2511a878f79d682f1605f4bd1f7dff --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer 1</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 1</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>7000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <BodyworkCode>CC</BodyworkCode> <LowEntry>false</LowEntry> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..a580db7446d77a5ac44a28e6284b220ebfc0e9f9 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer 2</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 2</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <NumberPassengersLowerDeck>10</NumberPassengersLowerDeck> <NumberPassengersUpperDeck>20</NumberPassengersUpperDeck> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_mandatory_entries.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_mandatory_entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..c50959a82842f6e9e89e2aaf10e7288f5ac989db --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-exempted_input_only_mandatory_entries.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType" > <Manufacturer>Some Manufacturer 3</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..85f865e71925dbca4a77fc9246cadbfcf02df70b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +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="InterimStageInputType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <NgTankSystem>Compressed</NgTankSystem> + <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>interim</VehicleDeclarationType> + <ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <AirDrag> + <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> + <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>0</SystemConfiguration> + <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>heating</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <HeatPumpTypePassengerCompartment>non R-744 3-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>heating</HeatPumpModePassengerCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + <WaterElectricHeater>true</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample_group41.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample_group41.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f2549432b7cd109b1d30db6ebb5cbf56e106a3e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample_group41.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +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 E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistage>false</AirdragModifiedMultistage> + <NgTankSystem>Compressed</NgTankSystem> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>2</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>11</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>12</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>3</NumberPassengersStandingUpperDeck> + <BodyworkCode>CA</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> + <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS> + <v2.3:EngineStopStart>false</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> + </ADAS> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <AirDrag> + <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> + <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>false</Dayrunninglights> + <Positionlights>false</Positionlights> + <Brakelights>false</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>7</SystemConfiguration> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> + <DoubleGlazing>true</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries01-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries01-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..39c10eb8662376c5f7480fbb5e9d09c46e70eee2 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries01-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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="InterimStageInputType" > <Manufacturer>Some Manufacturer 1</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 1</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <Model>Sample Bus Model 2</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>5000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <AirdragModifiedMultistage>false</AirdragModifiedMultistage> <NgTankSystem>Compressed</NgTankSystem> <ClassBus>A</ClassBus> <BodyworkCode>CG</BodyworkCode> <LowEntry>true</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> <VehicleLength>10000</VehicleLength> <VehicleWidth>2600</VehicleWidth> <EntranceHeight>2000</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> <LEDLights> <Interiorlights>false</Interiorlights> <Dayrunninglights>true</Dayrunninglights> <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> <WaterElectricHeater>true</WaterElectricHeater> <OtherHeatingTechnology>false</OtherHeatingTechnology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries02-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries02-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b07d4349e98ddacc63b07ce8429bd47a88cc3e0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_certain_entries02-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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="InterimStageInputType" > <Manufacturer>Some Manufacturer 2</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 2</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <Model>Sample Bus Model</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>500</CorrectedActualMass> <NgTankSystem>Compressed</NgTankSystem> <ClassBus>II+III</ClassBus> <NumberPassengerSeatsLowerDeck>5</NumberPassengerSeatsLowerDeck> <NumberPassengersStandingLowerDeck>15</NumberPassengersStandingLowerDeck> <NumberPassengerSeatsUpperDeck>10</NumberPassengerSeatsUpperDeck> <NumberPassengersStandingUpperDeck>6</NumberPassengersStandingUpperDeck> <BodyworkCode>CB</BodyworkCode> <LowEntry>false</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> <VehicleLength>9500</VehicleLength> <VehicleWidth>2500</VehicleWidth> <EntranceHeight>2000</EntranceHeight> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <AirDrag> <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <HVAC> <SystemConfiguration>0</SystemConfiguration> <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> <HeatPumpModeDriverCompartment>heating</HeatPumpModeDriverCompartment> <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_component_nullable_entries.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_component_nullable_entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..748413a19a57bb637e4d58bb0efce563385932bf --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_component_nullable_entries.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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="InterimStageInputType" > <Manufacturer>Some Manufacturer 4</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 4</ManufacturerAddress> <VIN>VEH-1234567894</VIN> <Date>2022-01-09T11:00:00Z</Date> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> <LEDLights> </LEDLights> </ElectricSystem> <HVAC> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_entries.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..1cff68c80913319b26652b815e25c1eee43d42eb --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_entries.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" 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="InterimStageInputType" > <Manufacturer>Some Manufacturer 3</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <VehicleDeclarationType>final</VehicleDeclarationType> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml new file mode 100644 index 0000000000000000000000000000000000000000..f1651fd3a16266d3eb48a4845629326df7a93a8b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +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="InterimStageInputType" > + <Manufacturer>Some Manufacturer 3</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <VehicleDeclarationType>final</VehicleDeclarationType> + <Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data xsi:type="v2.8:AirDragModifiedUseStandardValueType" id="std"/> + <v2.0:Signature> + <di:Reference URI="#std"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <Auxiliaries> + <Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"></Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_vif_input.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_vif_input.xml new file mode 100644 index 0000000000000000000000000000000000000000..d1e5b1621b2b0ae9ffff017987dd8513b6d57bfd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_vif_input.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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 xsi:type="InterimStageInputType" id="MSTG-3-Vehicle"> <Manufacturer>Intermediate Manufacturer 3</Manufacturer> <ManufacturerAddress>Intermediate Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-2234567866</VIN> <Date>2021-02-13T07:20:08.0187663Z</Date> <LegislativeCategory>M3</LegislativeCategory> <TechnicalPermissibleMaximumLadenMass>20000</TechnicalPermissibleMaximumLadenMass> <NgTankSystem>Liquefied</NgTankSystem> <ClassBus>B</ClassBus> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> <LEDLights> <Positionlights>false</Positionlights> <Brakelights>false</Brakelights> <Headlights>true</Headlights> </LEDLights> </ElectricSystem> <HVAC> <WaterElectricHeater>false</WaterElectricHeater> <AirElectricHeater>false</AirElectricHeater> <OtherHeatingTechnology>true</OtherHeatingTechnology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/123sadf.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/123sadf.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5ec06780cea3c086d372969fa2bc397889c25c5 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/123sadf.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <v2.0:Vehicle id="TODO:ADDIDENTIFIER" xsi:type="InterimstageInputType"> + <Date>27.04.2021</Date> + <DeclarationType>interim</DeclarationType> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AidragComponent.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AidragComponent.xml new file mode 100644 index 0000000000000000000000000000000000000000..9bc44b124397a660b40ff7ce3bd6f3fad43a4819 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AidragComponent.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--Sample XML file generated by XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com)--> +<v2.0:VectoInputDeclaration 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:DeclarationComponent:v2.0" xmlns:vdecdef2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaVersion="1.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.0 VectoComponent.2.0.xsd"> + <v2.0:AirDrag> + <vdecdef2.0:Data xsi:type="vdecdef2.0:AirDragDataDeclarationType" id="a"> + <vdecdef2.0:Manufacturer>a</vdecdef2.0:Manufacturer> + <vdecdef2.0:Model>a</vdecdef2.0:Model> + <vdecdef2.0:CertificationNumber>token</vdecdef2.0:CertificationNumber> + <vdecdef2.0:Date>2017-01-01T00:00:00Z</vdecdef2.0:Date> + <vdecdef2.0:AppVersion>aaaaa</vdecdef2.0:AppVersion> + <vdecdef2.0:CdxA_0>6.66</vdecdef2.0:CdxA_0> + <vdecdef2.0:TransferredCdxA>6.66</vdecdef2.0:TransferredCdxA> + <vdecdef2.0:DeclaredCdxA>6.66</vdecdef2.0:DeclaredCdxA> + </vdecdef2.0:Data> + <vdecdef2.0:Signature> + <di:Reference> + <di:DigestMethod Algorithm="http://www.altova.com/"/> + <di:DigestValue>UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</di:DigestValue> + </di:Reference> + </vdecdef2.0:Signature> + </v2.0:AirDrag> +</v2.0:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml new file mode 100644 index 0000000000000000000000000000000000000000..3baab2fa609ec00fcb3b5095be0d7a63a5211f9d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoComponent.xsd"> + <tns:AirDrag> + <Data id="TestAirDrag1234" xsi:type="AirDragDataDeclarationType"> + <Manufacturer>Test AirDrag Manufacturer</Manufacturer> + <Model>Test AirDrag Model</Model> + <CertificationNumber>e12*0815/8051*2020/05E0000*66</CertificationNumber> + <Date>2020-04-28T09:16:15.1270795Z</Date> + <AppVersion>Vecto AirDrag Test Load</AppVersion> + <CdxA_0>6.12</CdxA_0> + <TransferredCdxA>7.12</TransferredCdxA> + <DeclaredCdxA>8.12</DeclaredCdxA> + </Data> + <Signature> + <di:Reference URI="#TestAirDrag1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Yd3UDJ/zKPhsmPadJeC4Ez/q7o3G82Zbq3mX3tSqLDw=</di:DigestValue> + </di:Reference> + </Signature> + </tns:AirDrag> +</tns:VectoInputDeclaration> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..0f1a6b00a4c12c975d46159a5c7af810d97a7105 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml @@ -0,0 +1,819 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>11</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>3</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>31</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>1</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-3"> + <HashPreviousStage> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-3-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 3</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 3</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567866</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:TechnicalPermissibleMaximumLadenMass>20000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>false</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>true</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f7b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj38kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..b497bba9991b6a358afa84783748494a3b39c24f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml @@ -0,0 +1,824 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>NG PI</FuelType> + <FuelType>NG CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>4</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"/> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-3"> + <HashPreviousStage> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-3-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 3</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 3</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567866</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:TechnicalPermissibleMaximumLadenMass>20000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>false</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>true</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f7b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj38kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..0ad9eb1fd6408dfc14358161bfd69f0884139892 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml @@ -0,0 +1,863 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>0</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX24h"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E1000*00</v2.0:CertificationNumber> + <v2.0:Date>2018-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y.z</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.36</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX24h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/28N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:AirdragModifiedMultistage>false</v2.8:AirdragModifiedMultistage> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-3"> + <HashPreviousStage> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-3-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 3</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 3</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567866</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:TechnicalPermissibleMaximumLadenMass>20000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:AirdragModifiedMultistage>false</v2.8:AirdragModifiedMultistage> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>false</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>true</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f7b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj38kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..03897a0f18688c32f35ab458d36e5f2c72e48036 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml @@ -0,0 +1,819 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>3</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>none</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>N.A.</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-3"> + <HashPreviousStage> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-3-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 3</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 3</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567866</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:TechnicalPermissibleMaximumLadenMass>20000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>false</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>true</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f7b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj38kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..2fee2955707e5ff98e191f12a782bed7ed190de4 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml @@ -0,0 +1,814 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>4</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="4"> + <Data xsi:type="BusManufacturingStageDataType" id="MST-3"> + <HashPreviousStage> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-3-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 3</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 3</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567866</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:TechnicalPermissibleMaximumLadenMass>20000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f7b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj38kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..aa48d6f8c47bd231f6c18be5065f030b55e6ace5 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml @@ -0,0 +1,755 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>4</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..fb2e80fe11d5fc899f937767d1e5af4f0225a403 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml @@ -0,0 +1,682 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"/> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..598780c234753ef3b92e48189a3a9d4ac1a45078 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml @@ -0,0 +1,744 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:NgTankSystem>Compressed</v2.8:NgTankSystem> + <v2.8:NumberPassengerSeatsLowerDeck>12</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>5</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>4</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>3000</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2500</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2500</v2.8:EntranceHeight> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:CorrectedActualMass>15000</v2.8:CorrectedActualMass> + <v2.8:BodyworkCode>CB</v2.8:BodyworkCode> + <v2.8:DoorDriveTechnology>mixed</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..e7c8c66e624966c33f067f9cefec6ee4143526fc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> <PrimaryVehicle> <Data id="text" xsi:type="PrimaryVehicleDataType"> <Vehicle xsi:type="VehiclePIFType"> <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> <Model>Generic Model</Model> <VIN>VEH-1234567890_nonSmart-ESS</VIN> <Date>2017-02-15T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>8x2</AxleConfiguration> <Articulated>true</Articulated> <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> <AngledriveType>None</AngledriveType> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> </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"/> <tcl:Entry gear="12" maxTorque="1900"/> </TorqueLimits> <Components xsi:type="VehicleComponentsPIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> <Manufacturer>Generic Engine Manufacturer</Manufacturer> <Model>Bus 6x2</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>1800</RatedSpeed> <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> </WHRType> <Mode> <IdlingSpeed>600</IdlingSpeed> <FullLoadAndDragCurve> <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> </FullLoadAndDragCurve> <Fuels> <FuelType>Diesel CI</FuelType> </Fuels> </Mode> </Data> </Engine> <Transmission> <Data xsi:type="TransmissionDataPIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck Gearbox</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> <TransmissionType>AMT</TransmissionType> <Gears xsi:type="TransmissionGearsPIFType"> <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> <TorqueConverter> <Data xsi:type="TorqueConverterDataPIFType"> <Manufacturer>Generic Torque Converter</Manufacturer> <Model>Generic Torque Converter Model</Model> <CertificationMethod>Standard values</CertificationMethod> <CertificationNumber>Torq-4546565455</CertificationNumber> <Date>2018-01-12T12:00:00Z</Date> <AppVersion>3.0.3</AppVersion> <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> </Data> </TorqueConverter> <Angledrive> <Data xsi:type="AngledriveDataPIFType"> <Manufacturer>Generic Angledrive</Manufacturer> <Model>Generic Angledrive Model</Model> <CertificationMethod>Standard values</CertificationMethod> <CertificationNumber>ANG-Z64665456654</CertificationNumber> <Date>2019-01-12T12:00:00Z</Date> <AppVersion>3.2.3</AppVersion> <Ratio>20</Ratio> </Data> </Angledrive> <Axlegear> <Data xsi:type="AxlegearDataPIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> <Model>Generic 40t Long Haul Truck AxleGear</Model> <CertificationMethod>Standard values</CertificationMethod> <CertificationNumber>AX-6654888s5f4</CertificationNumber> <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="AxleWheelsDataPIFType"> <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> <Axle axleNumber="3" 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>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.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> </Axles> </Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AuxiliaryDataPIFType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</Technology> </SteeringPump> <ElectricSystem> <AlternatorTechnology>smart</AlternatorTechnology> <SmartAlternator> <RatedCurrent>10</RatedCurrent> <RatedVoltage>12</RatedVoltage> </SmartAlternator> <Battery> <BatteryTechnology>lead-acid battery – conventional</BatteryTechnology> <RatedCapacity>50</RatedCapacity> <NominalVoltage>12</NominalVoltage> </Battery> <Capacitor> <CapacitorTechnology></CapacitorTechnology> <RatedCapacitance>30</RatedCapacitance> <RatedVoltage>3</RatedVoltage> </Capacitor> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> </ElectricSystem> <PneumaticSystem> <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> <CompressorDrive>electrically</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> </Vehicle> <InputDataSignature> <di:Reference URI="#VEH-PrimaryBus_SmartPS"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> </di:Reference> </InputDataSignature> <ManufacturerRecordSignature> <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> </di:Reference> </ManufacturerRecordSignature> <Results> <Status>success</Status> <Result status="success"> <VehicleGroup>P33SD</VehicleGroup> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> <Payload unit="kg">1352.52</Payload> <PassengerCount>19.89</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> <Payload unit="kg">6762.60</Payload> <PassengerCount>99.45</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> <Payload unit="kg">1352.52</Payload> <PassengerCount>19.89</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> <Payload unit="kg">6762.60</Payload> <PassengerCount>99.45</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> <Payload unit="kg">1352.52</Payload> <PassengerCount>19.89</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> <Payload unit="kg">6762.60</Payload> <PassengerCount>99.45</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> <Payload unit="kg">1294.51</Payload> <PassengerCount>18.23</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> <Payload unit="kg">4236.57</Payload> <PassengerCount>59.67</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> <Payload unit="kg">1578.29</Payload> <PassengerCount>23.21</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Heavy Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> <Payload unit="kg">7891.43</Payload> <PassengerCount>116.05</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> <Payload unit="kg">1578.29</Payload> <PassengerCount>23.21</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Urban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> <Payload unit="kg">7891.43</Payload> <PassengerCount>116.05</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> <Payload unit="kg">1578.29</Payload> <PassengerCount>23.21</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Suburban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> <Payload unit="kg">7891.43</Payload> <PassengerCount>116.05</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> <Payload unit="kg">1254.68</Payload> <PassengerCount>17.67</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> <Payload unit="kg">4106.21</Payload> <PassengerCount>57.83</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> <Payload unit="kg">1277.49</Payload> <PassengerCount>17.99</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> <Payload unit="kg">3193.72</Payload> <PassengerCount>44.98</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> <Payload unit="kg">1738.08</Payload> <PassengerCount>24.48</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Interurban</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> <Payload unit="kg">5793.60</Payload> <PassengerCount>81.60</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> <Payload unit="kg">1853.95</Payload> <PassengerCount>26.11</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <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> <Mission>Coach</Mission> <SimulationParameters> <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> <Payload unit="kg">4634.88</Payload> <PassengerCount>65.28</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <Fuel type="Diesel CI"> <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> </Fuel> <CO2 unit="g/km">774.60</CO2> </Result> </Results> <ApplicationInformation> <SimulationToolVersion>String</SimulationToolVersion> <Date>2017-01-01T00:00:00Z</Date> </ApplicationInformation> </Data> <Signature> <di:Reference URI="#PIF-d10aff76c5d149948046"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> </di:Reference> </Signature> </PrimaryVehicle> </VectoOutputMultistage> \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..b164a8f8f048591b8bd24c8888bc574184d3b4e6 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml @@ -0,0 +1,747 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2</v2.3:PredictiveCruiseControl> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>true</v2.8:Dayrunninglights> + <v2.8:Positionlights>false</v2.8:Positionlights> + <v2.8:Brakelights>false</v2.8:Brakelights> + <v2.8:Headlights>true</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>false</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>true</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..f0f066339b43de5d3a864f4febd9f54cda2edc02 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml @@ -0,0 +1,645 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>700</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>false</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3: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"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic primary bus 41 Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>7700</Displacement> + <RatedSpeed>2200</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>700</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> + <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> + <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> + <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> + <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> + <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> + <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> + <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> + <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> + <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> + <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> + <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <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"> + <Gear number="1"> + <Ratio>3.364</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="2"> + <Ratio>1.909</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="3"> + <Ratio>1.421</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="4"> + <Ratio>1.000</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="5"> + <Ratio>0.720</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + <Gear number="6"> + <Ratio>0.615</Ratio> + <MaxSpeed>2500</MaxSpeed> + </Gear> + </Gears> + </Data> + </Transmission> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic primary bus 41 AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>6.500</Ratio> + </Data> + </Axlegear> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> + <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.1</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="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>smart</AlternatorTechnology> + <SmartAlternator> + <RatedCurrent>310</RatedCurrent> + <RatedVoltage>48</RatedVoltage> + </SmartAlternator> + <Battery> + <BatteryTechnology>li-ion battery - high power</BatteryTechnology> + <RatedCapacity>1</RatedCapacity> + <NominalVoltage>48</NominalVoltage> + </Battery> +<!-- <MaxAlternatorPower>15000</MaxAlternatorPower> + <ElectricStorageCapacity>50</ElectricStorageCapacity> +--> <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1520.18</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1828.60</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1241.44</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1493.13</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1102.09</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1330.13</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P31SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> + <Payload unit="kg">879.90</Payload> + <PassengerCount>12.39</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1051.61</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1599.38</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1949.71</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1306.47</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1590.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1154.46</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1405.77</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">967.41</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1066.11</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">816.49</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">849.31</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">998.54</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1115.67</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">851.63</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="Diesel CI"> + <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">890.63</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-1234567890</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> + <ManufacturingStage stageCount="3"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-2"> + <HashPreviousStage> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> + <v2.8:ManufacturerAddress></v2.8:ManufacturerAddress> + <v2.8:VIN>VEH-2234567890</v2.8:VIN> + <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-02-13T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-8f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..d1bba98489c9ad108d4b3fa37dff3ed714c95227 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml @@ -0,0 +1,752 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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.1</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> + <Axle axleNumber="3" 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>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.1</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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d11aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+67QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>VIN-132564</v2.8:VIN> + <v2.8:Date>2018-01-15T11:00:00Z</v2.8:Date> + <v2.8:Model>Intermediate Model 1</v2.8:Model> + <v2.8:LegislativeCategory>M3</v2.8:LegislativeCategory> + <v2.8:CorrectedActualMass>25000</v2.8:CorrectedActualMass> + <v2.8:TechnicalPermissibleMaximumLadenMass>30000</v2.8:TechnicalPermissibleMaximumLadenMass> + <v2.8:NgTankSystem>Liquefied</v2.8:NgTankSystem> + <v2.8:ClassBus>B</v2.8:ClassBus> + <v2.8:NumberPassengerSeatsLowerDeck>24</v2.8:NumberPassengerSeatsLowerDeck> + <v2.8:NumberPassengersStandingLowerDeck>7</v2.8:NumberPassengersStandingLowerDeck> + <v2.8:NumberPassengerSeatsUpperDeck>30</v2.8:NumberPassengerSeatsUpperDeck> + <v2.8:NumberPassengersStandingUpperDeck>4</v2.8:NumberPassengersStandingUpperDeck> + <v2.8:BodyworkCode>CA</v2.8:BodyworkCode> + <v2.8:LowEntry>true</v2.8:LowEntry> + <v2.8:HeightIntegratedBody>2500</v2.8:HeightIntegratedBody> + <v2.8:VehicleLength>12000</v2.8:VehicleLength> + <v2.8:VehicleWidth>2000</v2.8:VehicleWidth> + <v2.8:EntranceHeight>2050</v2.8:EntranceHeight> + <v2.8:DoorDriveTechnology>pneumatic</v2.8:DoorDriveTechnology> + <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> + <v2.8:ADAS> + <v2.3:EngineStopStart>false</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>true</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </v2.8:ADAS> + <v2.8:Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E1000*00</v2.0:CertificationNumber> + <v2.0:Date>2018-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y.z</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.35</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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:ElectricSystem> + <v2.8:LEDLights> + <v2.8:Interiorlights>true</v2.8:Interiorlights> + <v2.8:Dayrunninglights>false</v2.8:Dayrunninglights> + <v2.8:Positionlights>true</v2.8:Positionlights> + <v2.8:Brakelights>true</v2.8:Brakelights> + <v2.8:Headlights>false</v2.8:Headlights> + </v2.8:LEDLights> + </v2.8:ElectricSystem> + <v2.8:HVAC> + <v2.8:SystemConfiguration>0</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 3-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>40</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>false</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>true</v2.8:SeparateAirDistributionDucts> + <v2.8:WaterElectricHeater>false</v2.8:WaterElectricHeater> + <v2.8:AirElectricHeater>true</v2.8:AirElectricHeater> + <v2.8:OtherHeatingTechnology>false</v2.8:OtherHeatingTechnology> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187666Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> 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 new file mode 100644 index 0000000000000000000000000000000000000000..42bfe04f38b711a00cba4f9ad37a77005e22a25b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml @@ -0,0 +1,677 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" +xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data id="text" xsi:type="PrimaryVehicleDataType"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model</Model> + <VIN>VEH-1234567890_nonSmart-ESS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>8x2</AxleConfiguration> + <Articulated>true</Articulated> + <TechnicalPermissibleMaximumLadenMass>4000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <ADAS xsi:type="v2.3:AdvancedDriverAssistantSystemsType"> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>true</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>1,2,3</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>false</v2.3:APTEcoRollReleaseLockupClutch> + </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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Bus 6x2</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>1800</RatedSpeed> + <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> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <CertificationNumber>Trans-5464sdf6sdf555</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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> + <TorqueConverter> + <Data xsi:type="TorqueConverterDataPIFType"> + <Manufacturer>Generic Torque Converter</Manufacturer> + <Model>Generic Torque Converter Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>Torq-4546565455</CertificationNumber> + <Date>2018-01-12T12:00:00Z</Date> + <AppVersion>3.0.3</AppVersion> + <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> + </Data> + </TorqueConverter> + <Angledrive> + <Data xsi:type="AngledriveDataPIFType"> + <Manufacturer>Generic Angledrive</Manufacturer> + <Model>Generic Angledrive Model</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>ANG-Z64665456654</CertificationNumber> + <Date>2019-01-12T12:00:00Z</Date> + <AppVersion>3.2.3</AppVersion> + <Ratio>20</Ratio> + </Data> + </Angledrive> + <Axlegear> + <Data xsi:type="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationMethod>Standard values</CertificationMethod> + <CertificationNumber>AX-6654888s5f4</CertificationNumber> + <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="AxleWheelsDataPIFType"> + <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> + <Axle axleNumber="3" 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>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.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> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</Technology> + </SteeringPump> + <ElectricSystem> + <AlternatorTechnology>conventional</AlternatorTechnology> + <SupplyFromHEVPossible>false</SupplyFromHEVPossible> + </ElectricSystem> + <PneumaticSystem> + <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply> + <CompressorDrive>electrically</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> + </Vehicle> + <InputDataSignature> + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-5f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> + <Payload unit="kg">1294.51</Payload> + <PassengerCount>18.23</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> + <Payload unit="kg">4236.57</Payload> + <PassengerCount>59.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>17.67</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> + <Payload unit="kg">1738.08</Payload> + <PassengerCount>24.48</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>String</SimulationToolVersion> + <Date>2017-01-01T00:00:00Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="BusManufacturingStageDataType" id="MSTG-1"> + <HashPreviousStage> + <di:Reference URI="#PIF-d10aff76c5d149948046"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=</di:DigestValue> + </di:Reference> + </HashPreviousStage> + <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-1-Vehicle"> + <v2.8:Manufacturer>Intermediate Manufacturer 1</v2.8:Manufacturer> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 1</v2.8:ManufacturerAddress> + <v2.8:VIN>adfas</v2.8:VIN> + <v2.8:Date>2018-02-15T11:00:00Z</v2.8:Date> + <v2.8:VehicleDeclarationType>interim</v2.8:VehicleDeclarationType> + </Vehicle> + <ApplicationInformation> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2021-01-12T07:20:08.0187663Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#RESULT-6f30c7fe665a47938f6b"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=</di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_full-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..9e20d2cd2d4e3791611918ac7b389c79169f1984 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_full-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Infinite Loop</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <Model>Sample Bus Model 2</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>7000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <ClassBus>A</ClassBus> <NumberPassengersLowerDeck>10</NumberPassengersLowerDeck> <NumberPassengersUpperDeck>20</NumberPassengersUpperDeck> <BodyworkCode>CC</BodyworkCode> <LowEntry>true</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..760dc95f4322428fb6ec82cbdab6d6269e20fcdd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries01-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer 1</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 1</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>7000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <BodyworkCode>CC</BodyworkCode> <LowEntry>false</LowEntry> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..6404f3d41e9b2c384697e1762cc46bf9a919d79a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_certain_entries02-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> <Manufacturer>Some Manufacturer 2</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 2</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <NumberPassengersLowerDeck>10</NumberPassengersLowerDeck> <NumberPassengersUpperDeck>20</NumberPassengersUpperDeck> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_mandatory_entries.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_mandatory_entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..89d0e3a818a2bde6ebfc8e6eb48203b84edd29ca --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-exempted_input_only_mandatory_entries.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType" > <Manufacturer>Some Manufacturer 3</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_full-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..ed3d84732412752186168dd9ead79fa7fd4d690f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_full-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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 E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> <Manufacturer>Some Manufacturer</Manufacturer> <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <Model>Sample Bus Model</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>500</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> <AirdragModifiedMultistage>false</AirdragModifiedMultistage> <NgTankSystem>Compressed</NgTankSystem> <ClassBus>II+III</ClassBus> <NumberPassengerSeatsLowerDeck>0</NumberPassengerSeatsLowerDeck> <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> <NumberPassengerSeatsUpperDeck>10</NumberPassengerSeatsUpperDeck> <NumberPassengersStandingUpperDeck>10</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> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <AirDrag> <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> <LEDLights> <Interiorlights>false</Interiorlights> <Dayrunninglights>true</Dayrunninglights> <Positionlights>true</Positionlights> <Brakelights>true</Brakelights> <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <SystemConfiguration>0</SystemConfiguration> <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> <HeatPumpModeDriverCompartment>heating</HeatPumpModeDriverCompartment> <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> <WaterElectricHeater>true</WaterElectricHeater> <AirElectricHeater>false</AirElectricHeater> <OtherHeatingTechnology>false</OtherHeatingTechnology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries01-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries01-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..b3026591ed53048a8944edba0570ffc82d1e7085 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries01-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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 E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType" > <Manufacturer>Some Manufacturer 1</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 1</ManufacturerAddress> <VIN>VEH-1234567891</VIN> <Date>2021-01-09T11:00:00Z</Date> <Model>Sample Bus Model 2</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>5000</CorrectedActualMass> <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> <AirdragModifiedMultistage>false</AirdragModifiedMultistage> <NgTankSystem>Compressed</NgTankSystem> <ClassBus>A</ClassBus> <BodyworkCode>CG</BodyworkCode> <LowEntry>true</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> <VehicleLength>10000</VehicleLength> <VehicleWidth>2600</VehicleWidth> <EntranceHeight>2000</EntranceHeight> <DoorDriveTechnology>pneumatic</DoorDriveTechnology> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> <LEDLights> <Interiorlights>false</Interiorlights> <Dayrunninglights>true</Dayrunninglights> <Headlights>false</Headlights> </LEDLights> </ElectricSystem> <HVAC> <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> <DoubleGlazing>false</DoubleGlazing> <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> <WaterElectricHeater>true</WaterElectricHeater> <OtherHeatingTechnology>false</OtherHeatingTechnology> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries02-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries02-sample.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b138e728e57eed3b0a9b966207dd1d724e0ccd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_certain_entries02-sample.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 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 E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType" > <Manufacturer>Some Manufacturer 2</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 2</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <Model>Sample Bus Model</Model> <LegislativeCategory>M3</LegislativeCategory> <CorrectedActualMass>500</CorrectedActualMass> <NgTankSystem>Compressed</NgTankSystem> <ClassBus>II+III</ClassBus> <NumberPassengerSeatsLowerDeck>0</NumberPassengerSeatsLowerDeck> <NumberPassengersStandingLowerDeck>5</NumberPassengersStandingLowerDeck> <NumberPassengerSeatsUpperDeck>10</NumberPassengerSeatsUpperDeck> <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck> <BodyworkCode>CB</BodyworkCode> <LowEntry>false</LowEntry> <HeightIntegratedBody>2500</HeightIntegratedBody> <VehicleLength>9500</VehicleLength> <VehicleWidth>2500</VehicleWidth> <EntranceHeight>2000</EntranceHeight> <VehicleDeclarationType>interim</VehicleDeclarationType> <ADAS> <v2.3:EngineStopStart>true</v2.3:EngineStopStart> <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> </ADAS> <Components xsi:type="CompletedVehicleComponentsDeclarationType"> <AirDrag> <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX23h"> <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </v2.0:Signature> </AirDrag> <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <HVAC> <SystemConfiguration>0</SystemConfiguration> <HeatPumpTypeDriverCompartment>none</HeatPumpTypeDriverCompartment> <HeatPumpModeDriverCompartment>heating</HeatPumpModeDriverCompartment> <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> </HVAC> </Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_mandatory_entries.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_mandatory_entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..4aacbe05c474c42a256799dfea8b4861a8d4ec4e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/vecto_vehicle-stage_input_only_mandatory_entries.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" 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 E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType" > <Manufacturer>Some Manufacturer 3</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <StateOfCompletion>incomplete</StateOfCompletion> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs new file mode 100644 index 0000000000000000000000000000000000000000..cfb858ef85dcabc4feebf1ec0620ba540a599ee5 --- /dev/null +++ b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Xml; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.Models.Simulation; + +namespace TUGraz.VectoCore.Tests.Utils +{ + public static class CompletedVIF + { + public static XMLDeclarationVIFInputData CreateCompletedVif(JSONInputDataCompletedBusFactorMethodV7 completedJson, + IXMLInputDataReader xmlInputReader) + { + var vifDataProvider = xmlInputReader.Create(completedJson.PrimaryInputDataFile); + var completeDataProvider = xmlInputReader.CreateDeclaration(completedJson.CompletedInputDataFile); + var inputDataAsm = new XMLDeclarationVIFInputData( + vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle); + + var filename = Guid.NewGuid().ToString().Substring(0, 20); + var writerAsm = new FileOutputVIFWriter(filename, 0); + + var factoryAsm = new SimulatorFactory(ExecutionMode.Declaration, inputDataAsm, writerAsm); + var jobContainer = new JobContainer(new MockSumWriter()); + jobContainer.AddRuns(factoryAsm); + jobContainer.Execute(); + jobContainer.WaitFinished(); + + var completedVifXML = new XmlDocument(); + completedVifXML.Load(writerAsm.XMLMultistageReportFileName); + + var completedVif = + xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(completedVifXML.OuterXml))); + File.Delete(writerAsm.XMLMultistageReportFileName); + return new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null); + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs index 97f1b89923bd32fcda188f01090df30a604c826e..aa367932f79de368166442fa0ad64adad3873a48 100644 --- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs +++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs @@ -29,7 +29,8 @@ namespace TUGraz.VectoCore.Tests.Utils { public string Identifier { get; } public bool ExemptedVehicle { get; } public string VIN { get; } - public LegislativeClass LegislativeClass { get; } + public string LegislativeCategory { get; } + public LegislativeClass? LegislativeClass { get; } public VehicleCategory VehicleCategory { get; } public AxleConfiguration AxleConfiguration { get; } public Kilogram CurbMassChassis { get; } @@ -39,6 +40,7 @@ namespace TUGraz.VectoCore.Tests.Utils { public PerSecond EngineIdleSpeed { get; } public bool VocationalVehicle { get; } public bool SleeperCab { get; } + public bool? AirdragModifiedMultistage { get; } public TankSystem? TankSystem { get; } public IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get; } public bool ZeroEmissionVehicle { get; } @@ -46,18 +48,21 @@ namespace TUGraz.VectoCore.Tests.Utils { public bool DualFuelVehicle { get; } public Watt MaxNetPower1 { get; } public Watt MaxNetPower2 { get; } - public RegistrationClass RegisteredClass { get; set; } - public int NumberOfPassengersUpperDeck { get; set; } - public int NumberOfPassengersLowerDeck { get; set; } + public RegistrationClass? RegisteredClass { get; set; } + public int? NumberPassengerSeatsUpperDeck { get; set; } + public int? NumberPassengerSeatsLowerDeck { get; set; } + public int? NumberPassengersStandingLowerDeck { get; set; } + public int? NumberPassengersStandingUpperDeck { get; set; } public CubicMeter CargoVolume { get; } - public VehicleCode VehicleCode { get; set; } - public bool LowEntry { get; } + public VehicleCode? VehicleCode { get; set; } + public bool? LowEntry { get; } public bool Articulated { get; } public Meter Height { get; set; } public Meter Length { get; set; } public Meter Width { get; set; } public Meter EntranceHeight { get; } - public ConsumerTechnology DoorDriveTechnology { get; } + public ConsumerTechnology? DoorDriveTechnology { get; } + public VehicleDeclarationType VehicleDeclarationType { get; } public IVehicleComponentsDeclaration Components { get { return this; } } public XmlNode XMLSource { get; } @@ -113,14 +118,17 @@ namespace TUGraz.VectoCore.Tests.Utils { public Meter Length { get; set; } public Meter Width { get; set; } public Meter EntranceHeight { get; } - public ConsumerTechnology DoorDriveTechnology { get; } + public ConsumerTechnology? DoorDriveTechnology { get; } + public VehicleDeclarationType VehicleDeclarationType { get; } public Watt MaxNetPower2 { get; } - public RegistrationClass RegisteredClass { get; set; } - public int NumberOfPassengersUpperDeck { get; set; } - public int NumberOfPassengersLowerDeck { get; set; } + public RegistrationClass? RegisteredClass { get; set; } + public int? NumberPassengerSeatsUpperDeck { get; set; } + public int? NumberPassengerSeatsLowerDeck { get; set; } + public int? NumberPassengersStandingLowerDeck { get; set; } + public int? NumberPassengersStandingUpperDeck { get; set; } public CubicMeter CargoVolume { get; } - public VehicleCode VehicleCode { get; set; } - public bool LowEntry { get; } + public VehicleCode? VehicleCode { get; set; } + public bool? LowEntry { get; } IVehicleComponentsDeclaration IVehicleDeclarationInputData.Components { @@ -133,7 +141,8 @@ namespace TUGraz.VectoCore.Tests.Utils { public string Identifier { get; } public bool ExemptedVehicle { get; } public string VIN { get; } - public LegislativeClass LegislativeClass { get; } + public string LegislativeCategory { get; } + public LegislativeClass? LegislativeClass { get; } public VehicleCategory VehicleCategory { get; } public AxleConfiguration AxleConfiguration { get; } public Kilogram CurbMassChassis { get; } @@ -143,6 +152,7 @@ namespace TUGraz.VectoCore.Tests.Utils { public PerSecond EngineIdleSpeed { get; } public bool VocationalVehicle { get; } public bool SleeperCab { get; } + public bool? AirdragModifiedMultistage { get; } public TankSystem? TankSystem { get; } IAdvancedDriverAssistantSystemDeclarationInputData IVehicleDeclarationInputData.ADAS diff --git a/VectoCore/VectoCoreTest/Utils/MockEngineDataProvider.cs b/VectoCore/VectoCoreTest/Utils/MockEngineDataProvider.cs index fb3f5a8dba2f1401a7d1201cfa880600e0e649f2..a336da2924c0acc0c3c4d7fecef544d8362436f2 100644 --- a/VectoCore/VectoCoreTest/Utils/MockEngineDataProvider.cs +++ b/VectoCore/VectoCoreTest/Utils/MockEngineDataProvider.cs @@ -71,9 +71,9 @@ namespace TUGraz.VectoCore.Tests.Utils get { return new[] { this }.Cast<IEngineFuelEngineeringInputData>().ToList(); } } - public IList<IEngineFuelDelcarationInputData> Fuels + public IList<IEngineFuelDeclarationInputData> Fuels { - get { return new[] { this }.Cast<IEngineFuelDelcarationInputData>().ToList(); } + get { return new[] { this }.Cast<IEngineFuelDeclarationInputData>().ToList(); } } public IWHRData WasteHeatRecoveryDataElectrical { get; } diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs index 823dfe2b31882809a7fcaaab7be5509df0dda699..2b6c8f979119c6687a0cb1d961df683138b885b9 100644 --- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs @@ -43,6 +43,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData; + namespace TUGraz.VectoCore.Tests.Utils { /// <summary> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index e2b83a07d9e7cf6b5b84242dbaa14535994eeb8c..2572f74355af024a922237b63b58f9c65bc2c0f1 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -118,6 +118,7 @@ <Compile Include="Integration\DualFuel\DualFuelTests.cs" /> <Compile Include="Integration\RoadSweepers\RoadSweeperTests.cs" /> <Compile Include="Integration\Hybrid\ParallelHybridTest.cs" /> + <Compile Include="Integration\Multistage\MultistageVehicleTest.cs" /> <Compile Include="Integration\VTP\VTPTest.cs" /> <Compile Include="Integration\FuelTypesTest.cs" /> <Compile Include="Integration\FullCycleDeclarationTest.cs"> @@ -152,6 +153,7 @@ <Compile Include="Models\SimulationComponent\EngineFanAuxTest.cs" /> <Compile Include="Models\SimulationComponent\GearboxShiftLossesTest.cs" /> <Compile Include="Models\SimulationComponent\SuperCapTest.cs" /> + <Compile Include="Utils\CompletedVIF.cs" /> <Compile Include="Utils\MockElectricConsumer.cs" /> <Compile Include="Utils\MockHybridControl.cs" /> <Compile Include="Utils\MockBattery.cs" /> @@ -235,6 +237,9 @@ <Compile Include="XML\XMLDeclarationReaderVersionsTest.cs" /> <Compile Include="XML\XMLEngineeringInputRefTest.cs" /> <Compile Include="XML\XMLEngineeringInputSingleTest.cs" /> + <Compile Include="XML\XMLMultistageBusConsolidatedInputDataTest.cs" /> + <Compile Include="XML\XMLMultistageBusDataTest.cs" /> + <Compile Include="XML\XMLMultistageBusInputDataTest.cs" /> <Compile Include="XML\XMLPrimaryBusInputDataTest.cs" /> <Compile Include="XML\XMLReportTest.cs" /> <Compile Include="XML\XMLPrimaryVehicleReportBusReaderTest.cs" /> @@ -5471,6 +5476,7 @@ </ItemGroup> <ItemGroup> <Folder Include="Integration\FullPowertrain\" /> + <Folder Include="TestData\Integration\DeclarationMode\MultistageVehicle\" /> </ItemGroup> <ItemGroup> <Content Include="TestData\Integration\ADAS\Group5PCCDecl\Tractor_4x2_vehicle-class-5_5_t_0.xml"> @@ -5497,22 +5503,25 @@ <Content Include="TestData\Integration\ADAS\Group9_AT_PCCEcoRoll.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_AT-P.RSLT_PIF.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41.RSLT_VIF.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_AT-P.RSLT_VIF.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_nonSmart_AT-P.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.RSLT_PIF.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\CompletedHeavyBus_33b1.RSLT_VIF.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.RSLT_VIF.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_nonSmart.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41.RSLT_PIF.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_nonSmart.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="TestData\Integration\Buses\FactorMethod\vecto_vehicle-completed_heavyBus_41_mixed.xml"> @@ -5524,7 +5533,7 @@ <Content Include="TestData\Integration\Buses\FactorMethod\vecto_vehicle-completed_heavyBus_42.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\Integration\Buses\FactorMethod\vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_PIF.xml"> + <Content Include="TestData\Integration\Buses\FactorMethod\vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="TestData\Integration\Buses\primary_heavyBus group P39_40_nonSmart_ESS.xml"> @@ -5834,33 +5843,122 @@ <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\primary_heavyBus group P39_40_nonSmart_ESS.RSLT_PIF.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorryFWD-sample.xml"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorry-sample.xml"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-completed_heavyBus-sample.xml"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> <SubType>Designer</SubType> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBus-sample.xml"> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorry-sample.xml" /> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorryFWD-sample.xml"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorry-sample.xml" /> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorryFWD-sample.xml" /> <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBus-sample.xml"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBusSmartES-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_mandatory_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample_group41.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_component_nullable_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_entries.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_vif_input.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_airdrag.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_heatPump.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_hev.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_vif.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_one_stage.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_two_stages.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_only.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_3.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_3_group41.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_full.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_mandatory.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_engine-input_sample.xml" /> - <Content Include="TestData\XML\XMLReaderDeclaration\vecto_engine-sample.xml" /> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_engine-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_gearbox-sample.xml" /> - <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-exempted-sample.xml" /> - <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-new_parameters-sample.xml" /> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-exempted-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-exempted_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-exempted_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-exempted_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-new_parameters-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_exempted.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -5888,6 +5986,15 @@ <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_FULL.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-stage_input_full-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-stage_input_only_certain_entries01-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-stage_input_only_certain_entries02-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderEngineering\engineering_axlegear-sample_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> diff --git a/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs b/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs index a01ff46e64cfcadedc0f179614076d6023c1e39c..444bb17a9bd769843018af9518bb7eb097ac8b04 100644 --- a/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs @@ -57,8 +57,8 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(15400, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass ?!? //Assert.That(() => vehicle.TankSystem, Throws.InstanceOf<VectoException>()); Assert.IsNull(vehicle.TankSystem); - Assert.AreEqual(50, vehicle.NumberOfPassengersLowerDeck); - Assert.AreEqual(0, vehicle.NumberOfPassengersUpperDeck); + Assert.AreEqual(50, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(0, vehicle.NumberPassengerSeatsUpperDeck); Assert.IsTrue(vehicle.LowEntry); Assert.AreEqual(2.700, vehicle.Height.Value()); Assert.AreEqual(11.830, vehicle.Length.Value()); @@ -96,18 +96,15 @@ namespace TUGraz.VectoCore.Tests.XML var electricSupl = components.BusAuxiliaries.ElectricSupply; Assert.IsNotNull(electricSupl.Alternators); Assert.AreEqual(1, electricSupl.Alternators.Count); - Assert.AreEqual("default", electricSupl.Alternators.First().Technology); + Assert.AreEqual(AlternatorType.Conventional, electricSupl.AlternatorTechnology); //Assert.AreEqual(ConsumerTechnology.Pneumatically, components.BusAuxiliaries.PneumaticConsumers.DoorDriveTechnology); var havacAux = components.BusAuxiliaries.HVACAux; Assert.IsNotNull(havacAux); Assert.AreEqual(BusHVACSystemConfiguration.Configuration7, havacAux.SystemConfiguration); - Assert.AreEqual(ACCompressorType.TwoStage, havacAux.CompressorTypeDriver); - Assert.AreEqual(ACCompressorType.FourStage, havacAux.CompressorTypePassenger); Assert.AreEqual(0.SI<Watt>(), havacAux.AuxHeaterPower); Assert.IsTrue(havacAux.DoubleGlazing); - Assert.IsFalse(havacAux.HeatPump); Assert.IsTrue(havacAux.AdjustableAuxiliaryHeater); Assert.IsTrue(havacAux.SeparateAirDistributionDucts); } diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..50fba39851d0b4653563b5ea849c5b4cc42ab59a --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs @@ -0,0 +1,270 @@ +using System; +using System.IO; +using System.Xml; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML; + +namespace TUGraz.VectoCore.Tests.XML +{ + [TestFixture] + public class XMLMultistageBusConsolidatedInputDataTest + { + protected IXMLInputDataReader _xmlInputReader; + private IKernel _kernel; + + const string _dirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\"; + const string _consolidatedInputData = _dirPath + "vecto_multistage_consolidated_multiple_stages.xml"; + const string _primaryOnlyInputData = _dirPath + "vecto_multistage_primary_vehicle_only.xml"; + const string _oneStageInputData = _dirPath + "vecto_multistage_consolidated_one_stage.xml"; + const string _twoStagesInputData = _dirPath + "vecto_multistage_consolidated_two_stages.xml"; + + const string _consolidatedInputDataAirdrag = _dirPath + "vecto_multistage_consolidated_multiple_stages_airdrag.xml"; + const string _consolidatedInputDataHeatPump = _dirPath + "vecto_multistage_consolidated_multiple_stages_heatPump.xml"; + const string _consolidatedInputDataHeatHev = _dirPath + "vecto_multistage_consolidated_multiple_stages_hev.xml"; + const string _consolidatedInputDataHeatNgTank = _dirPath + "vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml"; + + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + _xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + + [TestCase] + public void TestConsolidateMultistageVehicle() + { + var reader = XmlReader.Create(_consolidatedInputData); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); + TestConsolidateManufacturingStage(inputDataProvider.JobInputData.ConsolidateManufacturingStage); + } + + private void TestConsolidateManufacturingStage(IManufacturingStageInputData consolidateStage) + { + var vehicle = consolidateStage.Vehicle; + Assert.AreEqual("Intermediate Manufacturer 3", vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 3", vehicle.ManufacturerAddress); + Assert.AreEqual("Intermediate Model 1", vehicle.Model); + Assert.AreEqual("VEH-2234567866", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass); + Assert.AreEqual(15000, vehicle.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(20000, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(null, vehicle.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Liquefied, vehicle.TankSystem);//NgTankSystem + Assert.AreEqual(RegistrationClass.B, vehicle.RegisteredClass);//ClassBus + Assert.AreEqual(11, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(31, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(3, vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(1, vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode); + Assert.AreEqual(true, vehicle.LowEntry); + Assert.AreEqual(3, vehicle.Height.Value());//HeightIntegratedBody + Assert.AreEqual(12, vehicle.Length.Value()); + Assert.AreEqual(2.5, vehicle.Width.Value()); + Assert.AreEqual(2.5, vehicle.EntranceHeight.Value()); + Assert.AreEqual(ConsumerTechnology.Mixed, vehicle.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + Assert.AreEqual(null, vehicle.Components.AirdragInputData); + + var busAux = vehicle.Components.BusAuxiliaries; + Assert.AreEqual(true, busAux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.HeadlightsLED); + + var busHVACAux = vehicle.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, busHVACAux.SystemConfiguration); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, busHVACAux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, busHVACAux.HeatPumpModeDriverCompartment); + Assert.AreEqual(1, busHVACAux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, busHVACAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, busHVACAux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(50, busHVACAux.AuxHeaterPower.Value()); + Assert.AreEqual(false, busHVACAux.DoubleGlazing); + Assert.AreEqual(true, busHVACAux.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, busHVACAux.SeparateAirDistributionDucts); + Assert.AreEqual(false, busHVACAux.WaterElectricHeater); + Assert.AreEqual(false, busHVACAux.AirElectricHeater); + Assert.AreEqual(true, busHVACAux.OtherHeatingTechnology); + } + + + [TestCase] + public void TestPrimaryOnlyConsolidateMultistageVehicle() + { + var reader = XmlReader.Create(_primaryOnlyInputData); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages); + Assert.AreEqual(null, inputDataProvider.JobInputData.ConsolidateManufacturingStage); + Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); + } + + [TestCase] + public void TestOneStageConsolidateMultistageVehicle() + { + var reader = XmlReader.Create(_oneStageInputData); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); + + + var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle; + Assert.AreEqual("Intermediate Manufacturer 1", vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 1", vehicle.ManufacturerAddress); + Assert.AreEqual(null, vehicle.Model); + Assert.AreEqual("VEH-1234567890", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual(null, vehicle.LegislativeClass); + Assert.AreEqual(null, vehicle.CurbMassChassis);//CorrectedActualMass + Assert.AreEqual(null, vehicle.GrossVehicleMassRating);//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(null, vehicle.AirdragModifiedMultistage); + Assert.AreEqual(null, vehicle.TankSystem);//NgTankSystem + Assert.AreEqual(null, vehicle.RegisteredClass);//ClassBus + Assert.AreEqual(null, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(null, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(null, vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(null, vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(null, vehicle.VehicleCode); + Assert.AreEqual(null, vehicle.LowEntry); + Assert.AreEqual(null, vehicle.Height);//HeightIntegratedBody + Assert.AreEqual(null, vehicle.Length); + Assert.AreEqual(null, vehicle.Width); + Assert.AreEqual(null, vehicle.EntranceHeight); + Assert.AreEqual(null, vehicle.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + + Assert.AreEqual(null, vehicle.ADAS); + + Assert.AreEqual(null, vehicle.Components); + + } + + [TestCase] + public void TestTwoStagesConsolidateMultistageVehicle() + { + var reader = XmlReader.Create(_twoStagesInputData); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); + + var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle; + Assert.AreEqual("Intermediate Manufacturer 2", vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 2", vehicle.ManufacturerAddress); + Assert.AreEqual("Intermediate Model 1", vehicle.Model); + Assert.AreEqual("VEH-2234567890", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual(null, vehicle.LegislativeClass); + Assert.AreEqual(15000, vehicle.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(null, vehicle.GrossVehicleMassRating);//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(null, vehicle.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Compressed, vehicle.TankSystem);//NgTankSystem + Assert.AreEqual(null, vehicle.RegisteredClass);//ClassBus + Assert.AreEqual(12, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(5, vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(30, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(4, vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode); + Assert.AreEqual(true, vehicle.LowEntry); + Assert.AreEqual(3, vehicle.Height.Value());//HeightIntegratedBody + Assert.AreEqual(12, vehicle.Length.Value()); + Assert.AreEqual(2.5, vehicle.Width.Value()); + Assert.AreEqual(2.5, vehicle.EntranceHeight.Value()); + Assert.AreEqual(ConsumerTechnology.Mixed, vehicle.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(null, vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + Assert.AreEqual(null, vehicle.Components); + } + + + [TestCase] + public void TestConsolidateMultistageAirdrag() + { + var reader = XmlReader.Create(_consolidatedInputDataAirdrag); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(2, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpPassengerCompartments[1].Item2); + + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); + } + + [TestCase] + public void TestConsolidateMultistageHeatPump() + { + var reader = XmlReader.Create(_consolidatedInputDataHeatPump); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.N_A, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.none, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); + } + + [TestCase] + public void TestConsolidateMultistageHeatHev() + { + var reader = XmlReader.Create(_consolidatedInputDataHeatHev); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); + } + + [TestCase] + public void TestConsolidateMultistageHeatNgTankSystem() + { + var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + + + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); + } + } +} diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..6a337e3dace079efaf26bb6f597f22ec8429f4db --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs @@ -0,0 +1,777 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Declaration; + +namespace TUGraz.VectoCore.Tests.XML +{ + [TestFixture] + public class XMLMultistageBusDataTest + { + protected IXMLInputDataReader _xmlInputReader; + private IKernel _kernel; + + const string VIF01 = + @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_3.xml"; + + const string VIF02 = + @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_full.xml"; + + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + _xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + + [TestCase] + public void TestVehicleMultistageBusInput01() + { + var reader = XmlReader.Create(VIF01); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle); + TestManufacturingStages(inputDataProvider.JobInputData.ManufacturingStages); + } + + #region Primary Vehicle Test + + private void TestPrimaryVehicleDataType(IPrimaryVehicleInformationInputDataProvider primaryVehicle) + { + TestVehicleData(primaryVehicle.Vehicle); + TestADASData(primaryVehicle.Vehicle.ADAS); + TestTorqueLimitsData(primaryVehicle.Vehicle.TorqueLimits); + TestComponentsData(primaryVehicle.Vehicle.Components); + TestInputDataSignature(primaryVehicle.PrimaryVehicleInputDataHash); + TestManufacturerRecordSignatureData(primaryVehicle.ManufacturerRecordHash); + TestApplicationInformationData(primaryVehicle.ApplicationInformation); + TestResultsData(primaryVehicle.ResultsInputData); + TestSignatureHashData(primaryVehicle.VehicleSignatureHash); + } + + + #region Vehicle Test Methods + + private void TestVehicleData(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual("Generic Truck Manufacturer", vehicleData.Manufacturer); + Assert.AreEqual("Street, ZIP City", vehicleData.ManufacturerAddress); + Assert.AreEqual("Generic Model", vehicleData.Model); + Assert.AreEqual("VEH-1234567890_nonSmart-ESS", vehicleData.VIN); + Assert.AreEqual(DateTime.Parse("2017-02-15T11:00:00Z").ToUniversalTime(), vehicleData.Date); + Assert.AreEqual("M3", vehicleData.LegislativeCategory); + Assert.AreEqual("Bus", vehicleData.VehicleCategory.ToXMLFormat()); + Assert.AreEqual(AxleConfiguration.AxleConfig_8x2, vehicleData.AxleConfiguration); + Assert.AreEqual(true, vehicleData.Articulated); + Assert.AreEqual(4000, vehicleData.GrossVehicleMassRating.Value()); + Assert.AreEqual(600, vehicleData.EngineIdleSpeed.AsRPM); + Assert.AreEqual("Transmission Output Retarder", vehicleData.Components.RetarderInputData.Type.ToXMLFormat()); + Assert.AreEqual("None", vehicleData.Components.AngledriveInputData.Type.ToXMLFormat()); + Assert.AreEqual(false, vehicleData.ZeroEmissionVehicle); + } + + private void TestADASData(IAdvancedDriverAssistantSystemDeclarationInputData adas) + { + Assert.AreEqual(true, adas.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, adas.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2_3, adas.PredictiveCruiseControl); + Assert.AreEqual(false, adas.ATEcoRollReleaseLockupClutch); + } + + private void TestTorqueLimitsData(IList<ITorqueLimitInputData> torqueLimits) + { + Assert.AreEqual(3, torqueLimits.Count); + + Assert.AreEqual(6, torqueLimits[0].Gear); + Assert.AreEqual(1800, torqueLimits[0].MaxTorque.Value()); + + Assert.AreEqual(1, torqueLimits[1].Gear); + Assert.AreEqual(2500, torqueLimits[1].MaxTorque.Value()); + + Assert.AreEqual(12, torqueLimits[2].Gear); + Assert.AreEqual(1900, torqueLimits[2].MaxTorque.Value()); + } + + #endregion + + + private void TestComponentsData(IVehicleComponentsDeclaration vehicleComponents) + { + TestEngineData(vehicleComponents.EngineInputData); + TestTransmissionData(vehicleComponents.GearboxInputData); + TestTorqueConverterData(vehicleComponents.TorqueConverterInputData); + TestAngledriveData(vehicleComponents.AngledriveInputData); + TestAxelgearData(vehicleComponents.AxleGearInputData); + TestAxelWheelsData(vehicleComponents.AxleWheels); + TestAuxiliarieData(vehicleComponents.BusAuxiliaries); + } + + #region Components Data Tests + + #region Engine Data Test + + private void TestEngineData(IEngineDeclarationInputData engineData) + { + Assert.AreEqual("Generic Engine Manufacturer", engineData.Manufacturer); + Assert.AreEqual("Bus 6x2", engineData.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", engineData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-02-15T11:00:00Z").ToUniversalTime(), engineData.Date); + Assert.AreEqual("VectoEngine x.y", engineData.AppVersion); + Assert.AreEqual(12730.SI(Unit.SI.Cubic.Centi.Meter).Cast<CubicMeter>(), engineData.Displacement); + Assert.AreEqual(1800, engineData.RatedSpeedDeclared.AsRPM); + Assert.AreEqual(325032.SI<Watt>(), engineData.RatedPowerDeclared); + Assert.AreEqual(2134, engineData.MaxTorqueDeclared.Value()); + Assert.AreEqual(WHRType.ElectricalOutput, engineData.WHRType); + TestEngineModes(engineData.EngineModes); + } + + private void TestEngineModes(IList<IEngineModeDeclarationInputData> engineModes) + { + Assert.AreEqual(1, engineModes.Count); + Assert.AreEqual(600, engineModes[0].IdleSpeed.AsRPM); + + var fullLoadCurve = engineModes[0].FullLoadCurve; + var entryIndex = 0; + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("600.00", "1188.00", "-138.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("800.00", "1661.00", "-143.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1000.00", "2134.00", "-152.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1200.00", "2134.00", "-165.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1400.00", "2134.00", "-187.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1600.00", "1928.00", "-217.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("1800.00", "1722.00", "-244.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("2000.00", "1253.00", "-278.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("2100.00", "1019.00", "-296.00", fullLoadCurve, ref entryIndex)); + Assert.IsTrue(CheckFullLoadAndDragCurveEntry("2200.00", "0.00", "-314.00", fullLoadCurve, ref entryIndex)); + + Assert.AreEqual(1, engineModes[0].Fuels.Count); + Assert.AreEqual(FuelType.DieselCI, engineModes[0].Fuels.First().FuelType); + } + + private bool CheckFullLoadAndDragCurveEntry(string engineSpeed, string maxTorque, string dragTorque, TableData loadCurve, ref int currentRow) + { + var result = engineSpeed == loadCurve.Rows[currentRow][0].ToString() && + maxTorque == loadCurve.Rows[currentRow][1].ToString() && + dragTorque == loadCurve.Rows[currentRow][2].ToString(); + + currentRow++; + return result; + } + + #endregion + + #region Transmission Data Test + + private void TestTransmissionData(IGearboxDeclarationInputData transmissionData) + { + Assert.AreEqual("Generic Gearbox Manufacturer", transmissionData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck Gearbox", transmissionData.Model); + Assert.AreEqual(CertificationMethod.StandardValues, transmissionData.CertificationMethod); + Assert.AreEqual("Trans-5464sdf6sdf555", transmissionData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T11:00:00Z").ToUniversalTime(), transmissionData.Date); + Assert.AreEqual("3.0.1", transmissionData.AppVersion); + Assert.AreEqual(GearboxType.AMT, transmissionData.Type); + Assert.AreEqual(12, transmissionData.Gears.Count); + + var entryIndex = 0; + Assert.IsTrue(CheckTransmissionGear(1, 14.930, 1900, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(2, 11.640, 1900, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(3, 9.020, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(4, 7.040, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(5, 5.640, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(6, 4.400, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(7, 3.390, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(8, 2.650, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(9, 2.050, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(10, 1.600, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(11, 1.280, null, 2000, transmissionData.Gears[entryIndex], ref entryIndex)); + Assert.IsTrue(CheckTransmissionGear(12, 1.000, null, null, transmissionData.Gears[entryIndex], ref entryIndex)); + } + + private bool CheckTransmissionGear(int gear, double ratio, int? maxTorque, double? maxSpeed, ITransmissionInputData entry, ref int entryIndex) + { + Assert.AreEqual(gear, entry.Gear); + Assert.AreEqual(ratio, entry.Ratio); + + if (maxTorque == null) + Assert.IsNull(entry.MaxTorque); + else + Assert.AreEqual(((int)maxTorque).SI<NewtonMeter>(), entry.MaxTorque); + + if (maxSpeed == null) + Assert.IsNull(entry.MaxInputSpeed); + else + Assert.AreEqual((double)maxSpeed, entry.MaxInputSpeed.AsRPM, 1e-6); + + entryIndex++; + return true; + } + + #endregion + + #region Torque Converter Data Test + + private void TestTorqueConverterData(ITorqueConverterDeclarationInputData torqueConvData) + { + Assert.AreEqual("Generic Torque Converter", torqueConvData.Manufacturer); + Assert.AreEqual("Generic Torque Converter Model", torqueConvData.Model); + Assert.AreEqual(CertificationMethod.StandardValues, torqueConvData.CertificationMethod); + Assert.AreEqual("Torq-4546565455", torqueConvData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2018-01-12T12:00:00Z").ToUniversalTime(), torqueConvData.Date); + Assert.AreEqual("3.0.3", torqueConvData.AppVersion); + + Assert.AreEqual(3, torqueConvData.TCData.Rows.Count); + var rowIndex = 0; + CheckTorqueConvertCharacteristics("0.0000", "1.00", "300.00", ref rowIndex, torqueConvData.TCData); + CheckTorqueConvertCharacteristics("0.5000", "1.00", "200.00", ref rowIndex, torqueConvData.TCData); + CheckTorqueConvertCharacteristics("0.9000", "0.90", "200.00", ref rowIndex, torqueConvData.TCData); + } + + private void CheckTorqueConvertCharacteristics(string speedRatio, string torqueRation, string inputTorque, + ref int rowIndex, TableData tableData) + { + Assert.AreEqual(speedRatio, tableData.Rows[rowIndex][0]); + Assert.AreEqual(torqueRation, tableData.Rows[rowIndex][1]); + Assert.AreEqual(inputTorque, tableData.Rows[rowIndex][2]); + rowIndex++; + } + + #endregion + + #region Angledrive Data Test + + private void TestAngledriveData(IAngledriveInputData angledriveData) + { + Assert.AreEqual("Generic Angledrive", angledriveData.Manufacturer); + Assert.AreEqual("Generic Angledrive Model", angledriveData.Model); + Assert.AreEqual(CertificationMethod.StandardValues, angledriveData.CertificationMethod); + Assert.AreEqual("ANG-Z64665456654", angledriveData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2019-01-12T12:00:00Z").ToUniversalTime(), angledriveData.Date); + Assert.AreEqual("3.2.3", angledriveData.AppVersion); + Assert.AreEqual(20, angledriveData.Ratio); + } + + #endregion + + #region Axelgear Test + private void TestAxelgearData(IAxleGearInputData axelgearData) + { + Assert.AreEqual("Generic Gearbox Manufacturer", axelgearData.Manufacturer); + Assert.AreEqual("Generic 40t Long Haul Truck AxleGear", axelgearData.Model); + Assert.AreEqual(CertificationMethod.StandardValues, axelgearData.CertificationMethod); + Assert.AreEqual("AX-6654888s5f4", axelgearData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T11:00:00Z").ToUniversalTime(), axelgearData.Date); + Assert.AreEqual("3.0.1", axelgearData.AppVersion); + Assert.AreEqual(AxleLineType.SinglePortalAxle, axelgearData.LineType); + Assert.AreEqual(2.590, axelgearData.Ratio); + } + + #endregion + + #region AxleWheels Data Test + private void TestAxelWheelsData(IAxlesDeclarationInputData axelWheels) + { + Assert.AreEqual(3, axelWheels.AxlesDeclaration.Count); + + var entry = axelWheels.AxlesDeclaration[0]; + Assert.AreEqual(AxleType.VehicleNonDriven, entry.AxleType); + Assert.AreEqual(false, entry.TwinTyres); + + var tyre1 = entry.Tyre; + Assert.AreEqual("Generic Wheels Manufacturer", tyre1.Manufacturer); + Assert.AreEqual("Generic Wheel", tyre1.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre1.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T14:00:00Z").ToUniversalTime(), tyre1.Date); + Assert.AreEqual("Tyre Generation App 1.0", tyre1.AppVersion); + Assert.AreEqual("315/70 R22.5", tyre1.Dimension); + Assert.AreEqual(0.0055, tyre1.RollResistanceCoefficient); + Assert.AreEqual(31300, tyre1.TyreTestLoad.Value());//85% of the maximum tyre payload + + Assert.AreEqual("#WHL-5432198760-315-70-R22.5", tyre1.DigestValue.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", tyre1.DigestValue.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", tyre1.DigestValue.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", tyre1.DigestValue.DigestMethod); + Assert.AreEqual("4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=", tyre1.DigestValue.DigestValue); + + + entry = axelWheels.AxlesDeclaration[1]; + Assert.AreEqual(AxleType.VehicleDriven, entry.AxleType); + Assert.AreEqual(true, entry.TwinTyres); + + var tyre2 = entry.Tyre; + Assert.AreEqual("Generic Wheels Manufacturer", tyre2.Manufacturer); + Assert.AreEqual("Generic Wheel", tyre2.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre2.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T14:00:00Z").ToUniversalTime(), tyre2.Date); + Assert.AreEqual("Tyre Generation App 1.1", tyre2.AppVersion); + Assert.AreEqual("315/70 R22.5", tyre2.Dimension); + Assert.AreEqual(0.0063, tyre2.RollResistanceCoefficient); + Assert.AreEqual(31300, tyre2.TyreTestLoad.Value()); + + Assert.AreEqual("#WHL-5432198760-315-70-R22.5", tyre2.DigestValue.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", tyre2.DigestValue.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", tyre2.DigestValue.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", tyre2.DigestValue.DigestMethod); + Assert.AreEqual("KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=", tyre2.DigestValue.DigestValue); + + entry = axelWheels.AxlesDeclaration[2]; + Assert.AreEqual(AxleType.VehicleNonDriven, entry.AxleType); + Assert.AreEqual(false, entry.TwinTyres); + + var tyre3 = entry.Tyre; + Assert.AreEqual("Generic Wheels Manufacturer", tyre3.Manufacturer); + Assert.AreEqual("Generic Wheel", tyre3.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre3.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-01-11T14:00:00Z").ToUniversalTime(), tyre3.Date); + Assert.AreEqual("Tyre Generation App 1.1", tyre3.AppVersion); + Assert.AreEqual("315/70 R22.5", tyre3.Dimension); + Assert.AreEqual(0.0055, tyre3.RollResistanceCoefficient); + Assert.AreEqual(31300, tyre3.TyreTestLoad.Value()); + + Assert.AreEqual("#WHL-5432198760-315-70-R22.5", tyre3.DigestValue.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", tyre3.DigestValue.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", tyre3.DigestValue.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", tyre3.DigestValue.DigestMethod); + Assert.AreEqual("4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=", tyre3.DigestValue.DigestValue); + } + + + #endregion + + #region Auxiliaries Test + private void TestAuxiliarieData(IBusAuxiliariesDeclarationData aux) + { + Assert.AreEqual("Hydraulic driven - Constant displacement pump", aux.FanTechnology); + + Assert.AreEqual(1, aux.SteeringPumpTechnology.Count); + Assert.AreEqual("Variable displacement elec. controlled", aux.SteeringPumpTechnology[0]); + + Assert.AreEqual(0, aux.ElectricSupply.Alternators.Count); + Assert.AreEqual(AlternatorType.Conventional, aux.ElectricSupply.AlternatorTechnology); + //Assert.AreEqual(true, aux.ElectricSupply.SmartElectrics); + //Assert.AreEqual(730, aux.ElectricSupply.Alternators.FirstOrDefault().RatedCurrent.Value()); + //Assert.AreEqual(48, aux.ElectricSupply.Alternators.FirstOrDefault().RatedVoltage.Value()); + //Assert.AreEqual(50.SI(Unit.SI.Watt.Hour).Cast<WattSecond>(), aux.ElectricSupply.ElectricStorage.FirstOrDefault().ElectricStorageCapacity); + + Assert.AreEqual("Large Supply 2-stage", aux.PneumaticSupply.CompressorSize);//SizeOfAirSupply + Assert.AreEqual(CompressorDrive.electrically, aux.PneumaticSupply.CompressorDrive); + Assert.AreEqual("none", aux.PneumaticSupply.Clutch); + Assert.AreEqual(1.000, aux.PneumaticSupply.Ratio); + Assert.AreEqual(true, aux.PneumaticSupply.SmartAirCompression); + Assert.AreEqual(false, aux.PneumaticSupply.SmartRegeneration); + Assert.AreEqual(ConsumerTechnology.Electrically, aux.PneumaticConsumers.AirsuspensionControl); + Assert.AreEqual(ConsumerTechnology.Electrically, aux.PneumaticConsumers.AirsuspensionControl); + Assert.AreEqual(ConsumerTechnology.Pneumatically, aux.PneumaticConsumers.AdBlueDosing); + + Assert.AreEqual(true, aux.HVACAux.AdjustableCoolantThermostat); + Assert.AreEqual(true, aux.HVACAux.EngineWasteGasHeatExchanger); + } + + #endregion + + #endregion + + #region Input Data Signature Test + + private void TestInputDataSignature(DigestData data) + { + Assert.AreEqual("#VEH-PrimaryBus_SmartPS", data.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", data.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", data.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", data.DigestMethod); + Assert.AreEqual("uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=", data.DigestValue); + } + + #endregion + + #region Input Data Manufacturer Signature Test + + private void TestManufacturerRecordSignatureData(DigestData data) + { + Assert.AreEqual("#RESULT-5f30c7fe665a47938f6b", data.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", data.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", data.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", data.DigestMethod); + Assert.AreEqual("KUpFCKh1bu/YPwYj36kJK1uCrv++BTLf2OUZcOt43Os=", data.DigestValue); + } + + #endregion + + #region Application Information Test + + private void TestApplicationInformationData(IApplicationInformation appInfo) + { + Assert.AreEqual("String", appInfo.SimulationToolVersion); + Assert.AreEqual(DateTime.Parse("2017-01-01T00:00:00Z").ToUniversalTime(), appInfo.Date); + } + + #endregion + + #region Results Data Test + + private void TestResultsData(IResultsInputData data) + { + Assert.AreEqual("success", data.Status); + Assert.AreEqual(22, data.Results.Count); + + var index = 0; + CheckResultData(VehicleClass.ClassP33SD, MissionType.HeavyUrban, 21.22359, data.Results[index]); + CheckSimulationParameters(15527.52, 1352.52, 19.89, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.HeavyUrban, 25.40945, data.Results[index]); + CheckSimulationParameters(20937.60, 6762.60, 99.45, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Urban, 16.74101, data.Results[index]); + CheckSimulationParameters(15527.52, 1352.52, 19.89, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Urban, 20.24221, data.Results[index]); + CheckSimulationParameters(20937.60, 6762.60, 99.45, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Suburban, 14.34578, data.Results[index]); + CheckSimulationParameters(15527.52, 1352.52, 19.89, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Suburban, 17.60016, data.Results[index]); + CheckSimulationParameters(20937.60, 6762.60, 99.45, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Interurban, 11.82313, data.Results[index]); + CheckSimulationParameters(15469.51, 1294.51, 18.23, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33SD, MissionType.Interurban, 13.24283, data.Results[index]); + CheckSimulationParameters(18411.57, 4236.57, 59.67, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.HeavyUrban, 22.72091, data.Results[index]); + CheckSimulationParameters(16303.29, 1578.29, 23.21, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.HeavyUrban, 27.95930, data.Results[index]); + CheckSimulationParameters(22616.43, 7891.43, 116.05, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.Urban, 17.90756, data.Results[index]); + CheckSimulationParameters(16303.29, 1578.29, 23.21, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.Urban, 22.23796, data.Results[index]); + CheckSimulationParameters(22616.43, 7891.43, 116.05, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.Suburban, 15.28035, data.Results[index]); + CheckSimulationParameters(16303.29, 1578.29, 23.21, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP33DD, MissionType.Suburban, 19.26201, data.Results[index]); + CheckSimulationParameters(22616.43, 7891.43, 116.05, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34SD, MissionType.Interurban, 11.93701, data.Results[index]); + CheckSimulationParameters(16467.68, 1254.68, 17.67, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34SD, MissionType.Interurban, 13.32341, data.Results[index]); + CheckSimulationParameters(19319.21, 4106.21, 57.83, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34SD, MissionType.Coach, 8.71847, data.Results[index]); + CheckSimulationParameters(16490.49, 1277.49, 17.99, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34SD, MissionType.Coach, 9.20255, data.Results[index]); + CheckSimulationParameters(18406.72, 3193.72, 44.98, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34DD, MissionType.Interurban, 13.58335, data.Results[index]); + CheckSimulationParameters(19588.08, 1738.08, 24.48, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34DD, MissionType.Interurban, 15.56740, data.Results[index]); + CheckSimulationParameters(23643.60, 5793.60, 81.60, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34DD, MissionType.Coach, 9.82937, data.Results[index]); + CheckSimulationParameters(19703.95, 1853.95, 26.11, "single fuel mode", data.Results[index], ref index); + + CheckResultData(VehicleClass.ClassP34DD, MissionType.Coach, 10.56728, data.Results[index]); + CheckSimulationParameters(22484.88, 4634.88, 65.28, "single fuel mode", data.Results[index], ref index); + } + + private void CheckResultData(VehicleClass vGroup, MissionType mission, double energyCon, IResult result) + { + Assert.AreEqual(vGroup, result.VehicleGroup); + Assert.AreEqual(mission, result.Mission); + Assert.AreEqual(FuelType.DieselCI, result.EnergyConsumption.First().Key); + energyCon = energyCon * 1000; + Assert.AreEqual(energyCon.SI<JoulePerMeter>(), result.EnergyConsumption.First().Value); + } + + private void CheckSimulationParameters(double totalMass, double payload, double passenger, string fuelMode, IResult result, ref int index) + { + 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); + + index++; + } + + #endregion + + #region Signature Test + + private void TestSignatureHashData(DigestData data) + { + Assert.AreEqual("#PIF-d10aff76c5d149948046", data.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", data.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", data.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", data.DigestMethod); + Assert.AreEqual("nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=", data.DigestValue); + } + + #endregion + + + #endregion + + #region Manufacturing Stages Test + + private void TestManufacturingStages(IList<IManufacturingStageInputData> manufacturingStages) + { + Assert.AreEqual(2, manufacturingStages.Count); + TestManufacturingStag01(manufacturingStages[0]); + TestManufacturingStag02(manufacturingStages[1]); + } + + + #region Test Manufacturing Stage 1 + + private void TestManufacturingStag01(IManufacturingStageInputData manufacturingStage) + { + Assert.AreEqual(2, manufacturingStage.StageCount); + + TestDigestData("#PIF-d10aff76c5d149948046", "nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=", + manufacturingStage.HashPreviousStage); + + TestVehicleDataStage01(manufacturingStage.Vehicle); + + TestApplicationInformationData("!!NOT FOR CERTIFICATION!!", "2021-01-12T07:20:08.0187663Z", + manufacturingStage.ApplicationInformation); + + TestDigestData("#RESULT-6f30c7fe665a47938f6b", "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + manufacturingStage.Signature); + } + + private void TestVehicleDataStage01(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual("MSTG-1-Vehicle", vehicleData.Identifier); + Assert.AreEqual("Intermediate Manufacturer 1", vehicleData.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 1", vehicleData.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", vehicleData.VIN); + Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), vehicleData.Date); + Assert.AreEqual(VehicleDeclarationType.interim, vehicleData.VehicleDeclarationType); + TestEmptyInterimStageInputFields(vehicleData); + } + + private void TestEmptyInterimStageInputFields(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual(null, vehicleData.Model); + Assert.AreEqual(null, vehicleData.LegislativeClass); + Assert.AreEqual(null, vehicleData.CurbMassChassis); + Assert.AreEqual(null, vehicleData.GrossVehicleMassRating); + Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage); + Assert.AreEqual(null, vehicleData.TankSystem); + Assert.AreEqual(null, vehicleData.RegisteredClass); + Assert.AreEqual(null, vehicleData.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(null, vehicleData.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(null, vehicleData.VehicleCode); + Assert.AreEqual(null, vehicleData.LowEntry); + Assert.AreEqual(null, vehicleData.Height); + Assert.AreEqual(null, vehicleData.Length); + Assert.AreEqual(null, vehicleData.Width); + Assert.AreEqual(null, vehicleData.EntranceHeight); + Assert.AreEqual(null, vehicleData.DoorDriveTechnology); + + Assert.AreEqual(null, vehicleData.ADAS); + Assert.AreEqual(null, vehicleData.Components); + } + + #endregion + + + #region Test manufacturing Stage 2 + + private void TestManufacturingStag02(IManufacturingStageInputData manufacturingStage) + { + Assert.AreEqual(3, manufacturingStage.StageCount); + + TestDigestData("#RESULT-6f30c7fe665a47938f6b", "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + manufacturingStage.HashPreviousStage); + + TestVehicleDataStage02(manufacturingStage.Vehicle); + } + + private void TestVehicleDataStage02(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual("MSTG-2-Vehicle", vehicleData.Identifier); + Assert.AreEqual("Intermediate Manufacturer 2", vehicleData.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 2", vehicleData.ManufacturerAddress); + Assert.AreEqual("VEH-2234567890", vehicleData.VIN); + Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicleData.Date); + Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage); + Assert.AreEqual(VehicleDeclarationType.final, vehicleData.VehicleDeclarationType); + + Assert.AreEqual(true, vehicleData.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, vehicleData.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, vehicleData.ADAS.PredictiveCruiseControl); + + var busAux = vehicleData.Components.BusAuxiliaries; + Assert.AreEqual(true, busAux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.HeadlightsLED); + + var hvacAux = vehicleData.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, hvacAux.SystemConfiguration); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); + Assert.AreEqual(1, hvacAux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(50.SI<Watt>(), hvacAux.AuxHeaterPower); + Assert.AreEqual(false, hvacAux.DoubleGlazing); + Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvacAux.SeparateAirDistributionDucts); + Assert.AreEqual(false, hvacAux.WaterElectricHeater); + Assert.AreEqual(false, hvacAux.AirElectricHeater); + Assert.AreEqual(true, hvacAux.OtherHeatingTechnology); + } + + #endregion + + private void TestApplicationInformationData(string toolVersion, string date, + IApplicationInformation applicationInfoData) + { + Assert.AreEqual(toolVersion, applicationInfoData.SimulationToolVersion); + Assert.AreEqual(DateTime.Parse(date).ToUniversalTime(), applicationInfoData.Date); + } + + private void TestDigestData(string reference, string digestValue, DigestData digestData) + { + Assert.AreEqual(reference, digestData.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", digestData.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", digestData.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", digestData.DigestMethod); + Assert.AreEqual(digestValue, digestData.DigestValue); + } + + #endregion + + + [TestCase] + public void TestVehicleMultistageBusInput02() + { + var reader = XmlReader.Create(VIF02); + var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle); + TestManufacturingStageVIF02(inputDataProvider.JobInputData.ManufacturingStages); + } + + #region Manufacutring Stage Test VIF02 + + private void TestManufacturingStageVIF02(IList<IManufacturingStageInputData> manufacturingStages) + { + Assert.AreEqual(1, manufacturingStages.Count); + + var stageData = manufacturingStages[0]; + Assert.AreEqual(2, stageData.StageCount); + + TestDigestData("#PIF-d11aff76c5d149948046", "nI+67QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=", + stageData.HashPreviousStage); + + TestVehicleDataVIF02(stageData.Vehicle); + + TestApplicationInformationData("!!NOT FOR CERTIFICATION!!", "2021-01-12T07:20:08.0187666Z", + stageData.ApplicationInformation); + + TestDigestData("#RESULT-6f30c7fe665a47938f6b", "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", stageData.Signature); + } + + private void TestVehicleDataVIF02(IVehicleDeclarationInputData vehicleData) + { + Assert.AreEqual("MSTG-1-Vehicle", vehicleData.Identifier); + Assert.AreEqual("Intermediate Manufacturer 1", vehicleData.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 1", vehicleData.ManufacturerAddress); + Assert.AreEqual("VIN-132564", vehicleData.VIN); + Assert.AreEqual(DateTime.Parse("2018-01-15T11:00:00Z").ToUniversalTime(), vehicleData.Date); + Assert.AreEqual("Intermediate Model 1", vehicleData.Model); + Assert.AreEqual(LegislativeClass.M3, vehicleData.LegislativeClass); + Assert.AreEqual(25000.SI<Kilogram>(), vehicleData.CurbMassChassis); + Assert.AreEqual(30000.SI<Kilogram>(), vehicleData.GrossVehicleMassRating); + Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Liquefied, vehicleData.TankSystem); + Assert.AreEqual(RegistrationClass.B, vehicleData.RegisteredClass); + Assert.AreEqual(24, vehicleData.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(30, vehicleData.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(7, vehicleData.NumberPassengersStandingLowerDeck); + Assert.AreEqual(4, vehicleData.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CA, vehicleData.VehicleCode); + Assert.AreEqual(true, vehicleData.LowEntry); + Assert.AreEqual(2.5.SI<Meter>(), vehicleData.Height); + Assert.AreEqual(12.SI<Meter>(), vehicleData.Length); + Assert.AreEqual(2.SI<Meter>(), vehicleData.Width); + Assert.AreEqual(2.05.SI<Meter>(), vehicleData.EntranceHeight); + Assert.AreEqual(ConsumerTechnology.Pneumatically, vehicleData.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.final, vehicleData.VehicleDeclarationType); + + Assert.AreEqual(false, vehicleData.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithoutEngineStop, vehicleData.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.None, vehicleData.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, vehicleData.ADAS.ATEcoRollReleaseLockupClutch); + + + TestVehicleComponentDataVIF02(vehicleData.Components); + } + + private void TestVehicleComponentDataVIF02(IVehicleComponentsDeclaration componentData) + { + TestAirdragVIF02(componentData.AirdragInputData); + TestBusAuxVIF02(componentData.BusAuxiliaries); + } + + private void TestBusAuxVIF02(IBusAuxiliariesDeclarationData busAux) + { + Assert.AreEqual(true, busAux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(true, busAux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(false, busAux.ElectricConsumers.HeadlightsLED); + + var hvacAux = busAux.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); + Assert.AreEqual(1, hvacAux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(40.SI<Watt>(), hvacAux.AuxHeaterPower); + Assert.AreEqual(false, hvacAux.DoubleGlazing); + Assert.AreEqual(false, hvacAux.AdjustableAuxiliaryHeater); + Assert.AreEqual(true, hvacAux.SeparateAirDistributionDucts); + Assert.AreEqual(false, hvacAux.WaterElectricHeater); + Assert.AreEqual(true, hvacAux.AirElectricHeater); + Assert.AreEqual(false, hvacAux.OtherHeatingTechnology); + } + + private void TestAirdragVIF02(IAirdragDeclarationInputData airdragData) + { + Assert.AreEqual("Generic Manufacturer", airdragData.Manufacturer); + Assert.AreEqual("Generic Model", airdragData.Model); + Assert.AreEqual("e12*0815/8051*2017/05E1000*00", airdragData.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2018-03-24T15:00:00Z").ToUniversalTime(), airdragData.Date); + Assert.AreEqual("Vecto AirDrag x.y.z", airdragData.AppVersion); + Assert.AreEqual(6.35, airdragData.AirDragArea.Value()); + + TestDigestData("#CabinX23h", "b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=", airdragData.DigestValue); + } + + #endregion + } +} diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..c3be89ee5b145013a5f6503292e93dbe380e104a --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs @@ -0,0 +1,287 @@ +using System; +using System.IO; +using System.Xml; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML; + +namespace TUGraz.VectoCore.Tests.XML +{ + [TestFixture] + public class XMLMultistageBusInputDataTest + { + protected IXMLInputDataReader xmlInputReader; + private IKernel _kernel; + + const string DirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\"; + const string VehicleInterimStageInput = DirPath + "vecto_vehicle-stage_input_full-sample.xml"; + const string VehicleExemptedInterimStageInput = DirPath + "vecto_vehicle-exempted_input_full-sample.xml"; + const string VehicleExemptedMandatoryOnly = DirPath + "vecto_vehicle-exempted_input_only_mandatory_entries.xml"; + const string VehicleComponentsEntriesNullable = DirPath + "vecto_vehicle-stage_input_only_component_nullable_entries.xml"; + const string VehicleAirdragStandardValue = DirPath + "vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml"; + + const string ValdiationDirPath = @"TestData\XML\XMLReaderDeclaration\"; + const string ExemptedInputFullSample = ValdiationDirPath + "vecto_vehicle-exempted_input_full-sample.xml"; + const string ExemptedOnlyCertainEntries01 = ValdiationDirPath + "vecto_vehicle-exempted_input_only_certain_entries01-sample.xml"; + const string ExemptedOnlyCertainEntries02 = ValdiationDirPath + "vecto_vehicle-exempted_input_only_certain_entries02-sample.xml"; + const string ExemptedSample = ValdiationDirPath + "vecto_vehicle-exempted-sample.xml"; + const string NewParamSample = ValdiationDirPath + "vecto_vehicle-new_parameters-sample.xml"; + const string VehicleSample = ValdiationDirPath + "vecto_vehicle-sample.xml"; + const string StageInputCertainEntriesEntries01 = ValdiationDirPath + "vecto_vehicle-stage_input_only_certain_entries01-sample.xml"; + const string StageInputCertainEntriesEntries02 = ValdiationDirPath + "vecto_vehicle-stage_input_only_certain_entries02-sample.xml"; + const string StageInputFullSample = ValdiationDirPath + "vecto_vehicle-stage_input_full-sample.xml"; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + [TestCase] + public void TestVehicleInterimStageInput() + { + var reader = XmlReader.Create(VehicleInterimStageInput); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + Assert.AreEqual("VEH-1234567890", vehicle.Identifier); + Assert.AreEqual("Some Manufacturer", vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address", vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual("Sample Bus Model", vehicle.Model); + Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass); + Assert.AreEqual(500, vehicle.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(3500, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(null, vehicle.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Compressed, vehicle.TankSystem);//NgTankSystem + Assert.AreEqual(RegistrationClass.II_III, vehicle.RegisteredClass);//ClassBus + Assert.AreEqual(1, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(10, vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(11, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(2, vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode); + Assert.AreEqual(false, vehicle.LowEntry); + Assert.AreEqual(2.5, vehicle.Height.Value());//HeightIntegratedBody + Assert.AreEqual(9.5, vehicle.Length.Value()); + Assert.AreEqual(2.5, vehicle.Width.Value()); + Assert.AreEqual(2, vehicle.EntranceHeight.Value()); + Assert.AreEqual(ConsumerTechnology.Electrically, vehicle.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + + TestADASInput(vehicle); + TestComponents(vehicle.Components); + } + + private void TestADASInput(IVehicleDeclarationInputData vehicle) + { + Assert.AreEqual(true, vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.None, vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.None, vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, vehicle.ADAS.ATEcoRollReleaseLockupClutch); + } + + private void TestComponents(IVehicleComponentsDeclaration components) + { + TestAirdragComponent(components.AirdragInputData); + TestAuxiliariesComponent(components.BusAuxiliaries); + } + + private void TestAirdragComponent(IAirdragDeclarationInputData airdrag) + { + Assert.AreEqual("Generic Manufacturer", airdrag.Manufacturer); + Assert.AreEqual("Generic Model", airdrag.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", airdrag.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-03-24T15:00:00Z").ToUniversalTime(), airdrag.Date); + Assert.AreEqual("Vecto AirDrag x.y", airdrag.AppVersion); + Assert.AreEqual(6.34, airdrag.AirDragArea.Value()); + } + + private void TestAuxiliariesComponent(IBusAuxiliariesDeclarationData busAux) + { + TestLedLightsComponent(busAux.ElectricConsumers); + TestHVACComponent(busAux.HVACAux); + } + + private void TestLedLightsComponent(IElectricConsumersDeclarationData electricConsumer) + { + Assert.AreEqual(false, electricConsumer.InteriorLightsLED); + Assert.AreEqual(true, electricConsumer.DayrunninglightsLED); + Assert.AreEqual(true, electricConsumer.PositionlightsLED); + Assert.AreEqual(true, electricConsumer.BrakelightsLED); + Assert.AreEqual(false, electricConsumer.HeadlightsLED); + } + + private void TestHVACComponent(IHVACBusAuxiliariesDeclarationData hvacAux) + { + Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); + Assert.AreEqual(HeatPumpType.none, hvacAux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); + Assert.AreEqual(3, hvacAux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[1].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[2].Item2); + Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value()); + Assert.AreEqual(false, hvacAux.DoubleGlazing); + Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvacAux.SeparateAirDistributionDucts); + Assert.AreEqual(true, hvacAux.WaterElectricHeater); + Assert.AreEqual(false, hvacAux.AirElectricHeater); + Assert.AreEqual(false, hvacAux.OtherHeatingTechnology); + } + + + [TestCase] + public void TestVehicleExemptedInterimStageInput() + { + var reader = XmlReader.Create(VehicleExemptedInterimStageInput); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + Assert.AreEqual("VEH-1234567890", vehicle.Identifier); + Assert.AreEqual("Some Manufacturer", vehicle.Manufacturer); + Assert.AreEqual("Infinite Loop", vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567891", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual("Sample Bus Model 2", vehicle.Model); + Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass); + Assert.AreEqual(7000, vehicle.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(10000, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(RegistrationClass.A, vehicle.RegisteredClass);//ClassBus + Assert.AreEqual(10, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(20, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(VehicleCode.CC, vehicle.VehicleCode); + Assert.AreEqual(true, vehicle.LowEntry); + Assert.AreEqual(2.5, vehicle.Height.Value()); + } + + [TestCase] + public void TestVehicleExemptedMandatoryInput() + { + var reader = XmlReader.Create(VehicleExemptedMandatoryOnly); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + Assert.AreEqual("VEH-1234567890", vehicle.Identifier); + Assert.AreEqual("Some Manufacturer 3", vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address 3", vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567891", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date); + + Assert.AreEqual(null, vehicle.Model); + Assert.AreEqual(null, vehicle.LegislativeClass); + Assert.AreEqual(null, vehicle.CurbMassChassis); + Assert.AreEqual(null, vehicle.GrossVehicleMassRating); + Assert.AreEqual(null, vehicle.RegisteredClass); + Assert.AreEqual(null, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(null, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(null, vehicle.VehicleCode); + Assert.AreEqual(null, vehicle.LowEntry); + Assert.AreEqual(null, vehicle.Height); + Assert.AreEqual(null, vehicle.Components); + } + + [TestCase] + public void TestNullableComponentEntriesInput() + { + var reader = XmlReader.Create(VehicleComponentsEntriesNullable); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + + Assert.AreEqual("VEH-1234567890", vehicle.Identifier); + Assert.AreEqual("Some Manufacturer 4", vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address 4", vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567894", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2022-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + + Assert.AreEqual(null, vehicle.Model); + Assert.AreEqual(null, vehicle.LegislativeClass); + Assert.AreEqual(null, vehicle.CurbMassChassis); + Assert.AreEqual(null, vehicle.GrossVehicleMassRating); + Assert.AreEqual(null, vehicle.RegisteredClass); + Assert.AreEqual(null, vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(null, vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(null, vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(null, vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(null, vehicle.VehicleCode); + Assert.AreEqual(null, vehicle.LowEntry); + Assert.AreEqual(null, vehicle.Height); + + Assert.AreEqual(true, vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2_3, vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(null, vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + Assert.AreEqual(null , vehicle.Components); + } + + [TestCase] + public void TestStandardValueAirdragComponent() + { + var reader = XmlReader.Create(VehicleAirdragStandardValue); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + Assert.AreEqual("VEH-1234567890", vehicle.Identifier); + Assert.AreEqual("Some Manufacturer 3", vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address 3", vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.final, vehicle.VehicleDeclarationType); + + var airdrag = vehicle.Components.AirdragInputData; + Assert.IsNotNull(airdrag); + } + + [TestCase()] + public void TestValidateInputMultistageExampleFiles() + { + var reader = XmlReader.Create(ExemptedInputFullSample); + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(ExemptedOnlyCertainEntries01); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(ExemptedOnlyCertainEntries02); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(ExemptedSample); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(NewParamSample); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(VehicleSample); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(StageInputFullSample); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(StageInputCertainEntriesEntries01); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + + reader = XmlReader.Create(StageInputCertainEntriesEntries02); + inputDataProvider = xmlInputReader.CreateDeclaration(reader); + Assert.IsNotNull(inputDataProvider); + } + } +} diff --git a/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs b/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs index c4e2e44865db0e0ceb4da708f58a696a8d7da710..f1722f1a0540b054eab07f62120c0b7c4a74d9c5 100644 --- a/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs @@ -305,8 +305,8 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual("Variable displacement elec. controlled", auxiliaries.SteeringPumpTechnology[0]); Assert.AreEqual(1, auxiliaries.ElectricSupply.Alternators.Count); - Assert.AreEqual("default", auxiliaries.ElectricSupply.Alternators[0].Technology); - Assert.AreEqual(false, auxiliaries.ElectricSupply.SmartElectrics); + //Assert.AreEqual("default", auxiliaries.ElectricSupply.Alternators[0].Technology); + Assert.AreEqual(AlternatorType.Smart, auxiliaries.ElectricSupply.AlternatorTechnology); } private void TestPneumaticSystem(IPneumaticSupplyDeclarationData supply, diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.PIF.xml b/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml similarity index 72% rename from Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.PIF.xml rename to VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml index 26c9123d9a93ca685fbdebba2b43e8a876910d66..1fb3b2f6d2991834d3f217ab1d547ab51965bbdb 100644 --- a/Generic Vehicles/Declaration Mode/CompletedBus 34f/primary_heavyBus group_P33_34_SmartPS.PIF.xml +++ b/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml @@ -1,16 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-7f30aafa027a41a1864b"> +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 E:\QUAM\Workspace\VECTO_DEV_Buses\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-584956b9e3ab43acaf97"> <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> + <Model>Generic Model Primary</Model> <VIN>VEH-1234567890_SmartPS</VIN> <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> <AxleConfiguration>6x2</AxleConfiguration> <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> <IdlingSpeed>600</IdlingSpeed> <RetarderType>Transmission Output Retarder</RetarderType> <RetarderRatio>1.000</RetarderRatio> @@ -30,8 +34,8 @@ <Components xsi:type="VehicleComponentsPIFType"> <Engine> <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Bus 6x2</Model> + <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer> + <Model>Bus 6x2 Engine</Model> <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> <Date>2017-02-15T11:00:00Z</Date> <AppVersion>VectoEngine x.y</AppVersion> @@ -66,8 +70,8 @@ </Engine> <Transmission> <Data xsi:type="TransmissionDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic 40t Long Haul Truck Gearbox</Model> + <Manufacturer>Generic Gearbox Manufacturer Primary</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox Primary</Model> <MainCertificationMethod>Standard values</MainCertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> @@ -128,7 +132,7 @@ <Axlegear> <Data xsi:type="AxlegearDataPIFType"> <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic 40t Long Haul Truck AxleGear</Model> + <Model>Generic 40t Long Haul Truck AxleGear Primary</Model> <CertificationMethod>Standard values</CertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> @@ -136,10 +140,12 @@ <Ratio>2.590</Ratio> </Data> </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> + <AxleWheels> + <Data xsi:type="AxleWheelsDataPIFType"> +<!-- <AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> <Data xsi:type="AxleWheelsDataDeclarationType"> - <Axles> - <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> +--> <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>true</Steered> @@ -165,8 +171,8 @@ </di:Reference> </Signature> </Tyre> - </Axle> - <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="2" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleDriven</AxleType> <TwinTyres>true</TwinTyres> <Steered>false</Steered> @@ -192,8 +198,8 @@ </di:Reference> </Signature> </Tyre> - </Axle> - <Axle axleNumber="3" xsi:type="AxleDataDeclarationType"> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> <AxleType>VehicleNonDriven</AxleType> <TwinTyres>false</TwinTyres> <Steered>false</Steered> @@ -219,37 +225,36 @@ </di:Reference> </Signature> </Tyre> - </Axle> + </vif0.1:Axle> </Axles> </Data> - </pbus:AxleWheels> + </AxleWheels> <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - <aux:MaxAlternatorPower>15000</aux:MaxAlternatorPower> - <aux:ElectricStorageCapacity>50</aux:ElectricStorageCapacity> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>true</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</SmartCompressionSystem> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger> + </HVAC> </Data> </Auxiliaries> </Components> @@ -261,17 +266,17 @@ <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>uqcFIXtDYxvl513ruiYYJCrV1fIiyw37t8vJhg4xxoo=</di:DigestValue> + <di:DigestValue>KyEUoR+pb/fnqRuLFC53Ft+RhDf+ABAdd1xxsMwH7io=</di:DigestValue> </di:Reference> </InputDataSignature> <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-7a8d7d4a9dbf4eb895f1"> + <di:Reference URI="#RESULT-77ea5cb9575a4fe3b401"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>+PTOULR+qwZkYaGik0otzNDA8i3Gy4tvXQeORxqNXG0=</di:DigestValue> + <di:DigestValue>jIFYjdZEqVpxFinMBSoXvJg8Wl3OjE09xRAnjEgnhhY=</di:DigestValue> </di:Reference> </ManufacturerRecordSignature> <Results> @@ -360,34 +365,6 @@ </Fuel> <CO2 unit="g/km">1290.13</CO2> </Result> - <Result status="success"> - <VehicleGroup>P33SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">15469.51</TotalVehicleMass> - <Payload unit="kg">1294.51</Payload> - <PassengerCount>18.23</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <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> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">18411.57</TotalVehicleMass> - <Payload unit="kg">4236.57</Payload> - <PassengerCount>59.67</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <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> <Mission>Heavy Urban</Mission> @@ -476,15 +453,15 @@ <VehicleGroup>P34SD</VehicleGroup> <Mission>Interurban</Mission> <SimulationParameters> - <TotalVehicleMass unit="kg">16467.68</TotalVehicleMass> - <Payload unit="kg">1254.68</Payload> - <PassengerCount>17.67</PassengerCount> + <TotalVehicleMass unit="kg">16239.55</TotalVehicleMass> + <Payload unit="kg">1026.55</Payload> + <PassengerCount>14.46</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption> + <EnergyConsumption unit="MJ/km">11.82464</EnergyConsumption> </Fuel> - <CO2 unit="g/km">875.01</CO2> + <CO2 unit="g/km">866.77</CO2> </Result> <Result status="success"> <VehicleGroup>P34SD</VehicleGroup> @@ -532,15 +509,15 @@ <VehicleGroup>P34DD</VehicleGroup> <Mission>Interurban</Mission> <SimulationParameters> - <TotalVehicleMass unit="kg">19588.08</TotalVehicleMass> - <Payload unit="kg">1738.08</Payload> - <PassengerCount>24.48</PassengerCount> + <TotalVehicleMass unit="kg">19298.40</TotalVehicleMass> + <Payload unit="kg">1448.40</Payload> + <PassengerCount>20.40</PassengerCount> <FuelMode>single fuel mode</FuelMode> </SimulationParameters> <Fuel type="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption> + <EnergyConsumption unit="MJ/km">13.44807</EnergyConsumption> </Fuel> - <CO2 unit="g/km">995.69</CO2> + <CO2 unit="g/km">985.77</CO2> </Result> <Result status="success"> <VehicleGroup>P34DD</VehicleGroup> @@ -586,18 +563,109 @@ </Result> </Results> <ApplicationInformation> - <SimulationToolVersion>0.6.2.2058-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-08-20T12:17:31.4151388Z</Date> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:16:48.0278823Z</Date> </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-7f30aafa027a41a1864b"> + </Data> + <Signature> + <di:Reference URI="#PIF-584956b9e3ab43acaf97"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>a3ai89pd92w4O1za7mc+ut712QqNJqAfX0FeeZdfrFk=</di:DigestValue> + <di:DigestValue>GPW3cyV+VQrDzyGeryMrakfOlD+YUWtdaHz/C2lhxJQ=</di:DigestValue> </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file + </Signature> + </PrimaryVehicle> + <ManufacturingStage stageCount="2"> + <Data xsi:type="vif0.1:BusManufacturingStageDataType" id="asdf"> + <HashPreviousStage> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </HashPreviousStage> + <vif0.1:Vehicle xsi:type="v2.8:InterimStageInputType" id="MST-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>8300</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>18000</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <ClassBus>I+II</ClassBus> + <NumberPassengersLowerDeck>30</NumberPassengersLowerDeck> + <NumberPassengersUpperDeck>0</NumberPassengersUpperDeck> + <BodyworkCode>CE</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>3000</HeightIntegratedBody> + <VehicleLength>11830</VehicleLength> + <VehicleWidth>2550</VehicleWidth> + <EntranceHeight>120</EntranceHeight> + <DoorDriveTechnology>pneumatic</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"> + <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> + <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>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </Signature> + </v2.8:AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>false</Dayrunninglights> + <Positionlights>false</Positionlights> + <Brakelights>false</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>7</SystemConfiguration> + <HeatPumpTypeDriverCompartment>non R-744 2-stage</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>cooling</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 4-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> + <DoubleGlazing>true</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </vif0.1:Vehicle> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:16:48.0278823Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference> + <di:DigestMethod Algorithm=""></di:DigestMethod> + <di:DigestValue></di:DigestValue> + </di:Reference> + </Signature> + </ManufacturingStage> +</VectoOutputMultistage> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml b/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml deleted file mode 100644 index f8583aee47343911adb25f8c6fd64833a16f1227..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_PIF.xml +++ /dev/null @@ -1,552 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-4121ae4751874cefa376"> - <Vehicle xsi:type="VehiclePIFType"> - <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> - <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> - <Model>Generic Model</Model> - <VIN>VEH-1234567890_nonSmart</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <VehicleCategory>Bus</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> - <Articulated>false</Articulated> - <TechnicalPermissibleMaximumLadenMass>28000</TechnicalPermissibleMaximumLadenMass> - <IdlingSpeed>700</IdlingSpeed> - <RetarderType>Transmission Output Retarder</RetarderType> - <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> - <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"> - <Engine> - <Data xsi:type="EngineDataPIFType"> - <Manufacturer>Generic Engine Manufacturer</Manufacturer> - <Model>Generic primary bus 41 Engine</Model> - <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> - <Date>2017-02-15T11:00:00Z</Date> - <AppVersion>VectoEngine x.y</AppVersion> - <Displacement>7700</Displacement> - <RatedSpeed>2200</RatedSpeed> - <RatedPower>220000</RatedPower> - <MaxEngineTorque>1100</MaxEngineTorque> - <WHRType> - <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> - <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> - <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> - </WHRType> - <Mode> - <IdlingSpeed>700</IdlingSpeed> - <FullLoadAndDragCurve> - <Entry engineSpeed="600.00" maxTorque="546.02" dragTorque="-39.66" /> - <Entry engineSpeed="800.00" maxTorque="760.78" dragTorque="-48.83" /> - <Entry engineSpeed="1000.00" maxTorque="973.29" dragTorque="-56.44" /> - <Entry engineSpeed="1200.00" maxTorque="1092.03" dragTorque="-67.29" /> - <Entry engineSpeed="1400.00" maxTorque="1092.03" dragTorque="-77.58" /> - <Entry engineSpeed="1600.00" maxTorque="1092.03" dragTorque="-87.88" /> - <Entry engineSpeed="1800.00" maxTorque="1022.52" dragTorque="-94.11" /> - <Entry engineSpeed="2000.00" maxTorque="944.17" dragTorque="-100.76" /> - <Entry engineSpeed="2200.00" maxTorque="868.12" dragTorque="-113.36" /> - <Entry engineSpeed="2400.00" maxTorque="741.99" dragTorque="-122.60" /> - <Entry engineSpeed="2500.00" maxTorque="647.29" dragTorque="-126.66" /> - <Entry engineSpeed="2600.00" maxTorque="0.00" dragTorque="-132.07" /> - </FullLoadAndDragCurve> - <Fuels> - <FuelType>Diesel CI</FuelType> - </Fuels> - </Mode> - </Data> - </Engine> - <Transmission> - <Data xsi:type="TransmissionDataPIFType"> - <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"> - <Gear number="1"> - <Ratio>3.364</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="2"> - <Ratio>1.909</Ratio> - <MaxTorque>1900</MaxTorque> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="3"> - <Ratio>1.421</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="4"> - <Ratio>1.000</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="5"> - <Ratio>0.720</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - <Gear number="6"> - <Ratio>0.615</Ratio> - <MaxSpeed>2500</MaxSpeed> - </Gear> - </Gears> - </Data> - </Transmission> - <Axlegear> - <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> - <Model>Generic primary bus 41 AxleGear</Model> - <CertificationMethod>Standard values</CertificationMethod> - <Date>2017-01-11T11:00:00Z</Date> - <AppVersion>3.0.1</AppVersion> - <LineType>Single portal axle</LineType> - <Ratio>6.500</Ratio> - </Data> - </Axlegear> - <pbus:AxleWheels xmlns:pbus="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AxleWheelsComponentDeclarationType"> - <Data xsi:type="AxleWheelsDataDeclarationType"> - <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" 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> - </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" 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> - </Signature> - </Tyre> - </Axle> - </Axles> - </Data> - </pbus:AxleWheels> - <Auxiliaries> - <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="aux:PrimaryVehicleAuxiliaryDataDeclarationType"> - <aux:Fan> - <aux:Technology>Hydraulic driven - Constant displacement pump</aux:Technology> - </aux:Fan> - <aux:SteeringPump> - <aux:Technology axleNumber="1">Variable displacement elec. controlled</aux:Technology> - </aux:SteeringPump> - <aux:ElectricSystem> - <aux:AlternatorTechnology>default</aux:AlternatorTechnology> - <aux:SmartElectrics>false</aux:SmartElectrics> - </aux:ElectricSystem> - <aux:PneumaticSystem> - <aux:SizeOfAirSupply>Large Supply 2-stage</aux:SizeOfAirSupply> - <aux:Clutch>none</aux:Clutch> - <aux:CompressorRatio>1.000</aux:CompressorRatio> - <aux:SmartCompressionSystem>false</aux:SmartCompressionSystem> - <aux:SmartRegenerationSystem>false</aux:SmartRegenerationSystem> - <aux:AirsuspensionControl>electronically</aux:AirsuspensionControl> - <aux:AdBlueDosing>true</aux:AdBlueDosing> - </aux:PneumaticSystem> - <aux:HVAC> - <aux:AdjustableCoolantThermostat>true</aux:AdjustableCoolantThermostat> - <aux:EngineWasteGasHeatExchanger>true</aux:EngineWasteGasHeatExchanger> - </aux:HVAC> - </Data> - </Auxiliaries> - </Components> - </Vehicle> - <InputDataSignature> - <di:Reference URI="#VEH-PrimaryBus_nonSmart"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>gi7smqIT9b/iNr6yBm49IkS5ylirBLyHvjZQqlNpzUA=</di:DigestValue> - </di:Reference> - </InputDataSignature> - <ManufacturerRecordSignature> - <di:Reference URI="#RESULT-d5c4bf1b86394fd7b822"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>/z2B3MvXZr1k8vYmINK/6DLaXPreBcwwmHhHsfDvJRo=</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1520.18</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1828.60</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1241.44</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1493.13</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1102.09</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1330.13</CO2> - </Result> - <Result status="success"> - <VehicleGroup>P31SD</VehicleGroup> - <Mission>Interurban</Mission> - <SimulationParameters> - <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass> - <Payload unit="kg">879.90</Payload> - <PassengerCount>12.39</PassengerCount> - <FuelMode>single fuel mode</FuelMode> - </SimulationParameters> - <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> - <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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1051.61</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1599.38</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1949.71</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1306.47</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1590.49</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1154.46</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1405.77</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">967.41</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1066.11</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">816.49</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">849.31</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">998.54</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">1115.67</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">851.63</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="Diesel CI"> - <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption> - </Fuel> - <CO2 unit="g/km">890.63</CO2> - </Result> - </Results> - <ApplicationInformation> - <SimulationToolVersion>0.6.1.1975-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-08-06T06:54:52.9756421Z</Date> - </ApplicationInformation> - </pif:Data> - <pif:Signature> - <di:Reference URI="#PIF-4121ae4751874cefa376"> - <di:Transforms> - <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> - <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> - </di:Transforms> - <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>YnCPep7uMh3ghMrx6ZsEMLanOijFCZpku+ZDNd6rkLw=</di:DigestValue> - </di:Reference> - </pif:Signature> -</pif:VectoOutputPrimaryVehicle> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml b/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml new file mode 100644 index 0000000000000000000000000000000000000000..8280da3de3b4f002e45489138af883e7966cdf0c --- /dev/null +++ b/VectoCore/VectoCoreTest/bin/Debug/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml @@ -0,0 +1,577 @@ +<?xml version="1.0" encoding="utf-8"?> +<VectoOutputMultistage 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: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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"> + <PrimaryVehicle> + <Data xsi:type="PrimaryVehicleDataType" id="PIF-584956b9e3ab43acaf97"> + <Vehicle xsi:type="VehiclePIFType"> + <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> + <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> + <Model>Generic Model Primary</Model> + <VIN>VEH-1234567890_SmartPS</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>6x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>600</IdlingSpeed> + <RetarderType>Transmission Output Retarder</RetarderType> + <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> + <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"/> + <tcl:Entry gear="12" maxTorque="1900"/> + </TorqueLimits> + <Components xsi:type="VehicleComponentsPIFType"> + <Engine> + <Data xsi:type="EngineDataPIFType"> + <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer> + <Model>Bus 6x2 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>1800</RatedSpeed> + <RatedPower>325032</RatedPower> + <MaxEngineTorque>2134</MaxEngineTorque> + <WHRType> + <MechanicalOutputICE xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputICE> + <MechanicalOutputDrivetrain xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</MechanicalOutputDrivetrain> + <ElectricalOutput xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3">false</ElectricalOutput> + </WHRType> + <Mode> + <IdlingSpeed>600</IdlingSpeed> + <FullLoadAndDragCurve> + <Entry engineSpeed="600.00" maxTorque="1188.00" dragTorque="-138.00"/> + <Entry engineSpeed="800.00" maxTorque="1661.00" dragTorque="-143.00"/> + <Entry engineSpeed="1000.00" maxTorque="2134.00" dragTorque="-152.00"/> + <Entry engineSpeed="1200.00" maxTorque="2134.00" dragTorque="-165.00"/> + <Entry engineSpeed="1400.00" maxTorque="2134.00" dragTorque="-187.00"/> + <Entry engineSpeed="1600.00" maxTorque="1928.00" dragTorque="-217.00"/> + <Entry engineSpeed="1800.00" maxTorque="1722.00" dragTorque="-244.00"/> + <Entry engineSpeed="2000.00" maxTorque="1253.00" dragTorque="-278.00"/> + <Entry engineSpeed="2100.00" maxTorque="1019.00" dragTorque="-296.00"/> + <Entry engineSpeed="2200.00" maxTorque="0.00" dragTorque="-314.00"/> + </FullLoadAndDragCurve> + <Fuels> + <FuelType>Diesel CI</FuelType> + </Fuels> + </Mode> + </Data> + </Engine> + <Transmission> + <Data xsi:type="TransmissionDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer Primary</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox Primary</Model> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <Gears xsi:type="TransmissionGearsPIFType"> + <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="AxlegearDataPIFType"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear Primary</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="AxleWheelsDataPIFType"> + <Axles> + <vif0.1:Axle axleNumber="1" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1: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" 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> + </Signature> + </Tyre> + </vif0.1:Axle> + <vif0.1:Axle axleNumber="3" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</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.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <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> + </Signature> + </Tyre> + </vif0.1:Axle> + </Axles> + </Data> + </AxleWheels> + <Auxiliaries> + <Data xmlns:aux="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xsi:type="AuxiliaryDataPIFType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Variable displacement elec. controlled</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> + <SmartCompressionSystem>true</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-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>KyEUoR+pb/fnqRuLFC53Ft+RhDf+ABAdd1xxsMwH7io=</di:DigestValue> + </di:Reference> + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-77ea5cb9575a4fe3b401"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>jIFYjdZEqVpxFinMBSoXvJg8Wl3OjE09xRAnjEgnhhY=</di:DigestValue> + </di:Reference> + </ManufacturerRecordSignature> + <Results> + <Status>success</Status> + <Result status="success"> + <VehicleGroup>P33SD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">15527.52</TotalVehicleMass> + <Payload unit="kg">1352.52</Payload> + <PassengerCount>19.89</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">20937.60</TotalVehicleMass> + <Payload unit="kg">6762.60</Payload> + <PassengerCount>99.45</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">1290.13</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P33DD</VehicleGroup> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Heavy Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Urban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16303.29</TotalVehicleMass> + <Payload unit="kg">1578.29</Payload> + <PassengerCount>23.21</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Suburban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22616.43</TotalVehicleMass> + <Payload unit="kg">7891.43</Payload> + <PassengerCount>116.05</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16239.55</TotalVehicleMass> + <Payload unit="kg">1254.68</Payload> + <PassengerCount>14.46</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">11.82464</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">866.77</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P34SD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19319.21</TotalVehicleMass> + <Payload unit="kg">4106.21</Payload> + <PassengerCount>57.83</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">16490.49</TotalVehicleMass> + <Payload unit="kg">1277.49</Payload> + <PassengerCount>17.99</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">18406.72</TotalVehicleMass> + <Payload unit="kg">3193.72</Payload> + <PassengerCount>44.98</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19298.40</TotalVehicleMass> + <Payload unit="kg">1448.40</Payload> + <PassengerCount>20.40</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">13.44807</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">985.77</CO2> + </Result> + <Result status="success"> + <VehicleGroup>P34DD</VehicleGroup> + <Mission>Interurban</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">23643.60</TotalVehicleMass> + <Payload unit="kg">5793.60</Payload> + <PassengerCount>81.60</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">19703.95</TotalVehicleMass> + <Payload unit="kg">1853.95</Payload> + <PassengerCount>26.11</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <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> + <Mission>Coach</Mission> + <SimulationParameters> + <TotalVehicleMass unit="kg">22484.88</TotalVehicleMass> + <Payload unit="kg">4634.88</Payload> + <PassengerCount>65.28</PassengerCount> + <FuelMode>single fuel mode</FuelMode> + </SimulationParameters> + <Fuel type="Diesel CI"> + <EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption> + </Fuel> + <CO2 unit="g/km">774.60</CO2> + </Result> + </Results> + <ApplicationInformation> + <SimulationToolVersion>0.6.1.1957-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-05-27T08:16:48.0278823Z</Date> + </ApplicationInformation> + </Data> + <Signature> + <di:Reference URI="#PIF-584956b9e3ab43acaf97"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>GPW3cyV+VQrDzyGeryMrakfOlD+YUWtdaHz/C2lhxJQ=</di:DigestValue> + </di:Reference> + </Signature> + </PrimaryVehicle> +</VectoOutputMultistage> diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp index 60a82c993ae99aa424567416f3e3e2902f6e2694..a18bdad0c3e962a29e4afe556f0a5240f7d01bf0 100644 --- a/VectoCore/VectoXML.spp +++ b/VectoCore/VectoXML.spp @@ -19,6 +19,8 @@ <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-completed_heavyBus-sample.xml" HomeFolder="Yes"/> <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-medium_lorryFWD-sample.xml" HomeFolder="Yes"/> <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBus-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBusSmartES-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml" HomeFolder="Yes"/> </Folder> <Folder FolderName="Examples 1.0"> <File FilePath="VectoCoreTest\TestData\XML\XMLReaderEngineering\engineering_axlegear-sample_ref.xml" HomeFolder="Yes"/> @@ -58,6 +60,33 @@ <File FilePath="VectoCoreTest\TestData\XML\EngineeringJob\SampleJobEngineering1.0.xml" HomeFolder="Yes"/> <File FilePath="VectoCoreTest\TestData\XML\EngineeringJob\SampleJobEngineering1.1.xml" HomeFolder="Yes"/> </Folder> + <Folder FolderName="Schema 2.8"> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries01-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_certain_entries02-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_only_mandatory_entries.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries01-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_certain_entries02-sample.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_component_nullable_entries.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_entries.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_vif_input.xml" HomeFolder="Yes"/> + </Folder> + <Folder FolderName="Schema Multistage 0.1"> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_airdrag.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_heatPump.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_hev.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages_vif.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_one_stage.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_two_stages.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_only.xml" HomeFolder="Yes"/> + <File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_3.xml" HomeFolder="Yes"/> + <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> <Folder FolderName="XSL Files" ExtStr="xsl;xslt"> <File FilePath="E:\QUAM\Workspace\VECTO_quam\Documentation\XML\RenderTable.xslt" HomeFolder="Yes"/> @@ -78,6 +107,7 @@ <File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.2.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.3_DEV.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.6_Buses.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.8_Stage.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoDeclarationJob.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoInput.1.0.xsd" HomeFolder="Yes"/> @@ -115,8 +145,8 @@ <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.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputMultistage.0.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputPrimaryBus.xsd" HomeFolder="Yes"/> - <File FilePath="VectoCore\Resources\XSD\VectoOutputPrimaryVehicleInformation.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VTPReport.0.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VTPReport.0.2.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VTPReport.xsd" HomeFolder="Yes"/>