From 675cbcbe58c3a29d4ac13ff02c847289137c7907 Mon Sep 17 00:00:00 2001 From: Ale Martinez Date: Sun, 24 Nov 2019 09:19:32 -0300 Subject: [PATCH] Add Tacx Neo Bike Trainer to ANT IDs Contributed by Pavel Vasilyev Fixes #3221 --- src/FileIO/FitRideFile.cpp | 7 +++++++ test/rides/TacxNeo.fit.zip | Bin 0 -> 15568 bytes 2 files changed, 7 insertions(+) create mode 100644 test/rides/TacxNeo.fit.zip diff --git a/src/FileIO/FitRideFile.cpp b/src/FileIO/FitRideFile.cpp index ed3201754..241c32738 100644 --- a/src/FileIO/FitRideFile.cpp +++ b/src/FileIO/FitRideFile.cpp @@ -467,6 +467,12 @@ struct FitFileReaderState } else if (manu == 76) { // Moxy return "Moxy Monitor"; + } else if (manu == 89) { + // Tacx + switch (prod) { + case 2800: return "Tacx Neo"; + default: return QString("Tacx %1").arg(prod); + } } else if (manu == 95) { // Stryd return "Stryd"; @@ -542,6 +548,7 @@ struct FitFileReaderState switch (device_type) { case 4: return "Headunit"; // bike_power case 11: return "Powermeter"; // bike_power + case 17: return "Biketrainer"; // fitness equipment case 120: return "HR"; // heart_rate case 121: return "Speed-Cadence"; // bike_speed_cadence case 122: return "Cadence"; // bike_speed diff --git a/test/rides/TacxNeo.fit.zip b/test/rides/TacxNeo.fit.zip new file mode 100644 index 0000000000000000000000000000000000000000..dcd1f0de131d10907238fe54f76e65f2f6fe887c GIT binary patch literal 15568 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�&Ele3oG$F+c22g3M`97L{)s66cDruyWg?m|P z--`w5-eP1@;Do_BvmxyRR!hj9cN9k3181zA?FNcA0)K5j|%txZN4OXX9!f%7C~{7WXhYwvDxq!uU+ zekLWy-;$Qr^d((8uDmkKTY6QYDxY8Yc>M%)-wrY0KDJF}C}2PSF(ag)apO;+kp4EB z{My3uS=ln~D{Bvxe3GdcpJPgGzk_tLNhGWXn>D&y$?G?uyWo%^x@YUyMjzBqyemNl z!5#h&3e2uS1lQFq1weljJ*ksmAFYI*A-B#V6U~oc&?s)FeGjT`^vOVpNRC(xOU-Os z1pu zcw@Xr<#^iD10s|mqo`?eYV{F}tT7X=bXFcT}j<1Fp>46#_tC|UK>2ALY}NWj>{-+we_ z651ubIDzUPVfIqI_gz!c$)_BP3ybrUp)9H1`O2{N{Xrl~Da3ti67S?IP z+*@XnsMG?9U0LNANQuH+H)-U(hJ?Furfjet`zDX=arJ!!w5$3*9xMJa>vQHATOE0` zvxyXx>eB6)N`hTzuyE98fmDTC(`Y8{O1q@qdS@c=rRdWfk7QW|8HcWMr59+fUgueR z-bml=DhYxtbG+N0-WmB{u}y>)x;7s2hIN8=yw`z=GsRMEM&}YNpp1^{uM~J$IsIw- z#qes7# zC==q0FS=_@{@a!~3p98yvE*-$@3Y-YFZi$fsHi=032ZxjXt}m_eP0U=*ryi!eu;k@ z;6p2U>?KZMy9p*V%%i&K9)vn`lPD7+^u)20LL=T6=HHLImrzWWLJdyDS*{GryG96J z*Z%A+g3uqxkNpGKzEwN-d0?`Bq z1x*vb3ynuV^UY^xXsasc-1Td{u~m6i`u(f8d}q>r4{%4X7Y z-Bi!~{3@$)UN*}SsRw-WBHAkA8D&58T>ML{8=m!y!rIwqv_+$&e+$Tr7xV19MGswKes8fH!HHRjYgQ>=_40w zee+b5`^aNW%jwo#qp8|HZJ}=@t!OFWyKjBl5?ilZ4h+Onpw+}ypMLSRliz3>eR+G7 zfHJ{7bn7pHuOCPTepIvDw)^W~MLG}(**qrNs2-OepW`%&W7x|t$}I*4K};s(>di|2 zs$hRD(dFT+A|{?sxRImjjf9xY%3-Fn9en1 zqOqtdQs!zojO6`Q*a{UIy*T5XNg`5Itz!T50|A-{ZaO-R+4IM(wp%;OZqMH%uk{_W zU2DwtPTm_&zjRT%rkLrOv|Ia?eQ&!Fw{U_~1Yu%miIqUbx22X+q)rB&d?%uB*_0rq zZh=UU(zUos%BYOWIWt76?VqNa0eD&_olJ<$n$vEUQ(pG;AO@YB~ z#>vS2GVzshU_=L-@QsB`yRAxZ1=SV9%SG@9HN}qr3b_9-HZjqEEaU%MO2Gdk|NnD~ e;r}0Q@&B7wtfmN$@IQ7w{#U>KCzXW%NBckD1t<~# literal 0 HcmV?d00001