The Javascript SDK should probably decode memoGlobMesgs

I'm working on editing workouts outside of Garmin Connect because building them in the app on my phone is incredibly tedious. To this end, I've been using the Garmin FIT SDK in Javascript (as this is my preferred language for this kind of thing) and I've noticed that memos for the workout step show up in a separate memoGlob message which isn't decoded, so the value appears to be binary. Manually decoding it reveals it as a string, but this is not ideal. It seems like decoding this string would be consistent with other decoding efforts in the library and is an easy fix.

I can send a PR for this (and possibly a few other small issues as I come across them) if it would be helpful, or barring that, could you touch this up in the next point release? Thanks!

  • The memo_glob messages are decoded by the SDKs, but at the moment none of the SDKs reconstruct the string from the globs. For some of the SDKs this would be difficult to do this since it would require defining data structures to hold all of the decoded messages, and even then there is no property on any on the message classes to store the reconstructed string. You can not use the corresponding field to hold the string, since by nature the reconstruct string may be larger than the 255 byte limit for a field.

    But for the JavaScript and Python SDKs, both of which defined data structures to hold the decoded messages and the messages themselves being dictionaries, this would be feasible. We will add it to the backlog, but there is not ETA at this time.

  • Thanks, Ben. The FIT file format is obviously old and has been through a lot of different changes over the years. It really helps to have at least a semi-canonical reference from Garmin to understand what's going on and I appreciate the work it takes to maintain.