{"id":29,"date":"2006-10-15T19:47:34","date_gmt":"2006-10-15T19:47:34","guid":{"rendered":"http:\/\/muttznutz.net\/muttzblog\/suunto-dive-manager\/integrating-sdm2\/"},"modified":"2006-10-15T21:57:44","modified_gmt":"2006-10-15T21:57:44","slug":"integrating-sdm2","status":"publish","type":"page","link":"https:\/\/muttznutz.net\/muttzblog\/suunto-dive-manager\/integrating-sdm2","title":{"rendered":"Integrating SDM 2"},"content":{"rendered":"<p>I&#8217;ve not managed this, yet, as I&#8217;ve had real problems with SDM 2 &#8230;.<\/p>\n<h3>Exporting from SDM2<\/h3>\n<p>&#8230;. Mostly because the Export facility appeared to be really naff (as were early releases of the software).<br \/>\nThe options available in the Suunto &#8220;Help&#8221; are a &#8220;Standard&#8221; .zxu file (which seems to lack documentation) or export to Excel .csv file &#8211; although this only seems to export the profile data &#8211; not any of the information about the location etc.<br \/>\nOutside of the documentation, the software allows export to a .zxl file. That doesn&#8217;t seem to open up easily either &#8230;<br \/>\nThe final option is a Suunto Dive Export File (SDE). This also looked pretty inaccessible, until <a href=\"http:\/\/www.scubaboard.com\/archive\/index.php\/t-127806.html\">this entry<\/a> popped up on Scubaboard. I just picked up on it yesterday.<br \/>\nThe gist is that this export format is an XML file within a ZIP (compressed) folder, with one file for each dive.<br \/>\nThere&#8217;s no schema (or DTD) for this format, which may vary from one model to another.<\/p>\n<h3>SDM 2 database structure<\/h3>\n<p>The underlying database is based on an MS Access platform.<br \/>\nThe first release wasn&#8217;t password protected, so you could look at the structure. The key table (&#8220;Items&#8221;) is quite &#8230; well &#8230; multi-purpose. It holds gear, dives and sites, all mixed up and identifiable only through keys. Later releases are password protected, but &#8211; again &#8211; you should be able to find the password on the &#8216;net if you really want to (<em>to some extent, this demonstrates the pointlessness of trying to keep these things secret, but that&#8217;s for another rant<\/em>).<br \/>\nThe fields are mostly named generically (e.g. i_custom11 &#8211; which can hold the dive sequence no. or t_custom3 &#8211; which can hold the dive location), and so have no real context for a SQL query, even with the password access. 2 &#8211; 3 queries would be needed to get to the dives, and different queries for each dive computer model.<\/p>\n<p>So the XML exports would seem to be the best way into this data, but it&#8217;s gonna be a lot of faffing about &#8211; extracting the files, jamming them together, and getting the info out. Profiles should be a bit more accessible, though.<br \/>\nThe files themselves seem to have meaningful field names, which is a help, but there&#8217;s a project with an XML <a href=\"http:\/\/www.streit.cc\/dive\/\">data model<\/a> for generic dive log which seems to be more evolved.<\/p>\n<p>Net effect &#8230; I may have to upgrade to SDM2 at some stage, but I&#8217;m not in any real hurry.<\/p>\n<h3>So what would I do with SDM ?<\/h3>\n<p>SDM isn&#8217;t core to Suunto&#8217;s operations. It doesn&#8217;t &#8220;sell&#8221; in its own right, and &#8211; given the market &#8211; almost certainly never will.<br \/>\nFor this reason, it probably isn&#8217;t high on Suunto&#8217;s list of priorities &#8211; but it is expected as part of a dive computer release.<br \/>\nSuunto&#8217;s problem is that this software costs money to support &#8211; and there&#8217;s an increasing number of &#8220;legacy&#8221; models to support (each with different unique characteristics) &#8211; but doesn&#8217;t generate any revenue.<\/p>\n<p>I believe that the answer is to &#8220;open&#8221; much of the software (<em>but then &#8211; in case you hadn&#8217;t guessed &#8211; I&#8217;m a believer in Open Source<\/em>).<\/p>\n<p>I believe that the database structure is unwieldy.<br \/>\nSo I&#8217;d switch to an XML-based structure. Probably for the data repository, as well as just for export.<\/p>\n<p>By supporting projects such as <a href=\"http:\/\/www.macdivelog.com\/\">MacDiveLog<\/a> and\/or <a href=\"http:\/\/jdivelog.sourceforge.net\/index.html\">JDiveLog<\/a> then PC Dive management software would not be be limited to the Windows platform.<br \/>\nThis fits well with the current trend to separating information and presentation.<\/p>\n<p>Core functionality could be protected &#8211; data import, decompression algorithms, dive planning etc. could be secured, but with APIs exposed and published for third party developers.<\/p>\n<p>Aspects such as the user interface and reporting could be opened to community developers &#8211; there is a wide body of evidence that this would lead to a more rewarding user experience, and more diverse applications.<\/p>\n<p>Apart from the support savings, I believe that this would offer benefits to Suunto &#8211; Dive Manager support wouldn&#8217;t be a significant factor in releasing new hardware models. Those are the items that generate revenue.<br \/>\nAs things stand, the shortcomings in SDM reflect on the organisation&#8217;s development capabilities &#8211; and they have a lot of applications far more critical than SDM.<br \/>\nReading some of the forums (even Suuto&#8217;s own) I believe that I&#8217;m not alone in this view &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve not managed this, yet, as I&#8217;ve had real problems with SDM 2 &#8230;. Exporting from SDM2 &#8230;. Mostly because the Export facility appeared to be really naff (as were early releases of the software). The options available in the Suunto &#8220;Help&#8221; are a &#8220;Standard&#8221; .zxu file (which seems to lack documentation) or export to [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":24,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"_mi_skip_tracking":false},"_links":{"self":[{"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/pages\/29"}],"collection":[{"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":0,"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/pages\/29\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/pages\/24"}],"wp:attachment":[{"href":"https:\/\/muttznutz.net\/muttzblog\/wp-json\/wp\/v2\/media?parent=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}