Skip to content

architecture doesn't promote community-wide collaboration? #59

Description

@aspiers

Hi there,

Firstly thanks for your great work on this project!

If I understand correctly from your README and from Tigge/openant#1, in the Linux Garmin syncing world, there seem to be 4 distinct challenges:

  1. Downloading from devices by using the Garmin Device Interface Spec over an ANT-FS transport (necessary for FR405/410)
  2. Downloading from devices via ANT-FS (necessary for FR60/310/610/910xt)
  3. Uploading .fit / .tcx files to Garmin Connect
  4. Building a user-friendly wrapper for the above operations, which offers a daemon mode and/or similar UX to the Garmin ANT Agent.

Bearing these in mind, it seems the following observations are true:

  • This project currently addresses 1., 3., and 4., but not 2.
  • GcpUploader currently addresses 3.
  • https://github.com/Tigge/Garmin-Forerunner-610-Extractor currently addresses 2. but is being split into two parts:
    • https://github.com/Tigge/openant is a lower-level library for the ANT, ANT+ and ANT-FS which should make it easier to address 1. and 2. but will still require additional code which consumes the library API in order to implement full download support.
    • This additional code will be antfs-cli, which by use of a plugin system will address 1., 2., 3., and 4.
  • There are other projects such as tapiriik which address 3.

Forgive me if I misunderstood something, but it seems to me that even though there is a large overlap in goals between this project and @Tigge's work, there is very little opportunity for code sharing, even though all the existing code is Python. I feel that the Linux part of the Garmin community is relatively tiny, and IMHO it would be a shame if this tiny community split into two fragments rather than working together on a universal solution. Is there a way that the two projects could be united so that we can progress much faster? Here are a few architectural suggestions:

  • keep upload to Garmin Connect (3.) functionality as a separate project with interfaces which can be used by both projects (e.g. could be CLI or Python module)
  • keep download from Garmin devices (1. and 2.) as separate projects
  • standardize on a API for 1. and 2. so that any implementations of (1. and 2.) can be used as plugins by both this project and by the upcoming antfs-cli

I realise that in the short term this would require a bit more work, but in the longer term I think it could benefit our small community a lot.

Thanks for listening!

(This suggestion was prompted by the discussion in Tigge/antfs-cli#96. See also Tigge/openant#1.)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions