Skip to content

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

@aspiers

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.)

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