Upgrade FIT SDK to 21.171

Includes new Garmin devices and manufacturers
Adds SIGMA ROX 4.0 SE from #4689
Updates fitprod.py to new format
This commit is contained in:
Alejandro Martinez
2025-08-19 22:14:11 -03:00
parent 2ba23e9c12
commit 7f584aa02e
4 changed files with 9509 additions and 8723 deletions

View File

@@ -1,5 +1,5 @@
{
"VERSION":1735487026,
"VERSION":1755650470,
"COMMENT":"Do not edit this file directly it is generated.",
"PRODUCTS":[
{ "manu":1, "prod":3592, "name":"Varia Rtl515" },
@@ -44,6 +44,7 @@
{ "manu":70, "prod":51, "name":"SIGMA ROX 2.0" },
{ "manu":70, "prod":52, "name":"SIGMA ROX 4.0" },
{ "manu":70, "prod":54, "name":"SIGMA ROX 12.1 EVO" },
{ "manu":70, "prod":69, "name":"SIGMA ROX 4.0 SE" },
{ "manu":76, "prod":-1, "name":"Moxy Monitor" },
{ "manu":83, "prod":3, "name":"Scosche Rythm+" },
{ "manu":89, "prod":2800, "name":"Tacx Neo" },
@@ -316,6 +317,8 @@
{ "manu":1, "prod":3028, "name":"Gpsmap66" },
{ "manu":1, "prod":3049, "name":"Approach S10" },
{ "manu":1, "prod":3066, "name":"Vivoactive3M L" },
{ "manu":1, "prod":3076, "name":"Fr245" },
{ "manu":1, "prod":3077, "name":"Fr245 Music" },
{ "manu":1, "prod":3085, "name":"Approach G80" },
{ "manu":1, "prod":3092, "name":"Edge 130 Asia" },
{ "manu":1, "prod":3095, "name":"Edge 1030 Bontrager" },
@@ -346,6 +349,7 @@
{ "manu":1, "prod":3250, "name":"Marq Expedition" },
{ "manu":1, "prod":3251, "name":"Marq Athlete" },
{ "manu":1, "prod":3258, "name":"Descent Mk2" },
{ "manu":1, "prod":3282, "name":"Fr45" },
{ "manu":1, "prod":3284, "name":"Gpsmap66I" },
{ "manu":1, "prod":3287, "name":"Fenix6S Sport" },
{ "manu":1, "prod":3288, "name":"Fenix6S" },
@@ -395,6 +399,8 @@
{ "manu":1, "prod":3570, "name":"Edge 1030 Plus" },
{ "manu":1, "prod":3578, "name":"Rally 200" },
{ "manu":1, "prod":3589, "name":"Fr745" },
{ "manu":1, "prod":3596, "name":"Venusq Music" },
{ "manu":1, "prod":3599, "name":"Venusq Music V2" },
{ "manu":1, "prod":3600, "name":"Venusq" },
{ "manu":1, "prod":3615, "name":"Lily" },
{ "manu":1, "prod":3624, "name":"Marq Adventurer" },
@@ -422,6 +428,7 @@
{ "manu":1, "prod":3865, "name":"Gnss" },
{ "manu":1, "prod":3869, "name":"Fr55" },
{ "manu":1, "prod":3888, "name":"Instinct 2" },
{ "manu":1, "prod":3889, "name":"Instinct 2S" },
{ "manu":1, "prod":3905, "name":"Fenix7S" },
{ "manu":1, "prod":3906, "name":"Fenix7" },
{ "manu":1, "prod":3907, "name":"Fenix7X" },
@@ -507,7 +514,20 @@
{ "manu":1, "prod":4536, "name":"Fenix8" },
{ "manu":1, "prod":4556, "name":"D2 Mach1 Pro" },
{ "manu":1, "prod":4575, "name":"Enduro3" },
{ "manu":1, "prod":4583, "name":"Instincte 40Mm" },
{ "manu":1, "prod":4584, "name":"Instincte 45Mm" },
{ "manu":1, "prod":4585, "name":"Instinct3 Solar 45Mm" },
{ "manu":1, "prod":4586, "name":"Instinct3 Amoled 45Mm" },
{ "manu":1, "prod":4587, "name":"Instinct3 Amoled 50Mm" },
{ "manu":1, "prod":4588, "name":"Descent G2" },
{ "manu":1, "prod":4606, "name":"Hrm 200" },
{ "manu":1, "prod":4625, "name":"Vivoactive6" },
{ "manu":1, "prod":4647, "name":"Approachs44" },
{ "manu":1, "prod":4656, "name":"Approachs50" },
{ "manu":1, "prod":4666, "name":"Fenix E" },
{ "manu":1, "prod":4759, "name":"Instinct3 Solar 50Mm" },
{ "manu":1, "prod":4775, "name":"Tactix8 Amoled" },
{ "manu":1, "prod":4776, "name":"Tactix8 Solar" },
{ "manu":1, "prod":10007, "name":"Sdm4" },
{ "manu":1, "prod":10014, "name":"Edge Remote" },
{ "manu":1, "prod":20533, "name":"Tacx Training App Win" },
@@ -673,6 +693,7 @@
{ "manu":150, "name":"Myzone" },
{ "manu":151, "name":"Abawo" },
{ "manu":152, "name":"Bafang" },
{ "manu":153, "name":"Luhong Technology" },
{ "manu":255, "name":"Development" },
{ "manu":257, "name":"Healthandlife" },
{ "manu":258, "name":"Lezyne" },
@@ -750,6 +771,9 @@
{ "manu":330, "name":"Eo Swimbetter" },
{ "manu":331, "name":"Mywhoosh" },
{ "manu":332, "name":"Ravemen" },
{ "manu":333, "name":"Tektro Racing Products" },
{ "manu":334, "name":"Darad Innovation Corporation" },
{ "manu":335, "name":"Cycloptim" },
{ "manu":5759, "name":"Actigraphcorp" }
],
@@ -2045,6 +2069,7 @@
{ "num": 9 , "desc":"Power Zone" },
{ "num": 10 , "desc":"Met Zone" },
{ "num": 12 , "desc":"Sport" },
{ "num": 13 , "desc":"Training Settings" },
{ "num": 15 , "desc":"Goal" },
{ "num": 18 , "desc":"Session" },
{ "num": 19 , "desc":"Lap" },

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@ for line in lines:
match = re.search("FIT_GARMIN_PROD", line)
if match:
name = re.search("(FIT_GARMIN_PRODUCT_)([^ \t]*)", line)
id = re.search("\(FIT_GARMIN_PRODUCT\)([ 0-9]*)", line)
id = re.search("\(FIT_GARMIN_PRODUCT, ([ 0-9]*)", line)
if name and id:
# extract name
print(pre+ '{ "manu":1, "prod":' + id.group(1).strip() + ', "name":"' + name.group(2).strip().replace('_',' ').title() + '" }', end="")
@@ -36,7 +36,7 @@ print("\n ],\n")
print(' "MANUFACTURERS":[')
pre=" "
for line in lines:
match = re.search("FIT_MANUFACTURER_([^ \t]*).*\(\(FIT_MANUFACTURER\)([ 0-9]*)", line)
match = re.search("MANUFACTURER_([^ \t]*).*\(FIT_MANUFACTURER, ([ 0-9]*)", line)
if match:
print(pre+ '{ "manu":' + match.group(2).strip() + ', "name":"' + match.group(1).strip().replace('_',' ').title() + '" }', end="")
pre=",\n "
@@ -54,12 +54,12 @@ for line in fieldlines:
#
# Message number description
#
# // #define FIT_MESG_NUM_HR_ZONE ((FIT_MESG_NUM)8)
# // #define FIT_MESG_NUM_HR_ZONE (FIT_CAST(FIT_MESG_NUM, 8))
print(' "MESSAGES":[')
pre=" "
for line in lines:
match = re.search("FIT_MESG_NUM_([^ \t]*).*\(\(FIT_MESG_NUM\)([ 0-9]*)", line)
match = re.search("FIT_MESG_NUM_([^ \t]*).*\(FIT_MESG_NUM, ([ 0-9]*)", line)
if match:
num = int(match.group(2).strip())
if num > 0:

View File

@@ -40,6 +40,7 @@
{ "manu":70, "prod":51, "name":"SIGMA ROX 2.0" },
{ "manu":70, "prod":52, "name":"SIGMA ROX 4.0" },
{ "manu":70, "prod":54, "name":"SIGMA ROX 12.1 EVO" },
{ "manu":70, "prod":69, "name":"SIGMA ROX 4.0 SE" },
{ "manu":76, "prod":-1, "name":"Moxy Monitor" },
{ "manu":83, "prod":3, "name":"Scosche Rythm+" },
{ "manu":89, "prod":2800, "name":"Tacx Neo" },