]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Fix more Suunto SDM xml conversion problems
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 12 May 2012 19:01:38 +0000 (12:01 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 12 May 2012 19:01:38 +0000 (12:01 -0700)
Looking at the XML of the two dives Szymon Kosecki sent out to the
subsurface list, I notice that our cylinder size conversion was wrong.
It looks like CYLINDERUNITS is what determines whether the cylinder size
is in metric (0) or imperial (1) units.

Of course, if you gave a cylinder size in cuft and didn't give a working
pressure, subsurface will just ignore the size as the random crap it is.
We *could* default to a working pressure of 3000 psi, of course.

This also picks up the CYLINDERDESCRIPTION value, although neither of
Szymon's dives actually had any description.

I need more SDE xml files to figure out how multi-cylinder dives look
etc, but I think this gets most *simple* SDE files converted almost
correctly now.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
xslt/SuuntoSDM.xslt

index 391bdf8c4d33f23ecbd8279cf973d1eed9877a0f..64564adf1b6b5a375cc377ef4f5767b698055a61 100644 (file)
           <xsl:value-of select="concat(HEPCT, '%')"/>
         </xsl:attribute>
       </xsl:if>
+      <xsl:if test="CYLINDERDESCRIPTION != ''">
+        <xsl:attribute name="description">
+          <xsl:value-of select="CYLINDERDESCRIPTION"/>
+        </xsl:attribute>
+      </xsl:if>
       <xsl:if test="CYLINDERSIZE != ''">
         <xsl:attribute name="size">
             <xsl:choose>
-              <xsl:when test="CYLINDERWORKPRESSURE = '0'">
+              <xsl:when test="CYLINDERUNITS = '0'">
                 <xsl:value-of select="concat(CYLINDERSIZE, ' l')"/>
               </xsl:when>
               <xsl:otherwise>
   <xsl:template name="cuft2l">
     <xsl:param name="size"/>
     <xsl:param name="pressure"/>
-    <xsl:value-of select="concat(format-number((($size*28.3168466) div ($pressure div 1013.25)), '0.000'), ' l')" />
+    <xsl:choose>
+      <xsl:when test="$pressure != '0'">
+        <xsl:value-of select="concat(format-number((($size*28.3168466) div ($pressure div 1013.25)), '0.000'), ' l')" />
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
   </xsl:template>
   <!-- end cuft2l -->