From b0cf2cbcaa7570053d27f6df60e7c6ab0d6b91cf Mon Sep 17 00:00:00 2001 From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at> Date: Thu, 20 Jan 2022 16:26:24 +0100 Subject: [PATCH] added sort methods for maxtorquecurve, powermap, dragcurve, conditioning, powermaps, voltagelevel, ovc, internalresistance and currentlimits entries --- .../Resources/XSLT/SortInputData.xslt | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/VectoCommon/VectoHashing/Resources/XSLT/SortInputData.xslt b/VectoCommon/VectoHashing/Resources/XSLT/SortInputData.xslt index e4fa358efb..2686e89879 100644 --- a/VectoCommon/VectoHashing/Resources/XSLT/SortInputData.xslt +++ b/VectoCommon/VectoHashing/Resources/XSLT/SortInputData.xslt @@ -17,7 +17,17 @@ - sort entries of torque converter characteristics - sort torque limiation entries - sort gears + - sort characteristics entries - sort axles + - sort maxtorquecurve entries + - sort powermap entries + - sort dragcurve entries + - sort conditioning entries + - sort powermaps by gear attribute + - sort voltage entries by voltage element value + - sort ovc entries + - sort internalresistance entries + - sort currentlimits entries --> <xsl:output omit-xml-declaration="no" indent="yes"/> <xsl:template match="*"> <xsl:element name="{local-name()}"> @@ -105,4 +115,115 @@ </xsl:for-each> </xsl:element> </xsl:template> + + + <xsl:template match="*[local-name()='MaxTorqueCurve']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@outShaftSpeed" order="ascending"/> + <xsl:sort data-type="number" select="@maxTorque" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='PowerMap']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@outShaftSpeed" order="ascending"/> + <xsl:sort data-type="number" select="@torque" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='DragCurve']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@outShaftSpeed" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='Conditioning']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@coolantTempInlet" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='VoltageLevel']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@gear" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='Data']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + + <xsl:apply-templates select="./*[not(local-name()='DragCurve') and not(local-name()='Conditioning') and not(local-name()='VoltageLevel')]"/> + + <xsl:for-each select="*[local-name()='VoltageLevel']"> + <xsl:sort data-type="number" select="*[local-name() = 'Voltage']/text()" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + + <xsl:for-each select="*[local-name()='DragCurve']"> + <xsl:sort data-type="number" select="@gear" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + + <xsl:for-each select="*[local-name()='Conditioning']"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='OCV']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@SoC" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template match="*[local-name()='InternalResistance']"> + <xsl:choose> + <xsl:when test="*"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@SoC" order="ascending"/> + <xsl:sort data-type="number" select="@R_2" order="ascending"/> + <xsl:sort data-type="number" select="@R_10" order="ascending"/> + <xsl:sort data-type="number" select="@R_20" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:when> + <xsl:otherwise> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*|node()"/> + </xsl:element> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template match="*[local-name()='CurrentLimits']"> + <xsl:element name="{local-name()}"> + <xsl:apply-templates select="@*"/> + <xsl:for-each select="*"> + <xsl:sort data-type="number" select="@SoC" order="ascending"/> + <xsl:sort data-type="number" select="@maxChargingCurrent" order="ascending"/> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + </xsl:transform> -- GitLab