Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit f98d6d4d authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #567 in VECTO/vecto-sim from...

Merge pull request #567 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:feature/VECTO-618-add-hash-value-of-tyres-to-manufacturer-s to develop

* commit 'c2355b51':
  Hashing Tool: include tyres in integrity checks
  read in digest value
  adding digest value of tyres to manufacturer report
  extend testcase to check for digest value of tyres
  adapt xml schema
parents d8e29361 c2355b51
Branches
Tags
No related merge requests found
......@@ -103,7 +103,6 @@ namespace HashingTool.ViewModel.UserControl
if (entry.Component.StartsWith("Axle ")) {
entry.Component = entry.Component.Replace("Axle", "Tyre");
entry.CertificationNumber = ReadElementValue(node, XMLNames.Report_Tyre_TyreCertificationNumber);
entry.DigestValue = "Not Available";
} else {
entry.CertificationNumber = ReadElementValue(node, XMLNames.Report_Component_CertificationNumber) ??
ReadElementValue(node, XMLNames.Report_Component_CertificationMethod);
......@@ -116,9 +115,7 @@ namespace HashingTool.ViewModel.UserControl
if (!jobComponent.Any()) {
continue;
}
entry.DigestValueMatchesJobComponent = entry.Component.StartsWith("Tyre ")
? (bool?)null
: (jobComponent.First().DigestValueComputed == entry.DigestValue);
entry.DigestValueMatchesJobComponent = jobComponent.First().DigestValueComputed == entry.DigestValue;
entry.DigestValueExpected = jobComponent.First().DigestValueComputed;
if (entry.CertificationMethod == CertificationMethod.StandardValues.ToXMLFormat()) {
......@@ -134,9 +131,7 @@ namespace HashingTool.ViewModel.UserControl
var certificationNumberMismatch =
componentData.Where(
x => x.CertificationNumberMatchesJobComponent != null && !x.CertificationNumberMatchesJobComponent.Value).ToArray();
var digestMismatch =
componentData.Where(x => !x.Component.StartsWith("Tyre "))
.Where(x => x.DigestValueMatchesJobComponent == null || !x.DigestValueMatchesJobComponent.Value).ToArray();
var digestMismatch = componentData.Where(x => x.DigestValueMatchesJobComponent == null || !x.DigestValueMatchesJobComponent.Value).ToArray();
if (jobComponents.Any()) {
foreach (var entry in certificationNumberMismatch) {
_validationErrors.Add(
......
......@@ -139,6 +139,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
var rollResistance = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_RRCDeclared), Manager);
var tyreTestLoad = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_FzISO), Manager);
var certirficationNumber = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.Component_CertificationNumber), Manager);
var digestValue = tyre.SelectSingleNode(Helper.Query("..//*[local-name()='DigestValue']"), Manager);
retVal[axleNumber - 1] = new AxleInputData {
AxleType = axleType == null ? AxleType.VehicleNonDriven : axleType.Value.ParseEnum<AxleType>(),
TwinTyres = twinTyres != null && XmlConvert.ToBoolean(twinTyres.Value),
......@@ -148,7 +149,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.Value.ToDouble(),
Dimension = dimension == null ? null : dimension.Value,
CertificationNumber = certirficationNumber == null ? null : certirficationNumber.Value,
CertificationMethod = CertificationMethod.Measured
CertificationMethod = CertificationMethod.Measured,
DigestValue = digestValue == null ? "" : digestValue.Value
}
};
}
......
......@@ -119,7 +119,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
RollResistanceCoefficient = axleInput.Tyre.RollResistanceCoefficient,
TyreTestLoad = axleInput.Tyre.TyreTestLoad,
Inertia = DeclarationData.Wheels.Lookup(axleInput.Tyre.Dimension.RemoveWhitespace()).Inertia,
CertificationNumber = axleInput.Tyre.CertificationNumber
CertificationNumber = axleInput.Tyre.CertificationNumber,
DigestValueInput = axleInput.Tyre.DigestValue,
};
axleData.Add(axle);
}
......
......@@ -221,6 +221,7 @@ namespace TUGraz.VectoCore.OutputData.XML
new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i),
new XElement(tns + XMLNames.Report_Tyre_TyreDimension, axle.WheelsDimension),
new XElement(tns + XMLNames.Report_Tyre_TyreCertificationNumber, axle.CertificationNumber),
new XElement(tns+XMLNames.DI_Signature_Reference_DigestValue, axle.DigestValueInput),
new XElement(tns + XMLNames.Report_Tyre_TyreRRCDeclared, axle.RollResistanceCoefficient.ToXMLFormat(4)),
new XElement(tns + XMLNames.AxleWheels_Axles_Axle_TwinTyres, axle.TwinTyres));
}
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2016 rel. 2 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
<!--W3C XML Schema generated by XMLSpy vXMLSpy Professional Edition v2016 rel. 2 (x64) (http://www.altova.com)-->
<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.4" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vdecdef="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.4" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.4">
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
......@@ -119,6 +119,7 @@
<xs:documentation>P267</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DigestValue" type="xs:token"/>
<xs:element name="TyreRRCDeclared" type="vdecdef:TyreRRCISOType">
<xs:annotation>
<xs:documentation>P046</xs:documentation>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2016 rel. 2 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
<!--W3C XML Schema generated by XMLSpy vXMLSpy Professional Edition v2016 rel. 2 (x64) (http://www.altova.com)-->
<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.4" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vdecdef="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.4" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.4">
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
......@@ -119,6 +119,7 @@
<xs:documentation>P267</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DigestValue" type="xs:token"/>
<xs:element name="TyreRRCDeclared" type="vdecdef:TyreRRCISOType">
<xs:annotation>
<xs:documentation>P046</xs:documentation>
......
......@@ -86,6 +86,13 @@ namespace TUGraz.VectoCore.Tests.Integration
foreach (var axleDeclarationInputData in dataProvider.JobInputData.Vehicle.Axles) {
Assert.AreEqual(axleDeclarationInputData.Tyre.CertificationNumber, reportWheels[i++].Value);
}
var digestWheels = manufacturerReport.XPathSelectElements("//*[local-name()='Axle']/*[local-name()='DigestValue']").ToArray();
Assert.NotNull(digestWheels);
Assert.AreEqual(2, digestWheels.Count());
foreach (var digestWheel in digestWheels) {
Assert.IsFalse(string.IsNullOrWhiteSpace(digestWheel.Value));
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment