mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 08:08:42 +00:00
FITmetadata.json
Added the tooling to the util directory to generate a JSON file with product and manufacturer metadata for use by the FITRideFile decoder. [skip ci]
This commit is contained in:
666
util/fit/FITmetadata.json
Normal file
666
util/fit/FITmetadata.json
Normal file
@@ -0,0 +1,666 @@
|
||||
{
|
||||
"VERSION":1659206075,
|
||||
"PRODUCTS":[
|
||||
{ "manu":6, "prod":6, "name":"SRM PC6" },
|
||||
{ "manu":6, "prod":7, "name":"SRM PC7" },
|
||||
{ "manu":6, "prod":8, "name":"SRM PC8" },
|
||||
{ "manu":6, "prod":-1, "name":"SRM Powercontrol" },
|
||||
{ "manu":7, "prod":1, "name":"Quarq Cinqo" },
|
||||
{ "manu":7, "prod":9479, "name":"Quarq DZERO" },
|
||||
{ "manu":8, "prod":2054, "name":"iBike AeroPod" },
|
||||
{ "manu":9, "prod":-1, "name":"Powertap" },
|
||||
{ "manu":9, "prod":14, "name":"Joule 2.0" },
|
||||
{ "manu":9, "prod":18, "name":"Joule" },
|
||||
{ "manu":9, "prod":19, "name":"Joule GPS" },
|
||||
{ "manu":9, "prod":22, "name":"Joule GPS+" },
|
||||
{ "manu":9, "prod":272, "name":"Powertap C1" },
|
||||
{ "manu":9, "prod":288, "name":"Powertap P1" },
|
||||
{ "manu":9, "prod":4096, "name":"Powertap G3" },
|
||||
{ "manu":9, "prod":4353, "name":"Powercal" },
|
||||
{ "manu":29, "prod":1031, "name":"Power2max S" },
|
||||
{ "manu":32, "prod":0, "name":"Wahoo fitness" },
|
||||
{ "manu":32, "prod":28, "name":"Wahoo ELEMNT" },
|
||||
{ "manu":32, "prod":31, "name":"Wahoo ELEMNT BOLT" },
|
||||
{ "manu":38, "prod":1, "name":"o_synce navi2coach" },
|
||||
{ "manu":48, "prod":2, "name":"Pioneer SGX-CA500" },
|
||||
{ "manu":54, "prod":1, "name":"IpBike" },
|
||||
{ "manu":69, "prod":1, "name":"Stages Power Gen 1" },
|
||||
{ "manu":69, "prod":2, "name":"Stages Power Gen 2" },
|
||||
{ "manu":69, "prod":3, "name":"Stages Power Gen 3" },
|
||||
{ "manu":70, "prod":15, "name":"SIGMA ROX 10.0" },
|
||||
{ "manu":70, "prod":18, "name":"SIGMA ROX 7.0" },
|
||||
{ "manu":70, "prod":41, "name":"SIGMA ROX 11.0" },
|
||||
{ "manu":70, "prod":42, "name":"SIGMA iD.RUN" },
|
||||
{ "manu":70, "prod":43, "name":"SIGMA iD.RUN HR" },
|
||||
{ "manu":70, "prod":44, "name":"SIGMA ROX 12.0" },
|
||||
{ "manu":70, "prod":45, "name":"SIGMA iD.FREE" },
|
||||
{ "manu":70, "prod":46, "name":"SIGMA iD.TRI" },
|
||||
{ "manu":70, "prod":47, "name":"SIGMA PURE GPS" },
|
||||
{ "manu":70, "prod":49, "name":"SIGMA ROX 11.1" },
|
||||
{ "manu":70, "prod":51, "name":"SIGMA ROX 2.0" },
|
||||
{ "manu":70, "prod":52, "name":"SIGMA ROX 4.0" },
|
||||
{ "manu":76, "prod":-1, "name":"Moxy Monitor" },
|
||||
{ "manu":83, "prod":3, "name":"Scosche Rythm+" },
|
||||
{ "manu":89, "prod":2800, "name":"Tacx Neo" },
|
||||
{ "manu":89, "prod":2850, "name":"Tacx Neo 2 Smart" },
|
||||
{ "manu":95, "prod":-1, "name":"Stryd" },
|
||||
{ "manu":98, "prod":-1, "name":"BSX" },
|
||||
{ "manu":98, "prod":2, "name":"BSX Insight 2" },
|
||||
{ "manu":107, "prod":-1, "name":"Magene" },
|
||||
{ "manu":108, "prod":-1, "name":"Giant" },
|
||||
{ "manu":108, "prod":21845, "name":"Giant Power Pro" },
|
||||
{ "manu":115, "prod":-1, "name":"iGPSPORT" },
|
||||
{ "manu":116, "prod":-1, "name":"Thinkrider" },
|
||||
{ "manu":123, "prod":2, "name":"Polar H10" },
|
||||
{ "manu":123, "prod":3, "name":"Polar H9" },
|
||||
{ "manu":123, "prod":-1, "name":"Polar" },
|
||||
{ "manu":132, "prod":-1, "name":"Cycplus" },
|
||||
{ "manu":258, "prod":-1, "name":"Lezyne" },
|
||||
{ "manu":258, "prod":4, "name":"Lezyne Super GPS" },
|
||||
{ "manu":258, "prod":6, "name":"Lezyne Micro-GPS" },
|
||||
{ "manu":258, "prod":11, "name":"Lezyne MegaXL" },
|
||||
{ "manu":260, "prod":-1, "name":"Zwift" },
|
||||
{ "manu":263, "prod":-1, "name":"Favero" },
|
||||
{ "manu":263, "prod":12, "name":"Favero Assioma Duo" },
|
||||
{ "manu":267, "prod":-1, "name":"Bryton" },
|
||||
{ "manu":268, "prod":-1, "name":"SRAM" },
|
||||
{ "manu":268, "prod":1037, "name":"SRAM Rival eTap AXS" },
|
||||
{ "manu":268, "prod":1052, "name":"SRAM Rival AXS" },
|
||||
{ "manu":282, "prod":-1, "name":"The Sufferfest" },
|
||||
{ "manu":284, "prod":-1, "name":"Rouvy" },
|
||||
{ "manu":289, "prod":-1, "name":"Hammerhead" },
|
||||
{ "manu":255, "prod":-1, "name":"Development" },
|
||||
{ "manu":1, "prod":1, "name":"Hrm1" },
|
||||
{ "manu":1, "prod":2, "name":"Axh01" },
|
||||
{ "manu":1, "prod":3, "name":"Axb01" },
|
||||
{ "manu":1, "prod":4, "name":"Axb02" },
|
||||
{ "manu":1, "prod":5, "name":"Hrm2Ss" },
|
||||
{ "manu":1, "prod":6, "name":"Dsi Alf02" },
|
||||
{ "manu":1, "prod":7, "name":"Hrm3Ss" },
|
||||
{ "manu":1, "prod":8, "name":"Hrm Run Single Byte Product Id" },
|
||||
{ "manu":1, "prod":9, "name":"Bsm" },
|
||||
{ "manu":1, "prod":10, "name":"Bcm" },
|
||||
{ "manu":1, "prod":11, "name":"Axs01" },
|
||||
{ "manu":1, "prod":12, "name":"Hrm Tri Single Byte Product Id" },
|
||||
{ "manu":1, "prod":13, "name":"Hrm4 Run Single Byte Product Id" },
|
||||
{ "manu":1, "prod":14, "name":"Fr225 Single Byte Product Id" },
|
||||
{ "manu":1, "prod":15, "name":"Gen3 Bsm Single Byte Product Id" },
|
||||
{ "manu":1, "prod":16, "name":"Gen3 Bcm Single Byte Product Id" },
|
||||
{ "manu":1, "prod":255, "name":"Ohr" },
|
||||
{ "manu":1, "prod":473, "name":"Fr301 China" },
|
||||
{ "manu":1, "prod":474, "name":"Fr301 Japan" },
|
||||
{ "manu":1, "prod":475, "name":"Fr301 Korea" },
|
||||
{ "manu":1, "prod":494, "name":"Fr301 Taiwan" },
|
||||
{ "manu":1, "prod":717, "name":"Fr405" },
|
||||
{ "manu":1, "prod":782, "name":"Fr50" },
|
||||
{ "manu":1, "prod":987, "name":"Fr405 Japan" },
|
||||
{ "manu":1, "prod":988, "name":"Fr60" },
|
||||
{ "manu":1, "prod":1011, "name":"Dsi Alf01" },
|
||||
{ "manu":1, "prod":1018, "name":"Fr310Xt" },
|
||||
{ "manu":1, "prod":1036, "name":"Edge500" },
|
||||
{ "manu":1, "prod":1124, "name":"Fr110" },
|
||||
{ "manu":1, "prod":1169, "name":"Edge800" },
|
||||
{ "manu":1, "prod":1199, "name":"Edge500 Taiwan" },
|
||||
{ "manu":1, "prod":1213, "name":"Edge500 Japan" },
|
||||
{ "manu":1, "prod":1253, "name":"Chirp" },
|
||||
{ "manu":1, "prod":1274, "name":"Fr110 Japan" },
|
||||
{ "manu":1, "prod":1325, "name":"Edge200" },
|
||||
{ "manu":1, "prod":1328, "name":"Fr910Xt" },
|
||||
{ "manu":1, "prod":1333, "name":"Edge800 Taiwan" },
|
||||
{ "manu":1, "prod":1334, "name":"Edge800 Japan" },
|
||||
{ "manu":1, "prod":1341, "name":"Alf04" },
|
||||
{ "manu":1, "prod":1345, "name":"Fr610" },
|
||||
{ "manu":1, "prod":1360, "name":"Fr210 Japan" },
|
||||
{ "manu":1, "prod":1380, "name":"Vector Ss" },
|
||||
{ "manu":1, "prod":1381, "name":"Vector Cp" },
|
||||
{ "manu":1, "prod":1386, "name":"Edge800 China" },
|
||||
{ "manu":1, "prod":1387, "name":"Edge500 China" },
|
||||
{ "manu":1, "prod":1405, "name":"Approach G10" },
|
||||
{ "manu":1, "prod":1410, "name":"Fr610 Japan" },
|
||||
{ "manu":1, "prod":1422, "name":"Edge500 Korea" },
|
||||
{ "manu":1, "prod":1436, "name":"Fr70" },
|
||||
{ "manu":1, "prod":1446, "name":"Fr310Xt 4T" },
|
||||
{ "manu":1, "prod":1461, "name":"Amx" },
|
||||
{ "manu":1, "prod":1482, "name":"Fr10" },
|
||||
{ "manu":1, "prod":1497, "name":"Edge800 Korea" },
|
||||
{ "manu":1, "prod":1499, "name":"Swim" },
|
||||
{ "manu":1, "prod":1537, "name":"Fr910Xt China" },
|
||||
{ "manu":1, "prod":1551, "name":"Fenix" },
|
||||
{ "manu":1, "prod":1555, "name":"Edge200 Taiwan" },
|
||||
{ "manu":1, "prod":1561, "name":"Edge510" },
|
||||
{ "manu":1, "prod":1567, "name":"Edge810" },
|
||||
{ "manu":1, "prod":1570, "name":"Tempe" },
|
||||
{ "manu":1, "prod":1600, "name":"Fr910Xt Japan" },
|
||||
{ "manu":1, "prod":1623, "name":"Fr620" },
|
||||
{ "manu":1, "prod":1632, "name":"Fr220" },
|
||||
{ "manu":1, "prod":1664, "name":"Fr910Xt Korea" },
|
||||
{ "manu":1, "prod":1688, "name":"Fr10 Japan" },
|
||||
{ "manu":1, "prod":1721, "name":"Edge810 Japan" },
|
||||
{ "manu":1, "prod":1735, "name":"Virb Elite" },
|
||||
{ "manu":1, "prod":1736, "name":"Edge Touring" },
|
||||
{ "manu":1, "prod":1742, "name":"Edge510 Japan" },
|
||||
{ "manu":1, "prod":1743, "name":"Hrm Tri" },
|
||||
{ "manu":1, "prod":1752, "name":"Hrm Run" },
|
||||
{ "manu":1, "prod":1765, "name":"Fr920Xt" },
|
||||
{ "manu":1, "prod":1821, "name":"Edge510 Asia" },
|
||||
{ "manu":1, "prod":1822, "name":"Edge810 China" },
|
||||
{ "manu":1, "prod":1823, "name":"Edge810 Taiwan" },
|
||||
{ "manu":1, "prod":1836, "name":"Edge1000" },
|
||||
{ "manu":1, "prod":1837, "name":"Vivo Fit" },
|
||||
{ "manu":1, "prod":1853, "name":"Virb Remote" },
|
||||
{ "manu":1, "prod":1885, "name":"Vivo Ki" },
|
||||
{ "manu":1, "prod":1903, "name":"Fr15" },
|
||||
{ "manu":1, "prod":1907, "name":"Vivo Active" },
|
||||
{ "manu":1, "prod":1918, "name":"Edge510 Korea" },
|
||||
{ "manu":1, "prod":1928, "name":"Fr620 Japan" },
|
||||
{ "manu":1, "prod":1929, "name":"Fr620 China" },
|
||||
{ "manu":1, "prod":1930, "name":"Fr220 Japan" },
|
||||
{ "manu":1, "prod":1931, "name":"Fr220 China" },
|
||||
{ "manu":1, "prod":1936, "name":"Approach S6" },
|
||||
{ "manu":1, "prod":1956, "name":"Vivo Smart" },
|
||||
{ "manu":1, "prod":1967, "name":"Fenix2" },
|
||||
{ "manu":1, "prod":1988, "name":"Epix" },
|
||||
{ "manu":1, "prod":2050, "name":"Fenix3" },
|
||||
{ "manu":1, "prod":2052, "name":"Edge1000 Taiwan" },
|
||||
{ "manu":1, "prod":2053, "name":"Edge1000 Japan" },
|
||||
{ "manu":1, "prod":2061, "name":"Fr15 Japan" },
|
||||
{ "manu":1, "prod":2067, "name":"Edge520" },
|
||||
{ "manu":1, "prod":2070, "name":"Edge1000 China" },
|
||||
{ "manu":1, "prod":2072, "name":"Fr620 Russia" },
|
||||
{ "manu":1, "prod":2073, "name":"Fr220 Russia" },
|
||||
{ "manu":1, "prod":2079, "name":"Vector S" },
|
||||
{ "manu":1, "prod":2100, "name":"Edge1000 Korea" },
|
||||
{ "manu":1, "prod":2130, "name":"Fr920Xt Taiwan" },
|
||||
{ "manu":1, "prod":2131, "name":"Fr920Xt China" },
|
||||
{ "manu":1, "prod":2132, "name":"Fr920Xt Japan" },
|
||||
{ "manu":1, "prod":2134, "name":"Virbx" },
|
||||
{ "manu":1, "prod":2135, "name":"Vivo Smart Apac" },
|
||||
{ "manu":1, "prod":2140, "name":"Etrex Touch" },
|
||||
{ "manu":1, "prod":2147, "name":"Edge25" },
|
||||
{ "manu":1, "prod":2148, "name":"Fr25" },
|
||||
{ "manu":1, "prod":2150, "name":"Vivo Fit2" },
|
||||
{ "manu":1, "prod":2153, "name":"Fr225" },
|
||||
{ "manu":1, "prod":2156, "name":"Fr630" },
|
||||
{ "manu":1, "prod":2157, "name":"Fr230" },
|
||||
{ "manu":1, "prod":2158, "name":"Fr735Xt" },
|
||||
{ "manu":1, "prod":2160, "name":"Vivo Active Apac" },
|
||||
{ "manu":1, "prod":2161, "name":"Vector 2" },
|
||||
{ "manu":1, "prod":2162, "name":"Vector 2S" },
|
||||
{ "manu":1, "prod":2172, "name":"Virbxe" },
|
||||
{ "manu":1, "prod":2173, "name":"Fr620 Taiwan" },
|
||||
{ "manu":1, "prod":2174, "name":"Fr220 Taiwan" },
|
||||
{ "manu":1, "prod":2175, "name":"Truswing" },
|
||||
{ "manu":1, "prod":2187, "name":"D2Airvenu" },
|
||||
{ "manu":1, "prod":2188, "name":"Fenix3 China" },
|
||||
{ "manu":1, "prod":2189, "name":"Fenix3 Twn" },
|
||||
{ "manu":1, "prod":2192, "name":"Varia Headlight" },
|
||||
{ "manu":1, "prod":2193, "name":"Varia Taillight Old" },
|
||||
{ "manu":1, "prod":2204, "name":"Edge Explore 1000" },
|
||||
{ "manu":1, "prod":2219, "name":"Fr225 Asia" },
|
||||
{ "manu":1, "prod":2225, "name":"Varia Radar Taillight" },
|
||||
{ "manu":1, "prod":2226, "name":"Varia Radar Display" },
|
||||
{ "manu":1, "prod":2238, "name":"Edge20" },
|
||||
{ "manu":1, "prod":2260, "name":"Edge520 Asia" },
|
||||
{ "manu":1, "prod":2261, "name":"Edge520 Japan" },
|
||||
{ "manu":1, "prod":2262, "name":"D2 Bravo" },
|
||||
{ "manu":1, "prod":2266, "name":"Approach S20" },
|
||||
{ "manu":1, "prod":2271, "name":"Vivo Smart2" },
|
||||
{ "manu":1, "prod":2274, "name":"Edge1000 Thai" },
|
||||
{ "manu":1, "prod":2276, "name":"Varia Remote" },
|
||||
{ "manu":1, "prod":2288, "name":"Edge25 Asia" },
|
||||
{ "manu":1, "prod":2289, "name":"Edge25 Jpn" },
|
||||
{ "manu":1, "prod":2290, "name":"Edge20 Asia" },
|
||||
{ "manu":1, "prod":2292, "name":"Approach X40" },
|
||||
{ "manu":1, "prod":2293, "name":"Fenix3 Japan" },
|
||||
{ "manu":1, "prod":2294, "name":"Vivo Smart Emea" },
|
||||
{ "manu":1, "prod":2310, "name":"Fr630 Asia" },
|
||||
{ "manu":1, "prod":2311, "name":"Fr630 Jpn" },
|
||||
{ "manu":1, "prod":2313, "name":"Fr230 Jpn" },
|
||||
{ "manu":1, "prod":2327, "name":"Hrm4 Run" },
|
||||
{ "manu":1, "prod":2332, "name":"Epix Japan" },
|
||||
{ "manu":1, "prod":2337, "name":"Vivo Active Hr" },
|
||||
{ "manu":1, "prod":2347, "name":"Vivo Smart Gps Hr" },
|
||||
{ "manu":1, "prod":2348, "name":"Vivo Smart Hr" },
|
||||
{ "manu":1, "prod":2361, "name":"Vivo Smart Hr Asia" },
|
||||
{ "manu":1, "prod":2362, "name":"Vivo Smart Gps Hr Asia" },
|
||||
{ "manu":1, "prod":2368, "name":"Vivo Move" },
|
||||
{ "manu":1, "prod":2379, "name":"Varia Taillight" },
|
||||
{ "manu":1, "prod":2396, "name":"Fr235 Asia" },
|
||||
{ "manu":1, "prod":2397, "name":"Fr235 Japan" },
|
||||
{ "manu":1, "prod":2398, "name":"Varia Vision" },
|
||||
{ "manu":1, "prod":2406, "name":"Vivo Fit3" },
|
||||
{ "manu":1, "prod":2407, "name":"Fenix3 Korea" },
|
||||
{ "manu":1, "prod":2408, "name":"Fenix3 Sea" },
|
||||
{ "manu":1, "prod":2413, "name":"Fenix3 Hr" },
|
||||
{ "manu":1, "prod":2417, "name":"Virb Ultra 30" },
|
||||
{ "manu":1, "prod":2429, "name":"Index Smart Scale" },
|
||||
{ "manu":1, "prod":2431, "name":"Fr235" },
|
||||
{ "manu":1, "prod":2432, "name":"Fenix3 Chronos" },
|
||||
{ "manu":1, "prod":2441, "name":"Oregon7Xx" },
|
||||
{ "manu":1, "prod":2444, "name":"Rino7Xx" },
|
||||
{ "manu":1, "prod":2457, "name":"Epix Korea" },
|
||||
{ "manu":1, "prod":2473, "name":"Fenix3 Hr Chn" },
|
||||
{ "manu":1, "prod":2474, "name":"Fenix3 Hr Twn" },
|
||||
{ "manu":1, "prod":2475, "name":"Fenix3 Hr Jpn" },
|
||||
{ "manu":1, "prod":2476, "name":"Fenix3 Hr Sea" },
|
||||
{ "manu":1, "prod":2477, "name":"Fenix3 Hr Kor" },
|
||||
{ "manu":1, "prod":2496, "name":"Nautix" },
|
||||
{ "manu":1, "prod":2497, "name":"Vivo Active Hr Apac" },
|
||||
{ "manu":1, "prod":2512, "name":"Oregon7Xx Ww" },
|
||||
{ "manu":1, "prod":2530, "name":"Edge 820" },
|
||||
{ "manu":1, "prod":2531, "name":"Edge Explore 820" },
|
||||
{ "manu":1, "prod":2533, "name":"Fr735Xt Apac" },
|
||||
{ "manu":1, "prod":2534, "name":"Fr735Xt Japan" },
|
||||
{ "manu":1, "prod":2544, "name":"Fenix5S" },
|
||||
{ "manu":1, "prod":2547, "name":"D2 Bravo Titanium" },
|
||||
{ "manu":1, "prod":2567, "name":"Varia Ut800" },
|
||||
{ "manu":1, "prod":2593, "name":"Running Dynamics Pod" },
|
||||
{ "manu":1, "prod":2599, "name":"Edge 820 China" },
|
||||
{ "manu":1, "prod":2600, "name":"Edge 820 Japan" },
|
||||
{ "manu":1, "prod":2604, "name":"Fenix5X" },
|
||||
{ "manu":1, "prod":2606, "name":"Vivo Fit Jr" },
|
||||
{ "manu":1, "prod":2622, "name":"Vivo Smart3" },
|
||||
{ "manu":1, "prod":2623, "name":"Vivo Sport" },
|
||||
{ "manu":1, "prod":2628, "name":"Edge 820 Taiwan" },
|
||||
{ "manu":1, "prod":2629, "name":"Edge 820 Korea" },
|
||||
{ "manu":1, "prod":2630, "name":"Edge 820 Sea" },
|
||||
{ "manu":1, "prod":2650, "name":"Fr35 Hebrew" },
|
||||
{ "manu":1, "prod":2656, "name":"Approach S60" },
|
||||
{ "manu":1, "prod":2667, "name":"Fr35 Apac" },
|
||||
{ "manu":1, "prod":2668, "name":"Fr35 Japan" },
|
||||
{ "manu":1, "prod":2675, "name":"Fenix3 Chronos Asia" },
|
||||
{ "manu":1, "prod":2687, "name":"Virb 360" },
|
||||
{ "manu":1, "prod":2691, "name":"Fr935" },
|
||||
{ "manu":1, "prod":2697, "name":"Fenix5" },
|
||||
{ "manu":1, "prod":2700, "name":"Vivoactive3" },
|
||||
{ "manu":1, "prod":2733, "name":"Fr235 China Nfc" },
|
||||
{ "manu":1, "prod":2769, "name":"Foretrex 601 701" },
|
||||
{ "manu":1, "prod":2772, "name":"Vivo Move Hr" },
|
||||
{ "manu":1, "prod":2713, "name":"Edge 1030" },
|
||||
{ "manu":1, "prod":2787, "name":"Vector 3" },
|
||||
{ "manu":1, "prod":2796, "name":"Fenix5 Asia" },
|
||||
{ "manu":1, "prod":2797, "name":"Fenix5S Asia" },
|
||||
{ "manu":1, "prod":2798, "name":"Fenix5X Asia" },
|
||||
{ "manu":1, "prod":2806, "name":"Approach Z80" },
|
||||
{ "manu":1, "prod":2814, "name":"Fr35 Korea" },
|
||||
{ "manu":1, "prod":2819, "name":"D2Charlie" },
|
||||
{ "manu":1, "prod":2831, "name":"Vivo Smart3 Apac" },
|
||||
{ "manu":1, "prod":2832, "name":"Vivo Sport Apac" },
|
||||
{ "manu":1, "prod":2833, "name":"Fr935 Asia" },
|
||||
{ "manu":1, "prod":2859, "name":"Descent" },
|
||||
{ "manu":1, "prod":2878, "name":"Vivo Fit4" },
|
||||
{ "manu":1, "prod":2886, "name":"Fr645" },
|
||||
{ "manu":1, "prod":2888, "name":"Fr645M" },
|
||||
{ "manu":1, "prod":2891, "name":"Fr30" },
|
||||
{ "manu":1, "prod":2900, "name":"Fenix5S Plus" },
|
||||
{ "manu":1, "prod":2909, "name":"Edge 130" },
|
||||
{ "manu":1, "prod":2924, "name":"Edge 1030 Asia" },
|
||||
{ "manu":1, "prod":2927, "name":"Vivosmart 4" },
|
||||
{ "manu":1, "prod":2945, "name":"Vivo Move Hr Asia" },
|
||||
{ "manu":1, "prod":2962, "name":"Approach X10" },
|
||||
{ "manu":1, "prod":2977, "name":"Fr30 Asia" },
|
||||
{ "manu":1, "prod":2988, "name":"Vivoactive3M W" },
|
||||
{ "manu":1, "prod":3003, "name":"Fr645 Asia" },
|
||||
{ "manu":1, "prod":3004, "name":"Fr645M Asia" },
|
||||
{ "manu":1, "prod":3011, "name":"Edge Explore" },
|
||||
{ "manu":1, "prod":3028, "name":"Gpsmap66" },
|
||||
{ "manu":1, "prod":3049, "name":"Approach S10" },
|
||||
{ "manu":1, "prod":3066, "name":"Vivoactive3M L" },
|
||||
{ "manu":1, "prod":3085, "name":"Approach G80" },
|
||||
{ "manu":1, "prod":3092, "name":"Edge 130 Asia" },
|
||||
{ "manu":1, "prod":3095, "name":"Edge 1030 Bontrager" },
|
||||
{ "manu":1, "prod":3110, "name":"Fenix5 Plus" },
|
||||
{ "manu":1, "prod":3111, "name":"Fenix5X Plus" },
|
||||
{ "manu":1, "prod":3112, "name":"Edge 520 Plus" },
|
||||
{ "manu":1, "prod":3113, "name":"Fr945" },
|
||||
{ "manu":1, "prod":3121, "name":"Edge 530" },
|
||||
{ "manu":1, "prod":3122, "name":"Edge 830" },
|
||||
{ "manu":1, "prod":3126, "name":"Instinct Esports" },
|
||||
{ "manu":1, "prod":3134, "name":"Fenix5S Plus Apac" },
|
||||
{ "manu":1, "prod":3135, "name":"Fenix5X Plus Apac" },
|
||||
{ "manu":1, "prod":3142, "name":"Edge 520 Plus Apac" },
|
||||
{ "manu":1, "prod":3144, "name":"Fr235L Asia" },
|
||||
{ "manu":1, "prod":3145, "name":"Fr245 Asia" },
|
||||
{ "manu":1, "prod":3163, "name":"Vivo Active3M Apac" },
|
||||
{ "manu":1, "prod":3192, "name":"Gen3 Bsm" },
|
||||
{ "manu":1, "prod":3193, "name":"Gen3 Bcm" },
|
||||
{ "manu":1, "prod":3218, "name":"Vivo Smart4 Asia" },
|
||||
{ "manu":1, "prod":3224, "name":"Vivoactive4 Small" },
|
||||
{ "manu":1, "prod":3225, "name":"Vivoactive4 Large" },
|
||||
{ "manu":1, "prod":3226, "name":"Venu" },
|
||||
{ "manu":1, "prod":3246, "name":"Marq Driver" },
|
||||
{ "manu":1, "prod":3247, "name":"Marq Aviator" },
|
||||
{ "manu":1, "prod":3248, "name":"Marq Captain" },
|
||||
{ "manu":1, "prod":3249, "name":"Marq Commander" },
|
||||
{ "manu":1, "prod":3250, "name":"Marq Expedition" },
|
||||
{ "manu":1, "prod":3251, "name":"Marq Athlete" },
|
||||
{ "manu":1, "prod":3258, "name":"Descent Mk2" },
|
||||
{ "manu":1, "prod":3284, "name":"Gpsmap66I" },
|
||||
{ "manu":1, "prod":3287, "name":"Fenix6S Sport" },
|
||||
{ "manu":1, "prod":3288, "name":"Fenix6S" },
|
||||
{ "manu":1, "prod":3289, "name":"Fenix6 Sport" },
|
||||
{ "manu":1, "prod":3290, "name":"Fenix6" },
|
||||
{ "manu":1, "prod":3291, "name":"Fenix6X" },
|
||||
{ "manu":1, "prod":3299, "name":"Hrm Dual" },
|
||||
{ "manu":1, "prod":3300, "name":"Hrm Pro" },
|
||||
{ "manu":1, "prod":3308, "name":"Vivo Move3 Premium" },
|
||||
{ "manu":1, "prod":3314, "name":"Approach S40" },
|
||||
{ "manu":1, "prod":3321, "name":"Fr245M Asia" },
|
||||
{ "manu":1, "prod":3349, "name":"Edge 530 Apac" },
|
||||
{ "manu":1, "prod":3350, "name":"Edge 830 Apac" },
|
||||
{ "manu":1, "prod":3378, "name":"Vivo Move3" },
|
||||
{ "manu":1, "prod":3387, "name":"Vivo Active4 Small Asia" },
|
||||
{ "manu":1, "prod":3388, "name":"Vivo Active4 Large Asia" },
|
||||
{ "manu":1, "prod":3389, "name":"Vivo Active4 Oled Asia" },
|
||||
{ "manu":1, "prod":3405, "name":"Swim2" },
|
||||
{ "manu":1, "prod":3420, "name":"Marq Driver Asia" },
|
||||
{ "manu":1, "prod":3421, "name":"Marq Aviator Asia" },
|
||||
{ "manu":1, "prod":3422, "name":"Vivo Move3 Asia" },
|
||||
{ "manu":1, "prod":3441, "name":"Fr945 Asia" },
|
||||
{ "manu":1, "prod":3446, "name":"Vivo Active3T Chn" },
|
||||
{ "manu":1, "prod":3448, "name":"Marq Captain Asia" },
|
||||
{ "manu":1, "prod":3449, "name":"Marq Commander Asia" },
|
||||
{ "manu":1, "prod":3450, "name":"Marq Expedition Asia" },
|
||||
{ "manu":1, "prod":3451, "name":"Marq Athlete Asia" },
|
||||
{ "manu":1, "prod":3466, "name":"Instinct Solar" },
|
||||
{ "manu":1, "prod":3469, "name":"Fr45 Asia" },
|
||||
{ "manu":1, "prod":3473, "name":"Vivoactive3 Daimler" },
|
||||
{ "manu":1, "prod":3498, "name":"Legacy Rey" },
|
||||
{ "manu":1, "prod":3499, "name":"Legacy Darth Vader" },
|
||||
{ "manu":1, "prod":3500, "name":"Legacy Captain Marvel" },
|
||||
{ "manu":1, "prod":3501, "name":"Legacy First Avenger" },
|
||||
{ "manu":1, "prod":3512, "name":"Fenix6S Sport Asia" },
|
||||
{ "manu":1, "prod":3513, "name":"Fenix6S Asia" },
|
||||
{ "manu":1, "prod":3514, "name":"Fenix6 Sport Asia" },
|
||||
{ "manu":1, "prod":3515, "name":"Fenix6 Asia" },
|
||||
{ "manu":1, "prod":3516, "name":"Fenix6X Asia" },
|
||||
{ "manu":1, "prod":3535, "name":"Legacy Captain Marvel Asia" },
|
||||
{ "manu":1, "prod":3536, "name":"Legacy First Avenger Asia" },
|
||||
{ "manu":1, "prod":3537, "name":"Legacy Rey Asia" },
|
||||
{ "manu":1, "prod":3538, "name":"Legacy Darth Vader Asia" },
|
||||
{ "manu":1, "prod":3542, "name":"Descent Mk2S" },
|
||||
{ "manu":1, "prod":3558, "name":"Edge 130 Plus" },
|
||||
{ "manu":1, "prod":3570, "name":"Edge 1030 Plus" },
|
||||
{ "manu":1, "prod":3578, "name":"Rally 200" },
|
||||
{ "manu":1, "prod":3589, "name":"Fr745" },
|
||||
{ "manu":1, "prod":3600, "name":"Venusq" },
|
||||
{ "manu":1, "prod":3615, "name":"Lily" },
|
||||
{ "manu":1, "prod":3624, "name":"Marq Adventurer" },
|
||||
{ "manu":1, "prod":3638, "name":"Enduro" },
|
||||
{ "manu":1, "prod":3639, "name":"Swim2 Apac" },
|
||||
{ "manu":1, "prod":3648, "name":"Marq Adventurer Asia" },
|
||||
{ "manu":1, "prod":3652, "name":"Fr945 Lte" },
|
||||
{ "manu":1, "prod":3702, "name":"Descent Mk2 Asia" },
|
||||
{ "manu":1, "prod":3703, "name":"Venu2" },
|
||||
{ "manu":1, "prod":3704, "name":"Venu2S" },
|
||||
{ "manu":1, "prod":3737, "name":"Venu Daimler Asia" },
|
||||
{ "manu":1, "prod":3739, "name":"Marq Golfer" },
|
||||
{ "manu":1, "prod":3740, "name":"Venu Daimler" },
|
||||
{ "manu":1, "prod":3794, "name":"Fr745 Asia" },
|
||||
{ "manu":1, "prod":3809, "name":"Lily Asia" },
|
||||
{ "manu":1, "prod":3812, "name":"Edge 1030 Plus Asia" },
|
||||
{ "manu":1, "prod":3813, "name":"Edge 130 Plus Asia" },
|
||||
{ "manu":1, "prod":3823, "name":"Approach S12" },
|
||||
{ "manu":1, "prod":3872, "name":"Enduro Asia" },
|
||||
{ "manu":1, "prod":3837, "name":"Venusq Asia" },
|
||||
{ "manu":1, "prod":3850, "name":"Marq Golfer Asia" },
|
||||
{ "manu":1, "prod":3851, "name":"Venu2 Plus" },
|
||||
{ "manu":1, "prod":3869, "name":"Fr55" },
|
||||
{ "manu":1, "prod":3888, "name":"Instinct 2" },
|
||||
{ "manu":1, "prod":3905, "name":"Fenix7S" },
|
||||
{ "manu":1, "prod":3906, "name":"Fenix7" },
|
||||
{ "manu":1, "prod":3907, "name":"Fenix7X" },
|
||||
{ "manu":1, "prod":3908, "name":"Fenix7S Apac" },
|
||||
{ "manu":1, "prod":3909, "name":"Fenix7 Apac" },
|
||||
{ "manu":1, "prod":3910, "name":"Fenix7X Apac" },
|
||||
{ "manu":1, "prod":3927, "name":"Approach G12" },
|
||||
{ "manu":1, "prod":3930, "name":"Descent Mk2S Asia" },
|
||||
{ "manu":1, "prod":3934, "name":"Approach S42" },
|
||||
{ "manu":1, "prod":3943, "name":"Epix Gen2" },
|
||||
{ "manu":1, "prod":3944, "name":"Epix Gen2 Apac" },
|
||||
{ "manu":1, "prod":3949, "name":"Venu2S Asia" },
|
||||
{ "manu":1, "prod":3950, "name":"Venu2 Asia" },
|
||||
{ "manu":1, "prod":3978, "name":"Fr945 Lte Asia" },
|
||||
{ "manu":1, "prod":3986, "name":"Approach S12 Asia" },
|
||||
{ "manu":1, "prod":4001, "name":"Approach G12 Asia" },
|
||||
{ "manu":1, "prod":4002, "name":"Approach S42 Asia" },
|
||||
{ "manu":1, "prod":4005, "name":"Descent G1" },
|
||||
{ "manu":1, "prod":4017, "name":"Venu2 Plus Asia" },
|
||||
{ "manu":1, "prod":4033, "name":"Fr55 Asia" },
|
||||
{ "manu":1, "prod":4071, "name":"Instinct 2 Asia" },
|
||||
{ "manu":1, "prod":4125, "name":"D2 Air X10" },
|
||||
{ "manu":1, "prod":4132, "name":"Descent G1 Asia" },
|
||||
{ "manu":1, "prod":4265, "name":"Tacx Neo Smart" },
|
||||
{ "manu":1, "prod":4266, "name":"Tacx Neo2 Smart" },
|
||||
{ "manu":1, "prod":4267, "name":"Tacx Neo2 T Smart" },
|
||||
{ "manu":1, "prod":4268, "name":"Tacx Neo Smart Bike" },
|
||||
{ "manu":1, "prod":4269, "name":"Tacx Satori Smart" },
|
||||
{ "manu":1, "prod":4270, "name":"Tacx Flow Smart" },
|
||||
{ "manu":1, "prod":4271, "name":"Tacx Vortex Smart" },
|
||||
{ "manu":1, "prod":4272, "name":"Tacx Bushido Smart" },
|
||||
{ "manu":1, "prod":4273, "name":"Tacx Genius Smart" },
|
||||
{ "manu":1, "prod":4274, "name":"Tacx Flux Flux S Smart" },
|
||||
{ "manu":1, "prod":4275, "name":"Tacx Flux2 Smart" },
|
||||
{ "manu":1, "prod":4276, "name":"Tacx Magnum" },
|
||||
{ "manu":1, "prod":4135, "name":"Tactix7" },
|
||||
{ "manu":1, "prod":10007, "name":"Sdm4" },
|
||||
{ "manu":1, "prod":10014, "name":"Edge Remote" },
|
||||
{ "manu":1, "prod":20533, "name":"Tacx Training App Win" },
|
||||
{ "manu":1, "prod":20534, "name":"Tacx Training App Mac" },
|
||||
{ "manu":1, "prod":20565, "name":"Tacx Training App Mac Catalyst" },
|
||||
{ "manu":1, "prod":20119, "name":"Training Center" },
|
||||
{ "manu":1, "prod":30045, "name":"Tacx Training App Android" },
|
||||
{ "manu":1, "prod":30046, "name":"Tacx Training App Ios" },
|
||||
{ "manu":1, "prod":30047, "name":"Tacx Training App Legacy" },
|
||||
{ "manu":1, "prod":65531, "name":"Connectiq Simulator" },
|
||||
{ "manu":1, "prod":65532, "name":"Android Antplus Plugin" },
|
||||
{ "manu":1, "prod":65534, "name":"Connect" }
|
||||
],
|
||||
|
||||
"MANUFACTURERS":[
|
||||
{ "manu":1, "name":"Garmin" },
|
||||
{ "manu":2, "name":"Garmin Fr405 Antfs" },
|
||||
{ "manu":3, "name":"Zephyr" },
|
||||
{ "manu":4, "name":"Dayton" },
|
||||
{ "manu":5, "name":"Idt" },
|
||||
{ "manu":6, "name":"Srm" },
|
||||
{ "manu":7, "name":"Quarq" },
|
||||
{ "manu":8, "name":"Ibike" },
|
||||
{ "manu":9, "name":"Saris" },
|
||||
{ "manu":10, "name":"Spark Hk" },
|
||||
{ "manu":11, "name":"Tanita" },
|
||||
{ "manu":12, "name":"Echowell" },
|
||||
{ "manu":13, "name":"Dynastream Oem" },
|
||||
{ "manu":14, "name":"Nautilus" },
|
||||
{ "manu":15, "name":"Dynastream" },
|
||||
{ "manu":16, "name":"Timex" },
|
||||
{ "manu":17, "name":"Metrigear" },
|
||||
{ "manu":18, "name":"Xelic" },
|
||||
{ "manu":19, "name":"Beurer" },
|
||||
{ "manu":20, "name":"Cardiosport" },
|
||||
{ "manu":21, "name":"A And D" },
|
||||
{ "manu":22, "name":"Hmm" },
|
||||
{ "manu":23, "name":"Suunto" },
|
||||
{ "manu":24, "name":"Thita Elektronik" },
|
||||
{ "manu":25, "name":"Gpulse" },
|
||||
{ "manu":26, "name":"Clean Mobile" },
|
||||
{ "manu":27, "name":"Pedal Brain" },
|
||||
{ "manu":28, "name":"Peaksware" },
|
||||
{ "manu":29, "name":"Saxonar" },
|
||||
{ "manu":30, "name":"Lemond Fitness" },
|
||||
{ "manu":31, "name":"Dexcom" },
|
||||
{ "manu":32, "name":"Wahoo Fitness" },
|
||||
{ "manu":33, "name":"Octane Fitness" },
|
||||
{ "manu":34, "name":"Archinoetics" },
|
||||
{ "manu":35, "name":"The Hurt Box" },
|
||||
{ "manu":36, "name":"Citizen Systems" },
|
||||
{ "manu":37, "name":"Magellan" },
|
||||
{ "manu":38, "name":"Osynce" },
|
||||
{ "manu":39, "name":"Holux" },
|
||||
{ "manu":40, "name":"Concept2" },
|
||||
{ "manu":41, "name":"Shimano" },
|
||||
{ "manu":42, "name":"One Giant Leap" },
|
||||
{ "manu":43, "name":"Ace Sensor" },
|
||||
{ "manu":44, "name":"Brim Brothers" },
|
||||
{ "manu":45, "name":"Xplova" },
|
||||
{ "manu":46, "name":"Perception Digital" },
|
||||
{ "manu":47, "name":"Bf1Systems" },
|
||||
{ "manu":48, "name":"Pioneer" },
|
||||
{ "manu":49, "name":"Spantec" },
|
||||
{ "manu":50, "name":"Metalogics" },
|
||||
{ "manu":51, "name":"4Iiiis" },
|
||||
{ "manu":52, "name":"Seiko Epson" },
|
||||
{ "manu":53, "name":"Seiko Epson Oem" },
|
||||
{ "manu":54, "name":"Ifor Powell" },
|
||||
{ "manu":55, "name":"Maxwell Guider" },
|
||||
{ "manu":56, "name":"Star Trac" },
|
||||
{ "manu":57, "name":"Breakaway" },
|
||||
{ "manu":58, "name":"Alatech Technology Ltd" },
|
||||
{ "manu":59, "name":"Mio Technology Europe" },
|
||||
{ "manu":60, "name":"Rotor" },
|
||||
{ "manu":61, "name":"Geonaute" },
|
||||
{ "manu":62, "name":"Id Bike" },
|
||||
{ "manu":63, "name":"Specialized" },
|
||||
{ "manu":64, "name":"Wtek" },
|
||||
{ "manu":65, "name":"Physical Enterprises" },
|
||||
{ "manu":66, "name":"North Pole Engineering" },
|
||||
{ "manu":67, "name":"Bkool" },
|
||||
{ "manu":68, "name":"Cateye" },
|
||||
{ "manu":69, "name":"Stages Cycling" },
|
||||
{ "manu":70, "name":"Sigmasport" },
|
||||
{ "manu":71, "name":"Tomtom" },
|
||||
{ "manu":72, "name":"Peripedal" },
|
||||
{ "manu":73, "name":"Wattbike" },
|
||||
{ "manu":76, "name":"Moxy" },
|
||||
{ "manu":77, "name":"Ciclosport" },
|
||||
{ "manu":78, "name":"Powerbahn" },
|
||||
{ "manu":79, "name":"Acorn Projects Aps" },
|
||||
{ "manu":80, "name":"Lifebeam" },
|
||||
{ "manu":81, "name":"Bontrager" },
|
||||
{ "manu":82, "name":"Wellgo" },
|
||||
{ "manu":83, "name":"Scosche" },
|
||||
{ "manu":84, "name":"Magura" },
|
||||
{ "manu":85, "name":"Woodway" },
|
||||
{ "manu":86, "name":"Elite" },
|
||||
{ "manu":87, "name":"Nielsen Kellerman" },
|
||||
{ "manu":88, "name":"Dk City" },
|
||||
{ "manu":89, "name":"Tacx" },
|
||||
{ "manu":90, "name":"Direction Technology" },
|
||||
{ "manu":91, "name":"Magtonic" },
|
||||
{ "manu":92, "name":"1Partcarbon" },
|
||||
{ "manu":93, "name":"Inside Ride Technologies" },
|
||||
{ "manu":94, "name":"Sound Of Motion" },
|
||||
{ "manu":95, "name":"Stryd" },
|
||||
{ "manu":96, "name":"Icg" },
|
||||
{ "manu":97, "name":"Mipulse" },
|
||||
{ "manu":98, "name":"Bsx Athletics" },
|
||||
{ "manu":99, "name":"Look" },
|
||||
{ "manu":100, "name":"Campagnolo Srl" },
|
||||
{ "manu":101, "name":"Body Bike Smart" },
|
||||
{ "manu":102, "name":"Praxisworks" },
|
||||
{ "manu":103, "name":"Limits Technology" },
|
||||
{ "manu":104, "name":"Topaction Technology" },
|
||||
{ "manu":105, "name":"Cosinuss" },
|
||||
{ "manu":106, "name":"Fitcare" },
|
||||
{ "manu":107, "name":"Magene" },
|
||||
{ "manu":108, "name":"Giant Manufacturing Co" },
|
||||
{ "manu":109, "name":"Tigrasport" },
|
||||
{ "manu":110, "name":"Salutron" },
|
||||
{ "manu":111, "name":"Technogym" },
|
||||
{ "manu":112, "name":"Bryton Sensors" },
|
||||
{ "manu":113, "name":"Latitude Limited" },
|
||||
{ "manu":114, "name":"Soaring Technology" },
|
||||
{ "manu":115, "name":"Igpsport" },
|
||||
{ "manu":116, "name":"Thinkrider" },
|
||||
{ "manu":117, "name":"Gopher Sport" },
|
||||
{ "manu":118, "name":"Waterrower" },
|
||||
{ "manu":119, "name":"Orangetheory" },
|
||||
{ "manu":120, "name":"Inpeak" },
|
||||
{ "manu":121, "name":"Kinetic" },
|
||||
{ "manu":122, "name":"Johnson Health Tech" },
|
||||
{ "manu":123, "name":"Polar Electro" },
|
||||
{ "manu":124, "name":"Seesense" },
|
||||
{ "manu":125, "name":"Nci Technology" },
|
||||
{ "manu":126, "name":"Iqsquare" },
|
||||
{ "manu":127, "name":"Leomo" },
|
||||
{ "manu":128, "name":"Ifit Com" },
|
||||
{ "manu":129, "name":"Coros Byte" },
|
||||
{ "manu":130, "name":"Versa Design" },
|
||||
{ "manu":131, "name":"Chileaf" },
|
||||
{ "manu":132, "name":"Cycplus" },
|
||||
{ "manu":133, "name":"Gravaa Byte" },
|
||||
{ "manu":134, "name":"Sigeyi" },
|
||||
{ "manu":135, "name":"Coospo" },
|
||||
{ "manu":136, "name":"Geoid" },
|
||||
{ "manu":137, "name":"Bosch" },
|
||||
{ "manu":138, "name":"Kyto" },
|
||||
{ "manu":139, "name":"Kinetic Sports" },
|
||||
{ "manu":140, "name":"Decathlon Byte" },
|
||||
{ "manu":141, "name":"Tq Systems" },
|
||||
{ "manu":142, "name":"Tag Heuer" },
|
||||
{ "manu":255, "name":"Development" },
|
||||
{ "manu":257, "name":"Healthandlife" },
|
||||
{ "manu":258, "name":"Lezyne" },
|
||||
{ "manu":259, "name":"Scribe Labs" },
|
||||
{ "manu":260, "name":"Zwift" },
|
||||
{ "manu":261, "name":"Watteam" },
|
||||
{ "manu":262, "name":"Recon" },
|
||||
{ "manu":263, "name":"Favero Electronics" },
|
||||
{ "manu":264, "name":"Dynovelo" },
|
||||
{ "manu":265, "name":"Strava" },
|
||||
{ "manu":266, "name":"Precor" },
|
||||
{ "manu":267, "name":"Bryton" },
|
||||
{ "manu":268, "name":"Sram" },
|
||||
{ "manu":269, "name":"Navman" },
|
||||
{ "manu":270, "name":"Cobi" },
|
||||
{ "manu":271, "name":"Spivi" },
|
||||
{ "manu":272, "name":"Mio Magellan" },
|
||||
{ "manu":273, "name":"Evesports" },
|
||||
{ "manu":274, "name":"Sensitivus Gauge" },
|
||||
{ "manu":275, "name":"Podoon" },
|
||||
{ "manu":276, "name":"Life Time Fitness" },
|
||||
{ "manu":277, "name":"Falco E Motors" },
|
||||
{ "manu":278, "name":"Minoura" },
|
||||
{ "manu":279, "name":"Cycliq" },
|
||||
{ "manu":280, "name":"Luxottica" },
|
||||
{ "manu":281, "name":"Trainer Road" },
|
||||
{ "manu":282, "name":"The Sufferfest" },
|
||||
{ "manu":283, "name":"Fullspeedahead" },
|
||||
{ "manu":284, "name":"Virtualtraining" },
|
||||
{ "manu":285, "name":"Feedbacksports" },
|
||||
{ "manu":286, "name":"Omata" },
|
||||
{ "manu":287, "name":"Vdo" },
|
||||
{ "manu":288, "name":"Magneticdays" },
|
||||
{ "manu":289, "name":"Hammerhead" },
|
||||
{ "manu":290, "name":"Kinetic By Kurt" },
|
||||
{ "manu":291, "name":"Shapelog" },
|
||||
{ "manu":292, "name":"Dabuziduo" },
|
||||
{ "manu":293, "name":"Jetblack" },
|
||||
{ "manu":294, "name":"Coros" },
|
||||
{ "manu":295, "name":"Virtugo" },
|
||||
{ "manu":296, "name":"Velosense" },
|
||||
{ "manu":297, "name":"Cycligentinc" },
|
||||
{ "manu":298, "name":"Trailforks" },
|
||||
{ "manu":299, "name":"Mahle Ebikemotion" },
|
||||
{ "manu":300, "name":"Nurvv" },
|
||||
{ "manu":301, "name":"Microprogram" },
|
||||
{ "manu":302, "name":"Zone5Cloud" },
|
||||
{ "manu":303, "name":"Greenteg" },
|
||||
{ "manu":304, "name":"Yamaha Motors" },
|
||||
{ "manu":305, "name":"Whoop" },
|
||||
{ "manu":306, "name":"Gravaa" },
|
||||
{ "manu":307, "name":"Onelap" },
|
||||
{ "manu":308, "name":"Monark Exercise" },
|
||||
{ "manu":309, "name":"Form" },
|
||||
{ "manu":310, "name":"Decathlon" },
|
||||
{ "manu":311, "name":"Syncros" },
|
||||
{ "manu":312, "name":"Heatup" },
|
||||
{ "manu":313, "name":"Cannondale" },
|
||||
{ "manu":314, "name":"True Fitness" },
|
||||
{ "manu":315, "name":"Rgt Cycling" },
|
||||
{ "manu":316, "name":"Vasa" },
|
||||
{ "manu":317, "name":"Race Republic" },
|
||||
{ "manu":318, "name":"Fazua" },
|
||||
{ "manu":5759, "name":"Actigraphcorp" }
|
||||
]
|
||||
}
|
||||
3
util/fit/Makefile
Normal file
3
util/fit/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
FITmetadata.json: fit_example.h nongarmin.json
|
||||
./fitprod.py > FITmetadata.json
|
||||
|
||||
18
util/fit/README
Normal file
18
util/fit/README
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
FITmetadata.json generator
|
||||
|
||||
For Garmin device updates:
|
||||
Make sure you download the latest FIT SDK from thisisant.com and extract
|
||||
the c/fit_example.h file and place it in this directory.
|
||||
|
||||
For non-Garmin device updates:
|
||||
Update the file nongarmin.json to add the manufacturer and product combination
|
||||
and associated description. See existing values in there as examples. Note
|
||||
that a product number of -1 is to set the default description for any device
|
||||
from that manufacturer that is not defined
|
||||
|
||||
Once the updates have been made you can regenerate FITmetadata.json with:
|
||||
$ make
|
||||
|
||||
A new FITmetadata.json file will be created in the current directory,
|
||||
|
||||
8319
util/fit/fit_example.h
Normal file
8319
util/fit/fit_example.h
Normal file
File diff suppressed because it is too large
Load Diff
41
util/fit/fitprod.py
Executable file
41
util/fit/fitprod.py
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/python3
|
||||
|
||||
import re
|
||||
import time
|
||||
|
||||
print('{\n "VERSION":' + str(int(time.time())) + ',')
|
||||
print(' "PRODUCTS":[')
|
||||
|
||||
# output the known products captured by GoldenCheetah users
|
||||
nongarmin = open("nongarmin.json", "r")
|
||||
lines = nongarmin.readlines()
|
||||
for line in lines:
|
||||
print(" " + line, end="")
|
||||
|
||||
# output garmin products as described in the FIT SDK
|
||||
sdkheader = open("fit_example.h","r")
|
||||
lines = sdkheader.readlines()
|
||||
pre=" "
|
||||
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)
|
||||
if name and id:
|
||||
# extract name
|
||||
print(pre+ '{ "manu":1, "prod":' + id.group(1).strip() + ', "name":"' + name.group(2).strip().replace('_',' ').title() + '" }', end="")
|
||||
pre=",\n "
|
||||
print("\n ],\n")
|
||||
|
||||
# manufacturers list from FIT SDK
|
||||
|
||||
print(' "MANUFACTURERS":[')
|
||||
pre=" "
|
||||
for line in lines:
|
||||
match = re.search("FIT_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 "
|
||||
|
||||
print("\n ]\n}")
|
||||
|
||||
69
util/fit/nongarmin.json
Normal file
69
util/fit/nongarmin.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{ "manu":6, "prod":6, "name":"SRM PC6" },
|
||||
{ "manu":6, "prod":7, "name":"SRM PC7" },
|
||||
{ "manu":6, "prod":8, "name":"SRM PC8" },
|
||||
{ "manu":6, "prod":-1, "name":"SRM Powercontrol" },
|
||||
{ "manu":7, "prod":1, "name":"Quarq Cinqo" },
|
||||
{ "manu":7, "prod":9479, "name":"Quarq DZERO" },
|
||||
{ "manu":8, "prod":2054, "name":"iBike AeroPod" },
|
||||
{ "manu":9, "prod":-1, "name":"Powertap" },
|
||||
{ "manu":9, "prod":14, "name":"Joule 2.0" },
|
||||
{ "manu":9, "prod":18, "name":"Joule" },
|
||||
{ "manu":9, "prod":19, "name":"Joule GPS" },
|
||||
{ "manu":9, "prod":22, "name":"Joule GPS+" },
|
||||
{ "manu":9, "prod":272, "name":"Powertap C1" },
|
||||
{ "manu":9, "prod":288, "name":"Powertap P1" },
|
||||
{ "manu":9, "prod":4096, "name":"Powertap G3" },
|
||||
{ "manu":9, "prod":4353, "name":"Powercal" },
|
||||
{ "manu":29, "prod":1031, "name":"Power2max S" },
|
||||
{ "manu":32, "prod":0, "name":"Wahoo fitness" },
|
||||
{ "manu":32, "prod":28, "name":"Wahoo ELEMNT" },
|
||||
{ "manu":32, "prod":31, "name":"Wahoo ELEMNT BOLT" },
|
||||
{ "manu":38, "prod":1, "name":"o_synce navi2coach" },
|
||||
{ "manu":48, "prod":2, "name":"Pioneer SGX-CA500" },
|
||||
{ "manu":54, "prod":1, "name":"IpBike" },
|
||||
{ "manu":69, "prod":1, "name":"Stages Power Gen 1" },
|
||||
{ "manu":69, "prod":2, "name":"Stages Power Gen 2" },
|
||||
{ "manu":69, "prod":3, "name":"Stages Power Gen 3" },
|
||||
{ "manu":70, "prod":15, "name":"SIGMA ROX 10.0" },
|
||||
{ "manu":70, "prod":18, "name":"SIGMA ROX 7.0" },
|
||||
{ "manu":70, "prod":41, "name":"SIGMA ROX 11.0" },
|
||||
{ "manu":70, "prod":42, "name":"SIGMA iD.RUN" },
|
||||
{ "manu":70, "prod":43, "name":"SIGMA iD.RUN HR" },
|
||||
{ "manu":70, "prod":44, "name":"SIGMA ROX 12.0" },
|
||||
{ "manu":70, "prod":45, "name":"SIGMA iD.FREE" },
|
||||
{ "manu":70, "prod":46, "name":"SIGMA iD.TRI" },
|
||||
{ "manu":70, "prod":47, "name":"SIGMA PURE GPS" },
|
||||
{ "manu":70, "prod":49, "name":"SIGMA ROX 11.1" },
|
||||
{ "manu":70, "prod":51, "name":"SIGMA ROX 2.0" },
|
||||
{ "manu":70, "prod":52, "name":"SIGMA ROX 4.0" },
|
||||
{ "manu":76, "prod":-1, "name":"Moxy Monitor" },
|
||||
{ "manu":83, "prod":3, "name":"Scosche Rythm+" },
|
||||
{ "manu":89, "prod":2800, "name":"Tacx Neo" },
|
||||
{ "manu":89, "prod":2850, "name":"Tacx Neo 2 Smart" },
|
||||
{ "manu":95, "prod":-1, "name":"Stryd" },
|
||||
{ "manu":98, "prod":-1, "name":"BSX" },
|
||||
{ "manu":98, "prod":2, "name":"BSX Insight 2" },
|
||||
{ "manu":107, "prod":-1, "name":"Magene" },
|
||||
{ "manu":108, "prod":-1, "name":"Giant" },
|
||||
{ "manu":108, "prod":21845, "name":"Giant Power Pro" },
|
||||
{ "manu":115, "prod":-1, "name":"iGPSPORT" },
|
||||
{ "manu":116, "prod":-1, "name":"Thinkrider" },
|
||||
{ "manu":123, "prod":2, "name":"Polar H10" },
|
||||
{ "manu":123, "prod":3, "name":"Polar H9" },
|
||||
{ "manu":123, "prod":-1, "name":"Polar" },
|
||||
{ "manu":132, "prod":-1, "name":"Cycplus" },
|
||||
{ "manu":258, "prod":-1, "name":"Lezyne" },
|
||||
{ "manu":258, "prod":4, "name":"Lezyne Super GPS" },
|
||||
{ "manu":258, "prod":6, "name":"Lezyne Micro-GPS" },
|
||||
{ "manu":258, "prod":11, "name":"Lezyne MegaXL" },
|
||||
{ "manu":260, "prod":-1, "name":"Zwift" },
|
||||
{ "manu":263, "prod":-1, "name":"Favero" },
|
||||
{ "manu":263, "prod":12, "name":"Favero Assioma Duo" },
|
||||
{ "manu":267, "prod":-1, "name":"Bryton" },
|
||||
{ "manu":268, "prod":-1, "name":"SRAM" },
|
||||
{ "manu":268, "prod":1037, "name":"SRAM Rival eTap AXS" },
|
||||
{ "manu":268, "prod":1052, "name":"SRAM Rival AXS" },
|
||||
{ "manu":282, "prod":-1, "name":"The Sufferfest" },
|
||||
{ "manu":284, "prod":-1, "name":"Rouvy" },
|
||||
{ "manu":289, "prod":-1, "name":"Hammerhead" },
|
||||
{ "manu":255, "prod":-1, "name":"Development" },
|
||||
Reference in New Issue
Block a user