Giter VIP home page Giter VIP logo

sdetofit's Introduction

SdeToFit

Java command-line application to convert Suunto SDE dive log files as exported from Suunto Dive Manager to ANT Flexible and Interoperable Data Transport (FIT) format for import into Garmin Connect. I wrote this application after switching from a Suunto D3 to a Garmin Descent Mk2 dive computer and wanted to view all of my old logs in one platform. Using it requires downloading the free Garmin Flexible and Interoperable Data Transfer (FIT) SDK; it is not available through a Maven repository and is not open source so I can't redistribute it here.

Instructions

These instructions are written for Windows and assume that you have a current Java Runtime Environment installed. Steps might be slightly different on other platforms.

  1. Download and install the Garmin Flexible and Interoperable Data Transfer (FIT) SDK.
  2. Update the CLASSPATH environment variable to include fit.jar file from the SDK in the previous step. Environment_Variables
  3. Launch Suunto Dive Manager.
  4. In the Logbook pane, select all of the dives that you want to convert.
  5. On the menu select File, Export... SDM_Export
  6. Click the Browse button.
  7. In the Save As dialog box, select a destination directory.
  8. Click the Save button.
  9. Click the Export button.
  10. Launch Command Prompt.
  11. Run the converter using a command like this, specifying the export file created in the previous steps as the first argument and the output directory as the second argument: C:\Users\nrado\git\SdeToFit\target>java.exe -cp %CLASSPATH%;SdeToFit-1.0-SNAPSHOT.jar com.github.nradov.sdetofit.SdeToFit C:\Users\nrado\OneDrive\Documents\Divelogs.SDE C:\Users\nrado\OneDrive\Documents.
  12. Launch a web browser.
  13. Log in to Garmin Connect and navigate to the Import Data page.
  14. Drop or select the converted FIT files.
  15. Click the Import Data button.

Limitations

  • No support for time zone offsets. All times are treated as being in the local time zone.
  • No support for tissue loading (decompression) or tank pressures (air integration).
  • No support for bookmarks (such as "Slow"). In theory those could probably be converted to FIT event messages, but Garmin Connect and Garmin Dive don't display those anyway so it seems pointless.
  • No calculation of surface intervals.
  • Only tested with dive logs recorded using the Suunto D3 and exported from SDM 3.1.0; may not work correctly for other dive computers or SDM versions.

sdetofit's People

Contributors

dejarno avatar nradov avatar

Stargazers

 avatar

Watchers

 avatar  avatar

sdetofit's Issues

DM5 SME export does not work

Hi,

Seems that it's not standard zip. Unzip wont like it either.

C:\Users\jo\Downloads>java.exe -cp fit.jar;SdeToFit-1.0-SNAPSHOT.jar com.github.nradov.sdetofit.SdeToFit Dive_2023-01-23-0953.sde C:\Users\jo\Downloads
Exception in thread "main" java.util.zip.ZipException: zip END header not found
        at java.base/java.util.zip.ZipFile$Source.findEND(Unknown Source)
        at java.base/java.util.zip.ZipFile$Source.initCEN(Unknown Source)
        at java.base/java.util.zip.ZipFile$Source.<init>(Unknown Source)
        at java.base/java.util.zip.ZipFile$Source.get(Unknown Source)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(Unknown Source)
        at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
        at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
        at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
        at com.github.nradov.sdetofit.suunto.SuuntoSde.<init>(SuuntoSde.java:41)
        at com.github.nradov.sdetofit.DivesSourceFactory.create(DivesSourceFactory.java:55)
        at com.github.nradov.sdetofit.SdeToFit.convert(SdeToFit.java:72)
        at com.github.nradov.sdetofit.SdeToFit.main(SdeToFit.java:68)

$ unzip -v Dive_2023-01-23-0953.sde
Archive:  Dive_2023-01-23-0953.sde
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  Dive_2023-01-23-0953.sde may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of Dive_2023-01-23-0953.sde or
        Dive_2023-01-23-0953.sde.zip, and cannot find Dive_2023-01-23-0953.sde.ZIP, period.

It can export SML, which is probably Suunto XML, would hope same same without compression?

But there's the three options that I can export from DM5, would be nice if some of them would be supported to convert to as FIT.

dive-logs.zip

Problem to convert Dives from Suunto Stinger, Dive Manager 3.1.0, SDE

Hello,
I have tried to convert my Dives from Suunto Dive Manager 3.1.0 logged with a Suunto Stinger in the Fit-format for Garmin connect.

I received the following error:

c:\Users\rk.NBG\Documents\DiveTool>java.exe -cp %CLASSPATH%;SdeToFit-1.0-SNAPSHOT.jar com.github.nradov.sdetofit.SdeToFit c:\Users\rk.NBG\Documents\DiveTool\Input\Divelogs.SDE c:\Users\rk.NBG\Documents\DiveTool\Output
Converting dive log: "0.xml"
Exception in thread "main" java.lang.NumberFormatException: For input string: "20,7"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:556)
at com.github.nradov.sdetofit.suunto.SuuntoXml.(SuuntoXml.java:72)
at com.github.nradov.sdetofit.suunto.SuuntoSde.(SuuntoSde.java:46)
at com.github.nradov.sdetofit.DivesSourceFactory.create(DivesSourceFactory.java:55)
at com.github.nradov.sdetofit.SdeToFit.convert(SdeToFit.java:72)
at com.github.nradov.sdetofit.SdeToFit.main(SdeToFit.java:68)

what's wrong, can someone help

Divelogs.zip

in the appendix are 5 dives

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.