Compare commits

...

2009 Commits

Author SHA1 Message Date
Roberto Viola
777ccefc5e Add Android 16 API 36 compatibility with WindowInsetsController
- Create CustomQtActivity extending QtActivity for Android 16 support
- Replace deprecated setSystemUiVisibility with WindowInsetsController
- Maintain backward compatibility with older Android versions
- Fix header toolbar visibility issues on Android 16

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 19:50:13 +02:00
Roberto Viola
17a4c838b7 Merge branch 'master' into workout-history 2025-07-02 14:37:45 +02:00
Roberto Viola
aecb0c97df Add individual mode for HR time-in-zone tiles
Introduces a new setting to toggle between cumulative and individual time display for heart rate zone tiles. Updates the UI and logic in homeform.cpp to reflect the selected mode, adds the setting to QZSettings and QML, and documents the change.
2025-07-02 14:37:35 +02:00
Roberto Viola
9214ab63ad Update project.pbxproj 2025-07-02 11:58:44 +02:00
Roberto Viola
04f919fe86 Merge branch 'master' into workout-history 2025-07-02 11:44:18 +02:00
Roberto Viola
eae3f59e4a build fix 2025-07-02 09:55:04 +02:00
Roberto Viola
9ad0137190 build fix 2025-07-02 09:52:06 +02:00
Roberto Viola
f62548ac60 Kinetic trainer (T-6200) resistance and inclination fix standalone 2025-07-02 09:22:57 +02:00
Roberto Viola
986bc2252e Elite Rampa + MyWoosh compatibility
email from M.Carter from 02/07/2025
2025-07-02 09:17:35 +02:00
Roberto Viola
7d744ee874 Update InAppPurchase.java 2025-07-02 08:45:11 +02:00
Roberto Viola
8f87074e69 targetSdkVersion 36 2025-07-02 08:19:10 +02:00
Roberto Viola
acd141d32b 2.19.2 2025-07-02 08:02:42 +02:00
Roberto Viola
a106438fb0 Update project.pbxproj 2025-07-01 10:50:29 +02:00
Roberto Viola
c336043bb2 Merge branch 'master' into workout-history 2025-07-01 10:39:43 +02:00
Roberto Viola
b4fb3e339a fixing linux build 2025-07-01 10:39:16 +02:00
Roberto Viola
1336460297 added setting for the garmin fit file 2025-07-01 09:22:21 +02:00
Roberto Viola
3a45b64d51 FITSDK 21.171.00 2025-07-01 08:07:56 +02:00
Roberto Viola
49be559ae8 Update eslinkertreadmill.cpp 2025-06-30 13:51:06 +02:00
Roberto Viola
f70f4717f7 fix build 2025-06-30 13:31:49 +02:00
Roberto Viola
f2da15c477 Merge branch 'master' into workout-history 2025-06-30 13:19:59 +02:00
Roberto Viola
e3e15bf24d MacOs closes unexpectedly when treadmill Bluetooth connects (Issue #3518) 2025-06-30 13:19:46 +02:00
Roberto Viola
83690df66e Update qdomyos-zwift-tests.pro 2025-06-30 08:23:19 +02:00
Roberto Viola
cafc785420 Update project.pbxproj 2025-06-30 06:45:16 +02:00
Roberto Viola
0b1e6606cb Update qfit.cpp 2025-06-30 06:44:44 +02:00
Roberto Viola
82d9e252ac Update qfit.cpp 2025-06-30 06:33:38 +02:00
Roberto Viola
b9a7ddcaa0 rogue bike fix 2025-06-29 20:41:24 +02:00
Roberto Viola
1a6ef489d0 Update project.pbxproj 2025-06-29 20:33:23 +02:00
Roberto Viola
d6028c33b6 rogue bike fix 2025-06-29 20:31:09 +02:00
Roberto Viola
66554e0a4a Merge branch 'master' into workout-history 2025-06-29 20:24:26 +02:00
Roberto Viola
bfd6de1d49 rogue echo bike
mail from a. morgan on 28/06/2025
2025-06-29 20:23:36 +02:00
Roberto Viola
aa1058f6be optimized! 2025-06-29 19:10:32 +02:00
Roberto Viola
33589f27d3 fixing summary 2025-06-29 13:35:22 +02:00
Roberto Viola
ae1147025e improving 2025-06-29 13:30:39 +02:00
Roberto Viola
189c27eeb0 it kind of works 2025-06-29 12:50:19 +02:00
Roberto Viola
dab74e4bfd claude fixes 2025-06-29 09:23:49 +02:00
Roberto Viola
447cb04376 Update project.pbxproj 2025-06-29 08:27:26 +02:00
Roberto Viola
29dd4cf10a kinetic handling erg and inclination and resistance (not tested) 2025-06-29 08:26:36 +02:00
Roberto Viola
c4ea190370 The Runna App are not able to controll my Kingsmith Treadmill (Issue #3519) 2025-06-29 07:45:29 +02:00
Roberto Viola
8267661f70 build fix 2025-06-28 14:47:04 +02:00
Roberto Viola
204897680c build fix 2025-06-28 14:46:14 +02:00
Roberto Viola
b93df0d0c9 fix build 2025-06-28 14:41:45 +02:00
Roberto Viola
038c347cc2 fix build 2025-06-28 14:37:21 +02:00
Roberto Viola
4683084ed2 Merge branch 'master' into workout-history 2025-06-28 14:26:23 +02:00
Roberto Viola
7e51db80e6 fixing crash on watchos 2025-06-28 08:34:49 +02:00
Roberto Viola
d475e50489 runna compatibility with kingsmith treadmills 2025-06-28 07:13:21 +02:00
Roberto Viola
1c4a22041d bowflex integration not quite right #3421 2025-06-27 15:17:55 +02:00
Roberto Viola
b07ffac325 Update project.pbxproj 2025-06-26 15:23:43 +02:00
Roberto Viola
d1dab0cd79 training effect in the fit file fixed
thanks to https://github.com/jat255/Fit-File-Faker
2025-06-26 15:16:12 +02:00
Roberto Viola
f5a55a253e Support for ProForm 995i #482 2025-06-26 12:58:16 +02:00
Roberto Viola
8f5b5bd5b7 Tacx neo new FW virtual shifting test (Issue #3511) 2025-06-25 12:53:00 +02:00
Roberto Viola
9d946dd1c5 Update homeform.cpp 2025-06-25 12:47:20 +02:00
Roberto Viola
d6c65dd7d8 Estimated FTP -1W (Issue #3510) 2025-06-25 12:07:09 +02:00
Roberto Viola
8d607ca0ba T900A settings renamed to T900 2025-06-25 11:49:56 +02:00
Roberto Viola
253c00f014 Create CLAUDE.md 2025-06-24 15:40:19 +02:00
Roberto Viola
a032a5d51c fixing build 2025-06-24 15:26:17 +02:00
Roberto Viola
b0c2fa5b17 Update project.pbxproj 2025-06-24 14:51:35 +02:00
Roberto Viola
7cf05276e9 BODY BIKE Smart+ integration 2025-06-24 11:32:41 +02:00
Roberto Viola
708f28fffb 2.19.1 2025-06-24 10:38:20 +02:00
Roberto Viola
c50b7655ba Heart Rate from Apple Watch not flowing to iPad #3498 2025-06-24 09:13:08 +02:00
Roberto Viola
9db2b8c235 Concept2 Rowers connecting but tiles do not update. #3503 2025-06-24 08:16:27 +02:00
Roberto Viola
134a228473 Revert "fixing github msv2019 build?"
This reverts commit c28a16d8d2.
2025-06-23 14:44:34 +02:00
Roberto Viola
f1ad62ce4a Update main.yml 2025-06-23 14:44:25 +02:00
Roberto Viola
c28a16d8d2 fixing github msv2019 build? 2025-06-23 14:18:31 +02:00
Roberto Viola
83e229e55f Update project.pbxproj 2025-06-23 12:21:12 +02:00
Roberto Viola
bd9bbdb236 3D maps start and stop points (#3502)
* Update maps.htm

* Update maps.htm
2025-06-23 10:53:47 +02:00
Roberto Viola
24095fc8cc Mqtt control (#3501)
* mqtt control

* mqtt discovery

* removed file
2025-06-23 10:44:39 +02:00
Roberto Viola
a199ba3c2b Update nordictrackifitadbbike.cpp 2025-06-19 11:23:34 +02:00
Roberto Viola
bf07764bca Proform TDF 10.0 adb resistance
mail from M B of 18/06/2025
2025-06-18 15:35:14 +02:00
Roberto Viola
1f7ce9b724 fixing watt gain for wahoo bikes 2025-06-18 13:44:48 +02:00
Roberto Viola
51ea12782d ADB Android Log verbose (#3486)
* first commit

* adding more logs

* Update QZAdbRemote.java

* trying a patch

* removing crypto thread

* adding logs
2025-06-18 10:36:35 +02:00
Roberto Viola
d7c2339783 bowflex integration not quite right #3421 2025-06-18 09:34:44 +02:00
Adam Sharpe
0bed0ca76c feat: Align FTMS elapsed time and fix cadence/resistance mapping (Swift & C++) (#3493)
This commit introduces elapsed time transmission for the virtual treadmill's FTMS characteristic in the Swift implementation, aligning it with the recent C++ changes.

Additionally, it refines the C++ to Swift updateFTMS call to ensure arguments align with the Swift function's expected parameters, including a noted discrepancy around cadence/resistance/wattage mapping.

**Important Note:**
The Swift changes () could not be compiled or fully tested with an iOS device or Zwift due to the lack of a macOS development environment (Xcode). Community assistance in validating the Swift FTMS broadcast is greatly appreciated.
2025-06-18 08:55:39 +02:00
Roberto Viola
eb4ae28fa7 Elite Rampa
mail 17/06/2025 from Matt C.
2025-06-17 05:35:27 +02:00
Roberto Viola
d1827a48ee version 2.19.0 2025-06-17 05:21:55 +02:00
Roberto Viola
f5c1b175a5 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-06-17 03:15:55 +00:00
Roberto Viola
76b14cccb4 Nordictrack Elite 800 not accepting speed/incline changes from QZ (Issue #3393) 2025-06-17 03:15:45 +00:00
Adam Sharpe
19efaf6878 feat: Add elapsed time to FTMS virtual treadmill characteristic (#3491) 2025-06-17 04:59:05 +02:00
Roberto Viola
61a96dbc63 Update proformtreadmill.cpp 2025-06-16 15:23:27 +02:00
Roberto Viola
656f2b366b Nordictrack Elite 800 not accepting speed/incline changes from QZ (Issue #3393) 2025-06-16 15:03:15 +02:00
Roberto Viola
ee336436e7 Help with a Expert SX9 #3436 2025-06-16 12:28:58 +02:00
Roberto Viola
739270b944 Help with a Expert SX9 #3436 2025-06-16 11:55:59 +02:00
Roberto Viola
bcaf466fa1 Mobvoi Treadmill Plus 2025-06-16 10:50:04 +02:00
Roberto Viola
196f77d22a Think Rider X5 compability (Issue #3487) 2025-06-13 11:26:17 +02:00
Roberto Viola
077c995a08 Update project.pbxproj 2025-06-13 10:36:56 +02:00
Roberto Viola
6db0aba44d Proform Treadmill Carbon TLS
Mail 13/6/2025 from Sonny
2025-06-13 10:23:38 +02:00
Roberto Viola
80fc8b8d46 Core temperature sensor tiles (#3484) 2025-06-12 08:02:37 +02:00
Roberto Viola
fb2676ef37 Update project.pbxproj 2025-06-11 19:32:41 +02:00
Roberto Viola
9281e91f67 Update project.pbxproj 2025-06-11 10:38:30 +02:00
Roberto Viola
540108a207 Core temperature sensor tiles (#3484)
* first commit

* adding settings

* ready to deploy

* Update homeform.cpp
2025-06-11 10:25:46 +02:00
Roberto Viola
27299a7805 Adding compensation when there is a power meter (Issue #3483) 2025-06-11 09:26:01 +02:00
Roberto Viola
52957c61a4 Connecting a NordicTrack Ultra LE treadmill to Zwift
mail from 7/6/2025
2025-06-11 08:22:09 +02:00
Roberto Viola
b06ac89f6e Sperax Walking Pad treadmill #3480 2025-06-10 09:17:06 +02:00
Roberto Viola
55921ed367 Help with a Expert SX9 (Issue #3436) 2025-06-10 08:53:00 +02:00
Roberto Viola
e89c668a96 adding device info mesg 2025-06-10 08:13:15 +02:00
Roberto Viola
43ca65baf2 Help with a Expert SX9 (Issue #3436) 2025-06-09 14:39:58 +02:00
Roberto Viola
eaba07cafd reverting Connection #3466 2025-06-09 13:11:27 +02:00
Roberto Viola
5b57f2c8aa Help with a Expert SX9 (Issue #3436) 2025-06-09 10:39:08 +02:00
Roberto Viola
5fea12e6bc Merach S26B2 2025-06-09 08:55:33 +02:00
Roberto Viola
dcdd4fdbb6 Update speraxtreadmill.cpp 2025-06-07 16:03:40 +02:00
Roberto Viola
aac9f7a20e Update speraxtreadmill.cpp 2025-06-07 15:35:33 +02:00
Roberto Viola
5146352494 FTMS Bike Ant Sender (#3467) 2025-06-07 15:15:48 +02:00
Roberto Viola
f666c4cc55 fixing drive letter in the github actions? 2025-06-07 06:13:07 +02:00
Roberto Viola
882778b9ff Update project.pbxproj 2025-06-06 18:17:31 +02:00
Roberto Viola
783b832805 Core Sensor Support #3347 2025-06-06 18:16:26 +02:00
Roberto Viola
defb177f53 Update project.pbxproj 2025-06-06 09:43:48 +02:00
Roberto Viola
d511df4186 Sperax Treadmill 2025-06-06 09:43:13 +02:00
Roberto Viola
ffe79b434a Core Sensor Support #3347 2025-06-06 09:30:50 +02:00
Roberto Viola
9050be6063 reverting Connection #3466 2025-06-06 08:45:44 +02:00
Roberto Viola
744d2d138f Sperax Treadmill 2025-06-06 08:25:50 +02:00
Roberto Viola
612acf3610 Connection (Issue #3466) 2025-06-05 15:00:58 +02:00
Roberto Viola
a84e4ca84d Update project.pbxproj 2025-06-05 09:14:31 +02:00
Roberto Viola
e4b4dd943e Losing Connection #3439 2025-06-05 09:13:40 +02:00
Roberto Viola
121a046bb8 DKN EnduRun data not showing in QZ #3468 2025-06-05 09:05:17 +02:00
Roberto Viola
21e0a7edc8 Sperax Treadmill
Sperax treadmill compatibility email from 21/05/2025 and QZ Fitness support for Sperax Walking Pad treadmill email from 4/06/2025
2025-06-05 09:01:56 +02:00
Roberto Viola
83e1c136e4 Update project.pbxproj 2025-06-04 08:16:02 +02:00
Roberto Viola
9a19956b1c Magene Gravat2 bike trainer compatibility #3460 2025-06-04 08:03:55 +02:00
Roberto Viola
18571131ca Update qdomyos-zwift.pri 2025-06-03 11:01:05 +02:00
Roberto Viola
eba9a2c8d5 Update speraxtreadmill.cpp 2025-06-03 11:00:54 +02:00
Roberto Viola
dbf5b7005d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-06-03 10:17:42 +02:00
Roberto Viola
64476f7e61 Sperax Treadmill 2025-06-03 10:17:35 +02:00
Roberto Viola
f111e9c4e4 Nordictrack Elite 800 not accepting speed/incline changes from QZ #3393 2025-06-03 07:13:25 +00:00
Roberto Viola
0f7b240f4a Mobvoi Treadmill Plus Elapsed Time / Moving Time #3404 (#3425) 2025-05-30 21:25:52 +02:00
Roberto Viola
63ee0f6d71 Update project.pbxproj 2025-05-30 16:00:39 +02:00
Roberto Viola
e38b00b735 Update ftmsbike.cpp 2025-05-30 15:58:09 +02:00
Roberto Viola
97a5de93d8 Help with a Expert SX9 (Issue #3436) 2025-05-30 15:40:37 +02:00
Roberto Viola
9aabaddf6e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-05-30 14:13:26 +02:00
Roberto Viola
2fb9d6043a Core Sensor Support #3347 2025-05-30 14:13:21 +02:00
Roberto Viola
d1afc5c6b3 Adding Tunturi T80 2025-05-29 10:04:25 +02:00
Roberto Viola
2270d93419 Update project.pbxproj 2025-05-28 10:43:58 +02:00
Roberto Viola
4e3e6de6c1 2.18 (1087) causes my treadmill not to function properly #3456 2025-05-28 08:50:07 +02:00
Roberto Viola
201877f214 version 2.18.25 2025-05-27 13:50:27 +02:00
Roberto Viola
0941d3f218 Floating Window display (Discussion #3402) (#3426)
* Floating Window display (Discussion #3402)

* adding setting

* Update homeform.cpp

* verify jni

* Update FloatingHandler.java

* Update main.yml

* Update main.yml
2025-05-24 06:59:17 +02:00
Roberto Viola
7f8876d021 Update project.pbxproj 2025-05-23 09:24:48 +02:00
Roberto Viola
62c7e2125a PELOTON: cool down classes fix #2606
email from aaron 22/05/2025
2025-05-23 09:17:57 +02:00
Roberto Viola
13b2d6a18b Update project.pbxproj 2025-05-22 16:33:29 +02:00
Roberto Viola
2e854d8f1f PELOTON: cool down classes fix #2606
email from aaron 21/05/2025
2025-05-22 08:42:04 +02:00
Roberto Viola
093f5cbe33 Update project.pbxproj 2025-05-21 14:12:58 +02:00
Roberto Viola
b9da86d1ce 3G ELITE treadmill added 2025-05-21 08:39:48 +02:00
Roberto Viola
5ac449a178 PELOTON: skipping intro for warmup and cooldown rides 2025-05-21 08:37:26 +02:00
Roberto Viola
179e60b40b Help with a Expert SX9 #3436 2025-05-19 13:16:01 +02:00
Roberto Viola
5603dc4259 Help with a Expert SX9 #3436 2025-05-19 13:10:26 +02:00
Roberto Viola
b8d703d94f fixing build 2025-05-19 12:26:24 +02:00
Roberto Viola
8ce49beefa Help with a Expert SX9 #3436 2025-05-19 12:25:08 +02:00
Roberto Viola
2437c4c30c Echelon swift plus victory dircon (#3442)
* starting

* builds

* works with the simulator

* Update echelonconnectsport.cpp

* crash fixed

* fixing crash?

* fixing crash!

* Update echelonconnectsport.cpp

* build fix

* starting

* it's working for asking the UUID!

* i'm getting the 0003 but i need to notify the 0002

it doesn't enter into the sendCharacteristicNotification loop

* adding 0004 notifier

* kind of works (no unhandled frames)

* it works!

* wahoo rgt setting is not useful anymore

* dircon works perfectly on ios!

* improving wattage also for all bluetooth, but it's not perfect yet

* Horizon 5.0 Bike Compatibility #3001

* Update characteristicwriteprocessor0003.h

* Update dirconmanager.cpp

* Update fakebike.cpp

* simulating a fake cadence randomly

* handling unhandled case

* Log on Thread

* Update project.pbxproj

* fixing gears on startup alinged with zwift

* Update dirconmanager.cpp

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2666126808

* Gears don't work for mid-work free ride segment (Issue #2897)

* Update project.pbxproj

* fixing bluetooth on ios with get gears from zwift enabled

* fixing bluetooth with get gears on on android? not tested

* fixing build

* Update project.pbxproj

* Update settings.qml

* Gears don't work for mid-work free ride segment (Issue #2897)

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2692178928

* Gears don't work for mid-work free ride segment (Issue #2897)

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2692370530

* Update project.pbxproj

* fixing memory leak

* Update project.pbxproj

* Update project.pbxproj

* build 1043

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* added gears UI from zwift directly if received

* fixing build

* fixing build

* Update project.pbxproj

* fixing zwift gears in the UI of qz

* always enabling 50ms on dircon

* Update project.pbxproj

* wahookickrsnapbike as well

* adding also zwiftclickremote

* fixing crash

* fixing crash

* Update project.pbxproj

* gear alignment between zwift and qz under a new setting

* Update project.pbxproj

* fixing wahoo swift implementation

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update ios_wahookickrsnapbike.mm

* Update project.pbxproj

* adding compensation when there is a power sensor and an ergModeSuppported bike

* Update project.pbxproj

* adding compensation when there is a power sensor and an ergModeSuppported bike

* Update project.pbxproj

* Update project.pbxproj

* Elite Drivio II

* rower distance on apple health?

* Update project.pbxproj

* avoiding crash

* Update project.pbxproj

* Update project.pbxproj

* Bluetooth issues (Issue #3420)

* fixing build #3420

* Update project.pbxproj

* Bluetooth issues (Issue #3420)

* Bluetooth issues #3420

* Revert "Bluetooth issues #3420"

This reverts commit f20f55c0f1.

* Revert "Bluetooth issues (Issue #3420)"

This reverts commit 74c15befaf.

* Revert "fixing build #3420"

This reverts commit 416d10698d.

* Revert "Bluetooth issues (Issue #3420)"

This reverts commit 5cd3efe559.

* merge

* Update echelonconnectsport.h

* Update project.pbxproj

* iOS v2.18 (1061) zwift play controllers disconnecting all the time (Issue #3378)

https://github.com/cagnulein/qdomyos-zwift/issues/3378#issuecomment-2859933867

* Update project.pbxproj

* Bluetooth issues (Issue #3420)

* Update project.pbxproj

* zwift custom characteristic only if get gears from zwift is enabled

https://github.com/cagnulein/qdomyos-zwift/issues/3419#issuecomment-2860215362

* adding max resistance for SCHWINN 190U

* Update qdomyos-zwift.pri

* Update project.pbxproj

* Bluetooth issues (Issue #3420)

* Update project.pbxproj
2025-05-19 11:40:28 +02:00
Roberto Viola
0029258fa5 Echelon Bike ObjectiveC for iOS Crashes (#1898)
* starting

* builds

* works with the simulator

* Update echelonconnectsport.cpp

* crash fixed

* fixing crash?

* fixing crash!

* Update echelonconnectsport.cpp

* build fix

* Update project.pbxproj

* Update project.pbxproj

* wahookickrsnapbike as well

* adding also zwiftclickremote

* fixing wahoo swift implementation

* added wahoo simulator for macos

* Update ios_wahookickrsnapbike.mm

* Bluetooth issues (Issue #3420)

* fixing build #3420

* Bluetooth issues (Issue #3420)

* merge

* Revert "merge"

This reverts commit 3946715856.

* Revert "Bluetooth issues (Issue #3420)"

This reverts commit e98152d9ec.

* Revert "fixing build #3420"

This reverts commit d19982f9df.

* Revert "Bluetooth issues (Issue #3420)"

This reverts commit 67318f1bc2.

* adding ios_btdevice_native

* Update echelonconnectsport.h

* iOS v2.18 (1061) zwift play controllers disconnecting all the time (Issue #3378)

https://github.com/cagnulein/qdomyos-zwift/issues/3378#issuecomment-2859933867

* Bluetooth issues (Issue #3420)

* Bluetooth issues (Issue #3420)
2025-05-19 11:37:25 +02:00
Roberto Viola
8541ec0242 Dircon doesn't work on android 13 and 14 (Issue #3325) (#3332)
* trying a fix

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update .gitmodules

* Update .gitmodules

* Update main.yml

* Revert "Update main.yml"

This reverts commit 034d6f2852.

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update .gitmodules

* Update main.yml
2025-05-16 15:26:12 +02:00
Roberto Viola
0c138d2c07 Help with a Expert SX9 (Issue #3436) 2025-05-16 03:59:45 +00:00
Roberto Viola
4f70b5d160 Help with a Expert SX9 (Issue #3436) 2025-05-16 03:44:04 +00:00
Roberto Viola
e0bcafa804 H9115 Lyon ftms bike 2025-05-15 06:04:29 +02:00
Roberto Viola
330e0b3725 Victory Dircon (#2961)
* starting

* it's working for asking the UUID!

* i'm getting the 0003 but i need to notify the 0002

it doesn't enter into the sendCharacteristicNotification loop

* adding 0004 notifier

* kind of works (no unhandled frames)

* it works!

* wahoo rgt setting is not useful anymore

* dircon works perfectly on ios!

* improving wattage also for all bluetooth, but it's not perfect yet

* Horizon 5.0 Bike Compatibility #3001

* Update characteristicwriteprocessor0003.h

* Update dirconmanager.cpp

* Update fakebike.cpp

* simulating a fake cadence randomly

* handling unhandled case

* Log on Thread

* Update project.pbxproj

* fixing gears on startup alinged with zwift

* Update dirconmanager.cpp

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2666126808

* Gears don't work for mid-work free ride segment (Issue #2897)

* Update project.pbxproj

* fixing bluetooth on ios with get gears from zwift enabled

* fixing bluetooth with get gears on on android? not tested

* fixing build

* Update project.pbxproj

* Update settings.qml

* Gears don't work for mid-work free ride segment (Issue #2897)

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2692178928

* Gears don't work for mid-work free ride segment (Issue #2897)

https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2692370530

* Update project.pbxproj

* fixing memory leak

* Update project.pbxproj

* Update project.pbxproj

* build 1043

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* added gears UI from zwift directly if received

* fixing build

* fixing zwift gears in the UI of qz

* always enabling 50ms on dircon

* fixing crash

* gear alignment between zwift and qz under a new setting

* avoiding crash

* zwift custom characteristic only if get gears from zwift is enabled

https://github.com/cagnulein/qdomyos-zwift/issues/3419#issuecomment-2860215362
2025-05-14 16:02:37 +02:00
Roberto Viola
46c12af44d fixing build 2025-05-14 09:56:39 +00:00
Roberto Viola
74db47ba16 Update qdomyos-zwift.pri 2025-05-14 08:11:41 +00:00
Roberto Viola
3bc848cdf4 adding inclinationresistancetable.h 2025-05-14 08:00:45 +00:00
Roberto Viola
a8d58a733e adding max resistance for SCHWINN 190U 2025-05-14 07:59:49 +00:00
Roberto Viola
37c6c03ada adding inclinationResistanceTable for the ftmsbike without an erg mode 2025-05-14 07:32:33 +00:00
Roberto Viola
f258b9e0ae Losing Connection 2025-05-14 06:53:05 +00:00
Roberto Viola
6ec3936bf1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-05-14 06:39:31 +00:00
Roberto Viola
0f0991f956 peloton: handling delta metrics of only 10 seconds 2025-05-14 06:39:23 +00:00
Roberto Viola
4649744cb4 NordicTrack T6.5S Speed not matching in app and switching treadmill to metric #3417 2025-05-12 09:26:09 +02:00
Roberto Viola
755c1765b4 bowflex integration not quite right #3421 2025-05-12 09:23:19 +02:00
Roberto Viola
6df9fe6acb NordicTrack T6.5S Speed not matching in app and switching treadmill to metric (Issue #3417) 2025-05-09 09:35:01 +02:00
Roberto Viola
32180bf1bd Peloton Resistance not matching Yesoul GS1M #3430 2025-05-08 16:12:06 +02:00
Roberto Viola
a373f41ee0 NordicTrack T6.5S Speed not matching in app and switching treadmill to metric (Issue #3417) 2025-05-08 09:21:18 +02:00
Roberto Viola
bb63e0c3cf Peloton Resistance not matching Yesoul GS1M #3430 2025-05-08 08:41:21 +02:00
Roberto Viola
e84f6d0468 Sportstech sBike Lite 2025-05-08 08:31:39 +02:00
Roberto Viola
b08cf90bdb fixing tests 2025-05-07 10:48:45 +02:00
Roberto Viola
9939056115 Hammer Speedbike S 2025-05-07 08:53:44 +02:00
Roberto Viola
9ea09aca32 Hammer Speedbike S 2025-05-06 08:35:32 +02:00
Roberto Viola
65e15ab29b NordicTrack T6.5S Speed not matching in app and switching treadmill to metric (Issue #3417) 2025-05-05 11:16:10 +02:00
Roberto Viola
1d1e63c40d Nordictrack Elite 800 not accepting speed/incline changes from QZ (Issue #3393) 2025-05-02 13:59:07 +02:00
Roberto Viola
7e854f5bb1 NordicTrack T6.5S Speed not matching in app and switching treadmill to metric #3417 2025-05-02 13:26:09 +02:00
Roberto Viola
fa42eadf43 adding SPERAX_RM-01 2025-05-01 09:35:30 +02:00
Roberto Viola
7ee4f85f67 Mobvoi Treadmill Plus Elapsed Time / Moving Time #3404 2025-04-29 13:15:39 +02:00
Roberto Viola
afa02fab3f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-04-29 09:41:03 +00:00
Roberto Viola
c10703316c merge 2025-04-29 09:40:57 +00:00
Roberto Viola
93b09d64b0 Core Sensor Support (Issue #3347) 2025-04-29 11:27:10 +02:00
Roberto Viola
12663907d2 merge 2025-04-29 06:07:15 +00:00
Roberto Viola
f72717d440 merge 2025-04-29 06:05:48 +00:00
Roberto Viola
c94174a994 No metrics showing on Apex Rides bike #2459 2025-04-28 14:59:22 +02:00
Roberto Viola
2789c2bf0f No data from my CycleOps Magnus smart trainer and the QZ application. (Issue #3410) 2025-04-28 08:30:06 +02:00
Roberto Viola
0c69226747 Update main.yml 2025-04-27 06:59:04 +02:00
Roberto Viola
9dc65861cc Neo Bike Plus added 2025-04-26 14:24:15 +02:00
Roberto Viola
b14d917f3d Mobvoi Treadmill Plus Elapsed Time / Moving Time (Issue #3404) 2025-04-25 13:56:59 +02:00
Roberto Viola
23fb91b4d2 Update horizontreadmill.cpp 2025-04-25 12:20:16 +02:00
Roberto Viola
110eea144b Mobvoi Treadmill Plus Elapsed Time / Moving Time (Issue #3404) 2025-04-25 12:00:45 +02:00
Roberto Viola
f413068074 Mobvoi Treadmill Plus Elapsed Time / Moving Time #3404 2025-04-24 16:41:11 +02:00
Roberto Viola
917d559ebf fixing CI for linux #2818 2025-04-24 14:00:40 +02:00
Roberto Viola
8d52455574 Sportstech sBike Lite fix 2025-04-24 11:40:42 +02:00
Roberto Viola
3602fa566c Please implement ability for QZ to receive data via ant+ from ant+ bike/ftms (Issue #3257) (#3266)
* i need to add the new bike class

* Update bluetooth.cpp

* Update BikeChannelController.java

* Update BikeChannelController.java

* Update bluetooth.cpp

* class added

* settings aligned

* Update android_antbike.cpp

* Update BikeChannelController.java
2025-04-21 06:46:29 +02:00
Roberto Viola
a53239df97 Powermeter pédale and ERG #2818 (#2880)
* Powermeter pédale and ERG #2818

* Update ergtable_test.h

* Update qdomyos-zwift.pro

* Update main.cpp

* Delete src/ergtable_test.h

* handling TITAN_7000 case

* Update project.pbxproj

* handling TITAN_7000 case

* Update ergtable.h

* Update project.pbxproj
2025-04-21 06:37:37 +02:00
Roberto Viola
6154158254 Elite Drivio II 2025-04-18 17:38:20 +00:00
Roberto Viola
f91b25a177 rower distance on apple health? 2025-04-18 17:38:04 +00:00
octera
650a74dd8c feat: add Proform performance 300i (#3398) 2025-04-18 13:53:11 +02:00
Roberto Viola
d44f57285f Inclination overide not working for Domyos T900C (Issue #3267) (#3270) 2025-04-18 12:37:20 +02:00
Roberto Viola
33b1dcf0f8 Android emulator actions (#3372)
* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Create android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update main.yml

* Update android_test.yml

* Update android_test.yml

* Update android_test.yml

* Update main.yml

* Update android_test.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Delete .github/workflows/android_test.yml
2025-04-17 06:56:34 +02:00
Roberto Viola
e914be7ee0 3G Cardio Pro Runner X cannot change incline nor speed (Issue #3382) 2025-04-17 06:15:09 +02:00
Roberto Viola
b2ea3b0525 3G Cardio Pro Runner X cannot change incline nor speed (Issue #3382) 2025-04-17 05:08:08 +02:00
Roberto Viola
3c5c0518b4 too many KM with BikeERG #3376 2025-04-16 14:26:10 +02:00
Roberto Viola
2b1e11d2e0 [BUG] 3G Cardio Pro Runner X cannot change incline nor speed #3382 2025-04-14 10:37:13 +02:00
Roberto Viola
b3eab44f50 Life Fitness T5 treadmill not connecting to QZ #3381 2025-04-14 10:07:37 +02:00
Roberto Viola
bec8776c63 fixing Align Gear Value on Both Zwift and QZ setting 2025-04-13 07:03:41 +02:00
Roberto Viola
519e39d54b power sensor also for cadence on wahoo bike 2025-04-12 16:32:22 +02:00
Roberto Viola
8e4ab441c0 power sensor also for cadence on wahoo bike 2025-04-12 16:04:12 +02:00
Roberto Viola
6522baccd6 build issue 2025-04-12 15:56:17 +02:00
Roberto Viola
be851955b6 fixing tacx settings 2025-04-12 15:55:08 +02:00
Roberto Viola
4083059155 Life Fitness Treadmill (model 95T with Discover SE console) #3374 2025-04-12 13:18:05 +02:00
Roberto Viola
9ace6dd570 tacxneo2: handling negative inclination with gears due to the flywheel 2025-04-12 11:16:05 +02:00
Roberto Viola
b0677a768d adding setting for the gear alignment between zwift and qz 2025-04-12 06:17:56 +02:00
Roberto Viola
dad99fe6bf [BUG] 3G Cardio Pro Runner X cannot change incline nor speed #3382 2025-04-12 06:03:17 +02:00
Roberto Viola
b5c48bd9f7 Matrix bike not sending data after successful connection #3383 2025-04-12 05:57:50 +02:00
Roberto Viola
8e73dd7a7c Life Fitness T5 treadmill not connecting to QZ (Issue #3381) 2025-04-11 16:16:40 +02:00
Roberto Viola
905c06771b Life Fitness T5 treadmill not connecting to QZ #3381 2025-04-11 09:13:15 +02:00
Roberto Viola
255dbde832 Android Log in QDebug (#3370)
* let's see if it compiles

* fixing cases?

* fixing

* Update Log.java

* fixing

* Update WearableMessageListenerService.java

* fixing

* Update androidqlog.cpp

* restoring patch
2025-04-11 08:30:01 +02:00
Roberto Viola
eaaaee2b4b Life Fitness T5 treadmill not connecting to QZ #3381 2025-04-11 08:25:24 +02:00
Roberto Viola
7227d32c3b 77a361905b (r155155285) 2025-04-11 07:58:31 +02:00
Roberto Viola
988419b7e2 Sessions with negative calories (Issue #3345) 2025-04-09 12:28:11 +02:00
Roberto Viola
1d1401b1d6 Life Fitness Treadmill (model 95T with Discover SE console) #3374 2025-04-09 09:00:39 +02:00
Roberto Viola
282667c6e3 jdpurcell/install-qt-action@v5 (#3373)
* Update main.yml

* Update main.yml
2025-04-09 08:38:03 +02:00
Roberto Viola
fa13ba1d72 Update main.yml (#3371) 2025-04-08 18:12:13 +02:00
Roberto Viola
a2ad67fbac adding restore buttons for wheeldiameter in the wahoo options 2025-04-08 15:33:35 +02:00
Roberto Viola
5e42345889 tacxneo2: handling negative inclination with gears due to the flywheel 2025-04-08 13:26:29 +02:00
Roberto Viola
684ed7d7e9 QZ app with NordicTrack Elliptical FS10i 2025-04-08 10:55:11 +02:00
Roberto Viola
2ff3c1d3b4 QZ app with NordicTrack Elliptical FS10i 2025-04-08 09:41:35 +02:00
Roberto Viola
e0ea3b2fe0 New peloton Login issues #3323 2025-04-08 09:31:01 +02:00
Roberto Viola
35fe2c3fd3 Echelon Sport StairClimber (Issue #3336) 2025-04-07 15:52:42 +02:00
Roberto Viola
0ec6f99429 QZ app with NordicTrack Elliptical FS10i 2025-04-07 15:02:28 +02:00
Roberto Viola
dbe407e784 Update main.yml 2025-04-07 13:05:37 +02:00
Roberto Viola
93f0c714fc fixing build 2025-04-07 12:09:44 +02:00
Roberto Viola
a1b57654c6 Installing on raspberry pi zero w2 from source or download from nightly (Issue #3361) 2025-04-07 11:05:39 +02:00
Roberto Viola
624234dc92 Update project.pbxproj 2025-04-07 10:19:18 +02:00
Roberto Viola
cdda64575a proformwifibike: gpx changes both resistance and inclination 2025-04-07 09:23:54 +02:00
Roberto Viola
483a31d984 adding the fitness equipment in the fit file for the elliptical 2025-04-07 08:56:43 +02:00
Roberto Viola
6d88e7e831 Update settings.qml 2025-04-07 08:54:44 +02:00
Roberto Viola
bb97e49982 Elite Square compatibility (Issue #3354) (#3356)
* Elite Square compatibility (Issue #3354)

* fixing

* fixing

* fixing
2025-04-07 08:52:16 +02:00
Roberto Viola
4f8090e5bf cycplus t2 trainer and cycplus bc2 virtual shift controller. (Issue #3359) 2025-04-04 13:50:40 +02:00
Roberto Viola
8c18d6f179 cycplus t2 trainer and cycplus bc2 virtual shift controller. #3359 2025-04-04 10:02:38 +02:00
Roberto Viola
7d615b4e65 version 2.18.24 2025-04-03 16:32:21 +02:00
Roberto Viola
e264a4c887 Multiple Peloton account with the new login system (#3355)
* trying to fix it. not tested

* Update peloton.cpp

* adding version into the agent

* Update peloton.cpp

* Update peloton.cpp

* Update peloton.cpp

* Update project.pbxproj
2025-04-03 16:14:49 +02:00
Roberto Viola
0991495f51 Echelon Sport StairClimber #3336 2025-04-03 16:06:57 +02:00
Roberto Viola
94c19d70eb QZ App will connect to but not report data for Nautilus E618 Elliptical #2188 2025-04-02 11:44:02 +02:00
Roberto Viola
805639bbfa NordicTrack Elliptical FS10i 2025-04-02 08:45:00 +02:00
Roberto Viola
a900ab939d NordicTrack Elliptical FS10i 2025-04-01 13:20:02 +02:00
Roberto Viola
34881df30a Update project.pbxproj 2025-04-01 09:04:49 +00:00
Roberto Viola
b35995a925 Update project.pbxproj 2025-04-01 09:00:42 +00:00
Roberto Viola
ea9a7170ca NordicTrack Elliptical FS10i 2025-04-01 11:00:10 +02:00
Roberto Viola
4e41a8aaac Revert "NordicTrack Elliptical FS10i"
This reverts commit 8b03718422.
2025-04-01 10:58:40 +02:00
Roberto Viola
b718eb3f4c Not following class callouts (Issue #3350) 2025-04-01 10:01:23 +02:00
Roberto Viola
8b03718422 NordicTrack Elliptical FS10i 2025-03-31 15:13:04 +02:00
Roberto Viola
e0bb6f3c95 Echelon Sport StairClimber #3336 2025-03-31 14:51:11 +02:00
Roberto Viola
4b1649b26a NordicTrack Elliptical FS10i 2025-03-31 13:37:20 +02:00
Roberto Viola
20bd6dbdc4 QZ App will connect to but not report data for Nautilus E618 Elliptical (Issue #2188) 2025-03-31 08:42:31 +02:00
Roberto Viola
2c6088e96c NordicTrack Elliptical FS10i 2025-03-30 16:20:20 +02:00
Roberto Viola
db3961443c QZ App will connect to but not report data for Nautilus E618 Elliptical (Issue #2188) 2025-03-30 15:59:08 +02:00
Roberto Viola
83c3cea88f QZ App will connect to but not report data for Nautilus E618 Elliptical #2188 2025-03-30 08:22:55 +02:00
Roberto Viola
850f680e32 New peloton Login issues (Issue #3323) 2025-03-28 15:59:15 +01:00
Roberto Viola
dcc0b3cbd8 lap distance added to the lap elapsed tile 2025-03-27 09:40:41 +01:00
Roberto Viola
fb372cee89 Using Speed Gain causes treadmill to change speed on inclination change from Zwift (Issue #3334) 2025-03-27 09:30:32 +01:00
Roberto Viola
916af395b6 Proform 225 csx on Mywhoosh, no auto resistance or tile control, manual only (Issue #3230) 2025-03-25 17:19:23 +01:00
Roberto Viola
27b9ef9216 2.18.23 2025-03-25 17:01:15 +01:00
Roberto Viola
c85463b728 REEBOK ftms bike with 32 resistance levels 2025-03-25 11:51:47 +01:00
Roberto Viola
9561cc0269 Update nordictrackifitadbtreadmill.cpp 2025-03-25 11:42:36 +01:00
Roberto Viola
e69c1689ec Dircon doesn't work on android 13 and 14 #3325 2025-03-24 09:51:12 +01:00
Roberto Viola
18497e92fd Skandika Abisko / ERG support #3326 2025-03-24 09:39:50 +01:00
Roberto Viola
f692621565 Proform 225 csx on Mywhoosh, no auto resistance or tile control, manual only #3230 2025-03-24 08:36:41 +01:00
Roberto Viola
934a1089db Add Support for SmO2 NIRS Moxy Sensor (Issue #3250) 2025-03-21 15:13:29 +01:00
Roberto Viola
b0dfeb6e5f Proform 225 csx on Mywhoosh, no auto resistance or tile control, manual only #3230 2025-03-21 14:46:50 +01:00
Roberto Viola
448702b081 Skandika Abisko Support (Issue #3313) 2025-03-21 11:45:27 +01:00
Roberto Viola
8ed9117bee Automatic resistance for Peloton classes not applying correctly for BH Fitness Osaka bike (Issue #3322) 2025-03-21 09:53:14 +01:00
Roberto Viola
439bb30bbd New peloton Login issues (Issue #3323) 2025-03-21 08:34:17 +01:00
Roberto Viola
fc29cd7051 Rower Found but stops getting values (Issue #3320) 2025-03-20 15:10:11 +01:00
Roberto Viola
51aca98536 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-03-20 14:07:57 +01:00
Roberto Viola
2ab3f0b442 Thinkrider #3321 2025-03-20 14:01:36 +01:00
Roberto Viola
cb9105682e Skandika Abisko Support #3313 2025-03-20 13:54:14 +01:00
Roberto Viola
84d46e3aee fixing profile other folders button for all the archs except android
https://github.com/cagnulein/qdomyos-zwift/issues/3251#issuecomment-2737517104
2025-03-20 11:25:10 +01:00
Roberto Viola
9a97dc5221 Rower Found but stops getting values (Issue #3320) 2025-03-20 09:39:07 +01:00
Roberto Viola
ee810b9e0c fixing speed numbers without the comma for nordictrack adb treadmills 2025-03-20 09:34:56 +01:00
Roberto Viola
516a96a4a8 trying to increase strongness of the ios osx bt patch
https://github.com/cagnulein/qdomyos-zwift/issues/3313#issuecomment-2739527022
2025-03-20 09:27:29 +01:00
Roberto Viola
506a9c0896 Skandika Abisko Support #3313 2025-03-20 09:08:49 +01:00
Roberto Viola
71196983ca Update main.yml 2025-03-19 14:58:28 +01:00
Roberto Viola
fc600873b4 Update main.yml 2025-03-19 13:40:08 +01:00
Roberto Viola
49e588e60e Robx e1 bike 2025-03-19 12:55:34 +01:00
Roberto Viola
dc5beebb24 Skandika Abisko Support (Issue #3313) 2025-03-19 09:08:34 +01:00
Roberto Viola
58d4e8b456 Open Resistance does not change when using virtual shifting from Zwift to Kickr Snap #3301 2025-03-18 12:10:16 +01:00
Roberto Viola
ca89072273 Pro-Form, model PFTL99015.0 #3209 2025-03-16 18:53:31 +01:00
Roberto Viola
ff5d8baa1a Data not correctly going to strava (Issue #3298) 2025-03-14 10:59:50 +01:00
Roberto Viola
9ac09db4c3 Update main.yml 2025-03-14 10:14:48 +01:00
Roberto Viola
18e845f99f QT6 on Nigthly (#3293)
* Update main.yml

* Update main.yml
2025-03-14 09:42:16 +01:00
Roberto Viola
e6307dec97 Bcube SP303 2025-03-14 08:16:34 +01:00
Roberto Viola
d2941d94bc Mywhoosh ERG resistance drops (Issue #3300) 2025-03-14 08:05:32 +01:00
Roberto Viola
ba132a0546 removing msvc2022 for the moment 2025-03-11 06:39:57 +01:00
Roberto Viola
d3bbd836f6 Update main.yml 2025-03-09 13:14:49 +01:00
Roberto Viola
8777c2df64 Update main.yml 2025-03-09 10:31:43 +01:00
Roberto Viola
e123c94e8a Body worx JTX3.00 #3288 2025-03-09 10:22:15 +01:00
Roberto Viola
7b3af6ac90 2.18.22 2025-03-08 09:23:47 +01:00
Roberto Viola
ce522a75b5 Update main.yml 2025-03-08 09:19:14 +01:00
Roberto Viola
24720e02f0 QZ app bluetooth keeps disconnecting from bike #3199 2025-03-07 08:55:40 +01:00
Roberto Viola
f34430348a getting QT6 binary from the PR 2025-03-07 03:31:24 +01:00
Roberto Viola
667cdb1520 Proform XBike #3214 2025-03-07 03:02:31 +01:00
Roberto Viola
966bcfadab fixing bootcamp treadmill peloton classes and also fixing void login_onfinish results 2025-03-07 02:54:32 +01:00
Roberto Viola
3c13f211f2 windows 11 builds 2025-03-06 13:34:24 +01:00
Roberto Viola
0033d261d3 adding button on the debug log to show the current folder on macos 2025-03-05 07:57:39 +01:00
Roberto Viola
e1ed32af92 reverting Rouvy: Virtual shifting with Zwift gearing, noticeably harder than physical gearing #3031 (#3268) 2025-03-04 20:11:27 +01:00
Roberto Viola
0d51f4c1d4 Heart Rate Zone Minutes Tracker #3259 2025-03-04 15:35:10 +01:00
Roberto Viola
4c0ffd483e Proform XBike #3214 2025-03-04 10:22:58 +01:00
Roberto Viola
3e4751070f Tunturi F40 Bike #3265 2025-03-03 08:23:21 +01:00
Roberto Viola
4b6611ae2b Don't adjust speed by inclination when using PID (Issue #3254) 2025-02-28 09:13:37 +01:00
Roberto Viola
1a58636cd4 DIRETO XR limited at 600W #3193 2025-02-28 09:06:05 +01:00
Roberto Viola
11dc65bdf1 Fixing raspberry 64bit? 2025-02-28 07:16:02 +01:00
Roberto Viola
387a8f0efe fixing crash build 64bit raspberry? 2025-02-27 14:17:04 +01:00
Roberto Viola
0847f9237f improving crash handling on ios 2025-02-27 12:27:25 +01:00
Roberto Viola
2f5818ba5a Proform 225 csx on Mywhoosh, no auto resistance or tile control, manual only (Issue #3230) 2025-02-26 15:01:44 +01:00
Roberto Viola
d502f983c0 QZ app bluetooth keeps disconnecting from bike (Issue #3199) 2025-02-26 14:15:48 +01:00
Roberto Viola
af79605268 2.18.21 2025-02-26 11:27:54 +01:00
Roberto Viola
0192da5a92 Peloton API Login Issues (Issue #3217) (#3240)
* Peloton API Login Issues (Issue #3217)

* Update peloton.cpp

* fixing variant

* Update peloton.cpp

* improving api stability with the retry mechanism

* Revert "improving api stability with the retry mechanism"

This reverts commit b319f84252.

* Update homeform.cpp

* starting peloton engine after the first login

* check for user id
2025-02-26 11:24:37 +01:00
Roberto Viola
e563a9dc21 Proform 225 csx on Mywhoosh, no auto resistance or tile control, manual only (Issue #3230) 2025-02-26 09:31:15 +01:00
Roberto Viola
8f5d969f61 Yosuda spin bike #3246 2025-02-26 08:06:16 +01:00
Roberto Viola
3a8fb33dd6 Rogue Echo Rower #3241 2025-02-25 11:13:46 +01:00
Roberto Viola
0bc2d74dcc Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-02-24 14:56:57 +01:00
Roberto Viola
13da5056be improving peloton auth dialog 2025-02-24 14:56:50 +01:00
Roberto Viola
ecb2d98ad7 fixing strava secrets on github actions 2025-02-24 14:23:43 +01:00
Roberto Viola
e88811c1fd peloton connect on the wizard 2025-02-24 08:08:34 +01:00
Roberto Viola
56c3ab74cb Peloton API Login Issues (Issue #3217)
https://github.com/cagnulein/qdomyos-zwift/issues/3217#issuecomment-2676048595
2025-02-23 18:05:57 +01:00
Roberto Viola
ae280e170a SOLE LCR Bike #3226 2025-02-22 07:08:53 +01:00
Roberto Viola
d2dfb16033 Cyclotronics Smart Trainer #3223 2025-02-21 15:58:11 +01:00
Roberto Viola
64d99748c7 Proform XBike #3214 2025-02-21 14:16:51 +01:00
Roberto Viola
16d90a010b Proform XBike #3214 2025-02-21 13:02:36 +01:00
Roberto Viola
32baab9072 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-02-21 08:25:31 +01:00
Roberto Viola
31dd125263 Peloton API Login Issues (Issue #3217) 2025-02-21 08:25:24 +01:00
Roberto Viola
483fd87ee5 Update main.cpp 2025-02-20 20:03:09 +01:00
Roberto Viola
254786ea5d Gears don't work for mid-work free ride segment (Issue #2897)
https://github.com/cagnulein/qdomyos-zwift/issues/2897#issuecomment-2671383599
2025-02-20 14:52:59 +01:00
Roberto Viola
c06a439c0c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-02-20 11:48:20 +01:00
Roberto Viola
7b76999c0d Fixing ios bluetooth crash (#3213)
* adding files

* fixing build

* Update project.pbxproj
2025-02-20 11:48:06 +01:00
Roberto Viola
5c0190dffe Titan 7000 #3218 2025-02-20 11:47:29 +01:00
Roberto Viola
aabd2824d3 “Lydsto S1” spinning bike 2025-02-20 10:11:03 +01:00
Roberto Viola
2f7033cd6d Support device JTX Cyclo 5 (FAL-SPORTS0234) (Issue #3208) 2025-02-20 08:24:59 +01:00
Roberto Viola
756fe823f8 “Lydsto S1” spinning bike 2025-02-20 08:16:35 +01:00
Roberto Viola
ed0d163944 Proform XBike #3214 2025-02-19 15:35:29 +01:00
Roberto Viola
b7ee025a6f SPAX-BK ERG not working #3200 2025-02-19 10:44:48 +01:00
Roberto Viola
23dca8ec93 added PELOTON_SECRET_KEY on github secrets 2025-02-19 09:07:33 +01:00
Roberto Viola
fe05cb613f Peloton oauth (#2632)
* starting

* builds?

* Update peloton.cpp

* Update settings.qml

* Update peloton.cpp

* Update peloton.cpp

* trying to login

* Update peloton.cpp

* Update peloton.cpp

* Update peloton.cpp

* workout api returns always void

* fixing auth header on workout

* Update peloton.cpp

* handling new cases

* Update peloton.cpp

* Update peloton.cpp

* Update peloton.cpp

* Update qzsettings.cpp

* adding the peloton connect button

* adding popup to switch to the new api and removed credentials from the settings

* fixing peloton popup

* Update main.qml

* everything should be fine now

* added peloton button on the settings page too

* Update project.pbxproj

* new kingsmith variant treadmill

* Cannot set Virtufit Etappe 2 auto resistance (Issue #3130)

* CycleOps Phantom 5 (Issue #3004)

* Nordictrack commercial 1750 incline calibration incorrect (Issue #3118)

* Update qzsettings.cpp

* airdate and current_pedaling_duration fixed

* fixing spinups in powerzone classes

* Update project.pbxproj

* Update project.pbxproj

* getting wattage and cadence directly from the zwift hub riding data if available

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* 2.18.19

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Update peloton.cpp

* Update project.pbxproj

* Row and Tread Target Pace Issues from 2.18.19 Update #3206
2025-02-19 09:03:02 +01:00
Roberto Viola
c56c6fe5e4 Issue with Elite Direto XR, zwift cog, zwift play, mywhoosh and zwift combo #3191 2025-02-19 08:54:03 +01:00
Roberto Viola
8f7fafa4f2 DIRETO XR limited at 600W #3193 2025-02-19 08:48:08 +01:00
Roberto Viola
ef9ca0bfc8 DIRETO XR limited at 600W #3193 2025-02-19 08:46:34 +01:00
Roberto Viola
34635114df QZ CRUSH AT CONNECTION INITIAL 100 DOMYOS (Issue #3197) 2025-02-19 08:30:07 +01:00
Roberto Viola
3e29dd63df Update proformbike.cpp 2025-02-18 21:21:15 +01:00
Roberto Viola
c575159616 Pro-Form, model PFTL99015.0 #3209 2025-02-18 16:52:35 +01:00
Roberto Viola
ddebfc7e75 Support device JTX Cyclo 5 (FAL-SPORTS0234) #3208 2025-02-18 15:47:41 +01:00
Roberto Viola
2b51e5982a Kettler tour 600 #3207 2025-02-18 14:47:36 +01:00
Roberto Viola
00b616f4f8 QZ Companion on NordicTrack T8.5S is unable to communicate with QZ Fitness #3187 2025-02-18 08:26:59 +01:00
Roberto Viola
38274e1056 QZ CRUSH AT CONNECTION INITIAL 100 DOMYOS (Issue #3197) 2025-02-18 08:16:18 +01:00
Roberto Viola
cf1397cb81 Connecting to Horizon 7.0 #3201 2025-02-17 15:25:40 +01:00
Roberto Viola
b23c1b46ab Log on Thread (#3189) 2025-02-17 15:11:21 +01:00
Roberto Viola
4750ee9214 No heart rate and negative calories when using Apple Watch & Elliptical Skandika Carbon P23 #3198 2025-02-17 12:14:33 +01:00
Roberto Viola
05b39acb3e Christopeit TM3000S treadmill 2025-02-17 10:47:42 +01:00
Roberto Viola
26d2a59ad5 QZ Connects to Merach R11 rower on iOS but no metrics/data are being captured (Issue #3190) 2025-02-17 10:22:47 +01:00
Roberto Viola
1ed382faef QZ CRUSH AT CONNECTION INITIAL 100 DOMYOS (Issue #3197) 2025-02-17 10:06:28 +01:00
Roberto Viola
ebbbd4febb Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-02-17 08:53:31 +01:00
Roberto Viola
95014c3863 No heart rate and negative calories when using Apple Watch & Elliptical Skandika Carbon P23 (Issue #3198) 2025-02-17 08:53:25 +01:00
Roberto Viola
b61f5752d2 Smart bike BH BR9110 #3192 2025-02-16 15:52:44 +01:00
Roberto Viola
4b7533d721 VANRYSEL-HT ftms bike 2025-02-16 15:49:23 +01:00
Roberto Viola
6519e9ae86 avoiding crash on tacxneo2 2025-02-16 09:21:48 +01:00
Roberto Viola
cbc3b9d292 MSVC Print Stack Trace (#3185) 2025-02-15 19:32:00 +01:00
Roberto Viola
1dde627a4c Sportstech sBike Lite 2025-02-14 17:34:16 +01:00
Roberto Viola
06727f23e4 Proform Bike PFEVEX71316.0 #3157 2025-02-14 14:30:55 +01:00
Roberto Viola
1c8279d2fc Treadmill and Power Sensor Speed Forcing (Issue #3152) 2025-02-13 10:19:24 +01:00
Roberto Viola
aa0193b41e Pafer treadmill #2985 2025-02-13 10:01:26 +01:00
Roberto Viola
fcf6a8b586 fixing 0 metrics to apple watch to ipad bridge 2025-02-13 08:55:33 +01:00
Roberto Viola
574c51bcec Does it support Crosstrainer Skandika Carbon P23? #3175 2025-02-13 08:03:07 +01:00
Roberto Viola
01fa8602a0 Trying to fix android crash 2025-02-12 20:44:19 +01:00
Roberto Viola
b006e8cc2b Update proformbike.cpp 2025-02-12 13:36:20 +01:00
Roberto Viola
e8486364a3 adding help to CLI 2025-02-12 12:15:02 +01:00
sirfergy
f72b6b04ce Enable setting power sensor via command line (#3106)
* Enable setting power sensor via command line

* Remove weird whitespace

* Update main.cpp

---------

Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2025-02-12 12:05:17 +01:00
Roberto Viola
1152b4d9b2 Proform Bike PFEVEX71316.0 #3157 2025-02-12 09:46:29 +01:00
Roberto Viola
219c4e2491 Treadmill and Power Sensor Speed Forcing (Issue #3152) 2025-02-12 08:39:41 +01:00
Roberto Viola
47d78f4464 Yesoul Treadmill support #3174 2025-02-12 08:33:12 +01:00
Roberto Viola
bebfd03ae9 Treadmill and Power Sensor Speed Forcing (Issue #3152) 2025-02-11 15:20:31 +01:00
Roberto Viola
0bf98491cb getting wattage and cadence directly from the zwift hub riding data if available 2025-02-11 15:05:28 +01:00
Roberto Viola
63e4c627b3 Proform Bike PFEVEX71316.0 #3157 2025-02-11 14:54:49 +01:00
Roberto Viola
a37e3c8287 getting wattage and cadence directly from the zwift hub riding data if available 2025-02-11 09:09:27 +00:00
Roberto Viola
45ab560d08 adding more info about upload on strava failed 2025-02-11 09:01:12 +01:00
Roberto Viola
3d1846cbe8 Proform Bike PFEVEX71316.0 #3157 2025-02-11 08:52:18 +01:00
Roberto Viola
936bbe2372 Treadmill and Power Sensor Speed Forcing #3152 2025-02-10 17:09:33 +01:00
Tomáš Janoušek
963a3fbb97 skillbike: allow 3-digit bikes (#3165)
My TechnoGym Skillbike is called "BIKE 861" and QZ wouldn't detect it
previously because it assumed all such bikes have 4-digit names.

The fix is to relax requirement and detect any /BIKE \d+/ as
technogymBike.
2025-02-10 16:39:28 +01:00
Roberto Viola
b4161da81a Run Elevation Written By Zwift Elevation Data Instead Of Treadmill Data #3160 2025-02-10 16:33:58 +01:00
Roberto Viola
be65d915e3 Proform Bike PFEVEX71316.0 #3157 2025-02-10 10:08:00 +01:00
Roberto Viola
22fb9df723 Treadmill and Power Sensor Usage #3152 2025-02-10 09:28:28 +01:00
Roberto Viola
8709f81b16 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-02-09 18:28:46 +01:00
Roberto Viola
347ede62b2 adding debug on the ipad bridge 2025-02-09 18:28:25 +01:00
Roberto Viola
c4a913d317 Yoroto rower 2025-02-09 15:42:56 +01:00
Roberto Viola
1706fde7ab No power when pedalling with Van Rysel D500 turbo trainer. #3065 (#3083) 2025-02-08 17:54:21 +01:00
Roberto Viola
60e8d37624 fixing-raspberry-64bit-segfault-build (#3084)
* Update main.yml

* Update main.yml

* Update main.yml

https://github.com/docker/setup-qemu-action/issues/188

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml
2025-02-08 11:33:05 +01:00
Roberto Viola
519bc38fb6 sole f85 doesn't handle 0.5 inclination step 2025-02-07 21:22:08 +01:00
Roberto Viola
375d223f66 fixed domyos bike settings 2025-02-07 20:37:33 +01:00
Roberto Viola
f16e0649cb added a setting to enable the ignore ftms setting for domyos bikes 2025-02-07 18:47:47 +01:00
Roberto Viola
9e685cde37 Proform Bike PFEVEX71316.0 #3157 2025-02-07 10:31:48 +01:00
Roberto Viola
d32d7cd802 Rouvy: Virtual shifting with Zwift gearing, noticeably harder than physical gearing #3031
https://github.com/cagnulein/qdomyos-zwift/issues/3031#issuecomment-2642230942
2025-02-07 09:24:29 +01:00
Roberto Viola
8961ca860a adding preset buttons for power zones 2025-02-06 09:55:07 +01:00
Roberto Viola
9a3fa7c82f fix crash on iOS 2025-02-05 15:44:46 +01:00
Roberto Viola
183f36bf40 Polar OH1 not connecting consistently with Android tablet / Qdomyos-swift app #3139 (#3144) 2025-02-05 13:08:23 +01:00
Roberto Viola
bac91d14c6 YESOUL G1M Max bike #3149 2025-02-05 10:27:09 +01:00
Roberto Viola
7455729225 Elite Drivo II 2025-02-05 08:56:44 +01:00
Roberto Viola
223b6b7a0e manually adjusting the resistance, incorrect behavior! (Issue #3145) 2025-02-04 16:35:47 +01:00
Roberto Viola
825555a34f Upload Strava from WIndows crash (#3143)
* Update homeform.cpp

* aggiunta /RTC1

* Update qdomyos-zwift.pri
2025-02-04 12:47:28 +01:00
Roberto Viola
aeead83510 Nordictrack commercial 1750 incline calibration incorrect (Issue #3118) 2025-02-04 08:34:25 +00:00
Roberto Viola
78a8981006 CycleOps Phantom 5 (Issue #3004) 2025-02-04 07:29:54 +00:00
Roberto Viola
e9bb6bc73b Cannot set Virtufit Etappe 2 auto resistance (Issue #3130) 2025-02-04 07:23:49 +00:00
Roberto Viola
d2354074f8 new kingsmith variant treadmill 2025-02-04 07:21:02 +00:00
Roberto Viola
78ee43cb7d commenting 64bit build image for now 2025-02-03 08:37:11 +01:00
Roberto Viola
952fc914fb QZ crushes right after connection to MERACH S01 (Issue #3136) 2025-02-03 08:35:01 +01:00
Roberto Viola
bc54203cdf Elito Avanti added 2025-02-02 16:01:53 +01:00
Gerd Naschenweng
854846585a Update 10_Installation.md (#3129) 2025-02-01 09:38:38 +01:00
Roberto Viola
309bfb623b preparing for #2632 2025-01-31 16:35:31 +01:00
Roberto Viola
9a99740701 BT Log share for LifeSpan-TM-2000 #3021 2025-01-31 10:47:54 +01:00
Roberto Viola
1f299a1ff1 BT Log share for LifeSpan-TM-2000 #3021 2025-01-31 10:33:52 +01:00
Roberto Viola
8bce3d0541 version 2.18.18 2025-01-31 09:36:34 +01:00
Roberto Viola
06d033d13c adding debug to connection to apple watch 2025-01-31 07:41:05 +01:00
Roberto Viola
654b070c7e Update ftmsbike.cpp
clean time in case for a long period we don't receive values
2025-01-30 16:04:27 +01:00
Roberto Viola
a159c8f072 Technogym Elliptical #3121 2025-01-30 14:54:52 +01:00
Roberto Viola
3846d974af Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) (Issue #2992) 2025-01-30 11:27:09 +01:00
Roberto Viola
7e5fcfb881 adding some logs on the homeform update to understand the lag on some androids 2025-01-30 10:46:54 +01:00
Roberto Viola
4e9cafcd5e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-01-29 21:18:13 +01:00
Roberto Viola
15f4fc51ce adding watchos symbols 2025-01-29 21:17:55 +01:00
Roberto Viola
d343c1c98c Tacx Neo 3M #3062 2025-01-29 11:34:23 +01:00
Roberto Viola
4a17a8474a CycleOps Phantom 5 #3004 2025-01-29 06:40:31 +01:00
Roberto Viola
2bb1ff0b09 BT Log share for LifeSpan-TM-2000 #3021 2025-01-28 16:39:21 +01:00
Roberto Viola
dec5bd6603 Update bluetooth.cpp 2025-01-28 16:00:18 +01:00
Roberto Viola
282f01b55d Possible bug with NT C2950 IP UDP metrics? (Issue #3079) 2025-01-28 14:42:03 +01:00
Roberto Viola
349be00771 BT Log share for LifeSpan-TM-2000 (Issue #3021) 2025-01-28 11:06:45 +01:00
Roberto Viola
adc47fd19c Update project.pbxproj 2025-01-28 08:45:09 +01:00
Roberto Viola
e876ef97cd CycleOps Phantom 5 #3004 2025-01-28 08:36:28 +01:00
Roberto Viola
903409d962 Senator iPlus treadmill (Issue #3114) 2025-01-28 08:28:08 +01:00
Roberto Viola
9295554195 Tunturi E60 Signature bike #3115 2025-01-28 08:25:59 +01:00
Roberto Viola
8d6cfe03ac Virtufit etappe setting restored 2025-01-27 20:30:42 +01:00
Roberto Viola
70d5051a6f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-01-26 16:42:36 +01:00
Roberto Viola
124e4ec561 adding in also on WIN32 on qfit 2025-01-26 16:42:34 +01:00
Roberto Viola
036db83321 Fixing crash on windows about fit file writing (#3095)
* Update qfit.cpp

* Update qfit.cpp
2025-01-26 06:15:48 +01:00
Roberto Viola
23dfa67fe5 On iOS devices, the Domyos elliptical bike reads astronomical values above 11km/h. (Issue #3099) 2025-01-25 20:12:09 +01:00
Roberto Viola
79d7a09203 Technogym Skillrun #3097 2025-01-25 14:59:59 +01:00
Roberto Viola
96d9fb485b Create qdomyos-zwift.code-workspace 2025-01-24 13:30:52 +01:00
Roberto Viola
68c4d954ef Create launch.json 2025-01-24 13:28:49 +01:00
Roberto Viola
ef7bedacb8 adding the pdb to win msvc 2025-01-24 12:33:30 +01:00
Roberto Viola
e7a1373305 Update proformtreadmill.cpp 2025-01-24 10:58:28 +01:00
Roberto Viola
cfd06df25e Solution to get Octane Zero Runner ZR8 Elliptical working with Zwift #1338 2025-01-24 08:28:56 +01:00
Roberto Viola
89bc6d0529 Support for Proform 705 CST treadmill (Issue #3072) 2025-01-23 14:49:34 +01:00
Roberto Viola
0446000270 BT Log share for LifeSpan-TM-2000 (Issue #3021) 2025-01-23 14:09:30 +01:00
Roberto Viola
9908e8ca98 Update project.pbxproj 2025-01-23 09:23:11 +01:00
Roberto Viola
326f09c903 BT Log share for LifeSpan-TM-2000 (Issue #3021) 2025-01-22 17:00:07 +01:00
Roberto Viola
2b52206795 improving training effect on garmin
https://github.com/dvmarinoff/Auuki/issues/231#issuecomment-2606479981
2025-01-22 12:07:46 +01:00
Roberto Viola
4cadcddac1 Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) #2992 2025-01-22 11:52:55 +01:00
Roberto Viola
8910b8bf28 Update main.yml 2025-01-22 10:58:07 +01:00
Roberto Viola
fc3287758e Please add Treadmill: LifeSmart TM4500 #3074 2025-01-22 09:30:36 +01:00
Roberto Viola
c94a03bb23 Update main.yml 2025-01-22 09:24:55 +01:00
Roberto Viola
2c5ba21b99 Update main.yml 2025-01-21 14:14:15 +01:00
Roberto Viola
4f00550400 Update cycleopsphantombike.cpp 2025-01-21 10:56:47 +01:00
Roberto Viola
dfd622c948 Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) #2992 2025-01-21 08:39:57 +01:00
Roberto Viola
a7d66727f3 Update project.pbxproj 2025-01-20 15:19:39 +01:00
Roberto Viola
06a5c412bd XT385: giving the possibility to use FTMS 2025-01-20 15:14:22 +01:00
Roberto Viola
0a3616ec0e Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) (Issue #2992) 2025-01-20 09:50:08 +01:00
Roberto Viola
b4226306b0 Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2025-01-20 09:21:14 +01:00
Roberto Viola
4f3353303a Tacx Neo 3M #3062 2025-01-19 16:31:05 +01:00
Roberto Viola
81b832071a Recent compile on master broadcasts device on RaspberryPI as "Pixel 6a" (Issue #3063) 2025-01-19 10:51:49 +01:00
Roberto Viola
d1966df73c Tacx Neo 3m #3062 2025-01-18 21:03:12 +01:00
Roberto Viola
e194291efb Lifespan Fitness SM-720i #3061 2025-01-18 16:23:14 +01:00
Roberto Viola
af88f6cd0d Update project.pbxproj 2025-01-18 08:24:55 +01:00
Roberto Viola
62838da761 Update cycleopsphantombike.cpp 2025-01-18 08:18:58 +01:00
David Mason
7236608f59 Tests for Cyclops Phantom and Pitpat Bikes (#3056) 2025-01-18 08:01:36 +01:00
David Mason
2570f2843c Test timeout exploration (#3048) 2025-01-18 08:00:53 +01:00
Roberto Viola
a9fe9bebaf Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2025-01-17 13:57:21 +01:00
Roberto Viola
15a7c3abd0 BT Log share for LifeSpan-TM-2000 #3021 2025-01-17 13:57:15 +01:00
Roberto Viola
7872950f65 Update project.pbxproj 2025-01-17 12:00:59 +01:00
Roberto Viola
4a711368e3 Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) (Issue #2992) 2025-01-17 11:51:45 +01:00
Roberto Viola
fbcc7e4478 BT Log share for LifeSpan-TM-2000 #3021 2025-01-17 09:12:03 +01:00
Roberto Viola
ae131c7cad adding kcal on the summary 2025-01-16 15:34:58 +01:00
Roberto Viola
67f5446fc2 details start to work! 2025-01-16 15:11:20 +01:00
Roberto Viola
4ce8e1b20c preview of the fit file is almost ready 2025-01-16 14:45:21 +01:00
Roberto Viola
57cdf246a9 removed workoutdetails because db would be too heavy. let's open the fit files 2025-01-16 14:03:19 +01:00
Roberto Viola
4cc0b2520b data fixed 2025-01-16 12:57:03 +01:00
Roberto Viola
8f4364f525 kind of works on ios 2025-01-16 12:47:18 +01:00
Roberto Viola
df0ab76187 the workout history works with the db! 2025-01-16 11:45:35 +01:00
Roberto Viola
b7530dcdff Merge branch 'master' into workout-history 2025-01-16 10:26:35 +01:00
Roberto Viola
e23af2e5f5 Windows: FIT FILE Save Issue (#3053)
* trying fix

* useless?

* temp file?

* Update qfit.cpp

* Update qfit.cpp

* Revert "trying fix"

This reverts commit 82c752d26f.

* Update qfit.cpp
2025-01-16 10:24:42 +01:00
Roberto Viola
12dc37191e Merge branch 'master' into workout-history 2025-01-16 10:07:55 +01:00
Roberto Viola
3b0b7e4bd9 adding fit file processor 2025-01-16 08:47:44 +01:00
Roberto Viola
9c6fed4d48 Update project.pbxproj 2025-01-15 22:50:03 +01:00
Roberto Viola
26ac25d3ba Read cadence from Garmin when in -run-cadence-sensor mode for FTMS treadmills (Issue #3042) 2025-01-15 22:49:04 +01:00
Roberto Viola
19beae66bb Update project.pbxproj 2025-01-15 08:38:09 +01:00
Roberto Viola
037f660825 Virtual shifting overshoots/undershoots target resistance, then bounces to expected resistance (Issue #3051) #3031 2025-01-15 08:08:52 +01:00
Roberto Viola
47e719bff0 Commenting temporary Linux tests 2025-01-15 06:25:05 +01:00
Roberto Viola
020f30d8df Option to swap the virtual gear shift buttons in the UI #3049 2025-01-14 13:01:34 +01:00
Roberto Viola
7078508ba9 2.18.17 2025-01-14 10:42:30 +01:00
Roberto Viola
eb002332ed Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2025-01-14 10:28:46 +01:00
Roberto Viola
ea1da07e71 Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2025-01-14 10:06:14 +01:00
Roberto Viola
e1d32cd747 Profiles can't be selected (Issue #3045) 2025-01-14 08:20:42 +01:00
Roberto Viola
1bb3450512 2.18.16 2025-01-13 14:22:55 +01:00
Roberto Viola
ce1a78156e QZ iOS beta app closes and shuts down (Issue #3013) 2025-01-13 11:23:14 +01:00
Roberto Viola
9d95e52d12 Garmin discovers but can't connect to cadence sensor (Issue #3023) (#3038) 2025-01-12 19:40:29 +01:00
Roberto Viola
73c072583a fixing build 2025-01-12 18:12:25 +01:00
Roberto Viola
253e2b7eab Update project.pbxproj 2025-01-12 18:07:38 +01:00
Roberto Viola
650c6de692 Rouvy: Virtual shifting with Zwift gearing, noticeably harder than physical gearing (Issue #3031) 2025-01-12 18:04:51 +01:00
Roberto Viola
1ac4e20efb Update project.pbxproj 2025-01-12 17:58:11 +01:00
Roberto Viola
f08ea4346e BT Log share for LifeSpan-TM-2000 #3021 2025-01-12 16:13:14 +01:00
Roberto Viola
c206886639 BT Log share for LifeSpan-TM-2000 (Issue #3021) 2025-01-12 16:11:25 +01:00
Roberto Viola
61bf953b1a Update project.pbxproj 2025-01-12 14:55:14 +01:00
Roberto Viola
1dcd35e825 Watts Stuck at Max…not going down to 0 (Issue #3025) 2025-01-12 14:46:13 +01:00
Roberto Viola
5a7bb8b103 Horizon cycle 7.0IC-02 no resistance adjustment in Kinomap via QZ app #3035 2025-01-12 14:43:40 +01:00
Roberto Viola
c4be4f068f fixing virtual device menu not loaded 2025-01-12 14:42:23 +01:00
Roberto Viola
4534c334bc Create build-qrc-qml.sh 2025-01-12 09:07:08 +01:00
Roberto Viola
9fa6d6d8b1 auto set speed to 3km/h when using auto inclination (Issue #3034) 2025-01-11 19:24:47 +01:00
sirfergy
a5b34161c1 Missed a character! (#3027) 2025-01-10 22:41:53 +01:00
sirfergy
bf2c6929e1 Add two options to set horizon treadmill settings (#3026) 2025-01-10 21:35:49 +01:00
Roberto Viola
2a451c3120 Proform Trainer 8.0 No Bluetooth control (Issue #3017) 2025-01-10 19:30:22 +01:00
Roberto Viola
1169714908 Resistance scaling kickr core 4303 (Peloton App) (Issue #3020) 2025-01-10 19:03:35 +01:00
Roberto Viola
14de4e4760 Proform Trainer 8.0 No Bluetooth control (Issue #3017) 2025-01-10 13:47:12 +01:00
Roberto Viola
712f527ce0 Update project.pbxproj 2025-01-09 12:40:56 +01:00
Roberto Viola
0631c64ba5 Update bluetooth.cpp 2025-01-09 12:37:32 +01:00
Roberto Viola
85c43db53e cscbike: speed based on power setting enable 2025-01-09 12:37:03 +01:00
Roberto Viola
8394bf3f19 Yesoul v1 FMTS bike #2186 2025-01-09 12:21:37 +01:00
Roberto Viola
bd1f25f016 2.18.15 2025-01-08 14:25:13 +01:00
Roberto Viola
95f340063a Cant control ProForm 505 CST through QZ app or Zwift #3005 2025-01-08 11:11:37 +01:00
Roberto Viola
2be1d82e8d Update project.pbxproj 2025-01-08 09:58:16 +01:00
Roberto Viola
501af18298 CycleOps Phantom 5 #3004 2025-01-08 08:30:25 +01:00
Roberto Viola
724292bd34 Hammer Speed Race X resistance change not working correctly #3002 2025-01-08 08:10:27 +01:00
Roberto Viola
cbbdebdf84 Inclination stops updating in app after about 30 minutes (but treadmill adjustment still works) #2992 2025-01-08 08:01:13 +01:00
Roberto Viola
02c17dcf55 starting CycleOps Phantom 5 #3004 2025-01-07 17:41:22 +01:00
Roberto Viola
23d1f9d8c0 No data from Domyos Training Bike 900 #2973 2025-01-07 15:03:26 +01:00
Roberto Viola
f4e0d3596d Horizon 5.0 Bike Compatibility #3001 2025-01-07 11:20:25 +01:00
Roberto Viola
3b012bc946 Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2025-01-07 09:21:23 +01:00
Roberto Viola
33a5a2c80f Horizon 5.0 Bike Compatibility #3001 2025-01-07 09:06:53 +01:00
Roberto Viola
e8b481d517 S22i connects and reports info to QZ, but Auto-Resistance is not being controlled by QZ App (Issue #2909) 2025-01-05 09:21:19 +01:00
Roberto Viola
dcfa58b3a9 Horizon 5.0u bike #2984 2025-01-04 20:04:24 +01:00
Roberto Viola
fd4106cf00 No data from Domyos Training Bike 900 #2973 2025-01-04 05:43:31 +01:00
Roberto Viola
87dddac5f4 added garmin_bluetooth_compatibility for treadmills 2025-01-04 05:26:51 +01:00
Roberto Viola
5488af7e35 DeerRun S500 Bike Integration #2932 2025-01-02 14:48:03 +01:00
Roberto Viola
0a3bd56f15 Care Fitness Rowing no data in QZ (Issue #2874) 2025-01-02 14:37:21 +01:00
Roberto Viola
a5ae8f994b Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2025-01-02 14:32:12 +01:00
Roberto Viola
6a0b3e7fc4 DeerRun S500 Bike Integration #2932 2025-01-01 14:32:15 +01:00
Gerd Naschenweng
a7620c38d0 Included QZ service monitoring (#2960) 2024-12-30 11:23:09 +01:00
Roberto Viola
0060e316dc Update project.pbxproj 2024-12-29 10:59:31 +01:00
Roberto Viola
b71321f301 Treadmill Live Charts #2955 2024-12-29 10:57:20 +01:00
Roberto Viola
c99ef80d78 Speed up Settings page (#2951)
* it works, but i need to check all the accordionelement

* fixing layouts

* Update settings.qml
2024-12-28 22:17:49 +01:00
Roberto Viola
2adf3fe27b SwitchDeletages in the settings now are changing only if the user clicks on the indicator (ios default behaviour) 2024-12-28 18:51:24 +01:00
Roberto Viola
ade033eb59 Tactile Feedback for Zwift Play controllers (and Ride?) #2752 2024-12-28 18:22:11 +01:00
Roberto Viola
42666cf1e9 Update project.pbxproj 2024-12-28 14:39:17 +01:00
Roberto Viola
530f11f67c Tactile Feedback for Zwift Play controllers (and Ride?) (Issue #2752) 2024-12-28 13:48:57 +01:00
Roberto Viola
0391db60aa Raspberry kickr run (#2941) 2024-12-28 13:03:57 +01:00
Roberto Viola
486c90a112 Tactile Feedback for Zwift Play controllers (and Ride?) (Issue #2752) (#2753)
* Tactile Feedback for Zwift Play controllers (and Ride?) (Issue #2752)

* it works!

* vibrate on the right controller
2024-12-28 11:45:13 +01:00
Roberto Viola
d1767797d7 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-12-27 17:41:25 +01:00
Roberto Viola
fbe03d23f3 Smart Trainer Magene T200 #2947 2024-12-27 17:39:53 +01:00
Roberto Viola
361280c131 Issue with QZ 2.18 (982) and Zwift Play in SIM Mode (Issue #2944) 2024-12-27 17:35:43 +01:00
Roberto Viola
04e0fc6e7c Update README.md 2024-12-27 14:25:24 +01:00
Roberto Viola
ab52eee127 Issue with QZ 2.18 (982) and Zwift Play in SIM Mode #2944 2024-12-27 13:50:15 +01:00
Roberto Viola
94825252f7 Proform 1500 Pro Treadmill #2943 2024-12-27 10:23:14 +01:00
Roberto Viola
93f13817be Proform 1500 Pro Treadmill #2943 2024-12-27 10:14:41 +01:00
Roberto Viola
739ea4e841 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-12-26 14:44:12 +01:00
Roberto Viola
fe3ad9ffb4 Open Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2024-12-26 14:25:58 +01:00
Roberto Viola
8fce809ee9 Update project.pbxproj 2024-12-26 14:10:21 +01:00
Roberto Viola
c156cbff99 DeerRun S500 Bike Integration (Issue #2932) 2024-12-26 14:01:39 +01:00
Roberto Viola
268be8e0f5 Delay in Strava Upload and Treadmill Pace Coloring Off #2933 2024-12-26 13:11:32 +01:00
Roberto Viola
5581e1c0e1 Update project.pbxproj 2024-12-25 11:19:23 +01:00
Roberto Viola
7fea2d442f Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-12-25 11:17:52 +01:00
Roberto Viola
74276764a6 2.18.12 2024-12-25 10:45:10 +01:00
Roberto Viola
a3e54782bb Peloton Treadmill Pace Levels #2469 2024-12-25 10:41:11 +01:00
Roberto Viola
b7bc80b2a3 Update project.pbxproj 2024-12-25 10:34:45 +01:00
Roberto Viola
b869a41f3d fixing build 2024-12-25 10:28:52 +01:00
Roberto Viola
9c7954945f Update kineticinroadbike.cpp 2024-12-24 12:30:50 +01:00
Roberto Viola
13cd666718 fixing msvc 2024-12-24 12:23:59 +01:00
Roberto Viola
c3e627e85b Update SmartControl.cpp 2024-12-24 12:02:13 +01:00
Roberto Viola
f23c24ae9b fixing build 2024-12-24 11:53:47 +01:00
Roberto Viola
d27da35beb fixing build 2024-12-24 11:49:40 +01:00
Roberto Viola
6457b205e4 fixing build 2024-12-24 11:42:56 +01:00
Roberto Viola
bea7b61dcc adding the original kineticinroad bike sdk 2024-12-24 11:16:38 +01:00
Roberto Viola
2cc8d51a6c Update project.pbxproj 2024-12-24 10:19:26 +01:00
Roberto Viola
5410b806bb Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-12-24 10:16:15 +01:00
Roberto Viola
b937d8bd71 Pooboo Bike #2935 2024-12-24 09:50:50 +01:00
Roberto Viola
cd25cfab8e 2.18.11 2024-12-23 18:54:53 +01:00
Roberto Viola
229e6ad461 Fixing build 2024-12-23 11:02:33 +01:00
Roberto Viola
977cae1cbd Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-12-23 10:09:49 +01:00
Roberto Viola
c8a9be2ca6 Revert "using variables instead of timer"
This reverts commit 445646fe02.
2024-12-23 10:04:05 +01:00
Roberto Viola
c3acf82a9b Revert "everal Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)"
This reverts commit ddfc60bbf5.
2024-12-23 10:03:57 +01:00
Roberto Viola
ddfc60bbf5 everal Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)
https://github.com/cagnulein/qdomyos-zwift/issues/2541#issuecomment-2557707654
2024-12-21 16:24:52 +01:00
Roberto Viola
445646fe02 using variables instead of timer
Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)
2024-12-21 16:09:48 +01:00
Roberto Viola
3dd3c8fb40 Update project.pbxproj 2024-12-21 16:00:45 +01:00
Roberto Viola
fb390b3618 Revert "Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)"
This reverts commit f6f9a95f06.
2024-12-21 15:12:59 +01:00
Roberto Viola
ca5fb75f3a Revert "handling ERG mode for VFSPINBIKE"
This reverts commit e881ce5f0f.
2024-12-20 14:30:26 +01:00
Roberto Viola
e881ce5f0f handling ERG mode for VFSPINBIKE 2024-12-20 12:21:22 +01:00
Roberto Viola
8002e47551 VFSPINBIKE model workaround for ERG mode started 2024-12-20 08:43:53 +01:00
Roberto Viola
5b66b5705d Support for iConsole based rowing machines, e.g. the "Baltic Rower Pro" (Issue #2901) 2024-12-19 15:17:43 +01:00
Roberto Viola
d1c5521d2a setting to disable the treadmill tag to have the inclination on strava 2024-12-19 10:14:29 +01:00
Roberto Viola
74151edfb3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-12-19 10:00:10 +01:00
Roberto Viola
00f6747d7d Toputure TP1 treadmill #2918 2024-12-19 10:00:05 +01:00
Roberto Viola
0101955ad3 updating usb serial for android
first build on mac pro for android
2024-12-19 09:58:34 +01:00
Roberto Viola
f6f9a95f06 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)
https://github.com/cagnulein/qdomyos-zwift/issues/2541#issuecomment-2551961488
2024-12-18 21:39:29 +01:00
Roberto Viola
3d82b89db0 Sole S77 Support #1283 2024-12-18 21:04:54 +01:00
Roberto Viola
8c7b549a45 Sole S77 Support #1283 2024-12-18 19:02:56 +01:00
Roberto Viola
3ad4dc1cfe Sole S77 Support #1283 2024-12-18 18:59:42 +01:00
Roberto Viola
7524314f74 version 2.18.10 2024-12-18 15:17:29 +01:00
Roberto Viola
94545e8958 Update project.pbxproj 2024-12-18 15:15:29 +01:00
Roberto Viola
2c74b2d2e2 nextrow for power training
https://github.com/cagnulein/qdomyos-zwift/issues/2915#issuecomment-2551377819
2024-12-18 14:59:01 +01:00
Roberto Viola
108c190254 S22i connects and reports info to QZ, but Auto-Resistance is not being controlled by QZ App (Issue #2909) 2024-12-18 14:55:26 +01:00
Roberto Viola
466209307e heart rate and wahoo kickr fan toast when connected 2024-12-18 14:34:33 +01:00
Roberto Viola
acccba59dc fixed overlapping lines in the nextrow
https://github.com/cagnulein/qdomyos-zwift/issues/2915#issuecomment-2551013411
2024-12-18 12:12:07 +01:00
Roberto Viola
9325e2f9d1 handling distance for next rows
https://github.com/cagnulein/qdomyos-zwift/issues/2915#issuecomment-2550839841
2024-12-18 10:42:48 +01:00
Roberto Viola
36ebff2667 handling repeat tag in the xml
tunturi t90 inclination not working
#2915
2024-12-18 10:04:26 +01:00
Roberto Viola
6d0d08b5fb OSC: Open Sound Control (#2449)
* starting

* hardcoding ip

* adding fields

* adding setting

* added /QZ/Resistance on write

* finalizing!

* Update osc.cpp

* Update homeform.h

* Update osc.h

* fixing settings

* port added

* Update osc.cpp
2024-12-18 08:41:27 +01:00
Roberto Viola
e695a1e291 tunturi t90 inclination not working #2915 2024-12-17 19:00:59 +01:00
Roberto Viola
133488221b Update kineticinroadbike.cpp 2024-12-17 09:48:57 +01:00
Roberto Viola
b186b672ea kineticinroadbike 2024-12-14 14:04:19 +01:00
Roberto Viola
2badef3daf YPOO-mini pro treadmill #2905 2024-12-14 09:11:27 +01:00
Roberto Viola
f8700296fb Update kineticinroadbike.cpp 2024-12-13 21:32:41 +01:00
Roberto Viola
0f79fb56c7 Peloton Treadmill Pace Levels #2469 2024-12-13 20:44:22 +01:00
Roberto Viola
d8412c95d4 only if a resistance value is greater than 0 will set the resistance received in the ftms bike 2024-12-13 17:23:44 +01:00
Roberto Viola
469c239eed typo on the settings 2024-12-13 17:12:56 +01:00
Roberto Viola
7fad542553 YPOO-mini pro treadmill #2905 2024-12-13 15:21:03 +01:00
Roberto Viola
d0c0aeab84 Update project.pbxproj 2024-12-13 14:55:01 +01:00
Roberto Viola
9fd7123649 Peloton Treadmill Pace Levels #2469 2024-12-13 14:28:32 +01:00
Roberto Viola
5b922043ec YPOO-mini pro treadmill #2905 2024-12-13 13:36:09 +01:00
Roberto Viola
2953589ece fixing build 2024-12-13 12:02:39 +01:00
Roberto Viola
5836990903 Update kineticinroadbike.cpp 2024-12-13 10:44:50 +01:00
Roberto Viola
acd7e24382 kinetic inroad bike
https://github.com/kinetic-fit/kinetic-sdk-java/blob/master/com/kinetic/sdk/inride/InRide.java
2024-12-13 10:11:57 +01:00
Roberto Viola
71827e0546 Update project.pbxproj 2024-12-11 12:11:44 +01:00
Roberto Viola
7e8139e5a5 Treadmill incline multiplied on QZ output [BUG] #2511
ProAction Nydo (BH Fitness) threadmill doesent incline
2024-12-11 09:54:26 +01:00
Roberto Viola
20d2b6ec9e Zycle ZPro #2899 2024-12-11 09:30:32 +01:00
Roberto Viola
be7d0e58a7 Care Fitness Rowing no data in QZ (Issue #2874) 2024-12-11 08:49:23 +01:00
nix155
f20c449279 Fixed VNC server functionality (#2898)
Co-authored-by: Andrey Zotov <azotov@teko.io>
2024-12-10 17:04:08 +01:00
Roberto Viola
bf059715ec Care Fitness Rowing no data in QZ (Issue #2874) 2024-12-10 11:17:53 +01:00
Roberto Viola
98cd3f22a2 unable to connect to NordicTrack 7i #2838 2024-12-09 10:32:51 +01:00
Roberto Viola
bad290d104 Data fields not updating Trojan Pro Spin Bike 2.0, iConsole #2884 2024-12-09 10:24:04 +01:00
Roberto Viola
3c55d025ce Update ftmsbike.cpp (#2888) 2024-12-09 07:32:03 +01:00
Roberto Viola
a3e6640e3f fixing 2024-12-05 16:49:41 +01:00
Roberto Viola
27922da186 Merge branch 'master' into workout-history 2024-12-05 16:42:16 +01:00
nix155
5c775ac5b4 Added build with qtwebglplugin (#2879)
Co-authored-by: Andrey Zotov <azotov@teko.io>
2024-12-05 12:26:56 +01:00
Roberto Viola
9295aa58a7 Care Fitness Rowing no data in QZ #2874 2024-12-05 12:20:58 +01:00
Roberto Viola
96d68bbd39 Update project.pbxproj 2024-12-05 10:29:00 +01:00
Roberto Viola
7ddb6bc1ca Bowflex T9 Not Starting When Connected #2866 2024-12-05 08:56:24 +01:00
Roberto Viola
a0145793a2 Question about treadmill powerzones (Discussion #2873) 2024-12-04 15:45:16 +01:00
Roberto Viola
ecb37d67cc Revert "Question about treadmill powerzones (Discussion #2873)"
This reverts commit 3ae203d7ad.
2024-12-04 14:33:31 +01:00
Roberto Viola
969476f368 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-12-04 13:32:17 +01:00
Roberto Viola
3ae203d7ad Question about treadmill powerzones (Discussion #2873) 2024-12-04 13:32:12 +01:00
Roberto Viola
e979b5aebe Update project.pbxproj 2024-12-04 09:01:46 +01:00
Roberto Viola
d568bccc28 Bowflex T9 Not Starting When Connected #2866 2024-12-04 08:59:51 +01:00
nix155
301429182d Added multi-stage build, unnecessary files removed from the image (#2870) 2024-12-04 06:39:18 +01:00
nix155
8df78b9387 Added files for building and running in Docker with GUI (#2868)
Co-authored-by: Andrey Zotov <azotov@teko.io>
2024-12-03 18:19:55 +01:00
Roberto Viola
ba57309bcd Bowflex T9 Not Starting When Connected #2866 2024-12-03 18:12:54 +01:00
Roberto Viola
8d573b3ee6 Incline from GPX will be rounded to inclination step
Fitness Master T25 incline doesn't work [BUG] #2820
2024-12-03 17:09:23 +01:00
Marcel
ba43ba8c21 Add Life Fitness 95 CSAFE Ellipical (#2863)
* Add Life Fitness 95 CSAFE Ellipical

* Change bautrate type

* Fix data baudrate once more

* alternative way of setting level

* fix windows serial

* fix u_int16_t

* reorder header files

* Fix header setup

* multiple command refresh

* increment allSettingsCount

* Fix android build

* update kalman filter parameters

* formatting fixes

* More formatting fixes

* add setting version
2024-12-03 14:48:28 +01:00
Roberto Viola
47a3c24b03 2.18.9 2024-12-03 14:23:06 +01:00
Roberto Viola
40579fd376 improving safety on mediabuttonreceiver 2024-12-03 14:22:11 +01:00
Roberto Viola
bb17c1cc1a Inclination Gain implementation in QZ for Elite Suito/Rouvy #2850 (#2858) 2024-12-03 11:21:51 +01:00
Roberto Viola
1cc8862a04 proform carbon TL PFTL59722c.0 (Issue #2806) 2024-12-03 10:32:23 +01:00
Roberto Viola
ff4606caa4 Yosuda RC-Max #2861 2024-12-03 08:58:37 +01:00
Roberto Viola
aff12a0462 Bowflex T9 #2860 2024-12-03 08:56:55 +01:00
Roberto Viola
3c5054acbd App not displaying metrics #2835 2024-12-02 14:37:18 +01:00
Roberto Viola
9a854f7810 Buggy behaviour on Raspberry pi 4 and Zwift #2810 2024-12-02 11:39:04 +01:00
Roberto Viola
1e731f7cbe Zwo warmup not fully elapsed in terms of time in running workouts #2847 2024-12-02 08:36:23 +01:00
Roberto Viola
c0cd6234f3 Android 6 crash (#2852)
* Android 6 crash

* Revert "Android 6 crash"

This reverts commit 6d4bfab1c9.

* Update MediaButtonReceiver.java

* Update MediaButtonReceiver.java

* Update MediaButtonReceiver.java
2024-12-01 15:14:59 +01:00
Roberto Viola
9cc79ab33a Update project.pbxproj 2024-12-01 08:09:17 +01:00
Roberto Viola
181de73a13 Revert "Zwo warmup not fully elapsed in terms of time in running workouts (Issue #2847)"
This reverts commit 36f6fa7feb.
2024-12-01 08:08:41 +01:00
Roberto Viola
57e03c39f1 Virtual activity tag in Strava not applicable when sport type is set to walking #2844 2024-12-01 08:07:23 +01:00
Roberto Viola
ff8a89d688 Revert "Virtual activity tag in Strava not applicable when sport type is set to walking (Issue #2844)"
This reverts commit 2b568c6260.
2024-12-01 08:06:18 +01:00
Roberto Viola
36f6fa7feb Zwo warmup not fully elapsed in terms of time in running workouts (Issue #2847) 2024-11-30 14:50:03 +01:00
Roberto Viola
7d7e9cc79d Update project.pbxproj 2024-11-30 14:21:06 +01:00
Roberto Viola
2616ebe229 Fitness Master T25 incline doesn't work [BUG] #2820
always using kcal from QZ to avoid treadmill madness about KCAL
2024-11-30 14:17:18 +01:00
Roberto Viola
2b568c6260 Virtual activity tag in Strava not applicable when sport type is set to walking (Issue #2844) 2024-11-30 14:13:24 +01:00
Roberto Viola
f49f539e71 Update project.pbxproj 2024-11-28 18:02:03 +01:00
Roberto Viola
1845f3a5ae Incorrect Avg watts displayed on power badge (Issue #2843) 2024-11-28 17:57:17 +01:00
Roberto Viola
9aa337cd47 Update truetreadmill.cpp 2024-11-28 16:30:44 +01:00
Roberto Viola
9b12c5c4bf trying to get app to work with Wahoo Gymconnect to control treadmill (Issue #2840) 2024-11-28 16:00:34 +01:00
Roberto Viola
1d12f7e475 Multi-shift for Zwift Click and Play (and Ride?) (Issue #2751) 2024-11-28 13:33:41 +01:00
Roberto Viola
e463ab9aae reverting 438bd2c195 2024-11-28 13:19:02 +01:00
Roberto Viola
baa9de9059 Update project.pbxproj 2024-11-28 12:27:39 +01:00
Roberto Viola
e3b706f537 Kickr Move Bluetooth Not found (Issue #2827) 2024-11-28 12:26:52 +01:00
Roberto Viola
438bd2c195 Multi-shift for Zwift Click and Play (and Ride?) (Issue #2751) 2024-11-28 11:48:18 +01:00
Roberto Viola
5b546911ff NordicTrack GX 4.4 Pro with QZ on Samsung S7 (Android 8) (Discussion #2836) 2024-11-28 10:45:00 +01:00
Roberto Viola
b544e325ce Update project.pbxproj 2024-11-28 08:46:57 +01:00
Roberto Viola
c01fad2e29 Wattbike Atom First Generation - Display Gears #2829 2024-11-28 08:28:37 +01:00
Roberto Viola
a4d2f53207 Fitness Master T25 incline doesn't work [BUG] #2820 2024-11-28 08:21:44 +01:00
Roberto Viola
a8b3fc3129 Update project.pbxproj 2024-11-27 16:56:14 +01:00
Roberto Viola
b7dec6d223 Wattbike Atom First Generation - Display Gears #2829 2024-11-27 16:55:17 +01:00
Roberto Viola
2d76ea554d Fitness Master T25 incline doesn't work [BUG] #2820 2024-11-27 16:51:56 +01:00
Roberto Viola
b0f03dbe0a Update project.pbxproj 2024-11-27 16:12:38 +01:00
Roberto Viola
46429e04b4 using combobox for the nordictrack bikes in the settings 2024-11-27 16:05:49 +01:00
Roberto Viola
7d479b7d88 secondline for gear tile 2024-11-27 14:11:32 +01:00
Roberto Viola
c86651cdf6 proform carbon TL PFTL59722c.0 #2806 2024-11-27 11:18:02 +01:00
Roberto Viola
63bfdba992 Fitness Master T25 incline doesn't work [BUG] #2820 2024-11-27 10:51:50 +01:00
Roberto Viola
6767c42b14 Fitness Master T25 incline doesn't work [BUG] #2820 2024-11-27 10:50:42 +01:00
Roberto Viola
70f2f2ecb5 NEO BIKE SMART added 2024-11-27 09:23:44 +01:00
Roberto Viola
691ec420b0 Wattbike Atom First Generation - Display Gears #2829 2024-11-27 08:58:16 +01:00
Roberto Viola
278f130906 Update project.pbxproj 2024-11-27 07:14:25 +01:00
Roberto Viola
531a88e326 2.18.8 2024-11-27 07:08:58 +01:00
Roberto Viola
d8e3e193b8 fixing zwift pool time 2024-11-26 18:34:32 +01:00
Roberto Viola
cda99d6f21 ZDRIVE trainer added 2024-11-26 16:52:36 +01:00
Roberto Viola
3cf3ae9135 Kickr Climb not move #2823
forcing inclination after a gear change
2024-11-26 16:11:59 +01:00
Roberto Viola
7333361190 Kickr Climb not move #2823 2024-11-26 12:03:27 +01:00
Roberto Viola
f75ebbb47f Update project.pbxproj 2024-11-26 08:06:07 +01:00
Roberto Viola
ce35fad608 Wattbike Atom First Generation - Display Gears #2829 2024-11-26 08:03:17 +01:00
Roberto Viola
8160d711a1 Fitness Master T25 incline doesn't work [BUG] #2820 2024-11-26 07:55:17 +01:00
Roberto Viola
2a595ced57 Update project.pbxproj 2024-11-25 16:30:43 +01:00
Roberto Viola
9cb14b91ba Compatibility with Technogym Skillbike #2805 2024-11-25 16:29:33 +01:00
Roberto Viola
92e008b3c8 don't add value to erg table if the cadence is 0 2024-11-25 16:00:59 +01:00
Roberto Viola
f6d8924e18 Continuos beeping when speed is modified by the %T. speed tile (Issue #2825) 2024-11-25 13:38:47 +01:00
Roberto Viola
ef955a03bc Kickr Move Bluetooth Not found #2827 2024-11-25 12:10:08 +01:00
Roberto Viola
67c12f7342 Continuos beeping when speed is modified by the %T. speed tile (Issue #2825) 2024-11-25 11:35:12 +01:00
Roberto Viola
5cfbc6855b Continuos beeping when speed is modified by the %T. speed tile (Issue #2825) 2024-11-25 10:51:15 +01:00
Roberto Viola
aa9e9e20fe Change speed or PID when a workouts is load an is running (Issue #2813) 2024-11-25 08:36:29 +01:00
Roberto Viola
417f9c370d Compatibility with Technogym Skillbike #2805 2024-11-25 08:26:32 +01:00
Roberto Viola
3f3bdbb83e forcing ftms default value cause zwift ride don't like 0 2024-11-25 08:21:30 +01:00
Roberto Viola
c1c58a7a4d Update project.pbxproj 2024-11-22 15:05:42 +01:00
Roberto Viola
a6a3dd4c28 Compatibility with Technogym Skillbike #2805 2024-11-22 13:21:45 +01:00
Marcel
55c3dbe3b6 Move csafe lib to separate folder and add commands (#2811) 2024-11-22 13:00:31 +01:00
Roberto Viola
50e0c5aab9 Update project.pbxproj 2024-11-22 10:36:59 +01:00
Roberto Viola
fde0566abf version 2.18.7 2024-11-22 10:34:20 +01:00
Roberto Viola
be83fcbddb Compatibility with Technogym Skillbike #2805 2024-11-22 10:32:23 +01:00
Roberto Viola
a7ccc1997a Compatibility with Technogym Skillbike #2805 2024-11-22 10:03:38 +01:00
Roberto Viola
f6339a9f70 proform carbon TL PFTL59722c.0 #2806 2024-11-22 08:18:43 +01:00
Roberto Viola
6d15d61f68 Update project.pbxproj 2024-11-21 16:59:32 +01:00
Roberto Viola
7b0b81694c Compatibility with Technogym Skillbike #2805 2024-11-21 16:50:28 +01:00
Roberto Viola
e9ab643aab proform carbon TL PFTL59722c.0 #2806 2024-11-21 15:45:19 +01:00
Roberto Viola
2e1ef17861 watt averaging also for charts 2024-11-21 15:31:44 +01:00
Roberto Viola
2527a3d303 adding watts calculated from the homeform in the log 2024-11-21 13:48:00 +01:00
Roberto Viola
62973d0564 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-11-21 10:44:04 +01:00
Roberto Viola
59c428a14b Update project.pbxproj 2024-11-21 10:43:39 +01:00
Roberto Viola
064a4de214 https://github.com/cagnulein/qdomyos-zwift/issues/2541#issuecomment-2489558440 2024-11-21 10:43:20 +01:00
Roberto Viola
998d95f6b2 Nordictrack T series 5 treadmill #2795 2024-11-21 10:21:37 +01:00
Roberto Viola
e609d9ea93 cscbike battery level implemented 2024-11-21 10:16:39 +01:00
Roberto Viola
0d191e6f02 D2RIDE battery ignored 2024-11-21 10:16:24 +01:00
Roberto Viola
3cb3aa4d1c Update project.pbxproj 2024-11-20 15:50:35 +01:00
Roberto Viola
f580e98d26 fixing live power zone chart 2024-11-20 15:50:11 +01:00
Roberto Viola
e1ad8aab73 restoring gears_zwift_ratio variable in the ftms bike
Zwift hub gear custom
#2757
2024-11-20 15:29:00 +01:00
Roberto Viola
340cdd9323 Program doesnt work with CardioPower Ergo 5 (Issue #2804) 2024-11-20 14:25:12 +01:00
Roberto Viola
82ba5debcd fixing workout live chart for powerzones 2024-11-19 16:11:12 +01:00
Roberto Viola
d9a677b4ca Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-11-19 15:20:36 +01:00
Roberto Viola
cd56463286 Cadence Sensor As A Treadmill #2789 2024-11-19 15:20:32 +01:00
Roberto Viola
3faa726fcd Update mqttpublisher.cpp 2024-11-19 12:52:37 +01:00
Roberto Viola
ef938df79f Time shift in PZ rides (Issue #2690) 2024-11-19 12:24:41 +01:00
Roberto Viola
470ca0a98e Update stagesbike.cpp 2024-11-19 11:12:50 +01:00
Roberto Viola
fe9bb7e26a fixing wrong cadence value for cadence in the power pedal sensor 2024-11-19 09:49:04 +01:00
Roberto Viola
a30b1f5298 2.18.6 2024-11-19 09:37:56 +01:00
Marcel
e7196d3033 Fix port on csafe rower (#2794) 2024-11-18 14:46:33 +01:00
Roberto Viola
09977ac703 MQTT Support for Homeassistant (Issue #2759) 2024-11-18 14:28:09 +01:00
Roberto Viola
ea9ed85bf7 Master T40 treadmill #2640 2024-11-18 13:46:11 +01:00
Roberto Viola
1f3d819b24 Update project.pbxproj 2024-11-18 12:28:31 +01:00
Roberto Viola
096a025b79 MQTT Support for Homeassistant (Issue #2759) 2024-11-18 12:25:50 +01:00
Roberto Viola
0926f0b484 MQTT Support for Homeassistant (Issue #2759) 2024-11-18 12:14:35 +01:00
Roberto Viola
b6f6641204 Peloton Auto Start! (#2784) 2024-11-18 11:49:10 +01:00
Roberto Viola
65418c6e9a Peloton Auto Start! (#2784) 2024-11-18 11:46:45 +01:00
Roberto Viola
6abd0e677b Magene T300 Plus bike trainer #2793 2024-11-18 10:27:38 +01:00
Roberto Viola
ecfae5f416 Update 10_Installation.md 2024-11-18 08:49:37 +01:00
Roberto Viola
e2f4d4e376 Technogym Cycle #2788 2024-11-16 14:45:03 +01:00
Roberto Viola
fb8de4606a Sram disabled from the settings due to crypto 2024-11-15 21:23:05 +01:00
Roberto Viola
09af8f98b3 MQTT Support for Homeassistant (Issue #2759) 2024-11-15 16:57:34 +01:00
Roberto Viola
70abcee27d MQTT Support for Homeassistant (Issue #2759) 2024-11-15 16:42:57 +01:00
Roberto Viola
d0deb6bee5 Peloton Auto Start! (#2784)
* it works!

* done!
2024-11-15 14:41:27 +01:00
Roberto Viola
3494349961 MQTT Support for Homeassistant (Issue #2759) (#2766)
* adding qmqtt libraries

* Update qmqttsubscription_p.h

* Update qmqttclient_p.h

* Revert "Update qmqttclient_p.h"

This reverts commit 7629972927.

* Revert "Update qmqttsubscription_p.h"

This reverts commit 9c52f7363e.

* Update qdomyos-zwift.pri

* adding class for mqtt

* Update mqttpublisher.cpp

* Update mqttpublisher.cpp

* fixing build

* adding settings and also works on raspberry

* working also on ios!

* done!

* trying to fix windows build

* Update qmqttmessage.h

* fixing windows build

* Update qmqttglobal.h
2024-11-15 12:29:03 +01:00
Roberto Viola
5abc9ac9c0 fixing get gears from zwift for new firmware version of zwift ride 2024-11-15 09:01:47 +01:00
Roberto Viola
d0360ea87b Fix Protobuf Windows on Github Actions (#2780) 2024-11-14 17:16:50 +01:00
Roberto Viola
d31c5c4d53 Pause button on qz won't reset the speed tile (Issue #2781) 2024-11-14 16:39:09 +01:00
Roberto Viola
f2f49464fc trying to fix win build 2024-11-14 15:10:22 +01:00
Marcel
f6d0e068f6 Fix bluetooth nor working in RPI zero 2w (#2778) 2024-11-14 11:33:04 +01:00
Roberto Viola
17f699234c 2.18.5 2024-11-13 12:40:17 +01:00
Roberto Viola
bf4c07aba4 ftms bike automatically if it has a zwift play service 2024-11-13 12:34:21 +01:00
Roberto Viola
a7fadf55aa Update project.pbxproj 2024-11-13 11:20:24 +01:00
Roberto Viola
4912807ae4 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-11-13 11:13:54 +01:00
Roberto Viola
4a61c34d58 NordicTrack Treadmill C960i #2770 2024-11-13 11:13:45 +01:00
Roberto Viola
109dc901e9 Zwift hub gear custom (#2757)
* first raw version

* Update project.pbxproj

* Update virtualbike_zwift.swift

* fixing formula

* fixing casting to double

* need to center the values in the table

* Update gears.qml

* Revert "Update gears.qml"

This reverts commit 0f149448b3.

* Update gears.qml

* i need to save the first 3 static objects and use it in the wahoo module

* qml finally saves the settings correctly

* completed?

* Update project.pbxproj

* fixing gear conversion

* adding max and minGears

* fixing UI and settings

* kickr core to wahookickr class

* ftms wheel circumference for gears

* implementing

* Update wahookickrsnapbike.cpp

* Update ftmsbike.cpp

* first custom gear test

* adding inclination custom message too

* Update ftmsbike.cpp

* implemented protobuf

* protobuf also for the gears

* Update ftmsbike.cpp

* Update project.pbxproj

* reverting tacxneo wheel diameter and ftms standard wheel diamater in order to merge it

* fixing mingears and maxgears

* adding android part

* Update main.cpp

* Update main.cpp

* Update main.cpp

* Update project.pbxproj

* fixing android build

* fixing build

* fixing android build

* Update main.cpp

* removed debug
2024-11-13 11:13:16 +01:00
Roberto Viola
9b8b6643f8 RPM from Magene Speed Sensor not reading properly (Issue #2769) 2024-11-13 10:05:41 +01:00
Roberto Viola
a26e79dac7 Raspberry PI Build Fix (#2771)
* Update main.yml

* Update main.yml
2024-11-13 09:33:42 +01:00
Roberto Viola
291c5d68f2 SRAM AXS Controller for Virtual Gearing #2768 2024-11-12 16:29:33 +01:00
Roberto Viola
c85e838e33 Proform Treadmill C700 #2762 2024-11-12 10:36:50 +01:00
Roberto Viola
94975e0117 Proform Performance 400i #2741
speed in kph?
2024-11-12 09:53:59 +01:00
Roberto Viola
eebb9359a6 Proform 575i (Issue #2652) 2024-11-12 09:43:14 +01:00
Roberto Viola
40e6609297 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541)
https://github.com/cagnulein/qdomyos-zwift/issues/2541#issuecomment-2468340941
2024-11-11 15:57:39 +01:00
Roberto Viola
af028504eb Proform 575i #2652 2024-11-11 11:24:07 +01:00
Roberto Viola
bfe4564659 Update proformtreadmill.cpp 2024-11-11 10:08:36 +01:00
Roberto Viola
85cdcaa457 Master T40 treadmill #2640 2024-11-11 09:42:01 +01:00
Roberto Viola
cd5c10835c Proform Performance 400i #2741
stop better handling?
2024-11-11 09:22:06 +01:00
Roberto Viola
ce97c92645 Custom gearing ranges/ratios #2671
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11190939
2024-11-09 16:08:23 +01:00
Roberto Viola
d27b3b9ba0 fixing build 2024-11-09 12:46:01 +01:00
Roberto Viola
0f96923006 Update project.pbxproj 2024-11-09 12:38:28 +01:00
Roberto Viola
bc7ac73de9 Custom gearing ranges/ratios #2671
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11190939
2024-11-09 12:37:21 +01:00
Roberto Viola
8d2fe9dd25 trxappgateusbtreadmill wrong kcal 2024-11-09 12:18:03 +01:00
Roberto Viola
2d99106254 Proform Performance 400i #2741 2024-11-08 16:23:03 +01:00
Roberto Viola
04d01efd0f Update project.pbxproj 2024-11-08 15:00:27 +01:00
Roberto Viola
da10fff966 Proform Performance 400i #2741 2024-11-08 14:58:33 +01:00
Roberto Viola
991ee8674a Update project.pbxproj 2024-11-07 20:23:20 +01:00
Roberto Viola
7f24950498 wizard control for wifi devices added 2024-11-07 14:34:14 +01:00
Roberto Viola
405fb415d4 wizard control for wifi devices added 2024-11-07 13:59:58 +01:00
Roberto Viola
0aa4c27e02 Custom gearing ranges/ratios #2671
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11176772
2024-11-07 12:53:14 +01:00
Roberto Viola
add12366a0 Custom gearing ranges/ratios #2671
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11176772
2024-11-07 12:34:52 +01:00
Roberto Viola
2c496f6fe2 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-11-07 11:49:51 +01:00
Roberto Viola
1381c19723 2.18.3 2024-11-07 11:49:29 +01:00
Roberto Viola
a8ddfc8b70 Garmin HR over ANT+ not collected in QZ (Issue #2740) (#2747)
* Garmin HR over ANT+ not collected in QZ (Issue #2740)

* Update HeartChannelController.java

* Update build.gradle

* Update HeartChannelController.java

* Update build.gradle

* Create android-antplus-plugin-lib-release_3.9.0.aar

* Update HeartChannelController.java

* Update HeartChannelController.java

* Update HeartChannelController.java
2024-11-07 11:43:57 +01:00
Roberto Viola
6680ff1cd9 Echelon Rower Sport 2, not displaying stats (Issue #2749) 2024-11-06 21:04:43 +01:00
Roberto Viola
863dc6378c Update project.pbxproj 2024-11-06 18:46:09 +01:00
Roberto Viola
be0465d094 Capitol Sports Infinity Pro 4 treadmill (Issue #2748) 2024-11-06 18:41:41 +01:00
Roberto Viola
42d2dcef7e Capitol Sports Infinity Pro 4 treadmill 2024-11-06 16:36:10 +01:00
Roberto Viola
c70fd8608d Master T40 treadmill (Issue #2640) 2024-11-06 16:30:25 +01:00
Roberto Viola
e217f929e8 Zwift gear 4 does not change QZ gear or resistance (Issue #2746) 2024-11-06 14:43:05 +01:00
Roberto Viola
b95c51a2be Custom gearing ranges/ratios (Discussion #2671) 2024-11-06 14:02:10 +01:00
Roberto Viola
e3b635d107 Life fitness ic7 spin bike #2745 2024-11-06 12:07:47 +01:00
Roberto Viola
ae1642d052 relaxing bluetooth name on android 2024-11-06 11:46:16 +01:00
Roberto Viola
13e9f49a8b improving speed for gears for wahoo devices 2024-11-06 09:31:47 +01:00
Roberto Viola
13f174fb1e relaxing android bluetooth name control 2024-11-06 09:03:27 +01:00
Roberto Viola
3ef9e6304d adding some debug to virtualbike_zwift.swift 2024-11-06 08:47:53 +01:00
Roberto Viola
398909b809 Update project.pbxproj 2024-11-06 08:13:31 +01:00
Roberto Viola
dc140a3dd5 Proform Performance 400i #2741 2024-11-06 08:13:09 +01:00
Roberto Viola
b2fe23c32e Update project.pbxproj 2024-11-06 06:52:40 +01:00
Roberto Viola
46f0761f50 Improvements made for Proform 705 CST support (Issue #2719) (#2723)
* Improvements made for Proform 705 CST support (Issue #2719)

* comment removed

* Update proformtreadmill.cpp

* Update proformtreadmill.cpp
2024-11-06 06:45:52 +01:00
MRKrinetic
63258f2029 Revised README Layout and Links for Improved Readability (#2742)
* Update README.md

readme updated in a readble format Tested on, Reference, Blog.

* Update README.md

updated readme in readable format

* Update README.md

updated readme file in readble format
2024-11-05 16:49:42 +01:00
Roberto Viola
eeaf8fbe19 Proform Performance 400i #2741 2024-11-05 16:38:32 +01:00
Roberto Viola
934e6dfa57 bug unevenness not fair gpx #2733 2024-11-05 12:40:16 +01:00
Roberto Viola
a9dd04f4fa 2.18.2 2024-11-05 12:07:12 +01:00
Roberto Viola
34df54b96c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-11-05 11:27:37 +01:00
Roberto Viola
e5ebd3c925 Bowflex M9 #2739 2024-11-05 11:27:32 +01:00
Roberto Viola
e99660ce40 Elite Tuo 2024-11-04 21:03:43 +01:00
Roberto Viola
d5357ed1c3 Technogym Myrun Treadmill rfcomm (#2732) 2024-11-04 20:26:22 +01:00
Roberto Viola
5a357c43e0 switching to the newest macos 2024-11-04 15:53:02 +01:00
Roberto Viola
287ef5bdc7 Proform 575i #2652 2024-11-04 15:51:51 +01:00
Roberto Viola
89db56ae58 Revert "Renpho smart bike r-q002 n (Issue #2401) (#2409)"
This reverts commit 4a33008c61.
2024-11-04 15:42:01 +01:00
Roberto Viola
8f8aa888ca Wahoo Kickr RUN on Android (#2718)
* it doesn't show as controllable yet

* Update virtualtreadmill_zwift.swift

* trying on android

* should be ok on android so

* Revert "should be ok on android so"

This reverts commit 638c99ba83.

* adding inclination parsing

* Revert "Update virtualtreadmill_zwift.swift"

This reverts commit b3a388199e.

* Revert "it doesn't show as controllable yet"

This reverts commit 370ea4e62f.
2024-11-04 15:33:02 +01:00
Roberto Viola
f9321a7bde SHAWN PAVLIN ASCEND S2 Erg Mode (Issue #2660) 2024-11-04 14:20:09 +01:00
Roberto Viola
4c59d2e2cb PID Heart function parameters (Discussion #2731) 2024-11-04 13:41:00 +01:00
Roberto Viola
26d346bdf1 don't ask me again location services (#2716)
* don't ask me again location services

* Update homeform.cpp

* Update Home.qml
2024-11-04 13:21:37 +01:00
Roberto Viola
ba741ada31 QZPI as virtual bike for linux
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11131220
2024-11-04 09:45:46 +01:00
Roberto Viola
2e8c4ebf9a I'm unable to connect my EXERCYCLE H9365R V2 BH correctly. (Issue #2727) 2024-11-02 19:45:38 +01:00
Roberto Viola
579e30683a Update gears.qml 2024-11-02 06:28:31 +01:00
David Mason
b1f893e944 Test updates 2024-10-31 (#2720) 2024-11-01 07:29:09 +01:00
Roberto Viola
415e305415 Custom gearing ranges/ratios (Discussion #2671)
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11113470
2024-10-31 16:53:09 +01:00
Roberto Viola
adb6928772 specific gear value at startup #2671 2024-10-31 16:47:21 +01:00
Roberto Viola
dc70bd1513 adding (but not using) the setuserconfiguration for the tacx 2024-10-31 15:47:37 +01:00
Roberto Viola
57f6a7d1a5 Update project.pbxproj 2024-10-31 13:21:49 +01:00
Roberto Viola
deafbd45d0 Custom gearing ranges/ratios (Discussion #2671)
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11110674
2024-10-31 13:20:45 +01:00
Roberto Viola
b2fa338e03 fixing preset gears
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11109001
2024-10-31 10:01:28 +01:00
Roberto Viola
4e6a98e789 fixing tests 2024-10-31 09:20:23 +01:00
Roberto Viola
72ca19e3e7 Wellfit treadmill support (issue #2659) 2024-10-31 09:19:29 +01:00
Roberto Viola
2c7dac1837 CYCPLUS FTMS bike
https://github.com/cagnulein/qdomyos-zwift/discussions/2671#discussioncomment-11108283
2024-10-31 08:31:21 +01:00
Roberto Viola
de22d58e75 fixing tests 2024-10-31 08:17:28 +01:00
Roberto Viola
2f6d5415cc Update devicetestdataindex.cpp 2024-10-31 07:04:38 +01:00
Roberto Viola
b8101ffa76 Gear UI on zwift #2391 (#2524)
* trying on ios

* Update virtualbike_zwift.swift

* dynamic gears

* trying also on dircon but it doesn't work

* adding the android part

* gears works on android too!

* Update virtualbike.cpp

* setting added

* char 1224 removed

* Update project.pbxproj

* Update dirconmanager.cpp

* Update virtualbike.cpp

* Update virtualbike.cpp
2024-10-31 06:25:55 +01:00
Roberto Viola
281590cf63 Wahoo Custom gearing ranges/ratios (#2682)
* first raw version

* Update project.pbxproj

* Update virtualbike_zwift.swift

* fixing formula

* fixing casting to double

* need to center the values in the table

* Update gears.qml

* Revert "Update gears.qml"

This reverts commit 0f149448b3.

* Update gears.qml

* i need to save the first 3 static objects and use it in the wahoo module

* qml finally saves the settings correctly

* completed?

* Update project.pbxproj

* fixing gear conversion

* adding max and minGears

* fixing UI and settings

* kickr core to wahookickr class
2024-10-31 05:21:43 +01:00
Roberto Viola
6759fb9ec0 I_ROWER fix #842 2024-10-30 14:21:51 +01:00
Roberto Viola
c7dad4f1ad Keiser M3i Heart Rate is Erratic (Issue #2711) 2024-10-30 09:38:00 +01:00
Roberto Viola
d29726632b handling resistance_lvl_mode on ftmsbike with zwift for don't affect wahoo climb 2024-10-29 14:15:26 +01:00
Roberto Viola
95e5c58a92 I_ROWER fix #842 2024-10-29 13:56:34 +01:00
Roberto Viola
8c5a3693c8 trying handling workout state for PM4 (#2398) 2024-10-28 20:21:51 +01:00
Roberto Viola
7aa1061b06 zonehr="0" ignored from xml training program file (Issue #2703) 2024-10-28 13:38:24 +01:00
Roberto Viola
46bd172d59 zonehr="0" ignored from xml training program file (Issue #2703) 2024-10-28 11:31:37 +01:00
Roberto Viola
d4dbaf5c57 Adidas Treadmill #1705 (#2705) 2024-10-28 09:45:49 +01:00
Roberto Viola
6b4d47c79d virtufit etappe 2.0i #2706 2024-10-28 08:59:02 +01:00
Roberto Viola
1bd32ade9f virtufit iConsole HTR 2.1 #2704 2024-10-27 20:22:16 +01:00
Roberto Viola
5e1f3abd14 virtufit iConsole HTR 2.1 #2704 2024-10-27 19:55:36 +01:00
Roberto Viola
5bf7ecab64 Update horizontreadmill.cpp 2024-10-27 06:54:42 +01:00
Roberto Viola
dd75df0af8 TRX4500 iOS connecting issue? 2024-10-27 06:47:10 +01:00
Roberto Viola
72de08f9a3 Schwinn 590U / 190U #2701 2024-10-27 06:42:17 +01:00
Roberto Viola
13213edb4f Elite Qubo Digital Smart B+ #1834 2024-10-27 06:38:22 +01:00
Roberto Viola
872b618ea1 Update stagesbike.cpp 2024-10-25 12:08:41 +02:00
Roberto Viola
78e7fe76c6 Elite Qubo Digital Smart B+ #1834 2024-10-25 11:30:57 +02:00
Roberto Viola
980245bbfc Wellfit treadmill support (issue #2659) 2024-10-24 19:15:40 +02:00
Roberto Viola
2fd98a0be0 adding some debug log on the peloton methods 2024-10-24 16:01:39 +02:00
Roberto Viola
700f5debe5 Update virtualbike.cpp 2024-10-24 15:47:41 +02:00
Roberto Viola
06b4604e59 HOI Cross+ from Kettler #2694 2024-10-24 15:24:22 +02:00
Roberto Viola
a6fd6b71d6 Inconsistent resistance with 'Get Gears from Zwift' setting in latest version of QZ. (Issue #2680) 2024-10-24 15:17:31 +02:00
Roberto Viola
da194caf7c Raspberry Binaries and Images (#2673) 2024-10-24 13:43:34 +02:00
Roberto Viola
fa45e1040f HOI Cross+ from Kettler #2694 2024-10-24 11:46:57 +02:00
Roberto Viola
09f0357763 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-10-24 11:38:00 +02:00
Roberto Viola
f82e106fc1 Wellfit treadmill support (issue #2659) 2024-10-24 10:58:35 +02:00
Roberto Viola
906431b3a6 Controls not working on mobvoi treadmill plus #2683 2024-10-24 10:29:13 +02:00
Roberto Viola
e82a76492a Inconsistent resistance with 'Get Gears from Zwift' setting in latest version of QZ. (Issue #2680) 2024-10-23 20:53:20 +02:00
Roberto Viola
8c75c01017 Workoutdoors treadmill compatibility (#2693) 2024-10-23 20:05:34 +02:00
Roberto Viola
dfabd2b414 Update project.pbxproj 2024-10-23 11:42:13 +02:00
Roberto Viola
8199dea809 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-23 11:25:48 +02:00
Roberto Viola
1cb20088b2 I_ROWER fix #842 2024-10-23 10:58:34 +02:00
Roberto Viola
203a9e5ca5 resistance against negative gradient #2677 2024-10-23 10:15:34 +02:00
Roberto Viola
5a70586756 resistance against negative gradient #2677 2024-10-23 10:02:20 +02:00
Roberto Viola
478beca96d JUSTO device added 2024-10-23 08:18:35 +02:00
Roberto Viola
637b57158a Wellfit treadmill support #2659 (#2686)
* n Wellfit treadmill support #2659

* Update horizontreadmill.cpp
2024-10-22 17:34:05 +02:00
Roberto Viola
a2009fa91f Inconsistent resistance with 'Get Gears from Zwift' setting in latest version of QZ. #2680 2024-10-22 16:40:35 +02:00
Roberto Viola
4ee5fa3b00 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-22 15:32:41 +02:00
Roberto Viola
36dde79dac Zwift Cog Virtual Gearing in ERG mode (Issue #2685) 2024-10-22 10:03:24 +02:00
Roberto Viola
9071d8a000 Update project.pbxproj 2024-10-21 17:35:18 +02:00
Roberto Viola
1c815e9d47 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-21 17:29:31 +02:00
Roberto Viola
9b16779293 Update project.pbxproj 2024-10-21 15:41:55 +02:00
Roberto Viola
c702477dc8 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-21 15:38:03 +02:00
Roberto Viola
b54df1d299 Proform 575i (Issue #2652) 2024-10-21 12:06:57 +02:00
Roberto Viola
548a254262 fixing crash on "TREADMILL" 2024-10-21 07:37:51 +02:00
Roberto Viola
d7330ad654 Elite Kura #2679 2024-10-20 15:56:01 +02:00
Roberto Viola
cfe02d3489 Cannot connect to ESLinker treadmill #2628 2024-10-18 15:00:28 +02:00
Roberto Viola
973bc4309d Cannot connect to ESLinker treadmill #2628 2024-10-18 14:53:31 +02:00
Roberto Viola
2112ed111f 2.18.1 2024-10-18 10:58:49 +02:00
Roberto Viola
95d714ea0c Update project.pbxproj 2024-10-18 09:48:07 +02:00
Roberto Viola
cad60e3343 SHAWN PAVLIN ASCEND S2 Erg Mode (Issue #2660) 2024-10-18 09:47:11 +02:00
Roberto Viola
c1f0640eda Update project.pbxproj 2024-10-18 09:39:31 +02:00
Roberto Viola
d511f0ea95 Zwift play emulator #2391 (#2613)
* trying on ios

* Update virtualbike_zwift.swift

* dynamic gears

* trying also on dircon but it doesn't work

* adding the android part

* gears works on android too!

* Update virtualbike.cpp

* adding zwift play service

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* fixing iOS UUID?

* porting to android too

* Update virtualbike.cpp

* Update virtualbike.cpp

* Update virtualbike.cpp

* Update virtualbike.cpp

* Update virtualbike.cpp

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* zwift play ask 1 passed!

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* seems to work apart the wattage to zwift

* Update virtualbike_zwift.swift

* accolumulated torque but it doesn't seem necessary

* the gearing is working!

* reverting torque not necessary

* increasing UI speed for the gear changing

* Update project.pbxproj

* handling slope

* fixing difficulty

* trying to use the wahoo service for gears also on dircon

* changing gears quickly

* merging modification on android/linux

* Update virtualbike.cpp

* fixing android

* fixing starting gears with the new zwift version

* adding setting for enabling it

* Update project.pbxproj

* Update virtualbike_zwift.swift

* Update virtualbike_zwift.swift

* fixing gears formatting

* Update project.pbxproj
2024-10-18 09:03:12 +02:00
Roberto Viola
96ad01f78c Update project.pbxproj 2024-10-17 17:21:35 +02:00
Roberto Viola
bdb5ed9ec1 Cannot connect to ESLinker treadmill #2628 2024-10-17 17:17:11 +02:00
Roberto Viola
49b054330c Update esliCannot connect to ESLinker treadmill (Issue #2628)nkertreadmill.cpp 2024-10-17 17:07:14 +02:00
Roberto Viola
40feaa010d Update project.pbxproj 2024-10-17 16:14:49 +02:00
Roberto Viola
fbae0a48dc Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-17 15:04:22 +02:00
Roberto Viola
84a0f93cc1 Update project.pbxproj 2024-10-17 14:16:07 +02:00
Roberto Viola
642a89548c Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-17 14:08:20 +02:00
Roberto Viola
6ac19bd6b5 life fitness ic7 spin bike distance and kcal error 2024-10-17 14:03:56 +02:00
Roberto Viola
5eaf54ccf1 Proform 575i #2652 2024-10-17 09:23:20 +02:00
Roberto Viola
78f64180c7 Proform 575i #2652 2024-10-16 08:29:15 +02:00
Roberto Viola
d921c426e4 Wellfit treadmill support #2659 2024-10-15 17:51:34 +02:00
Roberto Viola
efb09e7a81 adding description in the hr settings 2024-10-15 15:35:57 +02:00
David Mason
cb8939849b Manufacturer update of test project (#2654)
* #2653 refactored test project

* #2653 doc file update

* #2653 added documentation on class members
Changed some variable names.
Deleted member object in destructor
2024-10-15 09:30:48 +02:00
Roberto Viola
60e990a6c4 2.18.0 android 2024-10-14 16:43:27 +02:00
Roberto Viola
7c258dc4a4 Update project.pbxproj 2024-10-14 16:40:50 +02:00
Roberto Viola
bae7abb765 Proform 575i (Issue #2652) 2024-10-14 16:31:43 +02:00
Roberto Viola
9b5eee64d8 Use Volume buttons for manually changing speed #2657 2024-10-14 13:49:50 +02:00
Roberto Viola
edfdc0ae6c Use Volume buttons for manually changing speed (Issue #2657) 2024-10-14 13:35:58 +02:00
Roberto Viola
ff7bc5dbec Tacx Neo 2 freewheel keeps spinning #2650 2024-10-14 10:24:40 +02:00
Sunguk Lee
cd918f3664 Initial implement start/stop control of KingSmith R2 when press start/pause/stop buttons (#813) 2024-10-12 07:02:40 +02:00
Roberto Viola
88ba9563ad Xiaomi treadmill x21 new type #2649 2024-10-11 18:54:16 +02:00
Roberto Viola
b12a3d39a7 Xiaomi treadmill x21 new type #2649 2024-10-11 18:19:07 +02:00
Roberto Viola
0bc0885439 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-10-10 09:30:04 +02:00
Roberto Viola
9b38e93cf4 Kingsmith K12 #2642 2024-10-10 09:29:58 +02:00
Roberto Viola
e87687f175 Master T40 treadmill #2640 2024-10-09 16:40:43 +02:00
Roberto Viola
1e681de8a3 Update project.pbxproj 2024-10-09 16:07:36 +02:00
Roberto Viola
27bf0667fa Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-09 15:52:45 +02:00
Roberto Viola
732cfce4a0 fixing gears on proformwifibike 2024-10-09 14:14:32 +02:00
Roberto Viola
516f301822 Update project.pbxproj 2024-10-09 14:14:07 +02:00
Roberto Viola
21a1a7b765 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-09 09:39:04 +02:00
Roberto Viola
f1e57967d3 Jetblack Vitctory Compatibility added 2024-10-08 16:33:53 +02:00
Roberto Viola
c6bf70b3e1 added the ability to use resistance instead of inclination on ftmsbike 2024-10-08 15:42:18 +02:00
Roberto Viola
f2e9f5b28a Update project.pbxproj 2024-10-08 14:42:47 +02:00
Roberto Viola
02737c8b41 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-10-08 13:56:42 +02:00
Roberto Viola
2455298bb1 Update project.pbxproj 2024-10-08 13:56:30 +02:00
Roberto Viola
779afb5b17 DeerRun Treadmill integration #2621 2024-10-08 09:01:35 +02:00
Roberto Viola
969843dde4 Adding “Next Rows” metric on QZ AI app (Issue #2584) 2024-10-07 15:42:06 +02:00
Roberto Viola
f371a5337d Adding “Next Rows” metric on QZ AI app (Issue #2584) 2024-10-07 15:30:43 +02:00
Roberto Viola
ef9e97a588 Update project.pbxproj 2024-10-07 14:57:46 +02:00
Roberto Viola
41de930b49 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-10-07 14:51:54 +02:00
Roberto Viola
4e1adee102 Training programs UI improvement (Issue #1537) 2024-10-07 14:49:57 +02:00
Roberto Viola
c66f623173 Update project.pbxproj 2024-10-07 14:29:34 +02:00
Roberto Viola
625f62b057 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-07 14:22:30 +02:00
Roberto Viola
a996cb32b9 add support for Proform Sport 7.0 treadmill (Issue #2635) 2024-10-07 11:58:50 +02:00
Roberto Viola
d1fd8f6a70 Step count must be the double to match Apple Watch counts 2024-10-05 20:52:40 +02:00
Roberto Viola
4a33008c61 Renpho smart bike r-q002 n (Issue #2401) (#2409) 2024-10-05 07:45:19 +02:00
Roberto Viola
9d808b28a4 Update project.pbxproj 2024-10-04 12:08:57 +02:00
Roberto Viola
f69aee817c fixing timeout for proformwifibike 2024-10-04 11:13:35 +02:00
Roberto Viola
b07a75df90 Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-04 10:38:33 +02:00
Roberto Viola
1e2af212ca Cannot connect to ESLinker treadmill (Issue #2628) 2024-10-04 10:37:46 +02:00
Roberto Viola
c36afc3173 Update project.pbxproj 2024-10-03 18:33:30 +02:00
Roberto Viola
1d5d29bf1d Cannot connect to ESLinker treadmill #2628 2024-10-03 16:32:37 +02:00
Roberto Viola
deb5eab79e Speed Adjustment Issue on FS 465D50 Walking Pad (Issue #2630) (#2631)
* Speed Adjustment Issue on FS 465D50 Walking Pad (Issue #2630)

* Revert "Speed Adjustment Issue on FS 465D50 Walking Pad (Issue #2630)"

This reverts commit 4b0a36bb8a.

* Update fitshowtreadmill.cpp

* Update project.pbxproj

* Revert "Update fitshowtreadmill.cpp"

This reverts commit 10d859fa70.

* better fix
2024-10-03 13:13:51 +02:00
Roberto Viola
e767e964ab ]DeerRun Treadmill integration #2621
i need to add it to the bluetooth.cpp
2024-10-03 11:43:35 +02:00
Roberto Viola
eb540dc579 removing gears_zwift_ratio for device that are not supporting it #2608 2024-10-02 21:07:17 +02:00
Roberto Viola
01cd02ef94 Felvon v2 #2627 2024-10-02 16:00:25 +02:00
Roberto Viola
77b2ec46d1 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-10-01 14:36:33 +02:00
Roberto Viola
cf6b1953e0 Update project.pbxproj 2024-09-30 18:14:36 +02:00
Roberto Viola
533fba4c6e Revert "Can not auto adjust downhill inclination in Kinomap- Sole TT8 treadmill #2625"
This reverts commit 1b597c16dd.
2024-09-30 18:13:25 +02:00
Roberto Viola
60068dea5b Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-30 17:34:21 +02:00
Roberto Viola
1b597c16dd Can not auto adjust downhill inclination in Kinomap- Sole TT8 treadmill #2625 2024-09-30 16:13:13 +02:00
Roberto Viola
5d4b2a1fe1 Update project.pbxproj 2024-09-30 16:12:47 +02:00
Roberto Viola
c39f80bdeb Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-30 15:50:56 +02:00
Roberto Viola
a220efa9a4 Update zwiftclickremote.cpp 2024-09-30 14:32:45 +02:00
Roberto Viola
23c803add1 Update project.pbxproj 2024-09-30 14:31:51 +02:00
Roberto Viola
e38d8f24b6 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541
https://github.com/cagnulein/qdomyos-zwift/issues/2541#issuecomment-2383003316
2024-09-30 14:29:48 +02:00
Roberto Viola
5eae092c52 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-29 16:04:17 +02:00
Roberto Viola
fb374d966d Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-29 08:02:13 +02:00
Roberto Viola
04141fbb9f Can not auto adjust downhill inclination in Kinomap (Issue #2625) 2024-09-28 20:02:45 +02:00
Roberto Viola
36ab693ae6 Bluetooth volume controls on Android not working to change gears (Issue #2614) (#2616)
* let's try

* Update MediaButtonReceiver.java

* Update MediaButtonReceiver.java

* fixing crash

* Update MediaButtonReceiver.java

* Update AndroidManifest.xml

* Update homeform.cpp

* Update MediaButtonReceiver.java

* Update homeform.cpp

* Update homeform.h

* Update MediaButtonReceiver.java

* Update homeform.cpp

* Update homeform.cpp
2024-09-27 14:49:50 +02:00
Roberto Viola
ad19afcb8f 2.17.0 - build 880 2024-09-27 12:31:30 +02:00
Roberto Viola
f0828fb66a Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-27 12:29:08 +02:00
Roberto Viola
17f4bd4d63 2.17.0 2024-09-27 12:14:27 +02:00
Roberto Viola
968c724480 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-27 12:12:45 +02:00
Roberto Viola
533328dabc Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-27 12:12:07 +02:00
Roberto Viola
b11db80e1c fixing debouncing for the zwift ride 2024-09-26 10:14:11 +02:00
Roberto Viola
bacc84a25b new zwift play gear down event 2024-09-26 09:18:13 +02:00
Roberto Viola
d37939ee37 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-26 08:22:39 +02:00
Roberto Viola
716e99c943 fixing debouncing issue on zwift ride 2024-09-25 20:55:02 +02:00
Roberto Viola
93a4ef1771 2.16.70 2024-09-24 08:51:08 +02:00
Roberto Viola
8bf9feacf1 Bluetooth Name Android (#2611)
* Bluetooth Name Android

* Update homeform.h

* Update homeform.cpp

* New echelon stride treadmill #2555
2024-09-21 08:37:37 +02:00
Roberto Viola
4441090687 Update project.pbxproj 2024-09-20 15:43:05 +02:00
Roberto Viola
eff72fddc1 Update settings.qml 2024-09-20 15:38:24 +02:00
Roberto Viola
e54a9e5961 New echelon stride treadmill (Issue #2555) 2024-09-20 13:35:52 +02:00
Roberto Viola
eb4e320679 Proform Carbon TL Connects But Peloton Cannot Force Speed and Incline #2571 2024-09-20 11:30:53 +02:00
Roberto Viola
bbe0a4091c Update project.pbxproj 2024-09-19 16:17:29 +02:00
Roberto Viola
15f013071c Update bluetooth.cpp 2024-09-19 15:47:43 +02:00
Roberto Viola
7ea23b0ddc Update echelonstride.cpp 2024-09-19 15:11:01 +02:00
Roberto Viola
f132a00d30 gears on erg mode for ftmsbike 2024-09-19 14:07:57 +02:00
Roberto Viola
70c0bd9120 fixing distance on tacx flux s 2024-09-19 13:24:12 +02:00
Roberto Viola
45d0b78ec2 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-19 11:08:52 +02:00
Roberto Viola
a276861729 older power zone class does not grab homefitnessbuddy erg #2606 2024-09-19 11:08:46 +02:00
Roberto Viola
9846dc65a4 Revert "Update proformtreadmill.cpp (#2596)"
This reverts commit 5d66c6c513.
2024-09-18 20:03:38 +02:00
Roberto Viola
c1bcdc045c Update project.pbxproj 2024-09-17 19:53:23 +02:00
Roberto Viola
f18cd53c80 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-17 17:14:57 +02:00
Roberto Viola
e6b70c03a4 Vany Rysel D100 smart trainer #2603 2024-09-17 15:43:23 +02:00
Roberto Viola
30562f0ed4 removing ergtable log 2024-09-17 15:33:38 +02:00
Roberto Viola
5d66c6c513 Update proformtreadmill.cpp (#2596) 2024-09-17 13:51:38 +02:00
Roberto Viola
762c33440e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-17 10:14:02 +02:00
Roberto Viola
c96ab6b86a Update project.pbxproj 2024-09-17 10:13:47 +02:00
Roberto Viola
b96cc70d51 Elite Aleno Turbo Trainer #2601 2024-09-17 09:39:59 +02:00
Roberto Viola
7f987c110a Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-17 08:40:40 +02:00
Roberto Viola
20473f1b31 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-16 17:38:49 +02:00
Roberto Viola
cd5ce73913 Update project.pbxproj 2024-09-16 16:32:03 +02:00
Roberto Viola
5b3e089b40 trying to implement zwift gear changes directly 2024-09-16 16:29:20 +02:00
Roberto Viola
a3252bd47d Update project.pbxproj 2024-09-16 14:57:14 +02:00
Roberto Viola
1bf4c33a7a adding gear offset 2024-09-16 14:46:39 +02:00
Roberto Viola
e1748022f2 Update bluetooth.cpp 2024-09-16 10:08:33 +02:00
Roberto Viola
ea93ab925c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-16 09:47:31 +02:00
Roberto Viola
77a361905b iConsole + Torneo C-720BL won't connect #2442 2024-09-16 09:47:22 +02:00
Roberto Viola
bc9e33aead Update project.pbxproj 2024-09-14 20:49:00 +02:00
Roberto Viola
7305e4fab6 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-14 20:40:29 +02:00
Roberto Viola
3b3d893447 New echelon stride treadmill #2555 2024-09-13 15:05:54 +02:00
Roberto Viola
bb69c9a86a Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-13 12:41:41 +02:00
Roberto Viola
5b6012ebbc SS2K + Peloton Bike (Low Impact Rides) #2527 2024-09-13 12:41:38 +02:00
Roberto Viola
d27335410b Bluetooth Remote on Linux CLI (#2553)
* let's see if build

* fixing linker error?

* Update EventHandler.h

* fixing build

* Update EventHandler.h

* Update EventHandler.h

* Update EventHandler.h

* Update main.cpp

* Update EventHandler.h

* Update EventHandler.h

* Update EventHandler.h

* Update EventHandler.h

* Update EventHandler.h

* -bluetooth-event-gear-device /dev/input/event2

* Update main.cpp
2024-09-13 12:06:35 +02:00
Roberto Viola
8801f1d6cf Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-13 11:35:48 +02:00
Roberto Viola
114ee5317a Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-13 11:32:45 +02:00
Roberto Viola
a675451f5e Update main.yml 2024-09-11 10:36:33 +02:00
Roberto Viola
7cdf9782af trying to fix artifacts 2024-09-11 09:55:47 +02:00
Roberto Viola
1a2c5683ad Update main.yml (#2585) 2024-09-10 12:25:32 +02:00
Roberto Viola
99bb36b7f5 Update project.pbxproj 2024-09-10 08:58:56 +02:00
Roberto Viola
9b0971973f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-10 08:58:03 +02:00
Roberto Viola
f8a1a33144 Update project.pbxproj 2024-09-10 08:57:44 +02:00
Roberto Viola
73ef8b4f03 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-10 08:56:48 +02:00
Roberto Viola
47fea6ee8e Revert "Xterra 4500 Incline Issue #2582"
This reverts commit b4a81243b8.
2024-09-09 16:14:22 +02:00
Roberto Viola
9ba5bdbb1b Update horizontreadmilltestdata.h 2024-09-09 15:58:06 +02:00
Roberto Viola
79a898d32b Wahoo Kickr not changing resistance when QZ acting as bridge for MYWHOOSH #2574 2024-09-09 11:51:10 +02:00
Roberto Viola
b4a81243b8 Xterra 4500 Incline Issue #2582 2024-09-09 11:02:16 +02:00
Roberto Viola
573394366b Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-09 10:54:18 +02:00
Roberto Viola
bce2d2605c WalkingPad MC21 treadmill #2580 2024-09-07 07:23:13 +02:00
Roberto Viola
3b943784c0 fixing crash on echelon in case of missing main service 2024-09-06 22:27:51 +02:00
Roberto Viola
52d91de7e4 Can't connect QZ to Zwift (Issue #2579) 2024-09-06 21:49:25 +02:00
Roberto Viola
ca830a988b Zwift Click connection issue #2576 2024-09-06 16:57:34 +02:00
Roberto Viola
2955ac9751 Power profile Domyos bike 500 (Issue #2573) 2024-09-06 12:02:50 +02:00
Roberto Viola
930cc4e016 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-09-06 09:35:45 +02:00
Roberto Viola
9bac3f8e7c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-09-06 09:00:43 +02:00
Roberto Viola
02fbff3f84 Several Issues Using QZ with Rouvy and Zwift Play Controllers (Issue #2541) 2024-09-06 09:00:39 +02:00
Roberto Viola
e8fb563b77 Domyos TC 540 Dirk Püschmann (Issue #2568) fe801547d 2024-09-06 08:58:59 +02:00
dadude2607
b9d5e6141f Skandika Morpheus: calc speed based on watts fixed (#2572)
The speed could not be calculated based on watt, because the code was in an unsolvable if query. I have changed the if query to "cadence", like on the Schwinn bike. Now the speed is calculated correctly as soon as you pedal. Before this fix the option "calculate speed based on watt" had be turned off
2024-09-06 07:15:58 +02:00
Roberto Viola
83185e0e95 Update project.pbxproj 2024-09-05 17:58:35 +02:00
Roberto Viola
fe801547dc Domyos TC 540 Dirk Püschmann (Issue #2568) 2024-09-05 17:53:33 +02:00
Roberto Viola
1ade078827 The zwift play controllers don't connect and the app crashes (Issue #2531) 2024-09-05 17:39:28 +02:00
dadude2607
36cf326fa4 Added HR for Skandika Morpheus issue #2566 (#2567)
* Added HR for Skandika Morpheus issue #2566

Because the morpheus behaves like a mixture of the x-2000 and the wiry, I have introduced a new variable. Speed, watts and rpm are read out like the wiry, but the heart rate is read out like the x-2000. With this code the morpheus works for me. I have attached a screenshot in the issue #2566. to distinguish an x-2000 from a Morpheus it seems to be enough to pay attention to the number of characters of the bluetooth name

* Update skandikawiribike.cpp

---------

Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2024-09-05 05:19:00 +02:00
Roberto Viola
0812f419c6 Skandika Morpheus Support (Issue #2566) 2024-09-04 08:14:07 +02:00
Roberto Viola
ee3f6a1d1f build 858 2024-09-03 11:30:26 +02:00
Roberto Viola
5e9e82e3f5 trying to fix layout on settings 2024-09-03 11:23:02 +02:00
Roberto Viola
f1636f7915 adding popup to power, cadence and hr sensor 2024-09-01 14:22:53 +02:00
Roberto Viola
c8555e543a Update homeform.cpp 2024-09-01 08:55:38 +02:00
Roberto Viola
496ea9f2be stopping homeform session when the trainprogram ends and the ends setting is enabled 2024-09-01 08:37:55 +02:00
Roberto Viola
892d949e72 NPE Runn sensor fantasy values #2558 2024-09-01 07:04:29 +02:00
Roberto Viola
5981e7cd00 BH i-Nexor Bike support? #2441 2024-09-01 07:02:22 +02:00
Roberto Viola
a6cc8b5e87 added inclination to the 3d maps for bikes 2024-08-30 09:34:27 +02:00
Roberto Viola
f07e7f9c1f ASCEND S2 Spin bike #2556 2024-08-30 08:23:55 +02:00
Roberto Viola
7e3eab5b8c New echelon stride treadmill #2555 2024-08-29 21:24:21 +02:00
Roberto Viola
a720717d5c Qz sets inclination to -15 on sole f85 treadmill, whenever zwift sends negative inclination #2552 2024-08-29 15:19:26 +02:00
Roberto Viola
ff16880fae Kettler Ergometer #2551 2024-08-29 14:43:46 +02:00
Roberto Viola
aba3ff502c Zu250s from ziYou bike #2548 2024-08-28 16:30:59 +02:00
Roberto Viola
4fe689ac55 font in the settings fixed 2024-08-28 16:03:03 +02:00
Roberto Viola
6b0777233d removed log of username settings for privacy reasons 2024-08-28 13:45:37 +02:00
Roberto Viola
c8c32a0860 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-08-28 11:14:21 +02:00
Roberto Viola
f4b6663c5d bluetooth connection issue of keep bike #2543 2024-08-28 11:14:00 +02:00
Roberto Viola
328f0992b6 Kettler Spin Bike Racer S #2542 2024-08-28 08:52:57 +02:00
Roberto Viola
f942282b7e bluetooth connection issue of keep bike #2543 2024-08-28 07:54:33 +02:00
Roberto Viola
c90849063e Revert " Treadmill stops automatically in Zwift #2539"
This reverts commit 4bb4aba109.
2024-08-27 15:46:18 +02:00
Roberto Viola
4f057bb88f increasing setting info text 2024-08-27 15:46:07 +02:00
Roberto Viola
4cae862455 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-08-27 10:02:20 +02:00
Roberto Viola
4b6da2bb95 big gears buttons added 2024-08-27 10:02:14 +02:00
Roberto Viola
7f0c589c50 Update project.pbxproj 2024-08-27 09:34:42 +02:00
Roberto Viola
df928caf99 Skipping gears in Zwift on IOS #2540 2024-08-27 09:12:36 +02:00
Roberto Viola
8142e75323 Skipping gears in Zwift on IOS #2540 2024-08-27 09:03:13 +02:00
Roberto Viola
95f51682c9 Several Issues Using QZ with Rouvy and Zwift Play Controllers #2541 2024-08-27 08:43:53 +02:00
Roberto Viola
4b74c22f95 Hammer Finnlo BF 90 (Issue #2538) 2024-08-27 08:29:50 +02:00
Roberto Viola
4bb4aba109 Treadmill stops automatically in Zwift #2539 2024-08-27 08:23:38 +02:00
Roberto Viola
10f39dac68 version 2.16.69 2024-08-26 08:09:56 +02:00
Roberto Viola
352aa40d0b Add Support for Echelon Stride 6S #2534 2024-08-25 16:16:58 +02:00
Roberto Viola
b6c2704e4f QZ calculates calories too low inaccurately. (Issue #2537) 2024-08-25 09:55:16 +02:00
Roberto Viola
fc7b043c8f Update project.pbxproj 2024-08-22 07:05:15 +02:00
Roberto Viola
f365fb3423 Domyos eb 900 still connects but stopped showing pedalling data (Issue #2533) 2024-08-22 07:01:28 +02:00
Roberto Viola
f6ffb08ed6 Add Support for Echelon Stride 6S #2534 2024-08-22 06:54:25 +02:00
Roberto Viola
78101b6191 Technogym Group Cycle Connect via ant+ #2528 2024-08-21 15:25:35 +02:00
Roberto Viola
d4f74c3287 Technogym Group Cycle Connect via ant+ #2528 2024-08-21 14:58:04 +02:00
Roberto Viola
e09afb91db The zwift play controllers don't connect and the app crashes (Issue #2531) 2024-08-21 14:35:42 +02:00
Roberto Viola
f87c08d580 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-08-21 12:32:39 +02:00
Roberto Viola
2029579c87 Technogym Group Cycle Connect via ant+ #2528 2024-08-21 12:32:21 +02:00
Roberto Viola
d8a9e88736 Update Garmin.java 2024-08-21 11:43:12 +02:00
Roberto Viola
ee1ed94692 Update project.pbxproj 2024-08-21 11:19:22 +02:00
Roberto Viola
73798b87db Technogym Group Cycle Connect via ant+ #2528 2024-08-21 11:17:25 +02:00
Roberto Viola
c98bf5ca35 Treadmill incline multiplied on QZ output [BUG] (Issue #2511) 2024-08-18 13:49:08 +02:00
Roberto Viola
f7a2d30554 2.16.68 2024-08-17 13:30:04 +02:00
Roberto Viola
b826e93644 New Zwift Play Model #2520 2024-08-17 10:20:03 +02:00
Roberto Viola
e9a446a2e7 Virtual shifting not working (Issue #2519) 2024-08-16 21:52:17 +02:00
Roberto Viola
7aab56ea93 wizard shouldn't show if it's a wifi device 2024-08-16 21:46:42 +02:00
Roberto Viola
3abf955713 Pro-form Carbon E7 not connecting #2515 2024-08-16 07:09:33 +02:00
Roberto Viola
430f41e5b9 HARISON-X15 #2517 2024-08-16 06:29:51 +02:00
Roberto Viola
fdbb70fd73 Treadmill incline multiplied on QZ output [BUG] #2511 2024-08-16 06:24:48 +02:00
Roberto Viola
bddd8cfaae Update Wizard.qml 2024-08-15 11:00:13 +02:00
Roberto Viola
b81656c369 Kingsmith WalkingPad Z1 not connecting to QZ (Issue #2506) 2024-08-13 20:46:59 +02:00
Roberto Viola
4fe2cf6ea6 Name device change (Issue #2508) 2024-08-12 11:54:14 +02:00
Roberto Viola
c23b936eca Update project.pbxproj 2024-08-12 09:19:36 +02:00
Roberto Viola
445e8691f6 Kingsmith WalkingPad Z1 not connecting to QZ (Issue #2506) 2024-08-12 09:15:56 +02:00
Roberto Viola
a100d4cc96 Update project.pbxproj 2024-08-10 20:28:46 +02:00
Roberto Viola
6384268aff Kingsmith WalkingPad Z1 not connecting to QZ (Issue #2506) 2024-08-10 20:20:49 +02:00
Roberto Viola
b5c68f5e6c Update project.pbxproj 2024-08-09 16:13:38 +02:00
Roberto Viola
6092bbd3c3 Virtual iFit - Auto-resistance/incline not working #2467 2024-08-09 15:24:17 +02:00
Roberto Viola
3e6c170289 Revert "Virtual iFit - Auto-resistance/incline not working #2467"
This reverts commit 3327b8b1e6.
2024-08-09 15:21:00 +02:00
Roberto Viola
24fe3c625d Shifter stopped working after Qdomyos #561
https://github.com/doudar/SmartSpin2k/issues/561
2024-08-09 15:10:41 +02:00
Roberto Viola
8dd03df9a2 Nordictrack EXP 5i #2502 2024-08-07 14:23:34 +02:00
Roberto Viola
f81929fe60 fixing crash on trainprogram overflow 2024-08-07 14:07:10 +02:00
Roberto Viola
dd7a5cb82b Unable to connect my Zwift Play to QZ (Issue #2458) 2024-08-06 23:59:36 +02:00
Roberto Viola
d233f04f67 Unable to connect my Zwift Play to QZ (Issue #2458) 2024-08-06 23:18:56 +02:00
Roberto Viola
09e51d6013 Unable to connect my Zwift Play to QZ (Issue #2458) 2024-08-06 22:26:31 +02:00
Roberto Viola
06f72ba937 Unable to connect my Zwift Play to QZ (Issue #2458) 2024-08-06 22:00:36 +02:00
Roberto Viola
13f9502592 Unable to connect my Zwift Play to QZ #2458 2024-08-06 20:29:16 +02:00
Roberto Viola
71afb2881f Update project.pbxproj 2024-08-06 07:18:28 +02:00
Roberto Viola
2094222a54 fix typo in the settings 2024-08-05 21:06:46 +02:00
Roberto Viola
369653bd24 trying to fix again fgchecker (#2503)
* trying to fix again fgchecker

* adding classes

* Update main.yml

* Update main.yml

* Update main.yml
2024-08-05 19:07:38 +02:00
Roberto Viola
3327b8b1e6 Virtual iFit - Auto-resistance/incline not working #2467 2024-08-05 11:16:09 +02:00
Roberto Viola
fc59813aef Fixing fgchecker (#2500)
* fixing fgchecker

* Update build.gradle

* Update build.gradle
2024-08-05 11:11:29 +02:00
Roberto Viola
01cf3a1f95 No metrics showing on Apex Rides bike (Issue #2459) 2024-08-05 09:41:55 +02:00
Roberto Viola
faa62aae2b 3G Cardio Elite Recumbent Bike X - Resistance not working #2488 2024-08-05 08:58:30 +02:00
Roberto Viola
0e22f92002 YOSUDA rower #2498 2024-08-05 08:53:27 +02:00
Roberto Viola
9fdf9326c5 Yesoul G1M Plus #2497 2024-08-04 20:21:15 +02:00
Roberto Viola
ff538529ec Can’t link to my machine /watch #2495 2024-08-04 18:11:44 +02:00
Roberto Viola
cc517fc7ee No metrics showing on Apex Rides bike #2459 2024-08-02 14:19:49 +02:00
Roberto Viola
0fc300c451 Virtual iFit - Auto-resistance/incline not working #2467 2024-08-02 08:52:47 +02:00
Roberto Viola
233862ec99 Virtual iFit - Auto-resistance/incline not working #2467 2024-08-01 22:17:10 +02:00
Roberto Viola
a44158730a Virtual iFit - Auto-resistance/incline not working #2467 2024-08-01 21:13:46 +02:00
Roberto Viola
e97c2e4a89 Update project.pbxproj 2024-08-01 14:46:58 +02:00
Roberto Viola
d3ba36ac53 Virtual iFit - Auto-resistance/incline not working (Issue #2467) 2024-08-01 09:03:56 +02:00
Roberto Viola
a4b54a5669 Virtual iFit - Auto-resistance/incline not working (Issue #2467) 2024-07-31 17:36:03 +02:00
Roberto Viola
8365d4dae6 Virtual iFit - Auto-resistance/incline not working (Issue #2467) 2024-07-31 13:47:50 +02:00
Roberto Viola
76dcac37d6 Android location services request (#1942)
* Update main.cpp

* adding java class

* Update LocationHelper.java

* Update LocationHelper.java

* Update LocationHelper.java

* Update LocationHelper.java

* Update LocationHelper.java

* Update LocationHelper.java

* Update LocationHelper.java

* Revert "Update LocationHelper.java"

This reverts commit 17878ea855.

* showing question

* Revert "showing question"

This reverts commit c7b24c7c07.

* Reapply "Update LocationHelper.java"

This reverts commit e90ce3c457.

* adding methods

* message boxex

* fixed everything

* Update Home.qml
2024-07-31 13:05:28 +02:00
Roberto Viola
c44bc1087d Startup wizard v2 (#2473)
* adding wizard

* Update Wizard.qml

* fixing close

* first run doesn't work yet

* fixing layout

* Update Wizard.qml

* adding spacer to the back button

* adding 2 page for peloton credentials and difficulty

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml

* Revert "Update Wizard.qml"

This reverts commit e875aa93e6.

* Update Wizard.qml

* Update Wizard.qml

* Update Wizard.qml
2024-07-31 09:59:03 +02:00
Roberto Viola
38cde07626 Virtual iFit - Auto-resistance/incline not working #2467 2024-07-31 09:27:25 +02:00
Roberto Viola
8a849c093c fixing onServiceAdded on android for all the virtual devices 2024-07-30 09:35:02 +02:00
Roberto Viola
ef7cae7b38 Android, finally, can send both hr and cadence via bluetooth 2024-07-29 22:11:58 +02:00
Roberto Viola
b7bcfddcee Virtual iFit - Auto-resistance/incline not working #2467 2024-07-29 22:02:24 +02:00
Roberto Viola
4e702a62d4 Pro Form CarbonT7 Not Connecting #2474 2024-07-29 21:27:37 +02:00
Roberto Viola
0c990135eb Virtual iFit - Auto-resistance/incline not working #2467 2024-07-29 18:58:17 +02:00
Roberto Viola
25cb605d6d Virtual iFit - Auto-resistance/incline not working #2467 2024-07-29 16:46:28 +02:00
Roberto Viola
4717a79b5a Update project.pbxproj 2024-07-29 14:26:21 +02:00
Roberto Viola
8d39ace35b Tunturi FitCycle i70 - Incorrect RPM data after 99. #2490 2024-07-29 14:23:05 +02:00
Roberto Viola
236c3bc7d0 DFC Power Sensor #2491 2024-07-29 14:07:22 +02:00
Roberto Viola
e93caebe2a Pro Form CarbonT7 Not Connecting #2474 2024-07-29 09:13:18 +02:00
Roberto Viola
291d09ce41 3G Cardio Elite Recumbent Bike X - Resistance not working #2488 2024-07-29 08:55:19 +02:00
Roberto Viola
98128f3fa9 reverting ios files 2024-07-27 16:25:36 +02:00
Roberto Viola
148bcb3548 Reapply "Autopause Thread Conflict #2487"
This reverts commit f3bcbd3312.
2024-07-27 16:25:05 +02:00
Roberto Viola
f3bcbd3312 Revert "Autopause Thread Conflict #2487"
This reverts commit 736dfefc31.
2024-07-27 16:21:49 +02:00
Roberto Viola
736dfefc31 Autopause Thread Conflict #2487 2024-07-27 16:14:00 +02:00
Roberto Viola
91217a51c9 Jasport C3 #2484 2024-07-26 18:31:01 +02:00
Roberto Viola
de8fcada5b Update project.pbxproj 2024-07-26 18:01:42 +02:00
Roberto Viola
afffaa6a85 Yesoul FTMS Bike #2444 2024-07-26 18:00:38 +02:00
Roberto Viola
b54d4cea42 kickr core with ftms was still using the stagesbike profile because it doesn't advertise the ftms service 2024-07-26 14:03:09 +02:00
Roberto Viola
fc62fcf461 No metrics showing on Apex Rides bike #2459 2024-07-25 21:44:11 +02:00
Roberto Viola
57ef6071b7 Virtual iFit - Auto-resistance/incline not working #2467 2024-07-25 21:14:25 +02:00
Roberto Viola
ad86c1abff Fassi 9.4 hrc #2480 2024-07-25 20:50:37 +02:00
Roberto Viola
9963508b79 Fassi 9.4 hrc #2480 2024-07-25 18:23:05 +02:00
Roberto Viola
5f958b4618 Update qzsettings.cpp 2024-07-25 16:43:10 +02:00
Roberto Viola
e4930ecbcb fixing next row for treadmill 2024-07-25 16:38:06 +02:00
Roberto Viola
9d8be8ae4f fixing pace color issue on treadmill when you are using a zwo file 2024-07-25 16:34:51 +02:00
Roberto Viola
6ddbfe4a86 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-07-25 16:22:27 +02:00
Roberto Viola
ebf49d20db Virtual iFit - Auto-resistance/incline not working #2467 2024-07-25 16:22:21 +02:00
Roberto Viola
5196db1a84 Update project.pbxproj 2024-07-24 21:58:54 +02:00
Roberto Viola
491f05dc14 Domyos Bike FTMS #2479 2024-07-24 21:54:39 +02:00
Roberto Viola
51dabda33e Fassi 9.4 hrc #2480 2024-07-24 21:49:29 +02:00
Roberto Viola
1286c2105d Home fitness buddy incompatibility? (Issue #2472) 2024-07-24 21:41:31 +02:00
Roberto Viola
6accc034ab Domyos Bike FTMS #2479 2024-07-24 19:37:30 +02:00
Roberto Viola
6de18ee563 Not collecting data from Bowflex IC SE bike #2477 2024-07-24 17:46:26 +02:00
Roberto Viola
a2dcda53df FP-TECH FITNESS Treadmill #2478 2024-07-24 17:44:09 +02:00
Roberto Viola
84d60f0301 Virtual shifting lags (Issue #2470) 2024-07-24 07:25:56 +02:00
Roberto Viola
49c91df0b7 Life Fitness T5 no stats showing (Issue #2476) 2024-07-24 07:13:22 +02:00
Roberto Viola
e82d2de889 Update project.pbxproj 2024-07-23 13:52:51 +02:00
Roberto Viola
c558aadc8f Peloton Treadmill Pace Levels #2469 2024-07-23 11:59:10 +02:00
Roberto Viola
21c5b62d71 Virtual shifting lags (Issue #2470) 2024-07-23 10:12:47 +02:00
Roberto Viola
8ae32e7daf Virtual iFit - Auto-resistance/incline not working #2467 2024-07-22 19:14:37 +02:00
Roberto Viola
f195ef1c30 Unable to connect my Zwift Play to QZ (Issue #2458) 2024-07-22 18:39:33 +02:00
Roberto Viola
1bd865f142 fixing footer always visible 2024-07-22 18:31:02 +02:00
Roberto Viola
de5c37189b ability to resize the footer 2024-07-18 20:23:06 +02:00
Roberto Viola
d4595c7bdb Unable to connect my Zwift Play to QZ #2458 2024-07-18 16:42:33 +02:00
Roberto Viola
608e240046 iFit looses connection to qdomyos #2119 2024-07-18 10:40:38 +02:00
Roberto Viola
2b76b27006 No metrics treadmill doesnt react to app BUG] #2453 (#2454)
* Update fitshowtreadmill.cpp

* adding setting
2024-07-15 22:26:41 +02:00
Roberto Viola
288709ca27 2.1.6.66 2024-07-15 22:02:22 +02:00
Roberto Viola
28a629fa62 fixing crash on garmin null recv on android 2024-07-15 21:58:19 +02:00
Roberto Viola
69f440ecee trying to definitely fixing the registerReceiver issue
(i got a confirmation for the ANT+ one, so let's adopt this for all the rest)
2024-07-15 21:08:45 +02:00
Roberto Viola
fb9e0c285e Update ChannelService.java 2024-07-15 17:45:52 +02:00
Roberto Viola
954948de9e Update ChannelService.java 2024-07-15 16:37:27 +02:00
Roberto Viola
b0b702733f Update ChannelService.java 2024-07-15 16:31:42 +02:00
Roberto Viola
3a88433d1c trying to fix registerReceiver 2024-07-15 16:30:37 +02:00
Roberto Viola
a1095b4219 Zwift api Windows MSVC (#2450)
* first test on CI

* Update main.yml

* Update qdomyos-zwift.pri

* mingw-w64-x86_64-protobuf

* Update qdomyos-zwift.pri

* Update main.yml

* adding protobuf to src folder

* Update main.yml

* Update main.yml

* adding absl

* absl from mingw

* building protobuf

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* adding mingw64 binary

* adding mingw libabsl

* Update main.yml

* builds on mingw

* required lib for libabsl

* trying to fix mingw build

* Update main.yml

* trying to msvc first

* Update qdomyos-zwift.pri

* trying to put the protobuf lib on the same src dir

* again msvc first

* JLL T550 #2161

* Update main.yml

* Update main.yml

* Update qdomyos-zwift.pri

* Revert "Update qdomyos-zwift.pri"

This reverts commit 7e12ca0476.

* adding absl on msvc

* building absl inside protobuf for debug

* Update qdomyos-zwift.pri

* adding vcpkg

* adding submodule

* vcpkg

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* using vcpkg

* Update main.yml

* Update qdomyos-zwift.pri

* Update qdomyos-zwift.pri

* include removing, using vcpkg

* Update main.yml

* Update main.yml

* protobuf

* Update trainprogram.cpp

* Update main.yml

* starting to port the same on linux

* Update trainprogram.cpp

* Update main.yml

* Update main.yml

* Update trainprogram.cpp

* Update main.yml

* Update qdomyos-zwift.pri

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update qdomyos-zwift.pri

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* fixing ai build

* Update main.yml

* Update main.yml

* fixing linux build

* Update main.yml

* Update main.yml

* fixing iOS build

* Update main.yml

* Update bluetooth.cpp

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update qdomyos-zwift.pri

* Update qdomyos-zwift.pri

* Update main.yml

* check_op

* Update main.yml

* removing zlib1.dll ?

* fixing noblepro issue

* removing vcpkg, let's build protobuf from scratch

* Update main.yml

* Update main.yml

* Update main.yml

* Revert "Update main.yml"

This reverts commit 9f40ddbb9d.

* Revert "Update main.yml"

This reverts commit 074b4509f6.

* Revert "Update main.yml"

This reverts commit 81798642af.

* Revert "removing vcpkg, let's build protobuf from scratch"

This reverts commit 1e3cde341d.

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Removing FTMS only limitation for windows?

* Update trainprogram.cpp

* forcing specific version of protoc on vcpkg

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* reverting protobuf, let's compile using the 4 next

* built with the newer protoc

* using 4.25.1 also for protoc

* ready for merge?

* fixing build

* Update trainprogram.cpp

* Update qdomyos-zwift.pri
2024-07-15 12:30:24 +02:00
Roberto Viola
7a7619438c adding import on ChannelService 2024-07-15 11:23:15 +02:00
Roberto Viola
12dff6404c trying to fix registerreceiver on android < 14 2024-07-15 10:59:24 +02:00
Roberto Viola
a8e3a672d4 Update main.cpp 2024-07-15 09:57:42 +02:00
Roberto Viola
3ebd94a278 Does not connect to Proform TDF with Pi 0 W (Issue #2387) 2024-07-15 08:50:11 +02:00
Roberto Viola
4a7f22f699 2.16.64 2024-07-14 09:22:36 +02:00
Roberto Viola
e0ac6c2ec4 adding implementation "androidx.core:core:1.12.0" just to be sure 2024-07-13 22:59:28 +02:00
Roberto Viola
7723be4356 BH Osaka bike #2425 2024-07-13 22:27:21 +02:00
Roberto Viola
c53bf1a2ab BH i-Nexor Bike support? (Issue #2441) 2024-07-13 21:37:41 +02:00
Roberto Viola
6f8d1fefac updating garmin sdk 2024-07-13 00:11:29 +02:00
Roberto Viola
9edea7d50d reverting error 2024-07-12 21:07:41 +02:00
Roberto Viola
17e6afd09d Android crash on notification
Exception java.lang.RuntimeException:
  at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5286)
  at android.app.ActivityThread.-$$Nest$mhandleServiceArgs
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2531)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:230)
  at android.os.Looper.loop (Looper.java:319)
  at android.app.ActivityThread.main (ActivityThread.java:8919)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)
Caused by android.app.MissingForegroundServiceTypeException:
  at android.app.MissingForegroundServiceTypeException$1.createFromParcel (MissingForegroundServiceTypeException.java:53)
  at android.app.MissingForegroundServiceTypeException$1.createFromParcel (MissingForegroundServiceTypeException.java:49)
  at android.os.Parcel.readParcelableInternal (Parcel.java:4882)
  at android.os.Parcel.readParcelable (Parcel.java:4864)
  at android.os.Parcel.createExceptionOrNull (Parcel.java:3064)
  at android.os.Parcel.createException (Parcel.java:3053)
  at android.os.Parcel.readException (Parcel.java:3036)
  at android.os.Parcel.readException (Parcel.java:2978)
  at android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:7234)
  at android.app.Service.startForeground (Service.java:775)
  at org.cagnulen.qdomyoszwift.ForegroundService.onStartCommand (ForegroundService.java:32)
  at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5268)
2024-07-12 21:04:47 +02:00
Roberto Viola
27d58a6f26 Update project.pbxproj 2024-07-12 19:56:28 +02:00
Roberto Viola
d4028290ed Live Chart for Power and Heart Rate (Issue #2159) 2024-07-12 19:55:42 +02:00
Roberto Viola
5cf21ee3ce NordicTrack S15i bike with MyWoosh (Issue #2436) 2024-07-12 19:55:26 +02:00
Roberto Viola
671be1d3ab Update project.pbxproj 2024-07-11 20:49:24 +02:00
Roberto Viola
846f921c8f NordicTrack S15i bike with MyWoosh (Issue #2436) 2024-07-11 20:41:39 +02:00
Roberto Viola
ec67d56de3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-07-11 20:39:13 +02:00
Roberto Viola
b13d3b907b Update project.pbxproj 2024-07-11 18:17:29 +02:00
Roberto Viola
79054d4ef2 Connects to BH Fitness iConcept Boxster Dual but nothing works (Issue #2443) 2024-07-11 18:14:42 +02:00
Roberto Viola
233f9e27b2 BH i-Nexor Bike support? #2441 2024-07-11 18:03:30 +02:00
Roberto Viola
5709b9570f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-07-11 17:00:49 +02:00
Roberto Viola
ef0152da09 BH i-Nexor Bike support? (Issue #2441) 2024-07-11 17:00:36 +02:00
Roberto Viola
d5c7fc894e Live Chart for Power and Heart Rate #2159 (#2440)
* Live Chart for Power and Heart Rate #2159

* Update project.pbxproj

* Update qml.qrc

* Update dochartliveheart.js

* Update project.pbxproj

* Update dochartliveheart.js

* fixing layout

* Update project.pbxproj

* Update chartlive.htm

* BH i-Nexor Bike support? #2441

* adjusting padding

* fixing

* Update project.pbxproj
2024-07-11 16:56:37 +02:00
Roberto Viola
7a1a4f7a61 BH i-Nexor Bike support? #2441 2024-07-11 16:17:48 +02:00
Roberto Viola
bebed7e6ca Update bluetooth.cpp 2024-07-11 16:07:37 +02:00
Roberto Viola
487a6da9d4 JetBlack Volt V1 #2445 2024-07-11 15:59:30 +02:00
Roberto Viola
9cee8ea043 FlexNest bike added #2444 2024-07-11 15:38:22 +02:00
Roberto Viola
5f83862ad7 iConsole + Torneo C-720BL won't connect #2442 2024-07-11 15:07:00 +02:00
Roberto Viola
42545caa21 Connects to BH Fitness iConcept Boxster Dual but nothing works #2443 2024-07-11 14:53:23 +02:00
Roberto Viola
1a6ca728d5 Toorx srx 500 connects but no metrics load #2428 2024-07-11 09:50:30 +02:00
Roberto Viola
71fc9218c2 BH i-Nexor Bike support? #2441 2024-07-11 09:30:55 +02:00
Roberto Viola
5116a1260a Auto adjust running power from Stryd when using a treadmill incline #2437 2024-07-10 09:09:39 +02:00
Roberto Viola
4a70fdf554 Wahoo Headwind, HRM (Issue #2343) 2024-07-10 08:51:37 +02:00
Roberto Viola
807e144c5e BH Osaka bike #2425 2024-07-09 19:29:55 +02:00
Roberto Viola
08fb218f8c Cross Rope #2381 2024-07-09 17:11:01 +02:00
Roberto Viola
7787e6468a Change speed treadmill #1988 2024-07-09 12:12:38 +02:00
Roberto Viola
2a059cf493 FOREGROUND_SERVICE_CONNECTED_DEVICE added for target api 34 on android 2024-07-08 20:10:19 +02:00
Roberto Viola
d84e52073a fixing android 14 targetting 2024-07-08 19:10:08 +02:00
Roberto Viola
3c34ec7d45 build 812 for android 2024-07-08 17:10:55 +02:00
Roberto Viola
2c54b30974 BH Osaka bike #2425 2024-07-08 17:08:24 +02:00
Roberto Viola
6631f7d1ba com.android.billingclient:billing:6.0.1 2024-07-08 16:52:17 +02:00
Roberto Viola
01a7bb8e49 2.16.61 2024-07-08 16:10:20 +02:00
Roberto Viola
d226c65cc5 api target to 34 2024-07-08 16:00:57 +02:00
Roberto Viola
4eeac31d06 Support for Proform 705 CST treadmill (firmware V80) (Issue #2430) 2024-07-08 14:44:51 +02:00
Roberto Viola
f8c3415db3 Update project.pbxproj 2024-07-08 14:27:03 +02:00
Roberto Viola
bded1f8697 iFit looses connection to qdomyos (Issue #2119) 2024-07-08 13:46:03 +02:00
Roberto Viola
4ff72dccbf Update project.pbxproj 2024-07-08 12:47:59 +02:00
Roberto Viola
afae83e923 Update floating.htm 2024-07-08 12:34:37 +02:00
Roberto Viola
6851eaf386 Floating window: adding total remaining time after the elapsed time (Issue #1863) 2024-07-08 12:28:13 +02:00
Roberto Viola
025384ef5b Update floating.htm 2024-07-08 11:19:07 +02:00
Roberto Viola
b37fef3bbd Update floating.htm 2024-07-08 10:56:19 +02:00
Roberto Viola
034e1dafb5 Floating window: adding total remaining time after the elapsed time (Issue #1863) 2024-07-08 10:06:48 +02:00
Roberto Viola
f95713dc80 Peloton Power Zone / Zwift ERG Auto Resistance Broken for EX3 w/ Power Meter Pedals (Issue #2431) 2024-07-08 09:36:45 +02:00
Roberto Viola
90ece532db Update project.pbxproj 2024-07-05 10:22:58 +02:00
Roberto Viola
8a5d418ada Unable to direct the treadmill from the application #2421
https://github.com/cagnulein/qdomyos-zwift/issues/2421#issuecomment-2210353875
2024-07-05 10:21:36 +02:00
Roberto Viola
5ea354fd19 BH Osaka bike #2425 2024-07-04 21:11:17 +02:00
Roberto Viola
fdf5eca726 BH Osaka bike #2425 2024-07-04 17:49:19 +02:00
Roberto Viola
70f5dc2cc4 BH Osaka bike #2425 2024-07-04 15:22:31 +02:00
Roberto Viola
f48e774d31 BH Osaka bike #2425 2024-07-04 11:49:44 +02:00
Roberto Viola
2195dcb1cb Unable to direct the treadmill from the application (Issue #2421) 2024-07-04 09:23:45 +02:00
Roberto Viola
e5e7ccb777 BH Osaka bike #2425 2024-07-04 09:21:44 +02:00
Roberto Viola
efbf6148ac BH Osaka bike #2425 2024-07-03 15:48:57 +02:00
Roberto Viola
1380d79909 wavefit B300 bike #2423 2024-07-03 06:54:32 +02:00
Roberto Viola
f5d1e6f7d2 Cecotec DrumFit Indoor 10000 MagnoMotor Connected #2420 2024-07-02 08:59:58 +02:00
Roberto Viola
d7acfc4dea fixing incline in zwo 2024-07-01 18:40:21 +02:00
Roberto Viola
352049a4c1 fixing peloton image 2024-07-01 14:32:55 +02:00
Roberto Viola
002ae1d62b Miweba MC700 ellipital Trainer #2419 2024-07-01 12:10:22 +02:00
Roberto Viola
674f01b9f4 removing peloton jpg after sending the email 2024-07-01 08:58:32 +02:00
Roberto Viola
93255eee35 Multiplicator for speed gain is not working in QZ when increasing speed on the treadmill (Issue #2417) 2024-06-30 10:54:37 +01:00
Roberto Viola
53aa1b361b Sport Synology Z5 Treadmill #2415 2024-06-28 09:25:34 +02:00
Roberto Viola
c6485f891c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-06-28 08:18:54 +02:00
Roberto Viola
ab73c97c36 Cross Rope #2381 2024-06-28 08:18:15 +02:00
Roberto Viola
49d56b1fc6 sports tech f37s treadmill #2412 2024-06-27 18:14:11 +02:00
Roberto Viola
5a6afbb500 adding Labgrey Magnetic Exercise Bike 2024-06-25 15:50:28 +02:00
Roberto Viola
b0a76d1aa0 Cross Rope #2381 2024-06-25 09:13:50 +02:00
Roberto Viola
9a99d0fc7b Strava Upload Prompt and Setting (#2406)
* i need to test it on android and ios

* Update project.pbxproj
2024-06-24 17:13:35 +02:00
Roberto Viola
2b43974dae Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-06-24 12:09:58 +02:00
Roberto Viola
33e5eaeb41 Update project.pbxproj 2024-06-24 12:09:45 +02:00
Roberto Viola
75c04e3f6b Flow Fitness - DCT2000i #2403 2024-06-24 12:09:31 +02:00
Roberto Viola
6a74c2015e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-06-24 11:23:26 +02:00
Roberto Viola
595a472780 Watt bike #2405 2024-06-24 10:55:40 +02:00
Roberto Viola
e937cd7481 Update project.pbxproj 2024-06-24 10:39:07 +02:00
Roberto Viola
5a72504eba Zwift Play, remap shifting buttons #2399
hanlding ftms char for tacx neo
2024-06-24 10:35:36 +02:00
Roberto Viola
acb1f3964a Zwift Play, remap shifting buttons #2399 2024-06-24 10:26:40 +02:00
Roberto Viola
00afd12f34 Change keyboard shortcut for gear shifting on Windows (Issue #2404) 2024-06-24 10:08:17 +02:00
Roberto Viola
54abdcda76 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-06-24 08:34:27 +02:00
Roberto Viola
7c1280c4e1 QZ app crashes when pairing with Technogym Run treadmill (Issue #2380) 2024-06-24 08:34:22 +02:00
Roberto Viola
50df26cbb9 GLT Bike #2402 2024-06-23 09:55:15 +02:00
Roberto Viola
db1de5ef31 Renpho smart bike r-q002 n (Issue #2401) 2024-06-22 21:04:35 +02:00
Roberto Viola
461068532a saving laps for jumprope #2381 2024-06-21 15:56:46 +02:00
Roberto Viola
4a23556257 Cross Rope #2381 2024-06-21 11:37:39 +02:00
Roberto Viola
a6ebc614e3 Cross Rope #2381 2024-06-21 11:15:29 +02:00
Roberto Viola
a6b530dc60 Floating window: adding total remaining time after the elapsed time (Issue #1863) 2024-06-21 09:06:06 +02:00
Roberto Viola
96c5b7e595 2.16.58 2024-06-20 11:32:59 +02:00
Roberto Viola
51413841cc Peloton FTMS Treadmill QZ on Android (#2397)
* let's try

* Update virtualtreadmill.cpp

* Update BleAdvertiser.java
2024-06-20 11:31:18 +02:00
Roberto Viola
fae69702fb Cross Rope #2381 2024-06-19 14:26:58 +02:00
Roberto Viola
f0fdf428d2 Cross Rope #2381 2024-06-19 12:16:37 +02:00
Roberto Viola
2c62c1268c 2.16.57 2024-06-18 14:21:55 +02:00
Roberto Viola
e2513cd25a QZ Not Finding FTMS Rower #2226 (#2382)
* forcing data

* Revert "forcing data"

This reverts commit 4668a0e171.

* adding service data to iOS

* Update project.pbxproj

* Revert "adding service data to iOS"

This reverts commit 0518d6677e.

* trying the android approach

* Update virtualrower.cpp

* Update virtualrower.cpp

* Update BleAdvertiser.java

* Update BleAdvertiser.java

* Update BleAdvertiser.java
2024-06-18 12:15:17 +02:00
Roberto Viola
c1ee0abaef Workout XML issue #2394 2024-06-18 09:37:17 +02:00
Roberto Viola
78df32ea8d Cross Rope #2381 2024-06-17 09:57:51 +02:00
Roberto Viola
87fe37721e works with peloton app!
QZ Not Finding FTMS Rower
#2226
2024-06-17 09:32:57 +02:00
Roberto Viola
f1d026d533 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-06-14 08:58:07 +02:00
Roberto Viola
f15fd05771 QZ app crashes when pairing with Technogym Run treadmill (Issue #2380) 2024-06-14 08:57:54 +02:00
Roberto Viola
c57be3c247 Update project.pbxproj 2024-06-14 08:43:02 +02:00
Roberto Viola
88a9dab57e Not updating heartrate on QZ app (iOS + applewatch) (Issue #2386) 2024-06-14 08:29:44 +02:00
Roberto Viola
9481601bc6 Cross Rope #2381 2024-06-13 16:31:44 +02:00
Roberto Viola
99967a9169 IO Fitness Arrow
https://www.fitnessdigital.it/bicicletta-smart-bike-ion-fitness-arrow-connect/p/10022863/
2024-06-11 08:46:51 +02:00
Roberto Viola
8f48421ddd QZ app crashes when pairing with Technogym Run treadmill (Issue #2380) 2024-06-11 08:43:26 +02:00
Roberto Viola
7f364e274b Update project.pbxproj 2024-06-10 14:41:20 +02:00
Roberto Viola
a215d5f129 JLL IC400 Pro and SS2k - Resistance problem (Issue #2360) 2024-06-10 09:16:15 +02:00
Roberto Viola
55b07e1415 QZ app crashes when pairing with Technogym Run treadmill (Issue #2380) 2024-06-10 08:59:22 +02:00
Roberto Viola
3e7617da5a JLL IC400 Pro and SS2k - Resistance problem (Issue #2360) 2024-06-09 16:56:38 +02:00
Roberto Viola
c65c784d96 Update project.pbxproj 2024-06-07 11:07:10 +02:00
Roberto Viola
afe5e52fdb paces in the email 2024-06-07 11:04:38 +02:00
Roberto Viola
4f8d7d8e48 Update project.pbxproj 2024-06-06 08:23:21 +02:00
Roberto Viola
7be0aa4f9b Auto follow workout based on heart rate (Issue #2370) 2024-06-06 08:22:57 +02:00
Roberto Viola
cab132e88e Update nordictrackifitadbtreadmill.cpp 2024-06-05 16:47:47 +02:00
Roberto Viola
9d7b3fa7e6 Update project.pbxproj 2024-06-05 16:47:12 +02:00
Roberto Viola
139630fcb8 fixing crash on quit on ios or android 2024-06-05 16:45:22 +02:00
Roberto Viola
b983e5a1f1 Android Billing v6 (#2374)
* Update build.gradle

* 2.16.56
2024-06-04 15:22:20 +02:00
Roberto Viola
3644b70c8f Cadence Dismatch issue among schwinn 270 console, QZ app and Zwift (Issue #2366) 2024-06-04 14:33:23 +02:00
Roberto Viola
61a6be9bc4 schwinn 170 fix
eff6fc6529/lib/devices/device_descriptors/schwinn_x70.dart (L61)
2024-06-04 09:45:15 +02:00
Roberto Viola
908cd7fff8 Update project.pbxproj 2024-06-04 09:22:37 +02:00
Roberto Viola
9e8d232f60 JLL IC400 Pro and SS2k - Resistance problem #2360 2024-06-03 14:34:26 +02:00
Roberto Viola
6ef309d05e JLL IC400 Pro and SS2k - Resistance problem #2360 2024-06-03 09:27:41 +02:00
Roberto Viola
5d4d969dc2 Healthrider H30X Resistance buttons not working in app. Not seeing all 22 resistance settings[BUG] (Issue #2359) 2024-05-29 16:18:16 +02:00
Roberto Viola
970fb4eeab fixing segfault when you open trainprogram without a connected device 2024-05-29 15:56:21 +02:00
Roberto Viola
2f0854b072 Healthrider H30X Resistance buttons not working in app. Not seeing all 22 resistance settings[BUG] (Issue #2359) 2024-05-29 15:48:07 +02:00
Roberto Viola
76bd70fae1 Change speed treadmill (Issue #1988) 2024-05-29 11:37:55 +02:00
Roberto Viola
45fe36fc67 Sole ST90 BT HCI Snoop log[REQ] (Issue #2355) 2024-05-26 16:10:33 +02:00
Roberto Viola
c1c4ee5dca https://github.com/cagnulein/qdomyos-zwift/issues/2354 2024-05-25 18:49:53 +02:00
Roberto Viola
037ee1f94b https://github.com/cagnulein/qdomyos-zwift/issues/2352 2024-05-23 13:46:53 +02:00
Roberto Viola
fe42408beb https://github.com/cagnulein/qdomyos-zwift/issues/2351 2024-05-23 10:11:05 +02:00
Roberto Viola
f442f90474 Hearth data not showing on QZ App (Issue #2349) 2024-05-23 07:24:39 +02:00
Roberto Viola
54abd22d09 Cadence gain not working on proform tour de france cbc bike (Issue #2350) 2024-05-23 13:12:27 +08:00
Roberto Viola
9077cfdabc Kettler S10 Treadmill #2348 Open cagnulein opened this issue 5 minutes ago · 0 comments Open Kettler S10 Treadmill #2348 2024-05-22 11:37:46 +02:00
Roberto Viola
2f93050df4 Update project.pbxproj 2024-05-22 11:01:16 +02:00
Roberto Viola
08efde867d stats reset at the first start if pause on start is enabled 2024-05-22 10:47:36 +02:00
Roberto Viola
ad3e80128e adding dynamic erg table for FTMS 2024-05-22 10:16:11 +02:00
Roberto Viola
d2ed216de6 Domyos Run500 do have 5 speed/inclination quick-button #2345 2024-05-21 18:04:22 +02:00
Roberto Viola
3d4e07780f Update bluetooth.cpp 2024-05-21 14:18:23 +02:00
Roberto Viola
f89914e493 Update bluetooth.cpp 2024-05-21 12:23:41 +02:00
Roberto Viola
938c7baa35 PC- Domyos Run500 not connecting, domyos-zwift close by itself, (Issue #2344) 2024-05-21 12:21:51 +02:00
Roberto Viola
d5453a1c93 Nordictrack S22i Incline/resistance problems (Issue #2339) 2024-05-20 16:19:02 +02:00
Roberto Viola
0161c6edb7 2.16.55 2024-05-18 15:48:00 +02:00
Roberto Viola
33288e2af5 Revert "Domyos Treadmill Write Characteristic with No response #2319"
This reverts commit ec9ad531f7.
2024-05-18 15:46:58 +02:00
Roberto Viola
76a7ef25ee Garmin ConnectIQ SDK 1.5.2 (#2338) 2024-05-18 03:43:58 +08:00
Roberto Viola
60c23871c5 Update project.pbxproj 2024-05-17 09:06:41 +02:00
Roberto Viola
84429039f1 Update qfit.cpp 2024-05-17 08:55:37 +02:00
Roberto Viola
9e33f7e969 fixing negative inclination on horizon treadmills 2024-05-15 16:04:53 +02:00
Roberto Viola
6e52c836fa Update project.pbxproj 2024-05-15 11:42:38 +02:00
Roberto Viola
a75a4a639d fixing lap description on fit file 2024-05-15 11:36:01 +02:00
Roberto Viola
cf86933a38 Sole F85 #2332 2024-05-14 13:56:58 +02:00
Roberto Viola
003b09e023 Treadmill won't connect via bluetooth #2331 2024-05-13 16:29:26 +02:00
Roberto Viola
49f681d024 Proform 8.7 treadmill #2329 2024-05-13 15:26:22 +02:00
Roberto Viola
1bab10a0c5 2.16.54 2024-05-08 14:38:15 +02:00
Roberto Viola
304439f0d9 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-05-08 14:36:59 +02:00
Roberto Viola
1775bcd14c [BUG] last version #2325 2024-05-08 14:36:55 +02:00
Roberto Viola
e8df0938ea Direto X #2324 2024-05-07 20:52:58 +02:00
Roberto Viola
efb3b74149 connection works 2024-05-07 12:24:25 +02:00
Roberto Viola
ce051344e9 Pro-Form 595i ProShox2 #2287 2024-05-07 12:03:22 +02:00
Roberto Viola
c7cc127ea0 emitting signal not tested 2024-05-07 12:00:08 +02:00
Roberto Viola
c1dbaf0f05 let's work on build up the list 2024-05-07 11:27:17 +02:00
Roberto Viola
cbbc054ec8 fix build 2024-05-07 10:39:56 +02:00
Roberto Viola
cb0e7a9389 Merge branch 'master' into workout-history 2024-05-07 10:19:00 +02:00
Roberto Viola
55f59a6974 Update project.pbxproj 2024-05-07 08:16:25 +02:00
Roberto Viola
8dc3bce5f7 2024 Spirit XT485 Treadmill not communicating correctly with QZ app[BUG] (Issue #2323) 2024-05-07 08:10:11 +02:00
Roberto Viola
3f0a3fda20 2.16.53 2024-05-06 09:09:35 +02:00
Roberto Viola
9095236a30 Ziyou zu-250s bike #2322 2024-05-06 09:05:42 +02:00
Roberto Viola
ec9ad531f7 Domyos Treadmill Write Characteristic with No response #2319 2024-05-05 10:16:24 +02:00
Roberto Viola
079b5d9fea #2315 2024-05-02 18:51:58 +02:00
Roberto Viola
7270d02537 Pro-Form 595i ProShox2 #2287 2024-05-02 10:35:40 +02:00
Roberto Viola
e00b3e3be3 Update project.pbxproj 2024-04-30 08:46:09 +02:00
Roberto Viola
39e8e96935 different speed offsets depending on the incline of the treadmill #2121 #2141 #2312 2024-04-30 08:35:33 +02:00
Roberto Viola
fac7f30554 Treadmill Beeping with Each Inclination Command #2311 2024-04-29 17:21:41 +02:00
Roberto Viola
67449c6974 Update project.pbxproj 2024-04-29 16:53:43 +02:00
Roberto Viola
2c105055db QZ Doesn't send send metrics to Peloton app when power sensor is selected in Accessories #2312 2024-04-29 16:48:20 +02:00
Roberto Viola
e4b430953a Update project.pbxproj 2024-04-27 12:19:53 +02:00
Roberto Viola
c9c9d08b47 Controlling resistance with inclination on elliptical (Discussion #2306) 2024-04-26 14:36:22 +02:00
Roberto Viola
127ddba542 Controlling resistance with inclination on elliptical (Discussion #2306) 2024-04-25 19:25:17 +02:00
Roberto Viola
f1261e08a8 Controlling resistance with inclination on elliptical (Discussion #2306) 2024-04-25 17:50:07 +02:00
Roberto Viola
6102fe6331 Update project.pbxproj 2024-04-25 08:17:05 +02:00
Roberto Viola
42b7d359bf Controlling resistance with inclination on elliptical (Discussion #2306) 2024-04-25 08:14:44 +02:00
Roberto Viola
879242f27b Unexplained crash #2305 2024-04-25 08:08:39 +02:00
Roberto Viola
f31bfbd796 different speed offsets depending on the incline of the treadmill #2121 (#2141)
* different speed offsets depending on the incline of the treadmill (Discussion #2121)

* Update strydrunpowersensor.cpp

* overriding request speed

* Update treadmill.cpp

* Update nordictrackifitadbtreadmill.cpp

* Update project.pbxproj
2024-04-24 15:15:35 +02:00
Roberto Viola
db28e44da9 Can't reach target power with power pedals because the resistance keeps getting reduced automatically #1708 (#2197)
* let's test!

* fix build

* Update bluetoothdevice.cpp

* Update ergtable.h

* ProForm Gen 1 Connection Issue #1825

* Update proformtelnetbike.cpp

* Merach S09 (Issue #2093)

* 2023 Sole E35 compatibility (Discussion #2195)

* Update fitplusbike.cpp

* Issues with FTP Test and Pace Rides #2300

* Issues with FTP Test and Pace Rides #2300

* Update project.pbxproj

* automatic resistance no longer working (Issue #2293)

* Update project.pbxproj
2024-04-24 14:29:42 +02:00
Roberto Viola
ac1daa3354 fixing CI 2024-04-24 14:18:00 +02:00
Roberto Viola
41efa25200 fixing CI 2024-04-24 14:13:33 +02:00
Roberto Viola
95c3c0d13f fixing ios CI 2024-04-24 12:24:03 +02:00
Roberto Viola
64ffb70988 NordicTrack s20i - treadmill (Issue #2301) 2024-04-24 12:14:33 +02:00
Roberto Viola
6554fd7630 Cadence = cadenceRaw.average5s(); 2024-04-23 16:01:27 +02:00
Roberto Viola
24f6c3b82f Kingsmith Walkingpad P1 no cadence reported #2304 2024-04-23 15:02:33 +02:00
Roberto Viola
85a0ca0004 Kingsmith Walkingpad P1 no cadence reported #2304 2024-04-23 11:49:41 +02:00
Roberto Viola
d37978431c Kingsmith Walkingpad P1 no cadence reported #2304 2024-04-23 10:15:23 +02:00
Roberto Viola
cd99cc6b43 Elevation gain increas also with inclination set to zero or to a negative value #2259 2024-04-22 09:11:53 +02:00
Roberto Viola
cfea9e9c10 elliptical inclination control from Zwift #2280 (#2282) 2024-04-18 18:16:42 +02:00
Roberto Viola
1c5ac682b3 fixing ANT heart (against Android OS Wear). Tested on Android 15 beta with Polar ANT heart 2024-04-16 12:26:29 +02:00
Roberto Viola
a5777a533b Schwinn 810 treadmill feature request #2284 2024-04-15 09:30:47 +02:00
Roberto Viola
63717e4116 Update kingsmithr2treadmill.cpp 2024-04-11 21:16:32 +02:00
Roberto Viola
bb946ee172 X23 King Smith #2289 2024-04-11 16:09:26 +02:00
Roberto Viola
2b8f82ea68 X23 King Smith #2289 2024-04-11 16:08:39 +02:00
Roberto Viola
7bdd6e529a X23 King Smith #2289 2024-04-11 08:24:53 +02:00
Roberto Viola
8d0565f411 Create wireshark-json-filter.py 2024-04-09 08:34:35 +02:00
Roberto Viola
cd32a90912 personalized workouts Treadmill managed automatically by HR rate indicating the BPM instead the PID HR #2276 2024-04-08 12:07:36 +02:00
Roberto Viola
61cc94f7a9 2.16.52 2024-04-08 08:29:48 +02:00
Roberto Viola
f62a3278e7 Update project.pbxproj 2024-04-06 08:55:11 +02:00
Roberto Viola
8106a216c3 Update project.pbxproj 2024-04-06 08:53:40 +02:00
Roberto Viola
e48da60aa7 treadmill erg table for stryd 2024-04-05 17:06:45 +02:00
Roberto Viola
9803458018 Update project.pbxproj 2024-04-04 09:01:33 +02:00
Roberto Viola
e37d3ca66e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-04-04 09:00:43 +02:00
Roberto Viola
0596d05e74 RSS in real time in QZ while using an Stryd Pod #2265 2024-04-04 09:00:35 +02:00
Roberto Viola
961de710b3 RSS in real time in QZ while using an Stryd Pod #2265 (#2273)
* rss tile added

* let's use the AVG directly

* Update metric.h

* Update settings-tiles.qml
2024-04-03 12:10:15 +02:00
Roberto Viola
6cd52efe77 target power for treadmill without the power sensor 2024-04-03 11:54:54 +02:00
Roberto Viola
8e8942386e iOS12 Compatibility (ADB) (#2266)
* build succeed

* it's working also on ios12

* build 779
2024-04-03 05:17:50 +02:00
Roberto Viola
725b0e8976 RSS in real time in QZ while using an Stryd Pod #2265 2024-04-02 16:27:00 +02:00
Roberto Viola
ff32af5b94 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-04-02 12:02:35 +02:00
Roberto Viola
641b93ecac Classes Without Metrics are Not Showing Class Title in QZ #2258 2024-04-02 12:01:34 +02:00
Roberto Viola
386d6b9fb0 Update project.pbxproj 2024-04-02 11:46:38 +02:00
Roberto Viola
1811fe23e6 Schwinn 590e Elliptical #2165 2024-04-02 11:03:50 +02:00
Roberto Viola
8fc91f8957 Auto-Resistance not working with Nordictrack GX4.5 bike #2233 2024-04-02 09:40:48 +02:00
Roberto Viola
f3c82a5d85 Incline control device support request Sole TT8 #2249 2024-04-02 08:35:37 +02:00
Roberto Viola
a82515f85a Elevation Gain Offset Setting #2260 2024-03-31 05:51:45 +02:00
Roberto Viola
ffd44bcf69 Elevation gain increas also with inclination set to zero or to a negative value #2259 2024-03-31 05:44:14 +02:00
Roberto Viola
69245499fd 2023 Sole E35 compatibility (Discussion #2195) 2024-03-27 17:13:03 +01:00
Roberto Viola
7bb585652d Opensslv3 for Windows (#2193)
* try

* Revert "try"

This reverts commit 94e0922c6f.

* let's go back to 1.1.1

* fixed?
2024-03-27 16:56:16 +01:00
Roberto Viola
717337ecc5 2.16.50 2024-03-27 15:57:36 +01:00
Roberto Viola
de755345df Classes Without Metrics are Not Showing Class Title in QZ #2258 2024-03-27 15:56:30 +01:00
Roberto Viola
f29ee9b8b0 Classes Without Metrics are Not Showing Class Title in QZ #2258 2024-03-27 15:19:27 +01:00
Roberto Viola
f7fd7385f3 Update project.pbxproj 2024-03-27 12:17:59 +01:00
Roberto Viola
c774e53c5f 2023 Sole E35 compatibility (Discussion #2195) 2024-03-27 12:17:14 +01:00
Roberto Viola
1a3aca47d3 Update project.pbxproj 2024-03-27 12:00:52 +01:00
Roberto Viola
43178057fd 2023 Sole E35 compatibility (Discussion #2195) 2024-03-27 11:59:37 +01:00
Roberto Viola
dbb6b32b03 My interest is the creation of personalized workouts for threadmill and smart bike and use QZ app standalone #2242 2024-03-27 11:04:28 +01:00
Roberto Viola
a561219f29 2023 Sole E35 compatibility (Discussion #2195) 2024-03-26 14:48:25 +01:00
Roberto Viola
ca0398c7d5 Noble Pro connecting but no data and insta pauses #2246 2024-03-26 13:52:13 +01:00
Roberto Viola
0af749c9f2 Update project.pbxproj 2024-03-26 09:23:13 +01:00
Roberto Viola
d2d661c7fd 2023 Sole E35 compatibility (Discussion #2195) 2024-03-26 09:20:27 +01:00
Roberto Viola
241e34c79e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-26 08:22:59 +01:00
Roberto Viola
c6225db6a4 2023 Sole E35 compatibility (Discussion #2195) 2024-03-26 08:22:45 +01:00
Roberto Viola
4f855f3d60 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-26 08:10:54 +01:00
Roberto Viola
a55ccb4a97 2023 Sole E35 compatibility (Discussion #2195) 2024-03-26 08:10:17 +01:00
Roberto Viola
06eccc33f4 cagnulein / qdomyos-zwift Type / to search Code Issues 212 Pull requests 57 Discussions Actions Projects 1 Wiki Security Insights Settings 2023 Sole E35 compatibility #2195 Unanswered realericmc asked this question in Q&A 2023 Sole E35 compatibility #2195 2024-03-25 09:24:42 +01:00
Roberto Viola
f080bff4cd Incline control device support request Sole TT8 #2249 2024-03-25 09:21:17 +01:00
Roberto Viola
ecc06675dc Onesprint.io bike #2254 2024-03-25 09:13:51 +01:00
Roberto Viola
d5758cf0ed fixing android build 2024-03-25 09:00:33 +01:00
Roberto Viola
d3ebdf252e Update project.pbxproj 2024-03-23 07:59:20 +01:00
Roberto Viola
81840bd831 2023 Sole E35 compatibility (Discussion #2195) 2024-03-22 15:58:17 +01:00
Roberto Viola
1210ec5232 2.16.49 2024-03-22 09:28:07 +01:00
Roberto Viola
cc4a3a6623 Update project.pbxproj 2024-03-22 09:26:09 +01:00
Roberto Viola
bc3ec3b39f Add Profiles Shortcut or Widget (Issue #2210) (#2217)
* test it

* adding android side

* Update Shortcuts.java

* Update Shortcuts.java

* Update Shortcuts.java

* Update ios_app_delegate.mm

* ios run the action event after the main.cpp

* Update main.cpp

* action added on android

* it works on android!

* fixing ios build

* limit to 5 shortcuts max to android

* maybe is it working now on iOS?

* working on ios too!

* removing extension from the quick actions label

* Update project.pbxproj

* ios 12 handled

* Update project.pbxproj

* Update project.pbxproj

* Update project.pbxproj
2024-03-22 09:23:38 +01:00
Roberto Viola
2c7c82bbde 2023 Sole E35 compatibility (Discussion #2195) 2024-03-22 09:08:18 +01:00
Roberto Viola
f18e12e1a7 2023 Sole E35 compatibility #2195 2024-03-21 17:24:08 +01:00
Roberto Viola
0952d2b8ba 2023 Sole E35 compatibility #2195 2024-03-21 15:06:32 +01:00
Roberto Viola
69e2ed26e2 Decline from the gui does not go beyond -1 and metrics become garbled (Issue #2240) 2024-03-19 14:17:59 +01:00
Roberto Viola
dea1450452 Update wahookickrsnapbike.cpp 2024-03-19 13:19:58 +01:00
Roberto Viola
7accf7f184 Incline not working bor Wahoo Kickr Bike v1 #2224 2024-03-19 12:24:09 +01:00
Roberto Viola
d099e58de0 Update project.pbxproj 2024-03-18 16:07:34 +01:00
Roberto Viola
0d735c4192 Incline not working bor Wahoo Kickr Bike v1 #2224 2024-03-18 15:44:59 +01:00
Roberto Viola
03e60d96e7 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-18 14:52:50 +01:00
Roberto Viola
5bfa0bba16 speed not controlled JTX Sprint-5 #2223 2024-03-18 11:22:55 +01:00
Roberto Viola
ed983a0657 Update project.pbxproj 2024-03-18 10:34:26 +01:00
Roberto Viola
8b6a4b3565 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-18 10:29:34 +01:00
Roberto Viola
6d4572a745 PID function a little pushy (#427) 2024-03-18 10:28:31 +01:00
Roberto Viola
711afe4b08 PID function a little pushy (#427) 2024-03-18 10:23:52 +01:00
Roberto Viola
da43761133 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-18 09:56:00 +01:00
Roberto Viola
977acde7d1 Update PrivacyInfo.xcprivacy 2024-03-18 09:55:43 +01:00
Roberto Viola
1405f3c2c3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-18 09:54:57 +01:00
Roberto Viola
fb36f7d68d Update PrivacyInfo.xcprivacy 2024-03-18 09:54:35 +01:00
Roberto Viola
381fbf5767 Update project.pbxproj 2024-03-18 09:28:52 +01:00
Roberto Viola
e4003ebd81 Incline not working bor Wahoo Kickr Bike v1 #2224 2024-03-18 08:58:27 +01:00
Roberto Viola
377bd2b667 Incline not working bor Wahoo Kickr Bike v1 #2224 2024-03-18 08:56:47 +01:00
Roberto Viola
c47df1fe49 speed not controlled JTX Sprint-5 #2223 2024-03-18 08:14:02 +01:00
Roberto Viola
15cc111dda speed not controlled JTX Sprint-5 (Issue #2223) 2024-03-16 16:20:12 +01:00
Roberto Viola
0af6aee343 Kcal same as bike even when "Disable KCal from Equipment" is enabled and can't control resistance with resistance tile. (Issue #2232) 2024-03-15 22:00:40 +01:00
Roberto Viola
69006d4d18 privacy iOS 2024-03-15 15:57:40 +01:00
Roberto Viola
1cd4c801f7 Create PrivacyInfo.xcprivacy 2024-03-15 15:56:55 +01:00
Roberto Viola
3c4f850127 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-15 15:49:02 +01:00
Roberto Viola
9a5b3d279d adding privacy info 2024-03-15 15:48:43 +01:00
Roberto Viola
70e82d3aaf Yesoul V1 Bike #2229 2024-03-15 14:16:49 +01:00
Roberto Viola
f48392082f Revert "Incline not working bor Wahoo Kickr Bike v1 #2224"
This reverts commit cf0ea0f84f.
2024-03-15 14:13:23 +01:00
Roberto Viola
df8f409403 Revert "new info api requirement from Apple"
This reverts commit cf9321d144.
2024-03-15 14:13:11 +01:00
Roberto Viola
cb4f20c25e Update project.pbxproj 2024-03-15 10:55:34 +01:00
Roberto Viola
cf9321d144 new info api requirement from Apple 2024-03-15 10:42:31 +01:00
Roberto Viola
89c1439049 Update project.pbxproj 2024-03-15 10:12:16 +01:00
Roberto Viola
cf0ea0f84f Incline not working bor Wahoo Kickr Bike v1 #2224 2024-03-15 09:36:21 +01:00
Roberto Viola
6f211c441c fixing hr zones 2024-03-13 15:31:58 +01:00
Roberto Viola
0a804c9d6d Update bluetoothdevice.cpp 2024-03-13 14:30:35 +01:00
Roberto Viola
062623580a fixing heart rate zones 2024-03-13 14:15:40 +01:00
Roberto Viola
5560c920ec fixing heart zone in email 2024-03-13 12:28:41 +01:00
Roberto Viola
ec1c504083 adding heart zones in the email 2024-03-13 12:18:45 +01:00
Roberto Viola
27ce527fd6 domyostreadmill: inclination delay filter added 2024-03-13 10:45:26 +01:00
Roberto Viola
fdc1dc7b9a Heart rate vanishes when treadmill starts using Rhythm 24 (Issue #2214) 2024-03-13 08:59:35 +01:00
Roberto Viola
1c76b898e4 Update project.pbxproj 2024-03-13 08:21:53 +01:00
Roberto Viola
b2014df95b Echelon Stride-8s #2216 2024-03-13 08:18:59 +01:00
Roberto Viola
a250ada61e QZ incorrectly reporting huge distance on bike and not recording details on Apple health (Issue #2213) 2024-03-12 20:06:56 +01:00
Roberto Viola
dd6c8ca20c fix speed on spirittreadmill 2024-03-12 12:53:20 +01:00
Roberto Viola
d8e489f64d BXT216 Bowflex Pause have no effect on Zwift.[BUG] (Issue #2203) 2024-03-12 08:31:07 +01:00
Roberto Viola
741fd4367d Request: Add Support for Proform Carbon TL (Issue #2208) (#2209)
* done

* pro-form proshox2 #2078
2024-03-12 08:26:47 +01:00
Roberto Viola
fd2e7ef994 Update project.pbxproj 2024-03-11 14:39:23 +01:00
Roberto Viola
a142968feb Update settings.qml 2024-03-11 14:34:55 +01:00
Roberto Viola
4fd06f91b0 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-03-11 14:33:06 +01:00
Roberto Viola
e27133fb3a inclinaison and résistance unfonctional #2198 2024-03-11 14:32:40 +01:00
Roberto Viola
9df1c4fdba Update project.pbxproj 2024-03-11 11:35:36 +01:00
Roberto Viola
39391c3200 NoblePro E10i #2205 2024-03-11 09:20:33 +01:00
Roberto Viola
70367b8365 fixing speed on trxappgateusbtreadmilll 2024-03-11 09:03:03 +01:00
Roberto Viola
8e30bde019 Treadmill focus fitness 9i #2191 2024-03-08 14:12:56 +01:00
Roberto Viola
cb717ff213 Update project.pbxproj 2024-03-08 11:29:46 +01:00
Roberto Viola
d723bf054d proformwifibike: inclination show the real value instead the gear modified one
very useful with GPX
2024-03-08 11:25:15 +01:00
Roberto Viola
491e900ec3 Dynamic Erg Table (#2175)
* first raw implementation

* Update fakebike.cpp

* Update fakebike.cpp

* Update fakebike.h

* Update fakebike.h

* Update fakebike.h

* Update fakebike.cpp

* Update project.pbxproj

* Update ergtable.h

* #2175 test for ergTable (#2179)

* fixing nan and inf

* playing with setting in order to write them in a standard way

* Update ergtabletestsuite.h

* Update ergtabletestsuite.cpp

* Update ergtable.h

* Update ergtabletestsuite.cpp

* fixing edge cases

* Update ergtable.h

* fixing test cases

* typo

* clearing table when watt gain is changed

* adding resistance time

* removing debug

---------

Co-authored-by: David Mason <29954900+drmason789@users.noreply.github.com>
2024-03-07 14:12:21 +01:00
Roberto Viola
64247cff21 Schwinn 810 treadmill (Issue #2194) 2024-03-06 18:21:05 +01:00
Roberto Viola
38cf417927 Schwinn 810 #2190 2024-03-06 06:05:58 +01:00
Roberto Viola
fcb05aba9f QZ App will connect to but not report data for Nautilus E618 Elliptical (Issue #2188) 2024-03-05 19:12:24 +01:00
Roberto Viola
9142d8c54d Yesoul v1 FMTS bike #2186 2024-03-05 09:39:49 +01:00
Roberto Viola
8e7a8d14ab Yesoul G1M Plus #2185 2024-03-05 06:23:11 +01:00
Roberto Viola
ca44612565 Update project.pbxproj 2024-03-04 21:23:07 +01:00
Roberto Viola
2a40356d4a No data from sensors and avatar won’t move in Zwift (even when data showed on first try) (Issue #2178) 2024-03-04 20:15:58 +01:00
Roberto Viola
315b750647 Update project.pbxproj 2024-03-04 18:51:16 +01:00
Roberto Viola
80ba54294d No data from sensors and avatar won’t move in Zwift (even when data showed on first try) (Issue #2178) 2024-03-04 14:07:35 +01:00
Roberto Viola
a0218d8d70 Sole F89 (Issue #2172) 2024-03-04 09:53:00 +01:00
Roberto Viola
8d150111aa Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-03-04 09:44:05 +01:00
Roberto Viola
964e49ddb5 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-03-04 09:42:12 +01:00
Roberto Viola
5f4dd1a1b4 fixing noblepro issue 2024-03-03 16:47:42 +01:00
Roberto Viola
b027179dd8 Update project.pbxproj 2024-03-02 17:41:02 +01:00
Roberto Viola
5d859024a1 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025 2024-03-02 17:39:40 +01:00
Roberto Viola
99c02259dc Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-03-02 14:19:33 +01:00
Roberto Viola
7048471601 Not really a bug but I don’t understand what was happening, #2170 2024-03-02 14:16:15 +01:00
Roberto Viola
9cb1e7a190 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-03-02 08:54:23 +01:00
Roberto Viola
e1c1ac441a Sole F89 #2172 2024-03-02 08:00:18 +01:00
Roberto Viola
0e621aafd5 3G Cardio RB #2173 2024-03-02 07:57:36 +01:00
Roberto Viola
079d406c73 MyWhoosh Compatibility 2024-03-02 07:56:24 +01:00
Roberto Viola
9f9ab5c8ca Schwinn 590 Elliptical #2165 2024-03-01 12:46:14 +01:00
Roberto Viola
a9be8055f2 Proform 2000 Pro -3% incline (Issue #2092) 2024-03-01 08:46:59 +01:00
Roberto Viola
65f49c5c52 Proform 2000 Pro -3% incline #2092 2024-02-29 22:29:34 +01:00
Roberto Viola
a429c82f4c Domyos Incline Run resets to 0% incline above 15% on the treadmill (Issue #2169) 2024-02-29 21:29:05 +01:00
Roberto Viola
3288caacb2 Update project.pbxproj 2024-02-29 15:44:57 +01:00
Roberto Viola
f4850ff67d ProForm TDF 1.0 Not Showing Tiles #2167 2024-02-29 15:40:09 +01:00
Roberto Viola
f644edff24 Pasyou S70 bike can connect but no data given. #2168 2024-02-29 13:50:23 +01:00
Roberto Viola
6db6221238 Update ypooellipticaltestdata.h 2024-02-29 13:46:19 +01:00
Roberto Viola
db823bd5f4 NoblePro Cadence Data (Issue #2073) 2024-02-29 10:45:29 +01:00
Roberto Viola
04e2d213da Does not control NordicTrack T6.5S #2008 2024-02-29 07:46:36 +01:00
Roberto Viola
64eae75549 Update project.pbxproj 2024-02-28 21:30:58 +01:00
Roberto Viola
8118040619 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-28 21:28:56 +01:00
Roberto Viola
c92f546141 domyostreadmill incline run goes to 20% 2024-02-28 21:21:31 +01:00
Roberto Viola
ddf9bfbef3 Update project.pbxproj 2024-02-28 16:12:16 +01:00
Roberto Viola
8d451a4e87 Schwinn 590 Elliptical #2165 2024-02-28 16:09:55 +01:00
Roberto Viola
c8c4597eb7 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) wo…… …… …… …… … …n't connect correctly #2025 2024-02-28 15:28:27 +01:00
Roberto Viola
90a364a8c0 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) wo…… …… …… … …n't connect correctly #2025 2024-02-28 14:35:29 +01:00
Roberto Viola
22d5bbacbc Tacx Neo flywheel spins up when freewheeling in a low virtual gear (Issue #2157) 2024-02-28 10:32:03 +01:00
Roberto Viola
231e01fba8 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) wo…… …… … …n't connect correctly #2025 2024-02-28 10:28:34 +01:00
David Mason
8095fd2314 #2162 updated test documentation to enhance instructions for DeviceDiscoveryInfo (#2163) 2024-02-28 06:39:41 +01:00
Roberto Viola
8c796531f6 Update trxappgateusbellipticaltestdata.h 2024-02-27 17:09:55 +01:00
Roberto Viola
ad28a9e2a5 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) wo…… … …n't connect correctly #2025 (6d7fa3b) 2024-02-27 16:54:13 +01:00
Roberto Viola
2bcf5f229a Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) wo… …n't connect correctly #2025 (6d7fa3b) 2024-02-27 16:41:10 +01:00
Roberto Viola
c53b6e3dab Update trxappgateusbellipticaltestdata.h 2024-02-27 16:32:39 +01:00
Roberto Viola
471e331641 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly #2025 (6d7fa3b) 2024-02-27 16:26:00 +01:00
Roberto Viola
a95d630731 Update project.pbxproj 2024-02-27 15:17:25 +01:00
Roberto Viola
eea38d4ecf Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-27 15:01:21 +01:00
Roberto Viola
3f7238243f Two Concurrent Peloton Workouts: QZ replaces workout name even if second… … user chooses "No" to follow the resistance. #2158 2024-02-27 15:00:53 +01:00
Roberto Viola
a92bfc211b Update project.pbxproj 2024-02-27 14:51:46 +01:00
Roberto Viola
a27047156d Two Concurrent Peloton Workouts: QZ replaces workout name even if second user chooses "No" to follow the resistance. #2158 2024-02-27 14:50:18 +01:00
Roberto Viola
1391930a00 Update project.pbxproj 2024-02-27 12:12:57 +01:00
Roberto Viola
6c59f3ee30 Two Concurrent Peloton Workouts: QZ replaces workout name even if second user chooses "No" to follow the resistance. (Issue #2158) 2024-02-27 10:51:40 +01:00
Roberto Viola
eeb3a9ce6f JLL T550 #2161 2024-02-26 18:14:52 +01:00
Roberto Viola
d1352ae3dd Update trxappgateusbellipticaltestdata.h 2024-02-26 17:49:15 +01:00
Roberto Viola
053725a577 target zone vs ftp zone #2138 2024-02-26 17:25:46 +01:00
Roberto Viola
726a2341c0 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly #2025 2024-02-26 16:59:13 +01:00
Roberto Viola
6d7fa3b67e Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly #2025 2024-02-26 16:52:22 +01:00
Roberto Viola
4883202703 Update project.pbxproj 2024-02-26 12:16:55 +01:00
Roberto Viola
6953f96e59 Update project.pbxproj 2024-02-26 11:51:23 +01:00
Roberto Viola
9910234b44 Focus Fitness 9 ijet Treadmill #2160 2024-02-26 11:46:19 +01:00
Roberto Viola
3746d89069 Focus Fitness 9 ijet Treadmill #2160 2024-02-26 11:33:21 +01:00
Roberto Viola
f2a52e932f Focus Fitness 9 ijet Treadmill #2160 2024-02-26 11:07:14 +01:00
Roberto Viola
17fb96dab8 Focus Fitness 9 ijet Treadmill #2160 2024-02-26 10:29:37 +01:00
Roberto Viola
e9467724bc Horizon Paragon X #637 2024-02-26 09:56:34 +01:00
Roberto Viola
56b5e759a6 target zone vs ftp zone (Discussion #2138) 2024-02-26 09:45:34 +01:00
Roberto Viola
f59eb258f1 ProForm Gen 1 Connection Issue (Issue #1825) 2024-02-26 09:20:40 +01:00
Roberto Viola
0565a5cf60 2.16.46 2024-02-26 08:39:18 +01:00
Roberto Viola
102e1d6b78 Delay in Virtual Gears with Tacx Neo 1 (Issue #2153) 2024-02-25 20:54:27 +01:00
Roberto Viola
7170e28f75 Qz and Smart Spin #2142 2024-02-24 17:29:27 +01:00
Roberto Viola
3f0441304c Update project.pbxproj 2024-02-24 14:57:22 +01:00
Roberto Viola
e76cb14d59 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-24 14:56:41 +01:00
Roberto Viola
339a4279e1 Update homeform.cpp 2024-02-23 18:20:28 +01:00
Roberto Viola
02d9b74001 Update project.pbxproj 2024-02-23 14:37:42 +01:00
Roberto Viola
a587936f91 Pid HR for Erg Bikes 2024-02-23 10:50:15 +01:00
Roberto Viola
a84ad5da45 NoblePro Cadence Data (Issue #2073) 2024-02-23 10:05:01 +01:00
Roberto Viola
959b6db9d0 [Issues with TDF4 and connectivityBUG] #2114
https://github.com/cagnulein/qdomyos-zwift/issues/2114#issuecomment-1958022579
2024-02-22 13:01:05 +01:00
Roberto Viola
4b289c57f8 Titan Life s80 Pro bike #2147 2024-02-21 11:36:54 +01:00
Roberto Viola
43f1bda372 Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly #2025
https://github.com/cagnulein/qdomyos-zwift/issues/2025#issuecomment-1956212492
2024-02-21 11:17:55 +01:00
Roberto Viola
8ee1046c1d Update project.pbxproj 2024-02-20 11:04:08 +01:00
Roberto Viola
60084c7981 QZ with Windows 11 Pro (Issue #2087) 2024-02-20 10:30:06 +01:00
Roberto Viola
f23614d793 Zwift Play #1984 2024-02-20 09:30:22 +01:00
Roberto Viola
e60c8c2d16 Removing encryption from android zwift play since it’s useless
For now
2024-02-19 23:30:17 +01:00
Roberto Viola
e3134a6bd9 Update nautilusbike.cpp 2024-02-19 21:40:48 +01:00
Roberto Viola
c42d38d8cc power table nautilus u626 #2118 2024-02-19 10:48:46 +01:00
Roberto Viola
f487634923 Does not control NordicTrack T6.5S #2008 2024-02-19 09:32:17 +01:00
Roberto Viola
b5bda493cc target zone vs ftp zone (Discussion #2138) 2024-02-19 09:18:42 +01:00
Roberto Viola
8925d6acf7 Galaxy 4 HR not showing in QZ tile #2140 2024-02-19 08:29:01 +01:00
David Mason
df88e7e9d6 2127 test project updates - support for multiple QBluetoothDeviceInfo configuration criteria (#2134)
* #2127 additional tests to cater for bluetooth services that should and shout not be present

* #2127 permanently remove KICKR CORE from FTMSBike2TestData, as it is now handled by FTMSBike4TestData with the BT service criteria too

* #2127 initial support for multiple bluetooth device info configs in tests not quite working properly

* #2172 fixed some test data

* #2127 touch-ups

* #2127 added a guide to writing device detection tests

* #2127 updated test data for Stages bike detection

* #2127 alterations due to proof reading

* #2127 added TACX SATORI to stagesbike detection test to make consistent with documentation

* #2127 change as a result of proof reading
2024-02-17 19:26:59 +01:00
Roberto Viola
408ee351bb version 2.16.44 2024-02-17 18:17:47 +01:00
Roberto Viola
2834f6c5d8 Horizon Paragon X #637 2024-02-16 16:12:17 +01:00
Roberto Viola
629aa73f24 Nordictrack C2150: QZ app speed jumping wildly (top speed 24.5mph!) and distance not showing accurately in Peloton app #2033 2024-02-16 08:25:08 +01:00
Roberto Viola
a5016a66da Revert "different speed offsets depending on the incline of the treadmill (Discussion #2121)"
This reverts commit 44a2229e5c.
2024-02-16 08:11:10 +01:00
Roberto Viola
bd54646fe9 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-16 07:52:47 +01:00
Roberto Viola
f6df2a7bf3 No response to QZ input on x22i treadmill (Issue #85)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/85#issuecomment-1947724040
2024-02-16 07:52:43 +01:00
Roberto Viola
c32430c12f NoblePro Cadence Data (Issue #2073) 2024-02-15 14:16:51 +01:00
Roberto Viola
bee144a359 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-15 11:44:20 +01:00
Roberto Viola
dd8fdcd796 Add ability for *new* profile with defaults (Issue #2129) 2024-02-15 11:44:04 +01:00
Roberto Viola
e45c5e9c13 Update project.pbxproj 2024-02-15 10:40:30 +01:00
Roberto Viola
0523fde5bc Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-15 09:09:50 +01:00
Roberto Viola
db43605f7a adding stepcount from Apple Watch #173 2024-02-15 08:52:09 +01:00
Roberto Viola
ed6553c190 zwift erg tile added 2024-02-15 08:51:49 +01:00
Roberto Viola
b84526ccea Reebok SL8.0 Bike - all tiles read zero (Issue #2124) 2024-02-15 08:27:42 +01:00
Roberto Viola
acd9637c8e Zwift Play (Issue #1984) 2024-02-15 08:04:34 +01:00
Roberto Viola
1235bf7bac proformwifibike reconnecting
Sometimes a proformwifibike it keeps the websocket open without sending anydata. In this way i'm forcing a reconnection
2024-02-15 07:52:17 +01:00
Roberto Viola
44a2229e5c different speed offsets depending on the incline of the treadmill (Discussion #2121)
https://github.com/cagnulein/qdomyos-zwift/discussions/2121#discussioncomment-8467762
2024-02-14 17:32:52 +01:00
Roberto Viola
7d6f1d31a8 Update project.pbxproj 2024-02-14 15:51:35 +01:00
Roberto Viola
af608d38c8 fixing crash on wahookickrsnapbike 2024-02-14 15:49:35 +01:00
Roberto Viola
5b6c231fd1 Nordictrack X14i - incline off #79
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/79#issuecomment-1943727390
2024-02-14 14:23:25 +01:00
Roberto Viola
80b09419bd Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-14 10:33:52 +01:00
Roberto Viola
aefc83140a Disable icons in floating window #2125 2024-02-14 10:33:47 +01:00
David Mason
4c5045315c #2127 additional tests to cater for bluetooth services that are part of the identification (#2128) 2024-02-14 00:54:58 +01:00
Roberto Viola
c803d7253e KICKR CORE with only power characteristic handled
f184b2b545 (commitcomment-138579511)
2024-02-13 16:19:17 +01:00
Roberto Viola
b17990e378 Update project.pbxproj 2024-02-13 15:53:42 +01:00
Roberto Viola
f184b2b545 KICKR CORE with only power characteristic handled 2024-02-13 15:53:12 +01:00
Roberto Viola
5aaed653e9 Reebok SL8.0 Bike - all tiles read zero (Issue #2124) 2024-02-13 15:06:36 +01:00
Roberto Viola
69fb207aa2 Nordictrack X14i - incline off #79
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/79#issuecomment-1939091416
2024-02-13 14:17:18 +01:00
Roberto Viola
01d5a6d3ba version 2.16.43 2024-02-13 14:06:04 +01:00
Roberto Viola
ba742c5049 Update project.pbxproj 2024-02-13 11:24:33 +01:00
Roberto Viola
4e35e889f8 added gears mod to wahookickrsnapbike in realtime even when zwift is not connected 2024-02-13 11:23:48 +01:00
Roberto Viola
29926b7457 Display step cadence on main app #1242 2024-02-13 11:15:51 +01:00
Roberto Viola
ccd2b1399d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-13 10:23:44 +01:00
Roberto Viola
32a2831066 Update project.pbxproj 2024-02-13 10:17:40 +01:00
Roberto Viola
aa5f48c33b Revert "Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025)"
This reverts commit f79939be2c.
2024-02-12 22:50:08 +01:00
Roberto Viola
3f15f37f70 adding stepcount from Apple Watch #173 2024-02-12 11:47:18 +01:00
Roberto Viola
f79939be2c Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-02-12 09:24:50 +01:00
Roberto Viola
a1983e39f6 zwift api poll setting added 2024-02-12 09:08:31 +01:00
Roberto Viola
e50091bd26 Nordictrack X14i - incline off (Issue #79)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/79#issuecomment-1937014912
2024-02-12 08:57:53 +01:00
Roberto Viola
3e9132e0d5 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-12 08:24:57 +01:00
Roberto Viola
ad678787bb Enerfit SPX 9500 #2022 2024-02-12 08:24:52 +01:00
Roberto Viola
4526324dc0 Zwift Play #1984 2024-02-12 03:00:35 +01:00
Roberto Viola
e13f8510ba Zwift Play #1984 2024-02-12 02:58:07 +01:00
Roberto Viola
1e9b6a4372 Update project.pbxproj 2024-02-12 02:56:22 +01:00
Roberto Viola
2ab490e520 Zwift Play #1984 2024-02-12 02:54:06 +01:00
Roberto Viola
4a288cb144 NordicTrack Elite 4000 [BUG] (Issue #2113) 2024-02-12 02:47:16 +01:00
Roberto Viola
4aee609476 Domyos Challenge Bike (TC-0421) crashes app #2120 2024-02-12 02:15:57 +01:00
Roberto Viola
104e11e5b8 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-11 11:48:18 +01:00
David Mason
df06a63678 #2116 test data inheritance (#2117) 2024-02-11 07:39:56 +01:00
Roberto Viola
414df68353 Update project.pbxproj 2024-02-10 09:14:07 +01:00
Roberto Viola
5ccc8cf77e no data coming through from Woodway 4Front #2095 2024-02-10 09:10:57 +01:00
Roberto Viola
bf2d9e95cb improving PID HR for small increment 2024-02-09 11:14:21 +01:00
Roberto Viola
4f0ffaae32 Manual control of Echelon Row resistance #2028 2024-02-09 08:06:31 +01:00
Roberto Viola
12e27084be Code organisation (Issue #2102) 2024-02-09 08:04:29 +01:00
Roberto Viola
c02935f4b1 No data from toorx BRX-300 (Issue #2111) 2024-02-08 17:32:34 +01:00
Roberto Viola
5969c0f37f Support for Pro-Form Cycle Trainer 300 ci #1892 2024-02-08 11:50:37 +01:00
Roberto Viola
11a1ffdf32 Xcode files reorganization (#2109)
* #2102 reorganisation of file system

* #2102 align with master

* #2102 updated xcode project

* xcode builds!

---------

Co-authored-by: David Mason <drmason999@gmail.com>
2024-02-08 09:15:33 +01:00
Roberto Viola
be8408e4c7 improving PID HR for small increment 2024-02-08 08:06:24 +01:00
Roberto Viola
018ea9f080 Zwift Play #1984 2024-02-08 06:43:17 +01:00
Roberto Viola
c3b1ae9dcd Issues creating new rower profile (Issue #2104) 2024-02-08 06:22:40 +01:00
Roberto Viola
a32645bb15 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-08 06:20:28 +01:00
Roberto Viola
bd9f5ea765 odometer on proformwifibike based on power 2024-02-08 06:20:17 +01:00
acgourley
8d025a91b2 Update README.md (#2108)
Adding BitGym as a supported target.
2024-02-08 06:18:29 +01:00
Roberto Viola
006663b2f1 fixing freeride tag on live chart 2024-02-08 06:15:26 +01:00
Roberto Viola
28761764a4 odometer on proformwifibike based on power 2024-02-08 06:10:21 +01:00
Roberto Viola
b5c47f5aa6 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-08 06:07:24 +01:00
Roberto Viola
2f0806df7b zwift play #1984 2024-02-07 17:03:44 +01:00
Roberto Viola
6e5ffdccb0 zwift play #1984 2024-02-07 16:51:24 +01:00
Roberto Viola
5864e81e57 zwift play #1984 2024-02-07 16:37:51 +01:00
Roberto Viola
fc9fb178a2 Update project.pbxproj 2024-02-07 15:49:27 +01:00
Roberto Viola
56fe2c8fcc zwift play #1984 2024-02-07 10:07:19 +01:00
Roberto Viola
145a919f22 Inaccurate Data from Bowflex BXT216 (Issue #2096) 2024-02-07 10:06:46 +01:00
Roberto Viola
b47d62c2ca Revert "Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift"
This reverts commit 092e318b55, reversing
changes made to 3168a84fd6.
2024-02-07 09:49:57 +01:00
Roberto Viola
092e318b55 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-07 09:07:16 +01:00
David Mason
35f5065cb2 #2102 reorganisation of file system (#2103)
* #2102 reorganisation of file system

* #2102 align with master

---------

Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2024-02-07 09:01:43 +01:00
Roberto Viola
6ac55ee7e3 Inaccurate Data from Bowflex BXT216 (Issue #2096) 2024-02-07 08:36:06 +01:00
Roberto Viola
6461d68954 zwift play #1984 2024-02-06 21:45:12 +01:00
Roberto Viola
3168a84fd6 Update project.pbxproj 2024-02-06 15:09:18 +01:00
Roberto Viola
587bd6469d Zwift Play #1984 2024-02-06 14:49:08 +01:00
Roberto Viola
a2f6f45aa6 NoblePro Cadence Data #2073 2024-02-06 11:21:05 +01:00
Roberto Viola
bfc301a8b9 Update project.pbxproj 2024-02-06 10:18:10 +01:00
Roberto Viola
0774a9e5c5 no data coming through from Woodway 4Front #2095 2024-02-06 10:08:53 +01:00
Roberto Viola
5b9a1d5135 zwift click sends data without encryption!
https://github.com/ajchellew/zwiftplay/pull/3#issuecomment-1929003146
2024-02-06 09:38:16 +01:00
Roberto Viola
c96b591360 Support for Pro-Form Cycle Trainer 300 ci #1892 2024-02-05 12:12:25 +01:00
Roberto Viola
67a2151b68 Adding support for - HOP-SPORT HS-090H iConsole+ (Issue #2082) 2024-02-05 11:27:05 +01:00
Roberto Viola
b565cef516 Update project.pbxproj 2024-02-04 20:25:26 +01:00
Roberto Viola
020d732725 Update project.pbxproj 2024-02-04 20:22:40 +01:00
Roberto Viola
1677b03113 no data coming through from Woodway 4Front (Issue #2095) 2024-02-04 19:51:22 +01:00
Roberto Viola
a831add2d5 Revert "no data coming through from Woodway 4Front (Issue #2095)"
This reverts commit cdd3f53244.
2024-02-04 19:49:16 +01:00
Roberto Viola
038e597177 2.16.41 on android 2024-02-04 18:38:10 +01:00
Roberto Viola
17ab93720f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-04 18:37:15 +01:00
Roberto Viola
34f28b4b79 Zwift click only on android (#2089)
* files added

* Update build.gradle

* Update build.gradle

* Update build.gradle

* builds with the library, let's try to use it now!

* builds

* builds but crash at the buildHandshakeStart

* fixinig crash

* dependencies added!

* it works!

* adding zwiftplay submodule

* fixing build on CI

* fixing CI

* Update qzsettings.h

* Update qzsettings.cpp

* Update settings.qml

* Update settings.qml

* Update bike.h

* Update project.pbxproj

* adding the setting

* Update qdomyos-zwift.pro
2024-02-04 18:36:45 +01:00
Roberto Viola
fa0e981174 Update project.pbxproj 2024-02-04 18:17:48 +01:00
Roberto Viola
67de90b88e Inaccurate Data from Bowflex BXT216 (Issue #2096) 2024-02-04 18:00:22 +01:00
Roberto Viola
cdd3f53244 no data coming through from Woodway 4Front (Issue #2095) 2024-02-04 17:56:25 +01:00
Roberto Viola
438c1a5021 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-02-03 07:57:05 +01:00
Roberto Viola
ba074414b0 Proform 2000 Pro -3% incline #2092 2024-02-03 07:57:01 +01:00
Roberto Viola
bc1b2d4d19 Support for Proform 705 CST (Issue #2090) 2024-02-02 14:19:36 +01:00
Roberto Viola
202d018521 POWER AND CADENCE NORDICTRAK S22I CHART (Issue #2060) 2024-02-02 11:09:20 +01:00
Roberto Viola
b5bb557210 Update project.pbxproj 2024-02-01 15:25:12 +01:00
Roberto Viola
3937c9593e iOS Crash on 12.* #2083 2024-02-01 09:19:56 +01:00
Roberto Viola
531ce52643 Zwift Treadmill Auto Workout doesn't work correctly, speed was set way to low on treadmill #2042
https://github.com/cagnulein/qdomyos-zwift/issues/2042#issuecomment-1919436743
2024-02-01 08:36:40 +01:00
Roberto Viola
9eb282ec23 Can’t get proper data from Zero Runner ZR8000 #2030 2024-01-31 15:58:19 +01:00
Roberto Viola
3753c33581 NoblePro Cadence Data #2073 2024-01-31 09:57:44 +01:00
Roberto Viola
6859b8663f Support for Pro-Form Cycle Trainer 300 ci #1892 2024-01-31 09:42:48 +01:00
Roberto Viola
e1a5c2a7ea Nautilus T628 No Incline (Issue #2046) 2024-01-31 09:22:54 +01:00
Roberto Viola
23d702ddd4 Floating window does not show Peleton row targets (Issue #2026) 2024-01-31 09:16:26 +01:00
Roberto Viola
ac0440edaf CitySports treadmill #2076 2024-01-30 18:46:43 +01:00
Roberto Viola
0ed7413254 Floating window does not show Peleton row targets (Issue #2026) 2024-01-30 12:13:48 +01:00
Roberto Viola
9a2d51a7fd Connection hanging and HR not working #2055 2024-01-30 10:03:58 +01:00
Roberto Viola
bdc64ac13f fixing crash with zwift api 2024-01-29 19:10:10 +01:00
Roberto Viola
a4a6924f7a 2.16.38 crashes using an Echelon EX 7S bike and Zwift #2069 2024-01-29 18:53:51 +01:00
Roberto Viola
02ac7fc4c8 Christopheit Race Bike 4 #2068 2024-01-29 17:12:10 +01:00
Roberto Viola
1bd47aa02c Toorx Power Compact S: inclination or speed control works, but not both [BUG] (Issue #2067) 2024-01-29 13:49:50 +01:00
Roberto Viola
974d57d595 replaced switch for nordictrack treadmills with a combobox 2024-01-29 12:37:40 +01:00
Roberto Viola
4a8b37919c NordicTrack T8.5S App Tiles Don't Update, Speed/Incline Not Controlled (… …Issue #2023) 2024-01-28 21:11:12 +01:00
Roberto Viola
3780cf7727 NordicTrack T8.5S App Tiles Don't Update, Speed/Incline Not Controlled (Issue #2023) 2024-01-28 20:58:28 +01:00
Roberto Viola
3ca52a76e9 Update nordictrackifitadbtreadmill.h 2024-01-28 20:57:20 +01:00
Roberto Viola
625c73556a Capital sports evo track #2062 2024-01-28 13:36:53 +01:00
Roberto Viola
b022207787 NordicTrack T8.5S App Tiles Don't Update, Speed/Incline Not Controlled #2023 2024-01-28 08:51:21 +01:00
Roberto Viola
4275bb18a0 Floating window does not show Peleton row targets #2026 2024-01-27 08:36:52 +01:00
Roberto Viola
432413526f Floating window does not show Peleton row targets #2026 2024-01-27 08:29:01 +01:00
Roberto Viola
976fb849c7 Update project.pbxproj 2024-01-27 07:38:23 +01:00
Roberto Viola
6f861e54c2 Bowflex IC Bike SE #2058 2024-01-27 07:28:22 +01:00
Roberto Viola
1d85e90b15 Bowflex Treadmill 7 #2057 2024-01-27 07:21:18 +01:00
Roberto Viola
6340c7cf82 Connection hanging and HR not working #2055 2024-01-27 07:19:35 +01:00
Roberto Viola
dd2160344e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-27 07:19:25 +01:00
Roberto Viola
abf33019ee added slider to the left side bar 2024-01-26 16:43:09 +01:00
Roberto Viola
5f3e1bfd7f Floating window does not show Peleton row targets (Issue #2026) 2024-01-26 16:41:45 +01:00
Roberto Viola
28c6e035d9 Floating window does not show Peleton row targets #2026 2024-01-26 16:09:17 +01:00
Roberto Viola
84c351e55c Tacx Satori Smart #2044 2024-01-26 12:20:51 +01:00
Roberto Viola
b2ab7e1328 Domyos Treadmill T900A buttons #2019 2024-01-25 08:39:37 +01:00
Roberto Viola
d48ce08102 Power Profile for Sportstech ESX600 (Issue #2039) 2024-01-25 08:34:36 +01:00
Roberto Viola
7bfb76a415 Nautilus T628 Issue #2043 2024-01-24 17:57:28 +01:00
Roberto Viola
432e82cc84 Floating window does not show Peleton row targets #2026 2024-01-24 17:49:58 +01:00
Roberto Viola
2c0f32c4c5 KingSmith Walkingpad A1 Pro #2041 2024-01-24 17:04:17 +01:00
Roberto Viola
b6fa09702c Sportstech F37 cant Connect #2040 2024-01-24 15:13:49 +01:00
Roberto Viola
fac68e0fce Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-24 14:50:58 +01:00
Roberto Viola
896d91a3ba ProForm 505 CST Treadmill - Speed and Incline Control #2032 2024-01-24 14:45:23 +01:00
Roberto Viola
cf3151465a Power Profile for Sportstech ESX600 #2039 2024-01-24 08:55:10 +01:00
Roberto Viola
23d450e52b Update fitshowtreadmill.cpp 2024-01-24 08:43:12 +01:00
Roberto Viola
eda7e72d04 fixing heart from apple watch or garmin or android wear to m3i and fitshow treadmill 2024-01-24 08:33:04 +01:00
Roberto Viola
fb4eec9e10 Update homeform.cpp 2024-01-23 16:13:34 +01:00
Roberto Viola
4090cd71eb Manual control of Echelon Row resistance (Issue #2028) 2024-01-23 16:00:43 +01:00
Roberto Viola
616f3e1976 Update project.pbxproj 2024-01-23 15:36:28 +01:00
Roberto Viola
fd6acc3626 Enerfit SPX 9500 #2022 2024-01-23 14:57:37 +01:00
Roberto Viola
52b0d0c5a1 Floating window does not show Peleton row targets #2026 2024-01-23 11:25:12 +01:00
Roberto Viola
2f61a1addc MERACH CC bike #2035 2024-01-23 10:28:08 +01:00
Roberto Viola
280fa8c0f4 That the treadmill always has a minimum slope #1960 2024-01-23 10:10:49 +01:00
Roberto Viola
83af28ea25 Stacked Tread Classes Have Negative Distance #2018 2024-01-23 08:29:32 +01:00
Roberto Viola
7a3bf4a78e Elliptical trainer "FAL-SPORTS0195" (Brand and model: Maxxus CX 5.1) won't connect correctly (Issue #2025) 2024-01-22 20:42:01 +01:00
Roberto Viola
54cb9c3ef7 Domyos Treadmill T900A buttons #2019 2024-01-22 17:19:06 +01:00
Roberto Viola
a96f497633 Not recording a run to Apple Fitness or Health #2027 2024-01-21 22:36:33 +01:00
Roberto Viola
dc07457631 fixing 65535 kcal for domyosbike 2024-01-21 20:37:05 +01:00
Roberto Viola
30008c7f9b version 2.16.37 2024-01-21 16:06:53 +01:00
Roberto Viola
3c557067d7 Update solef80treadmill.cpp 2024-01-21 14:47:37 +01:00
Roberto Viola
0fae320cf5 XTerra TRX7.5 Treadmill (Issue #2009) 2024-01-21 14:36:41 +01:00
Roberto Viola
fca9e879f2 Treadmill is connected, but no speed or incline is transmitted #2012 2024-01-20 09:16:17 +01:00
Roberto Viola
a0493cac89 Treadmill is connected, but no speed or incline is transmitted #2012 2024-01-20 09:12:12 +01:00
Roberto Viola
6096b09f9c Domyos Treadmill T900A buttons #2019 2024-01-20 08:18:58 +01:00
Roberto Viola
d1734b96af XTerra TRX7.5 Treadmill (Issue #2009) 2024-01-20 07:55:40 +01:00
Roberto Viola
a98772f2fd Domyos EL-0557 elliptical - resistance does not change (Issue #2011) 2024-01-20 00:50:26 +01:00
Roberto Viola
9bebef29cc Stacked Tread Classes Have Negative Distance #2018 2024-01-20 00:39:08 +01:00
Roberto Viola
869bc0d720 Domyos run 500 (TC-0421) crashes app #2017 2024-01-19 23:48:47 +01:00
Roberto Viola
4bc20961b4 KSports Fitshow / FTMS Bike won't connect #2016 2024-01-19 23:23:21 +01:00
Roberto Viola
f9fe046f54 watts no longer being above 0 in iOS 2.16.30 beta horizon treadmill (Issue #1997) 2024-01-19 14:01:00 +01:00
Roberto Viola
92bffc42fa Echelon Row Sport Freezes #1875 2024-01-19 10:36:28 +01:00
Roberto Viola
d2256f563a Revert "XTerra TRX7.5 Treadmill #2009"
This reverts commit a5129f6a3a.
2024-01-18 16:39:22 +01:00
Roberto Viola
0cff162fcc Update qdomyos-zwift.iss 2024-01-18 16:13:58 +01:00
Roberto Viola
2c73351f94 Update project.pbxproj 2024-01-18 15:35:17 +01:00
Roberto Viola
a5129f6a3a XTerra TRX7.5 Treadmill #2009 2024-01-18 15:32:35 +01:00
Roberto Viola
ff9c7f746a Row Bootcamp Distance in Strava Higher than Rowed (Issue #2006) 2024-01-18 11:38:08 +01:00
Roberto Viola
cfd8fa3eeb Update horizontreadmill.cpp #2005 2024-01-17 21:37:20 +01:00
Roberto Viola
952052ecca Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-17 16:50:39 +01:00
Roberto Viola
bf4597f863 Allow for a negative incline on treadmill that supports it when integrating with zwift (Issue #2005) 2024-01-17 16:16:05 +01:00
Roberto Viola
d973d0dd0c Languages #1495 2024-01-17 16:12:18 +01:00
Roberto Viola
e46cd2421d Allow for a negative incline on treadmill that supports it when integrating with zwift (Issue #2005) 2024-01-17 16:11:50 +01:00
Roberto Viola
2e729f50ec Update project.pbxproj 2024-01-17 14:37:44 +01:00
Roberto Viola
e7ae05aa16 watts no longer being above 0 in iOS 2.16.30 beta horizon treadmill #1997 2024-01-17 14:34:07 +01:00
Roberto Viola
0dc369cfe6 added canHandleSpeedChange and canHandleInclineChange for the treadmill classes 2024-01-17 14:04:06 +01:00
Roberto Viola
f2bc2a79be Treadmill proform 8.5 - speed and incline tiles don't work #1989 2024-01-17 13:52:05 +01:00
Roberto Viola
dbf428d239 Allow for a negative incline on treadmill that supports it when integrating with zwift (Issue #2005) 2024-01-17 13:19:37 +01:00
Roberto Viola
f6d94ca133 Remap keys on domyos treadmill #536 2024-01-17 11:56:29 +01:00
Roberto Viola
53049c073f heart on ultrasportbike 2024-01-17 11:19:33 +01:00
Roberto Viola
981f9258ca heart on ultrasportbike 2024-01-17 11:13:23 +01:00
Roberto Viola
b1706eb395 fixing 65535 kcal for domyosbike 2024-01-17 08:23:21 +01:00
Roberto Viola
44c2e45c1c adding elliptical to zwift api 2024-01-16 16:27:47 +01:00
Roberto Viola
00307eb228 Update proformtreadmill.cpp 2024-01-16 14:34:42 +01:00
Roberto Viola
2d851913f2 watts no longer being above 0 in iOS 2.16.30 beta horizon treadmill #1997 2024-01-16 09:47:36 +01:00
Roberto Viola
e8177e4410 ERG modefor Toorx SRX 3500 (Issue #1999) 2024-01-16 09:40:58 +01:00
Roberto Viola
b53ff75a5f Power Profile for BodyTone du30 #1981 2024-01-16 08:35:31 +01:00
Roberto Viola
1f444d0dd0 Octane Fitness 37xi connection to QZ app (Issue #1876) 2024-01-15 21:01:04 +01:00
Roberto Viola
3dc61fff85 No watt output on SportPlus SP-HT-1004-iE with latest version (Issue #874) 2024-01-15 17:56:10 +01:00
Roberto Viola
031a24764d Update project.pbxproj 2024-01-15 16:48:32 +01:00
Roberto Viola
c4b371eddf No watt output on SportPlus SP-HT-1004-iE with latest version #874 2024-01-15 16:39:19 +01:00
Roberto Viola
4a8c42c755 more realistic auto inclination without /2 2024-01-15 16:09:25 +01:00
Roberto Viola
8d61e9cfff 2.16.33 2024-01-15 11:30:30 +01:00
Roberto Viola
ac6468e507 Power Profile for BodyTone du30 #1981 2024-01-15 10:20:28 +01:00
Roberto Viola
1abe748ad2 Power Profile for BodyTone du30 #1981 2024-01-15 09:55:15 +01:00
Roberto Viola
390d835fba Update bluetooth.cpp 2024-01-13 16:59:29 +01:00
Roberto Viola
51415561a0 Bowflex T8J #1994 2024-01-13 16:19:09 +01:00
Roberto Viola
d7ea35cfef Bowflex T8J #1994 2024-01-13 15:51:59 +01:00
Roberto Viola
8aece1ac6d Bowflex T8J #1994 2024-01-13 11:57:28 +01:00
Roberto Viola
4e6a52030f Power Profile for BodyTone du30 #1981 2024-01-13 08:11:34 +01:00
Roberto Viola
c346aaa055 Octane Fitness 37xi connection to QZ app #1876 2024-01-13 07:52:15 +01:00
Roberto Viola
f8341e0d6b ZWIFT API #1921 2024-01-12 15:34:48 +01:00
Roberto Viola
4d3dd3a86c Update project.pbxproj 2024-01-12 08:09:32 +01:00
Roberto Viola
393e7be824 That the treadmill always has a minimum slope (Issue #1960) 2024-01-12 07:49:49 +01:00
Roberto Viola
2758688f2c adding zwift green check mark 2024-01-11 12:22:21 +01:00
Roberto Viola
9628f6be45 Domyos Woodrower (Issue #1963) 2024-01-11 08:47:15 +01:00
Roberto Viola
ed122948cc Bowflex BTX116 Not Connecting #1902 2024-01-11 08:40:33 +01:00
Roberto Viola
747858b544 Update homeform.cpp 2024-01-11 08:24:00 +01:00
Roberto Viola
eeb24b94e0 Cannot open GPX file from local folder on Android mobile device #1980 2024-01-10 17:37:21 +01:00
Roberto Viola
d178317f77 WalkingPad R2(B?) support - TRR2FB #1958 2024-01-10 10:45:40 +01:00
Roberto Viola
2ac2b278b6 Bowflex BTX116 Not Connecting #1902 2024-01-10 08:26:33 +01:00
Roberto Viola
9a8561b229 adding zwift inclination gain and offset to zwift api 2024-01-10 08:20:28 +01:00
Roberto Viola
2c63fd3cc3 Xterra TRX3500 requested log file (Issue #1974) 2024-01-09 18:40:54 +01:00
Roberto Viola
7f1eb1486a Domyos Woodrower #1963 2024-01-09 18:36:06 +01:00
Roberto Viola
6b0a15d19b version 2.16.32 2024-01-09 13:45:39 +01:00
Roberto Viola
928f9bc613 Xterra TRX3500 requested log file #1974 2024-01-09 11:15:26 +01:00
Roberto Viola
1e3121375f Xterra TRX3500 requested log file #1974 2024-01-09 11:09:19 +01:00
Roberto Viola
12d5794fcd Proform Treadmill 2000 (not pro) #1975 2024-01-09 10:55:16 +01:00
Roberto Viola
6d475919af BanCon BC-B399 #1971 2024-01-09 08:33:50 +01:00
Roberto Viola
08fa2d8fd9 BanCon BC-B399 #1971 2024-01-08 17:46:37 +01:00
Roberto Viola
1882862e03 Domyos Woodrower #1963 2024-01-08 14:13:18 +01:00
Roberto Viola
bd0dd1c504 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-08 09:32:51 +01:00
Roberto Viola
3874d15a44 version 2.16.31 2024-01-08 09:32:39 +01:00
Roberto Viola
397379ad9b Min and Max inclination for treadmill (#1962)
* That the treadmill always has a minimum slope (Issue #1960)

* Update qzsettings.h

* Update qzsettings.h

* Update treadmill.cpp
2024-01-08 09:31:36 +01:00
Roberto Viola
ee1201cc3e Domyos Woodrower #1963 2024-01-07 16:26:55 +01:00
Roberto Viola
f968d6628b Domyos Woodrower #1963 2024-01-07 16:20:42 +01:00
Roberto Viola
129506f7e5 Update project.pbxproj 2024-01-07 11:11:38 +01:00
Roberto Viola
5d4665bfbb Unable to connect Tunturi T60[BUG] (Issue #1932) 2024-01-07 09:53:55 +01:00
Roberto Viola
463c349fc3 Adb.exe stays resident on QZ exit (Windows) (Issue #1951) (#1953) 2024-01-05 18:31:13 +00:00
Roberto Viola
ab3071aafc WalkingPad R2(B?) support - TRR2FB (Issue #1958) 2024-01-05 17:46:41 +01:00
Roberto Viola
978ac7ee0f Schwinn170 cadence sensor #1957 2024-01-05 17:43:51 +01:00
Roberto Viola
8a791c4dde Update project.pbxproj 2024-01-05 16:37:09 +01:00
Roberto Viola
77eb4e5b1a Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-05 16:24:13 +01:00
Roberto Viola
e3730cf22a Schwinn170 cadence sensor #1957 2024-01-05 16:23:58 +01:00
Roberto Viola
717d90b98c Atletica Lightspeed Treadmill start issue (Fitshow) #1950 (#1954)
* Atletica Lightspeed Treadmill start issue (Fitshow) #1950

* Update fitshowtreadmill.cpp
2024-01-05 15:35:24 +01:00
Roberto Viola
98de190dd5 Proform Treadmill 8.5 #1955 2024-01-05 14:43:07 +01:00
Roberto Viola
05b4b6ef4d Update proformtreadmill.cpp 2024-01-05 13:37:42 +01:00
Roberto Viola
c1129bbc0f Update project.pbxproj 2024-01-05 13:26:39 +01:00
Roberto Viola
0d48bab025 Proform Treadmill 8.5 #1955 2024-01-05 11:48:17 +01:00
Roberto Viola
85e9d0f6d1 Update project.pbxproj 2024-01-05 10:54:05 +01:00
Roberto Viola
fd2d17879b qdomyos doesn't see HR from garmin watches #1948 2024-01-05 10:53:57 +01:00
Roberto Viola
c91248fd52 Bodytone DS60 Bike #1949 2024-01-04 17:18:54 +01:00
Roberto Viola
3dfe880b1b Sync Homeform loading with bluetooth engine (#1940)
* Update python scripts to use AI.Server for OCR #1847

* Update bluetoothdevicetestsuite.cpp

* Update bluetooth.cpp
2024-01-03 17:05:39 +01:00
Roberto Viola
9065ef0c19 Support Nordictrack S25 treadmill #1933 2024-01-03 09:16:28 +01:00
Roberto Viola
4ba070e089 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2024-01-02 14:17:59 +01:00
Roberto Viola
fed4c0ca0f Update project.pbxproj 2024-01-02 14:17:55 +01:00
Roberto Viola
ab63a29cad Garmin power sensor over bluetooth (#1347)
* trying to fix it (it shows as connectable but the metrics are 0)

* trying a different approach on power data

* it works!

* Update lockscreen.mm

* handled both apple fitness on watch and garmin!
2024-01-02 14:13:55 +01:00
Roberto Viola
d8ed66e0ea Update qzsettings.cpp 2024-01-02 13:50:58 +01:00
Roberto Viola
1274112aed Unable to connect Tunturi T60[BUG] #1932 2023-12-31 17:59:01 +01:00
Roberto Viola
be13c4176f 2.16.30 with auto incline on zwift with zwift api 2023-12-31 17:52:50 +01:00
Roberto Viola
f2cef085d2 Zwift API Android (#1931)
* builds!

* it builds!

* Update trainprogram.cpp

* fixing!

* Update trainprogram.cpp

* Update trainprogram.cpp
2023-12-31 17:51:33 +01:00
Roberto Viola
478a27ed68 Zwift api (#1923) 2023-12-30 19:30:57 +00:00
Roberto Viola
001c651c58 No Heart Rate nor distance showing in tiles on QZ (Issue #1928) 2023-12-30 10:12:08 +01:00
Roberto Viola
4e6b29d494 Update homeform.cpp (#1927) 2023-12-29 17:12:45 +01:00
Roberto Viola
82ef4e4350 Update trainprogram.cpp 2023-12-29 11:09:50 +00:00
Roberto Viola
bcff966976 no resistance domyos 520 elliptical block 1 (Issue #1925) 2023-12-29 11:53:03 +01:00
Roberto Viola
0931ef6055 no resistance domyos 520 elliptical block 1 (Issue #1925) 2023-12-29 11:37:46 +01:00
Roberto Viola
f204c1bac0 Update project.pbxproj 2023-12-29 08:09:03 +01:00
Roberto Viola
93779d04c5 Watch OS 10 CSC Bluetooth Data for Bike (Issue #1924) 2023-12-29 08:04:46 +01:00
Roberto Viola
7f6e6e2ce0 peloton resistance update #1877 2023-12-29 07:24:10 +01:00
Roberto Viola
76dc3b38b8 Speed on GPX treadmill run is too fast and does not match GPX[BUG] #1870
https://github.com/cagnulein/qdomyos-zwift/issues/1870#issuecomment-1866176352
2023-12-28 11:27:27 +01:00
Roberto Viola
48345dc2d2 MERACH-667 bike #1920 2023-12-28 08:55:41 +01:00
Roberto Viola
2cb4187951 Proform 225CSX resistance does not work #1903 2023-12-28 08:53:30 +01:00
Roberto Viola
76deb91b0b Update proformtelnetbike.cpp 2023-12-27 17:43:27 +00:00
Roberto Viola
2c71206327 Update project.pbxproj 2023-12-27 07:04:33 +01:00
Roberto Viola
e3be4ffa0e distance with 1 decimal to the summary view (#1914) 2023-12-27 06:37:46 +01:00
Roberto Viola
868d5cc3a8 ProForm Gen 1 Connection Issue #1825 (#1844) 2023-12-27 04:34:18 +00:00
Roberto Viola
94eb866740 Nordictrack Treadmill / speed and inclination (Issue #1908) 2023-12-26 10:06:22 +01:00
Roberto Viola
f192cf6c75 Proform 225CSX resistance does not work #1903 2023-12-26 08:47:33 +01:00
Roberto Viola
c7efde82b6 Rower Distance is Not Included in Strava #1912 2023-12-26 08:42:47 +01:00
Roberto Viola
f32dcb4e1e Floating window: adding total remaining time after the elapsed time (Issue #1863) 2023-12-25 17:32:11 +00:00
Roberto Viola
6157bfdcc8 Proform 225CSX resistance does not work (Issue #1903) 2023-12-25 12:54:40 +01:00
Roberto Viola
9ff91faf00 Support for Pro-Form Cycle Trainer 300 ci (Issue #1892) 2023-12-25 12:30:25 +01:00
Roberto Viola
3b88bc2f1f Wahoo Dircon characteristics incompatibilities #1910 2023-12-25 11:42:08 +01:00
Roberto Viola
4f7cfbbfc1 Floating window: adding total remaining time after the elapsed time (Issue #1863) 2023-12-24 12:35:24 +01:00
Al Udell
56c112ed4c Update python scripts to use AI.Server for OCR (#1847)
* Update python scripts to use AI.Server for OCR

* change python from 3.10 to 3.7

* Update main.yml

* renaming script files

* resuming here the old script as well

* adding new build for ai server in CI

* renaming python scripts for AI.server

* Update homeform.cpp

* Update homeform.cpp

* fixing secrets on PR

* restoring...

* Update main.yml

* Update homeform.cpp

* Update main.yml

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_workout_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_workout_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_workout_paddleocr_thread.cpp

* Update main.yml

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_workout_paddleocr_thread.cpp

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update main.yml

* Update main.yml

* Update windows_zwift_incline_paddleocr_thread.cpp

* Update windows_zwift_workout_paddleocr_thread.cpp

* Update main.yml

* removing nopython build for ai.server

* Update main.yml

---------

Co-authored-by: Roberto Viola <cagnulein@gmail.com>
2023-12-23 10:02:10 +01:00
Roberto Viola
f6b8984575 Floating window: adding total remaining time after the elapsed time (Issue #1863) 2023-12-23 09:54:15 +01:00
Roberto Viola
52579e3efc Support for Pro-Form Cycle Trainer 300 ci #1892 2023-12-21 16:42:57 +01:00
Roberto Viola
fef5d8f4a7 Octane Fitness 37xi connection to QZ app #1876 2023-12-21 15:03:52 +01:00
Roberto Viola
6c93d85932 Floating window: adding total remaining time after the elapsed time #1863 2023-12-21 10:54:02 +01:00
Roberto Viola
b7763154a3 Update octaneelliptical.cpp 2023-12-21 09:29:43 +01:00
Roberto Viola
fe393bd70d Octane Fitness 37xi connection to QZ app #1876 2023-12-21 09:19:00 +01:00
Roberto Viola
3330cc516e Kingsmith G1 Walking Pad (Issue #1833 2023-12-20 14:57:32 +01:00
Roberto Viola
49e288ec01 Update octaneelliptical.cpp 2023-12-20 14:32:31 +01:00
Roberto Viola
f1e14d1652 Octane Fitness 37xi connection to QZ app #1876 2023-12-20 14:29:11 +01:00
Roberto Viola
2b541c220b Support for Pro-Form Cycle Trainer 300 ci (Issue #1892) 2023-12-20 12:16:27 +01:00
Roberto Viola
372d57368c adding inclination calculation to the stryd 2023-12-19 10:15:41 +01:00
Roberto Viola
21f977ad44 Any hints / tips for using the following a GPX feature? #1893 2023-12-18 14:28:57 +01:00
Roberto Viola
a152a0edb9 version 2.16.28 2023-12-17 19:12:19 +01:00
Roberto Viola
effb3cdfe5 Octane Fitness 37xi connection to QZ app #1876 2023-12-17 18:16:56 +01:00
Roberto Viola
e0144445a3 adding distance to virtual treadmill ftms to accomodate the new FTMS peloton function 2023-12-16 20:22:07 +01:00
Roberto Viola
8042989552 Octane Fitness 37xi connection to QZ app #1876 2023-12-15 09:29:43 +01:00
Roberto Viola
d5ba21da2e Octane Fitness 37xi connection to QZ app #1876 2023-12-14 19:43:35 +01:00
Roberto Viola
9d970fbca7 Octane Fitness 37xi connection to QZ app #1876 2023-12-14 13:33:10 +01:00
Roberto Viola
600d679e21 Freemotion Coachbike b22.7: Making adjustments on the bike through the app does not work. Manually or Automatically (Issue #1877) 2023-12-14 11:21:43 +01:00
Roberto Viola
e860224908 qz not detecting HR from garmin forerunner 265 w companion app #1883 2023-12-14 10:50:44 +01:00
Roberto Viola
081d778405 Making adjustments on the bike through the app does not work. Manually or Automatically (Issue #1877) 2023-12-13 19:30:30 +01:00
Roberto Viola
5f18b4daf1 fixing msvc compatibility #1876 2023-12-13 15:48:49 +01:00
Roberto Viola
7b0065d49a Octane Fitness 37xi connection to QZ app #1876 2023-12-13 15:23:35 +01:00
Roberto Viola
65c45d5f3a Toorx3000[BUG] #1865 2023-12-13 15:15:10 +01:00
Roberto Viola
12d3f469de Slight difference between front end pace vs .fit file pace? #1838 2023-12-13 07:57:31 +01:00
Roberto Viola
707fe68301 increased verbosity for currentdistance1s 2023-12-12 22:11:31 +01:00
Roberto Viola
69511f8c38 adding debug log for currentDistance1s 2023-12-12 21:32:38 +01:00
Roberto Viola
37ea50fca9 Update metric.cpp 2023-12-12 17:48:32 +01:00
Roberto Viola
c91a24cf23 fixing crash on powerpeak func 2023-12-12 17:48:10 +01:00
Roberto Viola
ea48d30f73 Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804) 2023-12-12 13:27:55 +01:00
Roberto Viola
117c3749ea Revert "Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804)"
This reverts commit 6376e45a13.
2023-12-12 13:27:02 +01:00
Roberto Viola
6376e45a13 Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804) 2023-12-12 11:42:28 +01:00
Roberto Viola
e1068bc1e5 Octane Fitness 37xi connection to QZ app #1876 2023-12-12 11:02:06 +01:00
Roberto Viola
c501466372 Echelon Row Sport Freezes (Issue #1875) 2023-12-12 08:03:59 +01:00
Roberto Viola
d8dea4f69d Echelon Row Sport Freezes (Issue #1875) 2023-12-11 20:26:01 +01:00
Al Udell
d44fcd72f7 Python scripts update (#1860)
* Python update

Update python scripts to support Windows DPI Aware and Zwift Windowed mode

* downgrading python to 3.7.9

* adding python path

---------

Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2023-12-11 16:24:12 +01:00
Roberto Viola
2a19918889 Advance metrics Stryd and correct Wattage #1873 2023-12-11 15:58:57 +01:00
Roberto Viola
420e263a9c Advance metrics Stryd and correct Wattage (Issue #1873) 2023-12-11 11:08:10 +01:00
Roberto Viola
8a71567a46 adding power and speed for running and walking on apple health 2023-12-11 10:59:17 +01:00
Roberto Viola
5a5d9fb4b4 Advance setting Watt offset #1714 2023-12-11 10:58:56 +01:00
Roberto Viola
f5484768b8 Update ypooelliptical.cpp 2023-12-11 09:48:07 +01:00
Roberto Viola
5beb890d85 Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804) 2023-12-11 09:38:15 +01:00
Roberto Viola
edf8a33b87 concept 2 rower metric missing #1856 2023-12-11 09:11:12 +01:00
Roberto Viola
03ddac15da Slight difference between front end pace vs .fit file pace? #1838 2023-12-08 11:57:39 +01:00
Roberto Viola
e41c60fbeb Slight difference between front end pace vs .fit file pace? #1838 (#1855) 2023-12-07 22:51:11 +01:00
Roberto Viola
2a435b6b65 adding also the qz screenshot at the end of the ride to the file to be removed after sending the email 2023-12-07 19:08:44 +01:00
Roberto Viola
da31761c35 Update mainwindow.cpp 2023-12-07 17:18:55 +01:00
Roberto Viola
6908bb5d43 2.16.26 2023-12-07 16:59:59 +01:00
Roberto Viola
cf35fccca7 fixing gpx default files opening if the speed forcing setting for treadmill was enabled 2023-12-07 16:59:08 +01:00
Roberto Viola
d4a8322160 other folders fixed on android 2023-12-07 16:37:37 +01:00
Roberto Viola
dc5f835445 2.16.25 2023-12-07 14:13:53 +01:00
Roberto Viola
85c7a70053 removing chart images after sending the email 2023-12-07 14:11:13 +01:00
Roberto Viola
b615bd008e adding ContentHelper to Android (#1868)
* adding ContentHelper

* android.permission.READ_EXTERNAL_STORAGE

* removing android.permission.READ_EXTERNAL_STORAGE

* copyAndroidContentsURI

* copyAndroidContentsURI

* Update homeform.cpp

* seems ok on android 14 for training workout

* works on android 14

* checked also iOS
2023-12-07 12:40:37 +01:00
Roberto Viola
2ea7337a0f fs5i nordick track more realistic ride when running with Rouvy or Zwift (Discussion #1345) 2023-12-06 09:27:55 +01:00
Roberto Viola
34f34312ce Floating window: adding total remaining time after the elapsed time #1863 2023-12-06 09:14:09 +01:00
Roberto Viola
d4818cc96e Lynx Konect 2.0 from MoovYoo #1861 (#1862)
* Lynx Konect 2.0 from MoovYoo #1861

* Revert "Lynx Konect 2.0 from MoovYoo #1861"

This reverts commit 80468184af.

* "Lynx Konect 2.0 from MoovYoo #1861"

* "Lynx Konect 2.0 from MoovYoo #1861"
2023-12-06 08:33:05 +01:00
Roberto Viola
d801bc7984 Volume of QZ incline swipes overwhelming treadmill [BUG] Issue #1816 (#1822) 2023-12-04 18:13:00 +01:00
Roberto Viola
0efe227318 Nordictrack S20 Treadmill - No speed or incline control (Issue #1850) 2023-12-04 14:36:58 +01:00
Roberto Viola
40549f16e8 Nordictrack S20 Treadmill - No speed or incline control (Issue #1850) 2023-12-04 13:39:57 +01:00
Roberto Viola
7295ebbf62 Nordictrack S20 Treadmill - No speed or incline control (Issue #1850) (… 2023-12-04 10:41:17 +01:00
Roberto Viola
95db80a249 Fix Jitter Distance Calculation (#1854)
* Allow auto-laps to be recorded by the app #1815 (#1830)

* trying to close gracefully the adbthread

* Update apexbike.cpp
2023-12-04 10:12:20 +01:00
Roberto Viola
534de944d1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-12-04 09:44:21 +01:00
Roberto Viola
d4c9f2b1dd Update horizontreadmill.cpp 2023-12-04 09:44:03 +01:00
Roberto Viola
ffb2a6e072 Nordictrack S20 Treadmill - No speed or incline control (Issue #1850) (#1858) 2023-12-04 09:36:44 +01:00
Roberto Viola
2dc7ad7fd9 Move Files instead of copying it from android private folder (#1846) 2023-12-03 21:22:15 +01:00
Roberto Viola
35d2eb23aa Hammer Q.Vadis (10.0) #1824 2023-12-02 10:56:33 +01:00
Roberto Viola
4ab4e17f03 Allow auto-laps to be recorded by the app #1815 (#1830) 2023-12-01 22:01:54 +01:00
Roberto Viola
acd80b1105 Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-12-01 14:13:43 +01:00
Roberto Viola
01ab6841fc Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-12-01 14:02:38 +01:00
Roberto Viola
e547924350 Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-12-01 13:53:27 +01:00
Roberto Viola
30b0bd51ca Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-12-01 08:51:22 +01:00
Roberto Viola
a3a2bca715 Update build.gradle (#1843) 2023-11-30 11:28:15 +01:00
Roberto Viola
bf14b9a8e0 Hammer Q.Vadis (10.0) (Issue #1824) 2023-11-30 06:41:32 +01:00
Roberto Viola
a53e7a6e44 Kingsmith G1 Walking Pad #1833 2023-11-28 14:35:08 +01:00
Roberto Viola
5eefb07e9e XTERRA TRX3500 no control from QZ App (Issue #1835) 2023-11-28 13:53:32 +01:00
Roberto Viola
55b0689d1d XTERRA TRX3500 no control from QZ App (Issue #1835) 2023-11-28 13:28:26 +01:00
Roberto Viola
beb0a8a80c adding elite fan file to iOS project 2023-11-28 11:31:27 +01:00
Roberto Viola
65f57d111a Elite Qubo Digital Smart B+ #1834 2023-11-28 09:05:41 +01:00
Roberto Viola
7de08d223f Kingsmith G1 Walking Pad #1833 2023-11-28 08:59:03 +01:00
Roberto Viola
2b69f2dcd0 Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-11-27 11:57:58 +01:00
Roberto Viola
27da18fed9 Elite Aria #1803 2023-11-27 11:54:40 +01:00
Roberto Viola
22fd82cdff Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-11-27 11:49:55 +01:00
Roberto Viola
d9202218dd Debug Log- Lifespan X41 elliptical cross trainer #1804 2023-11-27 11:25:58 +01:00
Roberto Viola
baf9e24640 Update ypooelliptical.cpp 2023-11-27 11:11:50 +01:00
Roberto Viola
9c0ab9b9f6 Rogue echo bike V3.0 #1828 2023-11-27 09:29:49 +01:00
Roberto Viola
49e0506815 Update label to include NordicTrack info #1817 2023-11-26 11:46:06 +01:00
Roberto Viola
80c528f370 Update technogymmyruntreadmillrfcomm.cpp 2023-11-24 09:14:17 +01:00
Roberto Viola
54fa926596 Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804) 2023-11-24 08:33:13 +01:00
Roberto Viola
9f80a7b679 Android OpenSSL in CI (#1809)
* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* qthttpserver added
2023-11-23 16:08:05 +01:00
Roberto Viola
7639d19f5e Elite Aria #1803 2023-11-23 09:15:01 +01:00
Roberto Viola
9870626695 Elite Aria #1803 2023-11-23 08:50:22 +01:00
Roberto Viola
5be30f8f6c Elite Aria #1803 2023-11-23 08:38:30 +01:00
Roberto Viola
751f9c4f84 Elite Aria #1803 2023-11-22 15:07:25 +01:00
Roberto Viola
dd61b8e2ca Elite Aria #1803 2023-11-22 14:26:12 +01:00
Roberto Viola
7dfc994888 Elite Aria #1803 2023-11-22 14:18:05 +01:00
Roberto Viola
c662b84bc2 Debug Log- Lifespan X41 elliptical cross trainer (Issue #1804) 2023-11-22 13:39:00 +01:00
Roberto Viola
7b0ec35303 Elite Aria #1803 2023-11-22 11:15:41 +01:00
Roberto Viola
5d235eaab7 Elite Aria #1803 2023-11-22 10:45:33 +01:00
Roberto Viola
4e55e2b085 Elite Aria #1803 2023-11-22 09:27:13 +01:00
Roberto Viola
e221e4bf7e Update README.md 2023-11-22 08:26:20 +01:00
Roberto Viola
67f0be7c06 Update README.md 2023-11-22 08:25:10 +01:00
Roberto Viola
415025e43d Impossible to connect to treadmill BH S7Ti #1800 2023-11-21 14:07:32 +01:00
Roberto Viola
ba1854659a Impossible to connect to treadmill BH S7Ti #1800 2023-11-21 13:47:36 +01:00
Roberto Viola
f622a3e3f7 Life-Span X-41 Elliptical Cross trainer #1799 2023-11-20 12:05:09 +01:00
Roberto Viola
aad888cdab Adding fit hi way 2023-11-19 17:37:41 +01:00
Roberto Viola
b3d45319ae Adding FIT HI WAY 2023-11-19 17:36:10 +01:00
Roberto Viola
0ecff51b14 Android 14 QZ on Documents Folder (#1794)
* Update homeform.cpp

* implemented in all the 4 places where the user can open files

* Update homeform.h

* Update homeform.cpp

* profiles correctly copied

* change path only for android 14 or greater

* Update homeform.cpp
2023-11-17 22:39:07 +01:00
Roberto Viola
face819d09 Update trxappgateusbtreadmill.cpp 2023-11-17 18:45:29 +01:00
Roberto Viola
f8b9c65dab Focus Fitness Senator 54 iplus #1790 2023-11-17 17:36:16 +01:00
Roberto Viola
0b0081a506 version 2.16.24 2023-11-17 15:21:04 +01:00
Roberto Viola
94c63f5b77 Focus Fitness Senator 54 iplus #1790 2023-11-17 15:18:50 +01:00
Roberto Viola
87725cdd1d Focus Fitness Senator 54 iplus #1790 2023-11-17 13:54:37 +01:00
Roberto Viola
0ddeb747bf Focus Fitness Senator 54 iplus #1790 2023-11-17 13:05:05 +01:00
Roberto Viola
63a7476d14 Focus Fitness Senator 54 iplus #1790 2023-11-17 11:33:37 +01:00
Roberto Viola
28701625ac copying old elements on android from the private folder 2023-11-16 22:44:13 +01:00
Roberto Viola
e0bc9071c5 Update nordictrackifitadbtreadmill.cpp 2023-11-16 14:11:24 +01:00
Roberto Viola
5bd16f8200 No connection to x22i (Issue #65)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65#issuecomment-1813990744
2023-11-16 14:01:10 +01:00
Roberto Viola
d2b844ffb9 technogym myrun recommends trying full discovery 2023-11-14 21:09:54 +01:00
Roberto Viola
4018d2947c Cannot get Nordic Track Studio Bike - NTEX71021 to work w/ QZ #1785 2023-11-14 15:29:36 +01:00
Roberto Viola
f030c319ac pen Cannot get Nordic Track Studio Bike - NTEX71021 to work w/ QZ #1785 2023-11-14 15:24:50 +01:00
Roberto Viola
ccd4a9896e Bowflex Max Trainer #1789 2023-11-14 15:17:26 +01:00
Roberto Viola
246bf944b2 Update homeform.cpp (#1788) 2023-11-14 08:49:39 +01:00
Roberto Viola
0b7ded9020 Update bluetooth.cpp 2023-11-14 08:43:59 +01:00
Roberto Viola
8bf64c64be technogymrfcomm fix on discovery 2023-11-14 08:20:34 +01:00
Roberto Viola
dbd0227722 fs5i nordick track more realistic ride when running with Rouvy or Zwift #1345 2023-11-13 16:00:17 +01:00
Roberto Viola
7e04ab4f92 No connection to x22i (Issue #65)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65#issuecomment-1807917029
2023-11-13 15:07:58 +01:00
Roberto Viola
9b7e1d873c Old Treadmill/Android 2 compatibility #62
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/62
2023-11-13 14:54:33 +01:00
Roberto Viola
60ee86476c Revert "trying wahoo kickrhead connectless #1281"
This reverts commit f729260cbd.
2023-11-13 14:48:45 +01:00
Roberto Viola
430378b441 No connection to x22i (Issue #65)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65#issuecomment-1807917029
2023-11-13 14:48:12 +01:00
Roberto Viola
b9537ff042 Cannot get Nordic Track Studio Bike - NTEX71021 to work w/ QZ (Issue #1785) 2023-11-13 14:46:19 +01:00
Roberto Viola
c0bba3943b No connection to x22i (Issue #65)
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65#issuecomment-1807917029
2023-11-13 14:45:56 +01:00
Roberto Viola
f729260cbd trying wahoo kickrhead connectless #1281 2023-11-11 18:28:31 +01:00
Roberto Viola
bff00001ab No connection to x22i #65
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65
2023-11-10 18:23:23 +01:00
Roberto Viola
91e5a1f14e No connection to x22i #65
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65
2023-11-10 18:20:08 +01:00
Roberto Viola
b928be6a33 fixing ios build on CI 2023-11-10 15:56:12 +01:00
Roberto Viola
2e0dde6aa4 Incorrect distance on QZ with Sole S77 treadmill #1781 2023-11-10 08:38:21 +01:00
Roberto Viola
7b8c8ea2b8 Broken link in Macos install instructions #1779 2023-11-09 10:47:40 +01:00
Roberto Viola
afd6e5ce26 ADB on iOS (#1732)
* Create libadb.a

* adding files to project

* code implemented and works locally
2023-11-09 08:06:33 +01:00
Roberto Viola
2b8b005762 proformwifibike: external gear change also target power on ERG mode 2023-11-08 16:42:20 +01:00
Roberto Viola
1e639cacd1 fs5i nordick track more realistic ride when running with Rouvy or Zwift #1345 2023-11-08 16:37:44 +01:00
Roberto Viola
16611c7e49 openssl added for windows (#1777) 2023-11-08 11:55:30 +01:00
Roberto Viola
7256cb5ef5 added target cadence, watt and resistance to fit file along with user info 2022-07-19 08:11:29 +02:00
Roberto Viola
f731651c71 build fixed 2022-07-18 14:18:32 +02:00
Roberto Viola
38e9987fff sport type added to preview function 2022-07-18 12:24:33 +02:00
Roberto Viola
28c4084780 using a different template for the preview charts 2022-07-16 15:16:18 +02:00
Roberto Viola
02f4154577 workout history works with a bluetooth device connected 2022-07-15 13:47:06 +02:00
Roberto Viola
6e8ef20efd Merge branch 'master' into workout-history 2022-07-15 11:03:55 +02:00
Roberto Viola
7b01867934 preparing form... 2022-07-14 14:30:33 +02:00
1340 changed files with 217055 additions and 24698 deletions

File diff suppressed because it is too large Load Diff

1
.gitignore vendored
View File

@@ -50,3 +50,4 @@ src/inner_templates/googlemaps/cesium-key.js
.vscode/settings.json
/tst/Devices/.vs
src/inner_templates/googlemaps/cesium-key.js
src/qdomyos-zwift.pro.user.49de507

9
.gitmodules vendored
View File

@@ -12,4 +12,11 @@
[submodule "tst/googletest"]
path = tst/googletest
url = https://github.com/google/googletest.git
branch = tags/release-1.12.1
tag = release-1.12.1
[submodule "src/qthttpserver"]
path = src/qthttpserver
url = https://github.com/qt-labs/qthttpserver
[submodule "zwiftplay"]
path = zwiftplay
url = https://github.com/cagnulein/zwiftplay.git
branch = lib

16
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "C://Users//violarob//Downloads//windows-msvc2019-binary-no-python (1)//output/qdomyos-zwift.exe",
"symbolSearchPath": "C://Users//violarob//Downloads//windows-msvc2019-binary-no-python (1)//output/qdomyos-zwift.pdb",
"sourceFileMap": {
"d:/a/qdomyos-zwift/qdomyos-zwift": "c:/work/qdomyos-zwift/",
"compiled_source_path": "C://Users//violarob//Downloads//windows-msvc2019-binary-no-python (1)//output/"
}
}
]
}

374
CLAUDE.md Normal file
View File

@@ -0,0 +1,374 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
QDomyos-Zwift is a Qt-based application that bridges fitness equipment (treadmills, bikes, ellipticals, rowers) with virtual training platforms like Zwift. It acts as a Bluetooth intermediary, connecting physical equipment to fitness apps while providing enhanced features like Peloton integration, power zone training, and workout programs.
## Build System & Commands
### Build Commands
```bash
# Build entire project (use subdirs TEMPLATE)
qmake
make
# Build specific configurations
qmake -r # Recursive build
make debug # Debug build
make release # Release build
# Clean build
make clean
make distclean
```
### Platform-Specific Builds
```bash
# Android
qmake -spec android-clang
make
# iOS
qmake -spec macx-ios-clang
make
# Windows (MinGW)
qmake -spec win32-g++
make
```
### Testing
```bash
# Build and run tests (requires main app built first)
cd tst
qmake
make
./qdomyos-zwift-tests
# Run with XML output for CI
GTEST_OUTPUT=xml:test-results/ GTEST_COLOR=1 ./qdomyos-zwift-tests
```
### No-GUI Mode
```bash
# Run application without GUI
sudo ./qdomyos-zwift -no-gui
```
## Architecture Overview
### Device Architecture
The application follows a hierarchical device architecture:
1. **Base Class**: `bluetoothdevice` - Abstract base for all fitness devices
- Manages Bluetooth connectivity via Qt's QLowEnergyController
- Defines common metrics (speed, cadence, heart rate, power, distance)
- Integrates with virtual devices for app connectivity
2. **Device Type Classes**: Inherit from `bluetoothdevice`
- `bike` - Bike-specific features (resistance, gears, power zones)
- `treadmill` - Treadmill features (speed control, inclination, pace)
- `elliptical` - Combined bike/treadmill features
- `rower` - Rowing metrics (stroke count, 500m pace)
- `stairclimber` - Step counting and climbing metrics
- `jumprope` - Jump sequence tracking
3. **Concrete Implementations**: Inherit from device type classes
- Located in `src/devices/[devicename]/` folders
- Examples: `domyosbike`, `pelotonbike`, `ftmsbike`
### Virtual Device System
- `virtualdevice` - Abstract base for virtual representations
- `virtualbike`, `virtualtreadmill`, etc. - Advertise to external apps
- Enables bidirectional communication between physical and virtual devices
### Bluetooth Management
- `bluetooth` class acts as device factory and connection manager
- `discoveryoptions` configures device discovery process
- Supports multiple connection types (Bluetooth LE, TCP, UDP)
## Key Development Areas
### Adding New Device Support
1. Create device folder in `src/devices/[devicename]/`
2. Implement device class inheriting from appropriate base type
3. Add device detection logic to `bluetooth.cpp`
4. Update `qdomyos-zwift.pri` with new source files
5. Add tests in `tst/Devices/` following existing patterns
### Characteristics & Protocols
- Bluetooth characteristics handlers in `src/characteristics/`
- FTMS (Fitness Machine Service) protocol support
- ANT+ integration for sensors
- Custom protocol implementations for specific brands
### UI & QML
- QML-based UI with Qt Quick Controls 2
- Main QML files in `src/` (main.qml, settings.qml, etc.)
- Platform-specific UI adaptations (iOS, Android, desktop)
### Integration Features
- Peloton workout/resistance integration (`peloton.cpp`)
- Zwift workout parsing (`zwiftworkout.cpp`)
- GPX file support for route following (`gpx.cpp`)
- Training program support (ZWO, XML formats)
## Platform-Specific Notes
### iOS
- Swift bridge files in `src/ios/`
- Apple Watch integration via `WatchKitConnection.swift`
- HealthKit integration for fitness data
- ConnectIQ SDK for Garmin devices
### Android
- Java bridge files in `src/android/src/`
- ANT+ integration via Android ANT SDK
- Foreground service for background operation
- USB serial support for wired connections
### Windows
- ADB integration for Nordic Track iFit devices
- PaddleOCR integration for Zwift workout detection
- Windows-specific networking features
## File Structure Patterns
### Device Files
```
src/devices/[devicename]/
├── [devicename].h # Header file
├── [devicename].cpp # Implementation
└── README.md # Device-specific documentation (optional)
```
### Test Files
```
tst/Devices/
├── DeviceTestData.h # Test data definitions
├── Test[DeviceName].h # Device-specific test cases
└── TestBluetooth.cpp # Main device detection test suite
```
## Testing Framework
- Uses Google Test (gtest) with Google Mock
- Comprehensive device detection testing
- Configuration-based test scenarios
- XML output support for CI/CD integration
- Tests must be built after main application (links against libqdomyos-zwift.a)
## Configuration & Settings
- Settings managed via `qzsettings.cpp` (QSettings wrapper)
- Platform-specific configuration paths
- Profile system for multiple users/devices
- Extensive customization options for device behavior
## External Dependencies
- Qt 5.15.2+ (Bluetooth, WebSockets, Charts, Quick, etc.)
- Google Test (submodule for testing)
- Platform SDKs (Android ANT+, iOS HealthKit, Windows ADB)
- Protocol Buffers for Zwift API integration
- MQTT client for IoT integration
- Various fitness platform APIs (Strava, Garmin Connect, etc.)
## Adding New ProForm Treadmill Models
This section provides a complete guide for adding new ProForm treadmill models to the codebase, based on the ProForm 995i implementation.
### Prerequisites
1. **Bluetooth Frame Capture File**: A file containing raw Bluetooth frames from the target treadmill
2. **Frame Analysis**: Understanding of which frames are initialization vs. sendPoll frames
3. **BLE Header Knowledge**: Each frame has an 11-byte BLE header that must be removed
### Step-by-Step Implementation Process
#### 1. Process Bluetooth Frames
First, process the raw Bluetooth frames by removing the first 11 bytes (BLE header) from each frame:
```bash
# Example: if you have "proform_model.c" with raw frames
# Process each frame by removing first 11 bytes
# Separate initialization frames from sendPoll frames
```
**Key Requirements:**
- Remove exactly 11 bytes from each frame (BLE header)
- Identify the boundary between initialization and sendPoll frames
- Initialization frames come first, sendPoll frames follow
- Document which packet number starts the sendPoll sequence
#### 2. Add Boolean Flag to Header File
Add the new model flag to `src/devices/proformtreadmill/proformtreadmill.h`:
```cpp
// Add before #ifdef Q_OS_IOS section
bool proform_treadmill_newmodel = false;
```
#### 3. Add Settings Support
Update the following files for settings integration:
**In `src/qzsettings.h`:**
```cpp
static const QString proform_treadmill_newmodel;
static constexpr bool default_proform_treadmill_newmodel = false;
```
**In `src/qzsettings.cpp`:**
```cpp
const QString QZSettings::proform_treadmill_newmodel = QStringLiteral("proform_treadmill_newmodel");
```
* Update the `allSettingsCount` in `qzsettings.cpp`
#### 4. Update QML Settings UI
**In `src/settings.qml`:**
1. Add property at the END of properties list:
```qml
property bool proform_treadmill_newmodel: false
```
2. Update ComboBox model array:
```qml
model: ["Disabled", "Proform New Model", ...]
```
3. Add case selection logic (find next available case number):
```qml
currentIndex: settings.proform_treadmill_newmodel ? XX : 0;
```
4. Add reset logic:
```qml
settings.proform_treadmill_newmodel = false;
```
5. Add switch case:
```qml
case XX: settings.proform_treadmill_newmodel = true; break;
```
#### 5. Implement Device Logic
**In `src/devices/proformtreadmill/proformtreadmill.cpp`:**
1. **Load Settings** (in constructor):
```cpp
proform_treadmill_newmodel = settings.value(QZSettings::proform_treadmill_newmodel, QZSettings::default_proform_treadmill_newmodel).toBool();
```
2. **Add Initialization Case** (in `btinit()` method):
```cpp
} else if (proform_treadmill_newmodel) {
// ALL initialization frames go here
uint8_t initData1[] = {0x00, 0xfe, 0x02, 0x08, 0x02};
writeCharacteristic(initData1, sizeof(initData1), QStringLiteral("init"), false, true);
// ... continue with ALL init frames from capture file
// Use frames from beginning until sendPoll boundary
}
```
3. **Add SendPoll Case** (in `sendPoll()` method):
```cpp
} else if (proform_treadmill_newmodel) {
switch (counterPoll) {
case 0:
// First sendPoll frame
break;
case 1:
// Second sendPoll frame
break;
// ... continue with pattern from sendPoll frames
default:
// Reset counter and cycle
counterPoll = -1;
break;
}
}
```
4. **Update Force Functions** - Add flag to conditional checks in `forceIncline()` and `forceSpeed()`:
```cpp
} else if (proform_treadmill_8_0 || ... || proform_treadmill_newmodel) {
write[14] = write[11] + write[12] + 0x12;
}
```
### Implementation Requirements
#### Frame Processing Rules
- **Exactly 11 bytes** must be removed from each frame (BLE header)
- **All initialization frames** must be included in the btinit() case
- **All sendPoll frames** must be included in the sendPoll() switch statement
- **Frame order** must be preserved exactly as captured
#### Settings Integration Rules
- **Property placement**: Always add new properties at the END of the properties list in settings.qml
- **Case numbering**: Find the next available case number in the ComboBox switch statement
- **Naming convention**: Use descriptive names following existing patterns
#### Code Organization Rules
- **Initialization**: All init frames go in btinit() method
- **Communication**: All sendPoll frames go in sendPoll() method with switch/case structure
- **Force functions**: Add new model flag to existing conditional chains
### Common Pitfalls and Solutions
#### Incorrect Byte Removal
- **Problem**: Removing wrong number of bytes (12 instead of 11)
- **Solution**: Always remove exactly 11 bytes (BLE header)
#### Wrong SendPoll Boundary
- **Problem**: Using initialization frames in sendPoll logic
- **Solution**: Identify exact packet number where sendPoll starts
#### Incomplete Initialization
- **Problem**: Missing initialization frames
- **Solution**: Include ALL frames from start until sendPoll boundary
#### Settings Placement
- **Problem**: Adding property in wrong location in settings.qml
- **Solution**: Always add at END of properties list
### Verification Checklist
- [ ] All 11 bytes removed from each frame
- [ ] Initialization frames correctly identified and included
- [ ] SendPoll frames correctly identified and implemented
- [ ] Settings properly integrated in all required files
- [ ] ComboBox updated with new model option
- [ ] Force functions updated with new model flag
- [ ] Property added at END of settings.qml properties list
### Example Reference
The ProForm 995i implementation serves as the reference example:
- 25 initialization frames (pkt4658-pkt4756)
- 33 sendPoll frames (pkt4761-pkt4897)
- 6-case sendPoll switch statement with cycling logic
- Complete settings integration across all required files
## Development Tips
- Use Qt Creator for development with proper project file support
- The project uses Qt's signal/slot mechanism extensively
- Device implementations should follow existing patterns for consistency
- Add comprehensive logging using the project's logging framework
- Test device detection thoroughly using the existing test infrastructure
- Consider platform differences when adding new features
## Additional Memories
- When adding a new setting in QML (setting-tiles.qml), you must:
* Add the property at the END of the properties list

View File

@@ -0,0 +1,53 @@
#include <NimBLEDevice.h>
#define INDOOR_BIKE_DATA_UUID "00002AD2-0000-1000-8000-00805f9b34fb"
#define CUSTOM_SERVICE_UUID "ce060000-43e5-11e4-916c-0800200c9a66"
NimBLEServer* pServer = nullptr;
NimBLECharacteristic* pIndoorBikeDataChar = nullptr;
class ServerCallbacks: public NimBLEServerCallbacks {
void onConnect(NimBLEServer* pServer) {
Serial.println("Client connected");
};
void onDisconnect(NimBLEServer* pServer) {
Serial.println("Client disconnected");
}
};
void setup() {
Serial.begin(115200);
Serial.println("Starting NimBLE Server");
NimBLEDevice::init("PM5 431431183 Row");
pServer = NimBLEDevice::createServer();
pServer->setCallbacks(new ServerCallbacks());
NimBLEService* pFtmService = pServer->createService("1826");
//NimBLEService* pCustomService = pServer->createService(CUSTOM_SERVICE_UUID);
pIndoorBikeDataChar = pFtmService->createCharacteristic(
INDOOR_BIKE_DATA_UUID,
NIMBLE_PROPERTY::READ |
NIMBLE_PROPERTY::NOTIFY
);
pFtmService->start();
//pCustomService->start();
NimBLEAdvertising* pAdvertising = NimBLEDevice::getAdvertising();
pAdvertising->addServiceUUID(pFtmService->getUUID());
//pAdvertising->addServiceUUID(CUSTOM_SERVICE_UUID);
const std::string data = { 0x01, 0x10, 0x00 }; // Imposta i valori desiderati
pAdvertising->setServiceData(pFtmService->getUUID(), data);
pAdvertising->start();
Serial.println("Advertising started");
}
void loop() {
// Metti qui il tuo codice principale, da eseguire ripetutamente
// Ad esempio, potresti aggiornare il valore della caratteristica Indoor Bike Data
}

129
README.md
View File

@@ -7,58 +7,125 @@ Zwift bridge for Treadmills and Bike!
[<img src="docs/img/app_store.png">](https://apps.apple.com/app/id1543684531?fbclid=IwAR10H6y3mEgwkTlGJON3e8voYOh2wt3kLFOpFzoIXaYZ_N0y0pDvKxHMUaM)
<a href="https://www.buymeacoffee.com/cagnulein" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
![UI](docs/img/treadmill-bridge-schema.png)
[![Video](https://img.youtube.com/vi/GgG3dMhmo2Y/0.jpg)](https://www.youtube.com/watch?v=GgG3dMhmo2Y)
![UI](docs/img/ui.png)
![UI](docs/img/realtime-chart.png)
UI on Linux
![UI](docs/img/ui-mac.png)
UI on MacOS
<table>
<tr>
<td>
<img src="icons/AppScreen/iOS%20Phones%20-%206.5_/screenshot1.jpeg" style="height: 400px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
</td>
<td>
<img src="icons/AppScreen/iOS%20Phones%20-%206.5_/screenshot2.jpeg" style="height: 400px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
</td>
<td>
<img src="icons/AppScreen/iOS%20Phones%20-%206.5_/screenshot3.jpeg" style="height: 400px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
</td>
<td>
<img src="icons/AppScreen/iOS%20Phones%20-%206.5_/screenshot4.jpeg" style="height: 400px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
</td>
<td>
<img src="icons/AppScreen/iOS%20Phones%20-%206.5_/screenshot5.jpeg" style="height: 400px !important; box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
</td>
</tr>
</table>
### Features
1. Domyos compatible
2. Toorx TRX Route Key compatible
3. Echelon Connect Sport compatible
4. Zwift compatible
5. Create, load and save train programs
6. Measure distance, elevation gain and watts
7. Gpx import (with difficulty slider)
8. Realtime Charts
# UI Features
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Tiles Customization|X|X|X|X|Order and visibility of each tile|
|Profiles|X|X|X|X|Different user or different fitness device profiles|
|UI Zoom Customization|X|X|X|X||
# Peloton Features
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Bike metrics on the peloton app|X||X|||
|Power zone with auto resistance|X|||||
|Peloton real-time resistance conversion|X||X||with the possibility to customize it|
|Peloton real-time auto-resistance|X||X||with the possibility to customize it|
|Peloton auto speed and auto inclination||X|X||with the possibility to customize it|
# Heart Rate Features
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Heart Rate support|X|X|X|X|Apple Watch, ANT+ devices and Bluetooth devices|
|Heart Rate Zones Customizations|X|X|X|X||
|Ability to calculate Wattage from HR and Cadence|X||||for the bikes that doesn't have a power sensor|
# 3rd Apps Compatibility
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Zwift Compatibility|X|X|X|X||
|Zwift Auto resistance|X||X|||
|Zwift Auto inclination and speed||X|X||https://www.youtube.com/watch?v=KTQ2n7yeDbo|
|Wahoo RGT Compatibility|X|X|X|X||
|VzFit Compatibility|X|X|X|X||
|Rouvy Compatibility|X|X|X|X||
|IFIT app Compatibility|X|||||
|Echelon app Compatibility|X|||||
|Wahoo Dircon Compatibility|X|X|X|X|in order to send data to Zwift or RGT with Wifi only!|
|One device only support for Zwift and Wahoo RGT|X|X|X|X|using Wahoo Dircon https://www.youtube.com/watch?v=gYYUXNWFAok|
|BitGym Compatibility|X|X|X|X||
# Training Program
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Builtin video support (Kinomap like)|X|X|X|X|Files could be local or on the cloud!|
|GPX auto following|X|X|X|X||
|2D/3D maps for GPX|X|X|X|X||
|ZWO (Zwift workout file) compatibility|X|X|X|X||
|XML Workout file compatibility|X|X|X|X||
|Auto follow workout based on your heart rate|X|X|X|X||
|Random workout|X|X|X|X||
# Statistics
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|E-Mail report|X|X|X|X|at the end of the workout|
|Strava integration|X|X|X|X|press stop at the end of the workout to auto upload it|
# Misc
|Feature|Bike|Treadmill|Elliptical|Rower|Notes|
|:---|:---:|:---:|:---:|:---:|---:|
|Resistance shifting with bluetooth remote|X||X|||
|TTS support|X|X|X|X||
|Zwift Play & Click support|X|||||
|MQTT integration|X|X|X|X||
|OpenSoundControl integration|X|X|X|X||
![First Success](docs/img/first_success.jpg)
### Installation
You can install it on multiple platforms.
Read the [installation procedure](docs/10_Installation.md)
You can install it on multiple platforms.
Read the [installation procedure](docs/10_Installation.md)
### Tested on
You can run the app on [Macintosh or Linux devices](docs/10_Installation.md). IOS and Android are also supported.
QDomyos-Zwift works on every [FTMS-compatible application](docs/20_supported_devices_and_applications.md), and virtually any [bluetooth enabled device](docs/20_supported_devices_and_applications.md).
The QDomyos-Zwift application can run on [Macintosh or Linux devices](docs/10_Installation.md) iOS, and Android.
It supports any [FTMS-compatible application](docs/20_supported_devices_and_applications.md) software and most [bluetooth enabled device](docs/20_supported_devices_and_applications.md).
### No GUI version
run as
$ sudo ./qdomyos-zwift -no-gui
$ sudo ./qdomyos-zwift -no-gui
### Reference
https://github.com/ProH4Ck/treadmill-bridge
=> GitHub Repository: [QDomyos-Zwift on GitHub](https://github.com/ProH4Ck/treadmill-bridge)
https://www.livestrong.com/article/422012-what-is-10-degrees-in-incline-on-a-treadmill/
=> Treadmill Incline Reference: [What Is 10 Degrees in Incline on a Treadmill?](https://www.livestrong.com/article/422012-what-is-10-degrees-in-incline-on-a-treadmill/)
Icons used in this documentation come from [flaticon.com](https://www.flaticon.com)
=> Icon Attribution: Icons used in this documentation are from [Flaticon.com](https://www.flaticon.com)
### Blog
https://robertoviola.cloud
=> Related Blog: [Roberto Viola's Blog](https://robertoviola.cloud)

View File

@@ -2,3 +2,4 @@
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "swiftDebug.h"

View File

@@ -53,12 +53,17 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_accessibility_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bodymovin_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bootstrap_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_charts.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_charts_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_clipboard_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_datavisualization.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_datavisualization_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_edid_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
@@ -71,6 +76,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_httpserver.pri \
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_httpserver_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_httpserver.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras.pri \
@@ -95,6 +103,8 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_purchasing.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_purchasing_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldebug_private.pri \
@@ -107,6 +117,16 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3d.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3d_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dassetimport.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3drender.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3drender_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3druntimerender.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dutils.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dutils_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
@@ -120,12 +140,21 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_script.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_script_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scripttools.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scripttools_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_serialbus.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_serialbus_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_sslserver.pri \
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_sslserver_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sslserver.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib.pri \
@@ -136,6 +165,8 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uiplugin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_virtualkeyboard.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_virtualkeyboard_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets.pri \
@@ -194,15 +225,26 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtiff.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtpassthrucanbus.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtpeakcanbus.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_cl.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_ios.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qttinycanbus.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualcanbus.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_hangul.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_openwnn.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_pinyin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_tcime.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_thai.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboardplugin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtwebview_darwin.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwbmp.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebgl.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebp.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri \
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf \
@@ -219,6 +261,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/features/default_pre.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/default_pre.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_pre.prf \
../defaults.pri \
../src/purchasing/purchasing.pri \
../src/qdomyos-zwift.pri \
../../Qt/5.15.2/ios/mkspecs/features/resolve_config.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/resolve_config.prf \
../../Qt/5.15.2/ios/mkspecs/features/default_post.prf \
@@ -226,6 +271,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_post.prf \
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/features/default_post.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/objective_c.prf \
../../Qt/5.15.2/ios/mkspecs/features/qmltypes.prf \
../../Qt/5.15.2/ios/mkspecs/features/metatypes.prf \
../../Qt/5.15.2/ios/mkspecs/features/ltcg.prf \
../../Qt/5.15.2/ios/mkspecs/features/qml_debug.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf \
@@ -264,6 +312,18 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/lib/libqtharfbuzz_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Core_debug.prl \
../../Qt/5.15.2/ios/lib/libqtpcre2_debug.prl \
../../Qt/5.15.2/ios/plugins/mediaservice/libqavfmediaplayer_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_esri_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_itemsoverlay_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_mapbox_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_mapboxgl_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_nokia_debug.prl \
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_osm_debug.prl \
../../Qt/5.15.2/ios/plugins/webview/libqtwebview_darwin_debug.prl \
../../Qt/5.15.2/ios/plugins/mediaservice/libqavfcamera_debug.prl \
../../Qt/5.15.2/ios/plugins/mediaservice/libqtmedia_audioengine_debug.prl \
../../Qt/5.15.2/ios/plugins/audio/libqtaudio_coreaudio_debug.prl \
../../Qt/5.15.2/ios/plugins/playlistformats/libqtmultimedia_m3u_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqgif_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl \
@@ -288,32 +348,51 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_server_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_tcp_debug.prl \
../../Qt/5.15.2/ios/plugins/bearer/libqgenericbearer_debug.prl \
../../Qt/5.15.2/ios/plugins/texttospeech/libqtexttospeech_speechios_debug.prl \
../../Qt/5.15.2/ios/plugins/sqldrivers/libqsqlite_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5HttpServer_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5SslServer_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Charts_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Widgets_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Location_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5PositioningQuick_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5QuickControls2_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Quick_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Multimedia_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5WebView_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Bluetooth_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Xml_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Positioning_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5QmlModels_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Qml_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5NetworkAuth_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5WebSockets_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Network_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5TextToSpeech_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Concurrent_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/libqtquickcontrols2plugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl \
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQml/libqmlplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Templates.2/libqtquicktemplates2plugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl \
../../Qt/5.15.2/ios/qml/QtQml/Models.2/libmodelsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQml/WorkerScript.2/libworkerscriptplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtWebView/libdeclarative_webview_debug.prl \
../../Qt/5.15.2/ios/qml/QtCharts/libqtchartsqml2_debug.prl \
../../Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin_debug.prl \
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtPositioning/libdeclarative_positioning_debug.prl \
../../Qt/5.15.2/ios/qml/QtLocation/libdeclarative_location_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls/libqtquickcontrolsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets/libwidgetsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl \
../../Qt/5.15.2/ios/qml/Qt/labs/platform/libqtlabsplatformplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtMultimedia/libdeclarative_multimedia_debug.prl \
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin_debug.prl
@@ -361,12 +440,17 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_accessibility_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bodymovin_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bootstrap_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_charts.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_charts_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_clipboard_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_datavisualization.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_datavisualization_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_edid_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
@@ -379,6 +463,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_httpserver.pri:
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_httpserver_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_httpserver.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras.pri:
@@ -403,6 +490,8 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_purchasing.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_purchasing_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldebug_private.pri:
@@ -415,6 +504,16 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3d.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3d_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dassetimport.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3drender.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3drender_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3druntimerender.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dutils.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick3dutils_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
@@ -428,12 +527,21 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_script.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_script_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scripttools.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scripttools_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_serialbus.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_serialbus_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_sslserver.pri:
../../Qt/5.15.2/ios/mkspecs/modules-inst/qt_lib_sslserver_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sslserver.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib.pri:
@@ -444,6 +552,8 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uiplugin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_virtualkeyboard.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_virtualkeyboard_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets.pri:
@@ -502,15 +612,26 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtiff.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtpassthrucanbus.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtpeakcanbus.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_cl.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_generic.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_ios.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qttinycanbus.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualcanbus.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_hangul.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_openwnn.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_pinyin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_tcime.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboard_thai.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtvirtualkeyboardplugin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtwebview_darwin.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwbmp.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebgl.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebp.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri:
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf:
@@ -527,6 +648,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/features/default_pre.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/default_pre.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_pre.prf:
../defaults.pri:
../src/purchasing/purchasing.pri:
../src/qdomyos-zwift.pri:
../../Qt/5.15.2/ios/mkspecs/features/resolve_config.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/resolve_config.prf:
../../Qt/5.15.2/ios/mkspecs/features/default_post.prf:
@@ -534,6 +658,9 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_post.prf:
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/features/default_post.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/objective_c.prf:
../../Qt/5.15.2/ios/mkspecs/features/qmltypes.prf:
../../Qt/5.15.2/ios/mkspecs/features/metatypes.prf:
../../Qt/5.15.2/ios/mkspecs/features/ltcg.prf:
../../Qt/5.15.2/ios/mkspecs/features/qml_debug.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf:
@@ -572,6 +699,18 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/lib/libqtharfbuzz_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Core_debug.prl:
../../Qt/5.15.2/ios/lib/libqtpcre2_debug.prl:
../../Qt/5.15.2/ios/plugins/mediaservice/libqavfmediaplayer_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_esri_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_itemsoverlay_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_mapbox_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_mapboxgl_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_nokia_debug.prl:
../../Qt/5.15.2/ios/plugins/geoservices/libqtgeoservices_osm_debug.prl:
../../Qt/5.15.2/ios/plugins/webview/libqtwebview_darwin_debug.prl:
../../Qt/5.15.2/ios/plugins/mediaservice/libqavfcamera_debug.prl:
../../Qt/5.15.2/ios/plugins/mediaservice/libqtmedia_audioengine_debug.prl:
../../Qt/5.15.2/ios/plugins/audio/libqtaudio_coreaudio_debug.prl:
../../Qt/5.15.2/ios/plugins/playlistformats/libqtmultimedia_m3u_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqgif_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl:
@@ -596,32 +735,51 @@ qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_server_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_tcp_debug.prl:
../../Qt/5.15.2/ios/plugins/bearer/libqgenericbearer_debug.prl:
../../Qt/5.15.2/ios/plugins/texttospeech/libqtexttospeech_speechios_debug.prl:
../../Qt/5.15.2/ios/plugins/sqldrivers/libqsqlite_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5HttpServer_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5SslServer_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Charts_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Widgets_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Location_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5PositioningQuick_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5QuickControls2_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Quick_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Multimedia_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5WebView_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Bluetooth_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Xml_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Positioning_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5QmlModels_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Qml_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5NetworkAuth_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5WebSockets_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Network_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5TextToSpeech_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Concurrent_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/libqtquickcontrols2plugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl:
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQml/libqmlplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Templates.2/libqtquicktemplates2plugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl:
../../Qt/5.15.2/ios/qml/QtQml/Models.2/libmodelsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQml/WorkerScript.2/libworkerscriptplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtWebView/libdeclarative_webview_debug.prl:
../../Qt/5.15.2/ios/qml/QtCharts/libqtchartsqml2_debug.prl:
../../Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin_debug.prl:
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtPositioning/libdeclarative_positioning_debug.prl:
../../Qt/5.15.2/ios/qml/QtLocation/libdeclarative_location_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls/libqtquickcontrolsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets/libwidgetsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl:
../../Qt/5.15.2/ios/qml/Qt/labs/platform/libqtlabsplatformplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtMultimedia/libdeclarative_multimedia_debug.prl:
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin_debug.prl:

View File

@@ -107,6 +107,7 @@ extension MainController: WorkoutTrackingDelegate {
WorkoutTracking.speed = WatchKitConnection.speed
WorkoutTracking.power = WatchKitConnection.power
WorkoutTracking.cadence = WatchKitConnection.cadence
WorkoutTracking.steps = WatchKitConnection.steps
if Locale.current.measurementSystem != "Metric" {
self.distanceLabel.setText("Distance \(String(format:"%.2f", WorkoutTracking.distance))")

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>

View File

@@ -27,6 +27,7 @@ class WatchKitConnection: NSObject {
public static var speed = 0.0
public static var cadence = 0.0
public static var power = 0.0
public static var steps = 0
weak var delegate: WatchKitConnectionDelegate?
private override init() {
@@ -76,6 +77,10 @@ extension WatchKitConnection: WatchKitConnectionProtocol {
WatchKitConnection.power = dPower
let dCadence = Double(result["cadence"] as! Double)
WatchKitConnection.cadence = dCadence
if let stepsDouble = result["steps"] as? Double {
let iSteps = Int(stepsDouble)
WatchKitConnection.steps = iSteps
}
}, errorHandler: { (error) in
print(error)
})

View File

@@ -33,6 +33,7 @@ class WorkoutTracking: NSObject {
public static var cadenceSteps = 0
public static var speed = Double()
public static var power = Double()
public static var steps = Int()
public static var cadence = Double()
public static var lastDateMetric = Date()
var sport: Int = 0
@@ -53,20 +54,26 @@ extension WorkoutTracking {
switch statistics.quantityType {
case HKQuantityType.quantityType(forIdentifier: .distanceCycling):
let distanceUnit = HKUnit.mile()
let value = statistics.mostRecentQuantity()?.doubleValue(for: distanceUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
guard let value = statistics.mostRecentQuantity()?.doubleValue(for: distanceUnit) else {
return
}
let roundedValue = Double( round( 1 * value ) / 1 )
delegate?.didReceiveHealthKitDistanceCycling(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned):
let energyUnit = HKUnit.kilocalorie()
let value = statistics.mostRecentQuantity()?.doubleValue(for: energyUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
guard let value = statistics.mostRecentQuantity()?.doubleValue(for: energyUnit) else {
return
}
let roundedValue = Double( round( 1 * value ) / 1 )
delegate?.didReceiveHealthKitActiveEnergyBurned(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .heartRate):
let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
guard let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit) else {
return
}
let roundedValue = Double( round( 1 * value ) / 1 )
delegate?.didReceiveHealthKitHeartRate(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .stepCount):
@@ -162,6 +169,12 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
HKSampleType.quantityType(forIdentifier: .cyclingPower)!,
HKSampleType.quantityType(forIdentifier: .cyclingSpeed)!,
HKSampleType.quantityType(forIdentifier: .cyclingCadence)!,
HKSampleType.quantityType(forIdentifier: .runningPower)!,
HKSampleType.quantityType(forIdentifier: .runningSpeed)!,
HKSampleType.quantityType(forIdentifier: .runningStrideLength)!,
HKSampleType.quantityType(forIdentifier: .runningVerticalOscillation)!,
HKSampleType.quantityType(forIdentifier: .walkingSpeed)!,
HKSampleType.quantityType(forIdentifier: .walkingStepLength)!,
HKSampleType.workoutType()
])
} else {
@@ -220,9 +233,11 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
let quantity = HKQuantity(unit: unit,
doubleValue: totalEnergyBurned)
let startDate = workoutSession.startDate ?? WorkoutTracking.lastDateMetric
let sample = HKCumulativeQuantitySeriesSample(type: quantityType,
quantity: quantity,
start: workoutSession.startDate!,
start: startDate,
end: Date())
workoutBuilder.add([sample]) {(success, error) in}
@@ -242,7 +257,7 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
let sampleDistance = HKCumulativeQuantitySeriesSample(type: quantityTypeDistance,
quantity: quantityMiles,
start: workoutSession.startDate!,
start: startDate,
end: Date())
workoutBuilder.add([sampleDistance]) {(success, error) in
@@ -261,8 +276,106 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
}
}
}
} else if(sport == 4) { // Rowing
// Guard to check if steps quantity type is available
guard let quantityTypeSteps = HKQuantityType.quantityType(
forIdentifier: .stepCount) else {
return
}
let stepsQuantity = HKQuantity(unit: HKUnit.count(), doubleValue: Double(WorkoutTracking.steps))
// Create a sample for total steps
let sampleSteps = HKCumulativeQuantitySeriesSample(
type: quantityTypeSteps,
quantity: stepsQuantity,
start: startDate,
end: Date())
// Add the steps sample to workout builder
workoutBuilder.add([sampleSteps]) { (success, error) in
if let error = error {
print(error)
}
}
// Per il rowing, HealthKit utilizza un tipo specifico di distanza
// Se non esiste un tipo specifico per il rowing, possiamo usare un tipo generico di distanza
var quantityTypeDistance: HKQuantityType?
// In watchOS 10 e versioni successive, possiamo usare un tipo specifico se disponibile
if #available(watchOSApplicationExtension 10.0, *) {
// Verifica se esiste un tipo specifico per il rowing, altrimenti utilizza un tipo generico
quantityTypeDistance = HKQuantityType.quantityType(forIdentifier: .distanceSwimming)
} else {
// Nelle versioni precedenti, usa il tipo generico
quantityTypeDistance = HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)
}
guard let typeDistance = quantityTypeDistance else {
return
}
let sampleDistance = HKCumulativeQuantitySeriesSample(type: typeDistance,
quantity: quantityMiles,
start: startDate,
end: Date())
workoutBuilder.add([sampleDistance]) {(success, error) in
if let error = error {
print(error)
}
self.workoutBuilder.endCollection(withEnd: Date()) { (success, error) in
if let error = error {
print(error)
}
self.workoutBuilder.finishWorkout{ (workout, error) in
if let error = error {
print(error)
}
workout?.setValue(quantityMiles, forKey: "totalDistance")
}
}
}
} else {
// Guard to check if steps quantity type is available
guard let quantityTypeSteps = HKQuantityType.quantityType(
forIdentifier: .stepCount) else {
return
}
let stepsQuantity = HKQuantity(unit: HKUnit.count(), doubleValue: Double(WorkoutTracking.steps))
// Create a sample for total steps
let sampleSteps = HKCumulativeQuantitySeriesSample(
type: quantityTypeSteps,
quantity: stepsQuantity, // Use your steps quantity here
start: startDate,
end: Date())
// Add the steps sample to workout builder
workoutBuilder.add([sampleSteps]) { (success, error) in
if let error = error {
print(error)
}
// End the data collection
self.workoutBuilder.endCollection(withEnd: Date()) { (success, error) in
if let error = error {
print(error)
}
// Finish the workout and save total steps
self.workoutBuilder.finishWorkout { (workout, error) in
if let error = error {
print(error)
}
workout?.setValue(stepsQuantity, forKey: "totalSteps")
}
}
}
guard let quantityTypeDistance = HKQuantityType.quantityType(
forIdentifier: .distanceWalkingRunning) else {
return
@@ -270,7 +383,7 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
let sampleDistance = HKCumulativeQuantitySeriesSample(type: quantityTypeDistance,
quantity: quantityMiles,
start: workoutSession.startDate!,
start: startDate,
end: Date())
workoutBuilder.add([sampleDistance]) {(success, error) in
@@ -335,64 +448,131 @@ extension WorkoutTracking: HKLiveWorkoutBuilderDelegate {
}
}
if #available(watchOSApplicationExtension 10.0, *) {
let wattPerInterval = HKQuantity(unit: HKUnit.watt(),
doubleValue: WorkoutTracking.power)
if(WorkoutTracking.lastDateMetric.distance(to: Date()) < 1) {
if(sport == 0) {
if #available(watchOSApplicationExtension 10.0, *) {
let wattPerInterval = HKQuantity(unit: HKUnit.watt(),
doubleValue: WorkoutTracking.power)
if(WorkoutTracking.lastDateMetric.distance(to: Date()) < 1) {
return
}
guard let powerType = HKQuantityType.quantityType(
forIdentifier: .cyclingPower) else {
return
}
guard let powerType = HKQuantityType.quantityType(
forIdentifier: .cyclingPower) else {
return
}
let wattPerIntervalSample = HKQuantitySample(type: powerType,
quantity: wattPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([wattPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
let wattPerIntervalSample = HKQuantitySample(type: powerType,
quantity: wattPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([wattPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
let cadencePerInterval = HKQuantity(unit: HKUnit.count().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.cadence / 60.0)
guard let cadenceType = HKQuantityType.quantityType(
forIdentifier: .cyclingCadence) else {
return
}
let cadencePerIntervalSample = HKQuantitySample(type: cadenceType,
quantity: cadencePerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([cadencePerIntervalSample]) {(success, error) in
if let error = error {
print(error)
let cadencePerInterval = HKQuantity(unit: HKUnit.count().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.cadence / 60.0)
guard let cadenceType = HKQuantityType.quantityType(
forIdentifier: .cyclingCadence) else {
return
}
}
let speedPerInterval = HKQuantity(unit: HKUnit.meter().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.speed * 0.277778)
guard let speedType = HKQuantityType.quantityType(
forIdentifier: .cyclingSpeed) else {
return
}
let speedPerIntervalSample = HKQuantitySample(type: speedType,
quantity: speedPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([speedPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
let cadencePerIntervalSample = HKQuantitySample(type: cadenceType,
quantity: cadencePerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([cadencePerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
let speedPerInterval = HKQuantity(unit: HKUnit.meter().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.speed * 0.277778)
guard let speedType = HKQuantityType.quantityType(
forIdentifier: .cyclingSpeed) else {
return
}
let speedPerIntervalSample = HKQuantitySample(type: speedType,
quantity: speedPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([speedPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
}
} else {
// Fallback on earlier versions
} else {
// Fallback on earlier versions
}
} else if(sport == 1) {
if #available(watchOSApplicationExtension 10.0, *) {
let wattPerInterval = HKQuantity(unit: HKUnit.watt(),
doubleValue: WorkoutTracking.power)
if(WorkoutTracking.lastDateMetric.distance(to: Date()) < 1) {
return
}
guard let powerType = HKQuantityType.quantityType(
forIdentifier: .runningPower) else {
return
}
let wattPerIntervalSample = HKQuantitySample(type: powerType,
quantity: wattPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([wattPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
let speedPerInterval = HKQuantity(unit: HKUnit.meter().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.speed * 0.277778)
guard let speedType = HKQuantityType.quantityType(
forIdentifier: .runningSpeed) else {
return
}
let speedPerIntervalSample = HKQuantitySample(type: speedType,
quantity: speedPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([speedPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
} else {
// Fallback on earlier versions
}
} else if(sport == 2) {
if #available(watchOSApplicationExtension 10.0, *) {
let speedPerInterval = HKQuantity(unit: HKUnit.meter().unitDivided(by: HKUnit.second()),
doubleValue: WorkoutTracking.speed * 0.277778)
guard let speedType = HKQuantityType.quantityType(
forIdentifier: .walkingSpeed) else {
return
}
let speedPerIntervalSample = HKQuantitySample(type: speedType,
quantity: speedPerInterval,
start: WorkoutTracking.lastDateMetric,
end: Date())
workoutBuilder.add([speedPerIntervalSample]) {(success, error) in
if let error = error {
print(error)
}
}
} else {
// Fallback on earlier versions
}
}
WorkoutTracking.lastDateMetric = Date()

View File

@@ -0,0 +1,96 @@
# Define build image
FROM ubuntu:latest AS build
# Install essential build dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt upgrade -y \
&& apt install --no-install-recommends -y \
git \
ca-certificates \
qtquickcontrols2-5-dev \
qtconnectivity5-dev \
qtbase5-private-dev \
qtpositioning5-dev \
libqt5charts5-dev \
libqt5networkauth5-dev \
libqt5websockets5-dev \
qml-module* \
libqt5texttospeech5-dev \
qtlocation5-dev \
qtmultimedia5-dev \
g++ \
make \
wget \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Define runtime image
FROM ubuntu:latest AS runtime
# Install essential runtime dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt upgrade -y \
&& apt install --no-install-recommends -y \
libqt5bluetooth5 \
libqt5widgets5 \
libqt5positioning5 \
libqt5xml5 \
libqt5charts5 \
qt5-assistant \
libqt5networkauth5 \
libqt5websockets5 \
qml-module* \
libqt5texttospeech5 \
libqt5location5-plugins \
libqt5multimediawidgets5 \
libqt5multimedia5-plugins \
libqt5multimedia5 \
qml-module-qtquick-controls2 \
libqt5location5 \
bluez \
dbus \
tigervnc-standalone-server \
tigervnc-tools \
libgl1-mesa-dri \
xfonts-base \
x11-xserver-utils \
tigervnc-common \
net-tools \
&& rm -rf /var/lib/apt/lists/*
# Stage 1: Build
FROM build AS builder
# Clone the project and build it
WORKDIR /usr/local/src
RUN git clone --recursive https://github.com/cagnulein/qdomyos-zwift.git
WORKDIR /usr/local/src/qdomyos-zwift
RUN git submodule update --init src/smtpclient/ \
&& git submodule update --init src/qmdnsengine/ \
&& git submodule update --init tst/googletest/
WORKDIR /usr/local/src/qdomyos-zwift/src
RUN qmake qdomyos-zwift.pro \
&& make -j4
# Stage 2: Runtime
FROM runtime
# Copy the built binary to /usr/local/bin
COPY --from=builder /usr/local/src/qdomyos-zwift/src/qdomyos-zwift /usr/local/bin/qdomyos-zwift
# VNC configuration
RUN mkdir -p ~/.vnc && \
echo "securepassword" | vncpasswd -f > ~/.vnc/passwd && \
chmod 600 ~/.vnc/passwd
# .Xauthority configuration
RUN touch /root/.Xauthority
ENV DISPLAY=:99
# Start VNC server with authentication
CMD vncserver :99 -depth 24 -localhost no -xstartup qdomyos-zwift && \
sleep infinity

2
docker/linux_gui_vnc/build.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
docker build -t qdomyos-zwift-vnc .

View File

@@ -0,0 +1,10 @@
services:
qdomyos-zwift-vnc:
image: qdomyos-zwift-vnc
container_name: qdomyos-zwift-vnc
privileged: true # Required for Bluetooth functionality
network_mode: "host" # Used to access host Bluetooth and D-Bus
volumes:
- /dev:/dev # Forward host devices (for Bluetooth)
- /run/dbus:/run/dbus # Forward D-Bus for Bluetooth interaction
restart: "no" # Do not restart the container automatically

View File

@@ -0,0 +1,95 @@
# Define build image
FROM ubuntu:latest AS build
# Install essential build dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt upgrade -y \
&& apt install --no-install-recommends -y \
git \
ca-certificates \
qtquickcontrols2-5-dev \
qtconnectivity5-dev \
qtbase5-private-dev \
qtpositioning5-dev \
libqt5charts5-dev \
libqt5networkauth5-dev \
libqt5websockets5-dev \
qml-module* \
libqt5texttospeech5-dev \
qtlocation5-dev \
qtmultimedia5-dev \
g++ \
make \
wget \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Define runtime image
FROM ubuntu:latest AS runtime
# Install essential runtime dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt upgrade -y \
&& apt install --no-install-recommends -y \
libqt5bluetooth5 \
libqt5widgets5 \
libqt5positioning5 \
libqt5xml5 \
libqt5charts5 \
qt5-assistant \
libqt5networkauth5 \
libqt5websockets5 \
qml-module* \
libqt5texttospeech5 \
libqt5location5-plugins \
libqt5multimediawidgets5 \
libqt5multimedia5-plugins \
libqt5multimedia5 \
qml-module-qtquick-controls2 \
libqt5location5 \
bluez \
dbus \
&& rm -rf /var/lib/apt/lists/*
# Stage 1: Build
FROM build AS builder
# Define variables for Qt versions
ARG QT_VERSION=5.15
ARG QT_SUBVERSION=5.15.13
ARG QT_WEBPLUGIN_NAME=qtwebglplugin-everywhere-opensource-src
# Build WebGL plugin
WORKDIR /usr/local/src
RUN wget https://download.qt.io/official_releases/qt/${QT_VERSION}/${QT_SUBVERSION}/submodules/${QT_WEBPLUGIN_NAME}-${QT_SUBVERSION}.zip \
&& unzip ${QT_WEBPLUGIN_NAME}-${QT_SUBVERSION}.zip \
&& mv *-${QT_SUBVERSION} qtwebglplugin-everywhere \
&& cd qtwebglplugin-everywhere \
&& qmake \
&& make
# Clone the project and build it
WORKDIR /usr/local/src
RUN git clone --recursive https://github.com/cagnulein/qdomyos-zwift.git
WORKDIR /usr/local/src/qdomyos-zwift
RUN git submodule update --init src/smtpclient/ \
&& git submodule update --init src/qmdnsengine/ \
&& git submodule update --init tst/googletest/
WORKDIR /usr/local/src/qdomyos-zwift/src
RUN qmake qdomyos-zwift.pro \
&& make -j4
# Stage 2: Runtime
FROM runtime
# Copy the built binary to /usr/local/bin
COPY --from=builder /usr/local/src/qdomyos-zwift/src/qdomyos-zwift /usr/local/bin/qdomyos-zwift
# Copy WebGL plugin to the appropriate location
COPY --from=builder /usr/local/src/qtwebglplugin-everywhere/plugins/platforms/libqwebgl.so /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqwebgl.so
# Set the default command to run the application with WebGL
CMD ["qdomyos-zwift", "-qml", "-platform", "webgl:port=8080"]

2
docker/linux_webgl/build.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
docker build -t qdomyos-zwift-webgl .

View File

@@ -0,0 +1,19 @@
services:
qdomyos-zwift-webgl:
image: qdomyos-zwift-webgl
container_name: qdomyos-zwift-webgl
privileged: true
network_mode: "host"
environment:
- DISPLAY=${DISPLAY}
volumes:
- /dev:/dev
- /run/dbus:/run/dbus
- ./.config:/root/.config
- /tmp/.X11-unix:/tmp/.X11-unix
stdin_open: true
tty: true
restart: "no"
# command: qdomyos-zwift -qml -platform webgl:port=8080
# command: ["qdomyos-zwift", "-no-gui"]

View File

@@ -10,7 +10,7 @@ These instructions build the app itself, not the test project.
```buildoutcfg
$ sudo apt update && sudo apt upgrade # this is very important on raspberry pi: you need the bluetooth firmware updated!
$ sudo apt install git qtquickcontrols2-5-dev libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-assistant libqt5networkauth5-dev libqt5websockets5-dev qml-module* libqt5texttospeech5-dev libqt5texttospeech5 libqt5location5-plugins qtlocation5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5 g++ make
$ sudo apt install git qtquickcontrols2-5-dev libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtbase5-private-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-assistant libqt5networkauth5-dev libqt5websockets5-dev qml-module* libqt5texttospeech5-dev libqt5texttospeech5 libqt5location5-plugins qtlocation5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5 g++ make
$ git clone https://github.com/cagnulein/qdomyos-zwift.git
$ cd qdomyos-zwift
$ git submodule update --init src/smtpclient/
@@ -28,7 +28,7 @@ $ sudo ./qdomyos-zwift
You will need to (at a minimum) to install the xcode Command Line Tools (CLI) thanks to @richardwait
https://developer.apple.com/download/more/?=xcode
Download and install http://download.qt.io/official_releases/qt/5.12/5.12.9/qt-opensource-mac-x64-5.12.9.dmg and simply run the qdomyos-zwift release for MacOs
Download and install https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-mac-x64-5.12.12.dmg and simply run the qdomyos-zwift release for MacOs
## On Raspberry Pi Zero W
@@ -106,7 +106,7 @@ This operation takes a moment to complete.
#### Install qdomyos-zwift from sources
```bash
sudo apt install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-assistant libqt5networkauth5-dev libqt5websockets5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5 qtlocation5-dev qtquickcontrols2-5-dev libqt5texttospeech5-dev libqt5texttospeech5 g++ make
sudo apt install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtbase5-private-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-assistant libqt5networkauth5-dev libqt5websockets5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5 qtlocation5-dev qtquickcontrols2-5-dev libqt5texttospeech5-dev libqt5texttospeech5 g++ make
git clone https://github.com/cagnulein/qdomyos-zwift.git
cd qdomyos-zwift
git submodule update --init src/smtpclient/
@@ -117,6 +117,11 @@ qmake qdomyos-zwift.pro
make
```
If you need GUI also do a
```
apt install qml-module*
```
Please note :
- Don't build the application with `-j4` option (this will fail)
- Build operation is circa 45 minutes (subsequent builds are faster)
@@ -172,6 +177,151 @@ If everything is working as expected, **enable your service at boot time** :
Then reboot to check operations (`sudo reboot`)
### (optional) Treadmill Auto-Detection and Service Management
This section provides a reliable way to manage the QZ service based on the treadmill's power state. Using a `bluetoothctl`-based Bash script, this solution ensures the QZ service starts when the treadmill is detected and stops when it is not.
- **Bluetooth Discovery**: Monitors treadmill availability via `bluetoothctl`.
- **Service Control**: Automatically starts and stops the QZ service.
- **Logging**: Tracks treadmill status and actions in a log file.
**Notes:**
- Ensure `bluetoothctl` is installed and working on your system.
- Replace `I_TL` in the script with your treadmill's Bluetooth name. You can find your device name via `bluetoothctl scan on`
- Adjust the sleep interval (`sleep 30`) in the script as needed for your use case.
Step 1: Save the following script as `/root/qz-treadmill-monitor.sh`:
```bash
#!/bin/bash
LOG_FILE="/var/log/qz-treadmill-monitor.log"
TARGET_DEVICE="I_TL"
SCAN_INTERVAL=30 # Time in seconds between checks
SERVICE_NAME="qz"
DEBUG_LOG_DIR="/var/log" # Directory where QZ debug logs are stored
ERROR_MESSAGE="BTLE stateChanged InvalidService"
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"
}
is_service_running() {
systemctl is-active --quiet "$SERVICE_NAME"
return $?
}
scan_for_device() {
log "Starting Bluetooth scan for $TARGET_DEVICE..."
# Run bluetoothctl scan in the background and capture output
bluetoothctl scan on &>/dev/null &
SCAN_PID=$!
# Allow some time for devices to appear
sleep 5
# Check if the target device appears in the list
bluetoothctl devices | grep -q "$TARGET_DEVICE"
DEVICE_FOUND=$?
# Stop scanning
kill "$SCAN_PID"
bluetoothctl scan off &>/dev/null
if [ $DEVICE_FOUND -eq 0 ]; then
log "Device '$TARGET_DEVICE' found."
return 0
else
log "Device '$TARGET_DEVICE' not found."
return 1
fi
}
restart_qz_on_error() {
# Get the current date
CURRENT_DATE=$(date '+%a_%b_%d')
# Find the latest QZ debug log file for today
LATEST_LOG=$(ls -t "$DEBUG_LOG_DIR"/debug-"$CURRENT_DATE"_*.log 2>/dev/null | head -n 1)
if [ -z "$LATEST_LOG" ]; then
log "No QZ debug log found for today."
return 0
fi
log "Checking latest log file: $LATEST_LOG for errors..."
# Search the latest log for the error message
if grep -q "$ERROR_MESSAGE" "$LATEST_LOG"; then
log "***** Error detected in QZ log: $ERROR_MESSAGE *****"
log "Restarting QZ service..."
systemctl restart "$SERVICE_NAME"
else
log "No errors detected in $LATEST_LOG."
fi
}
manage_service() {
local device_found=$1
if $device_found; then
if ! is_service_running; then
log "***** Starting QZ service... *****"
systemctl start "$SERVICE_NAME"
else
log "QZ service is already running."
restart_qz_on_error # Check the log for errors when QZ is already running
fi
else
if is_service_running; then
log "***** Stopping QZ service... *****"
systemctl stop "$SERVICE_NAME"
else
log "QZ service is already stopped."
fi
fi
}
while true; do
log "Checking for treadmill status..."
if scan_for_device; then
manage_service true
else
manage_service false
fi
log "Waiting for $SCAN_INTERVAL seconds before next check..."
sleep "$SCAN_INTERVAL"
done
```
Step2: To ensure the script runs continuously, create a systemd service file at `/etc/systemd/system/qz-treadmill-monitor.service`
```bash
[Unit]
Description=QZ Treadmill Monitor Service
After=bluetooth.service
[Service]
Type=simple
ExecStart=/root/qz-treadmill-monitor.sh
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
```
Step 3: Enable and Start the Service
```bash
sudo systemctl daemon-reload
sudo systemctl enable qz-treadmill-monitor
sudo systemctl start qz-treadmill-monitor
```
Monitor logs are written to `/var/log/qz-treadmill-monitor.log`. Use the following command to check logs in real-time:
```bash
sudo tail -f /var/log/qz-treadmill-monitor.log
```
### (optional) Enable overlay FS

396
docs/50_writing_tests.md Normal file
View File

@@ -0,0 +1,396 @@
# QDomyos-Zwift Guide to Writing Unit Tests
## About
The testing project tst/qdomyos-zwift-tests.pro contains test code that uses the Google Test library.
## Adding a new device
New devices are added to the main QZ application by creating or modifying a subclass of the bluetoothdevice class.
At minimum, each device has a corresponding BluetoothDeviceTestData object constructed in the DeviceTestDataIndex class in the test project, which is coded to provide information to the test framework to generate tests for device detection and potentially other things.
In the test project
* add a new device name constant to the DeviceIndex class.
* locate the implementation of DeviceTestDataindex::Initialize and build the test data from a call to DeviceTestDataIndex::RegisterNewDeviceTestData(...)
* pass the device name constant defined in the DeviceIndex class to the call to DeviceTestDataIndex::RegisterNewDeviceTestData(...).
The tests are not organised around real devices that are handled, but the bluetoothdevice subclass that handles them - the "driver" of sorts.
You need to provide the following:
- patterns for valid names (e.g. equals a value, starts with a value, case sensitivity, specific length)
- invalid names to ensure the device is not identified when the name is invalid
- configuration settings that are required for the device to be detected, including bluetooth device information configuration
- invalid configurations to test that the device is not detected, e.g. when it's disabled in the settings, but the name is correct
- exclusion devices: for example if a device with the same name but of a higher priority type is detected, this device should not be detected
## Tools in the Test Framework
### TestSettings
The detection of many devices depends on settings that are accessed programmatically using the QSettings class and the constants in the QZSettings namespace. The TestSettings class stores a QSettings object with what is intended to be a unique application and organisation name, to keep the configuration it represents seperate from others in the system. It also makes the stored QSettings object the default by setting the QCoreApplication's organisation and application names to those of the QSettings object. The original values are restored by calling the deactivate() function or on object destruction.
i.e. a test will
* apply a configuration from a TestSettings object
* perform device detection
* use the TestSettings object to restore the previous settings either directly or by letting its destructor be called.
### DeviceDiscoveryInfo
This class:
* stores values for a specific subset of the QZSettings keys.
* provides methods to read and write the values it knows about from and to a QSettings object.
* provides a QBluetoothDeviceInfo object configured with the device name currently being tested.
It is used in conjunction with a TestSettings object to write a configuration during a test.
## Writing a device detection test
Because of the way the BluetoothDeviceTestDataBuilder currently works, it may be necessary to define multiple test data objects to cover the various cases.
For example, if any of a list of names is enough to identify a device, or another group of names but with a certain service in the bluetooth device info, that will require multiple test data objects.
### Recognition by Name
Consider the detection code for the Domyos Bike:
```
} else if (b.name().startsWith(QStringLiteral("Domyos-Bike")) &&
!b.name().startsWith(QStringLiteral("DomyosBridge")) && !domyosBike && filter) {
```
Reading this, to identify this device:
- bluetooth name should start with "Domyos-Bike" using a case sensitive comparison
- bluetooth name should NOT start with "DomyosBridge", also using a case sensitive comparison
- there should not have been a device using the corresponding device class detected already (i.e. domyos)
- filter has not been activated (this isn't tested)
In this case, we are not testing the last two, but can test the first two.
In deviceindex.h:
```
static const QString DomyosBike;
```
In deviceindex.cpp:
```
DEFINE_DEVICE(DomyosBike, "Domyos Bike");
```
This pair adds the "friendly name" for the device as a constant, and also adds the key/value pair to an index.
In DeviceTestDataIndex::Initialize():
```
// Domyos bike
RegisterNewDeviceTestData(DeviceIndex::DomyosBike)
->expectDevice<domyosbike>()
->acceptDeviceName("Domyos-Bike", DeviceNameComparison::StartsWith)
->rejectDeviceName("DomyosBridge", DeviceNameComparison::StartsWith);
```
This set of instructions adds a valid device name, and an invalid one. Various overloads of these methods, other methods, and other members of the comparison enumeration provide other capabilities for specifying test data. If you add a valid device name that says the name should start with a value, additional names will be added automatically to the valid list with additional characters to test that it is in fact a "starts with" relationship. Also, valid and invalid names will be generated based on whether the comparison is case sensitive or not.
### Configuration Settings
Consider the CompuTrainer bike. This device is not detected by name, but only by whether or not it is enabled in the settings.
To specify this in the test data, we use one of the BluetoothDeviceTestData::configureSettingsWith(...) methods, the one for the simple case where there is a single QZSetting with a specific enabling and disabling value.
Settings from QSettings that contribute to tests should be put into the DeviceDiscoveryInfo class.
For example, for the Computrainer Bike, the "computrainer_serialport" value from the QSettings determines if the bike should be detected or not.
The computrainer_serialport QZSettings key should be registered in devicediscoveryinfo.cpp
In devicediscoveryinfo.cpp:
```
void InitializeTrackedSettings() {
...
trackedSettings.insert(QZSettings::computrainer_serialport, QZSettings::default_computrainer_serialport);
...
}
```
For this test data,
* if enabling configurations are requested, the computrainer_serialport setting will be populated with "COMX"
* if disabling configurations are requested, the computrainer_serialport setting will be populated with ""
DeviceTestDataIndex::Initialize():
```
// Computrainer Bike
RegisterNewDeviceTestData(DeviceIndex::ComputrainerBike)
->expectDevice<computrainerbike>()
->acceptDeviceName("", DeviceNameComparison::StartsWithIgnoreCase)
->configureSettingsWith(QZSettings::computrainer_serialport, "COMX", "");
```
Similarly, the Pafers Bike has a simple configuration setting:
```
// Pafers Bike
RegisterNewDeviceTestData(DeviceIndex::PafersBike)
->expectDevice<pafersbike>()
->acceptDeviceName("PAFERS_", DeviceNameComparison::StartsWithIgnoreCase)
->configureSettingsWith(QZSettings::pafers_treadmill,false);
```
In that case, ```configureSettingsWith(QZSettings::pafers_treadmill,false)``` indicates that the pafers_treadmill setting will be false for enabling configurations and true for disabling ones.
A more complicated example is the Pafers Treadmill. It involves a name match, but also some configuration settings obtained earlier...
```
bool pafers_treadmill = settings.value(QZSettings::pafers_treadmill, QZSettings::default_pafers_treadmill).toBool();
...
bool pafers_treadmill_bh_iboxster_plus =
settings
.value(QZSettings::pafers_treadmill_bh_iboxster_plus, QZSettings::default_pafers_treadmill_bh_iboxster_plus)
.toBool();
...
} else if (b.name().toUpper().startsWith(QStringLiteral("PAFERS_")) && !pafersTreadmill &&
(pafers_treadmill || pafers_treadmill_bh_iboxster_plus) && filter) {
```
Here the device could be activated due to a name match and various combinations of settings.
For this, the configureSettingsWith(...) function that takes a lambda function which consumes a vector of DeviceDiscoveryInfo objects which is populated with configurations that lead to the specified result (enable = detected, !enable=not detected).
```
// Pafers Treadmill
RegisterNewDeviceTestData(DeviceIndex::PafersTreadmill)
->expectDevice<paferstreadmill>()
->acceptDeviceName("PAFERS_", DeviceNameComparison::StartsWithIgnoreCase)
->configureSettingsWith( [](const DeviceDiscoveryInfo& info, bool enable, std::vector<DeviceDiscoveryInfo>& configurations)->void {
DeviceDiscoveryInfo config(info);
if (enable) {
for(int x = 1; x<=3; x++) {
config.setValue(QZSettings::pafers_treadmill, x & 1);
config.setValue(QZSettings::pafers_treadmill_bh_iboxster_plus, x & 2);
configurations.push_back(config);
}
} else {
config.setValue(QZSettings::pafers_treadmill, false);
config.setValue(QZSettings::pafers_treadmill_bh_iboxster_plus, false);
configurations.push_back(config);
}
});
```
### Considering Extra QBluetoothDeviceInfo Content
Detection of some devices requires some specific bluetooth device information.
Supplying enabling and disabling QBluetoothDeviceInfo objects is done by accessing the QBluetoothDeviceInfo member of the DeviceDiscoveryInfo object.
For example, the M3iBike requires specific manufacturer information, using the simpler of the lambda functions accepted by the configureSettingsWith function.
```
// M3I Bike
RegisterNewDeviceTestData(DeviceIndex::M3IBike)
->expectDevice<m3ibike>()
->acceptDeviceName("M3", DeviceNameComparison::StartsWith)
->configureSettingsWith(
[](DeviceDiscoveryInfo& info, bool enable)->void
{
// The M3I bike detector looks into the manufacturer data.
if(!enable) {
info.DeviceInfo()->setManufacturerData(1, QByteArray("Invalid manufacturer data."));
return;
}
int key=0;
info.DeviceInfo()->setManufacturerData(key++, hex2bytes("02010639009F00000000000000000014008001"));
});
```
The test framework populates the incoming QBluetoothDeviceInfo object with a UUID and the name (generated from the acceptDeviceName and rejectDeviceName calls) currently being tested.
This is expected to have nothing else defined.
Another example is one of the test data definitions for detecting a device that uses the stagesbike class:
Detection code from bluetooth.cpp:
```
((b.name().toUpper().startsWith("KICKR CORE")) && !deviceHasService(b, QBluetoothUuid((quint16)0x1826)) && deviceHasService(b, QBluetoothUuid((quint16)0x1818)))
```
This condition is actually extracted from a more complicated example where the BluetoothDeviceTestData class can't cover all the detection criteria with one instance.
```
// Stages Bike General
auto stagesBikeExclusions = { GetTypeId<ftmsbike>() };
//
// ... other stages bike variants
//
// Stages Bike (KICKR CORE)
RegisterNewDeviceTestData(DeviceIndex::StagesBike_KICKRCORE)
->expectDevice<stagesbike>()
->acceptDeviceName("KICKR CORE", DeviceNameComparison::StartsWithIgnoreCase)
->excluding(stagesBikeExclusions)
->configureSettingsWith(
[](const DeviceDiscoveryInfo& info, bool enable, std::vector<DeviceDiscoveryInfo>& configurations)->void
{
// The condition, if the name is acceptable, is:
// !deviceHasService(b, QBluetoothUuid((quint16)0x1826)) && deviceHasService(b, QBluetoothUuid((quint16)0x1818)))
if(enable) {
DeviceDiscoveryInfo result = info;
result.addBluetoothService(QBluetoothUuid((quint16)0x1818));
result.removeBluetoothService(QBluetoothUuid((quint16)0x1826));
configurations.push_back(result);
} else {
DeviceDiscoveryInfo hasNeither = info;
hasNeither.removeBluetoothService(QBluetoothUuid((quint16)0x1818));
hasNeither.removeBluetoothService(QBluetoothUuid((quint16)0x1826));
DeviceDiscoveryInfo hasInvalid = info;
hasInvalid.addBluetoothService(QBluetoothUuid((quint16)0x1826));
DeviceDiscoveryInfo hasBoth = hasInvalid;
hasBoth.addBluetoothService(QBluetoothUuid((quint16)0x1818));
hasBoth.addBluetoothService(QBluetoothUuid((quint16)0x1826));
configurations.push_back(info); // has neither
configurations.push_back(hasInvalid);
configurations.push_back(hasBoth);
}
});
```
In this case, it populates the vector with the single enabling configuration if that's what's been requested, otherwise 3 disabling ones.
### Exclusions
Sometimes there might be ambiguity when multiple devices are available, and the detection code may specify that if the other conditions match, but certain specific kinds of devices (the exclusion devices) have already been detected, the newly matched device should be ignored.
The test data object can be made to cover this by calling the excluding(...) functions to add type identifiers for the bluetoothdevice classes for the exclusion devices to the object's internal list of exclusions.
Detection code:
```
} else if (b.name().startsWith(QStringLiteral("ECH")) && !echelonRower && !echelonStride &&
!echelonConnectSport && filter) {
```
The excluding<T>() template function is called to specify the exclusion device type. Note that the test for a previously detected device of the same type is not included.
```
// Echelon Connect Sport Bike
RegisterNewDeviceTestData(DeviceIndex::EchelonConnectSportBike)
->expectDevice<echelonconnectsport>()
->acceptDeviceName("ECH", DeviceNameComparison::StartsWith)
->excluding<echelonrower>()
->excluding<echelonstride>();
```
### When a single test data object can't cover all the conditions
Detection code:
```
QString powerSensorName =
settings.value(QZSettings::power_sensor_name, QZSettings::default_power_sensor_name).toString();
...
} else if ((b.name().toUpper().startsWith(QStringLiteral("STAGES ")) ||
(b.name().toUpper().startsWith("TACX SATORI")) ||
((b.name().toUpper().startsWith("KICKR CORE")) && !deviceHasService(b, QBluetoothUuid((quint16)0x1826)) && deviceHasService(b, QBluetoothUuid((quint16)0x1818))) ||
(b.name().toUpper()==QStringLiteral("QD")) ||
(b.name().toUpper().startsWith(QStringLiteral("ASSIOMA")) &&
powerSensorName.startsWith(QStringLiteral("Disabled")))) &&
!stagesBike && !ftmsBike && filter) {
```
This presents 3 scenarios for the current test framework.
1. Match names only (starts with:"STAGES ", starts with: "TACX SATORI", equals: "QD")
2. Match the name "KICKR CORE", presence and absence of specific service ids
3. Match the name "ASSIOMA" and the power sensor name setting starts with "Disabled"
The framework is not currently capable of specifying all these scenarios in a single test data object, without checking the name of the supplied QBluetoothDeviceInfo object against name conditions specified and constructing extra configurations based on that.
The generated test data is approximately the combinations of these lists: names * settings * exclusions.
If a combination should not exist, separate test data objects should be used.
In the example of the Stages Bike test data, the exclusions, which apply to all situations, are implemented in an array of type ids:
```
// Stages Bike General
auto stagesBikeExclusions = { GetTypeId<ftmsbike>() };
```
The name-match only in one test data instance:
```
// Stages Bike
RegisterNewDeviceTestData(DeviceIndex::StagesBike)
->expectDevice<stagesbike>()
->acceptDeviceNames({"STAGES ", "TACX SATORI"}, DeviceNameComparison::StartsWithIgnoreCase)
->acceptDeviceName("QD", DeviceNameComparison::IgnoreCase)
->excluding(stagesBikeExclusions);
```
The name and setting match in another instance:
```
// Stages Bike Stages Bike (Assioma / Power Sensor disabled
RegisterNewDeviceTestData(DeviceIndex::StagesBike_Assioma_PowerSensorDisabled)
->expectDevice<stagesbike>()
->acceptDeviceName("ASSIOMA", DeviceNameComparison::StartsWithIgnoreCase)
->configureSettingsWith(QZSettings::power_sensor_name, "DisabledX", "XDisabled")
->excluding( stagesBikeExclusions);
```
The name and bluetooth device info configurations in another:
```
// Stages Bike (KICKR CORE)
RegisterNewDeviceTestData(DeviceIndex::StagesBike_KICKRCORE)
->expectDevice<stagesbike>()
->acceptDeviceName("KICKR CORE", DeviceNameComparison::StartsWithIgnoreCase)
->excluding(stagesBikeExclusions)
->configureSettingsWith(
[](const DeviceDiscoveryInfo& info, bool enable, std::vector<DeviceDiscoveryInfo>& configurations)->void
{
// The condition, if the name is acceptable, is:
// !deviceHasService(b, QBluetoothUuid((quint16)0x1826)) && deviceHasService(b, QBluetoothUuid((quint16)0x1818)))
if(enable) {
DeviceDiscoveryInfo result = info;
result.addBluetoothService(QBluetoothUuid((quint16)0x1818));
result.removeBluetoothService(QBluetoothUuid((quint16)0x1826));
configurations.push_back(result);
} else {
DeviceDiscoveryInfo hasNeither = info;
hasNeither.removeBluetoothService(QBluetoothUuid((quint16)0x1818));
hasNeither.removeBluetoothService(QBluetoothUuid((quint16)0x1826));
DeviceDiscoveryInfo hasInvalid = info;
hasInvalid.addBluetoothService(QBluetoothUuid((quint16)0x1826));
DeviceDiscoveryInfo hasBoth = hasInvalid;
hasBoth.addBluetoothService(QBluetoothUuid((quint16)0x1818));
hasBoth.addBluetoothService(QBluetoothUuid((quint16)0x1826));
configurations.push_back(info); // has neither
configurations.push_back(hasInvalid);
configurations.push_back(hasBoth);
}
});
```
## Telling Google Test Where to Look
The BluetoothDeviceTestSuite configuration specifies that the test data will be obtained from the DeviceTestDataIndex class, so there's nothing more to do.

188
helpers/dircon-parser.py Normal file
View File

@@ -0,0 +1,188 @@
from dataclasses import dataclass
from typing import List, Optional, Tuple
import re
@dataclass
class HubRidingData:
power: Optional[int] = None
cadence: Optional[int] = None
speed_x100: Optional[int] = None
hr: Optional[int] = None
unknown1: Optional[int] = None
unknown2: Optional[int] = None
def __str__(self):
return (f"Power={self.power}W Cadence={self.cadence}rpm "
f"Speed={self.speed_x100/100 if self.speed_x100 else 0:.1f}km/h "
f"HR={self.hr}bpm Unknown1={self.unknown1} Unknown2={self.unknown2}")
def parse_protobuf_varint(data: bytes, offset: int = 0) -> Tuple[int, int]:
result = 0
shift = 0
while offset < len(data):
byte = data[offset]
result |= (byte & 0x7F) << shift
offset += 1
if not (byte & 0x80):
break
shift += 7
return result, offset
def parse_hub_riding_data(data: bytes) -> Optional[HubRidingData]:
try:
riding_data = HubRidingData()
offset = 0
while offset < len(data):
key, new_offset = parse_protobuf_varint(data, offset)
wire_type = key & 0x07
field_number = key >> 3
offset = new_offset
if wire_type == 0:
value, offset = parse_protobuf_varint(data, offset)
if field_number == 1:
riding_data.power = value
elif field_number == 2:
riding_data.cadence = value
elif field_number == 3:
riding_data.speed_x100 = value
elif field_number == 4:
riding_data.hr = value
elif field_number == 5:
riding_data.unknown1 = value
elif field_number == 6:
riding_data.unknown2 = value
return riding_data
except Exception as e:
print(f"Error parsing protobuf: {e}")
return None
@dataclass
class DirconPacket:
message_version: int = 1
identifier: int = 0xFF
sequence_number: int = 0
response_code: int = 0
length: int = 0
uuid: int = 0
uuids: List[int] = None
additional_data: bytes = b''
is_request: bool = False
riding_data: Optional[HubRidingData] = None
def __str__(self):
uuids_str = ','.join(f'{u:04x}' for u in (self.uuids or []))
base_str = (f"vers={self.message_version} Id={self.identifier} sn={self.sequence_number} "
f"resp={self.response_code} len={self.length} req?={self.is_request} "
f"uuid={self.uuid:04x} dat={self.additional_data.hex()} uuids=[{uuids_str}]")
if self.riding_data:
base_str += f"\nRiding Data: {self.riding_data}"
return base_str
def parse_dircon_packet(data: bytes, offset: int = 0) -> Tuple[Optional[DirconPacket], int]:
if len(data) - offset < 6:
return None, 0
packet = DirconPacket()
packet.message_version = data[offset]
packet.identifier = data[offset + 1]
packet.sequence_number = data[offset + 2]
packet.response_code = data[offset + 3]
packet.length = (data[offset + 4] << 8) | data[offset + 5]
total_length = 6 + packet.length
if len(data) - offset < total_length:
return None, 0
curr_offset = offset + 6
if packet.identifier == 0x01: # DPKT_MSGID_DISCOVER_SERVICES
if packet.length == 0:
packet.is_request = True
elif packet.length % 16 == 0:
packet.uuids = []
while curr_offset + 16 <= offset + total_length:
uuid = (data[curr_offset + 2] << 8) | data[curr_offset + 3]
packet.uuids.append(uuid)
curr_offset += 16
elif packet.identifier == 0x02: # DPKT_MSGID_DISCOVER_CHARACTERISTICS
if packet.length >= 16:
packet.uuid = (data[curr_offset + 2] << 8) | data[curr_offset + 3]
if packet.length == 16:
packet.is_request = True
elif (packet.length - 16) % 17 == 0:
curr_offset += 16
packet.uuids = []
packet.additional_data = b''
while curr_offset + 17 <= offset + total_length:
uuid = (data[curr_offset + 2] << 8) | data[curr_offset + 3]
packet.uuids.append(uuid)
packet.additional_data += bytes([data[curr_offset + 16]])
curr_offset += 17
elif packet.identifier in [0x03, 0x04, 0x05, 0x06]: # READ/WRITE/NOTIFY characteristics
if packet.length >= 16:
packet.uuid = (data[curr_offset + 2] << 8) | data[curr_offset + 3]
if packet.length > 16:
packet.additional_data = data[curr_offset + 16:offset + total_length]
if packet.uuid == 0x0002:
packet.riding_data = parse_hub_riding_data(packet.additional_data)
if packet.identifier != 0x06:
packet.is_request = True
return packet, total_length
def extract_bytes_from_c_array(content: str) -> List[Tuple[str, bytes]]:
packets = []
pattern = r'static const unsigned char (\w+)\[\d+\] = \{([^}]+)\};'
matches = re.finditer(pattern, content)
for match in matches:
name = match.group(1)
hex_str = match.group(2)
hex_values = []
for line in hex_str.split('\n'):
line = line.split('//')[0]
values = re.findall(r'0x[0-9a-fA-F]{2}', line)
hex_values.extend(values)
byte_data = bytes([int(x, 16) for x in hex_values])
packets.append((name, byte_data))
return packets
def get_tcp_payload(data: bytes) -> bytes:
ip_header_start = 14 # Skip Ethernet header
ip_header_len = (data[ip_header_start] & 0x0F) * 4
tcp_header_start = ip_header_start + ip_header_len
tcp_header_len = ((data[tcp_header_start + 12] >> 4) & 0x0F) * 4
payload_start = tcp_header_start + tcp_header_len
return data[payload_start:]
def parse_file(filename: str):
with open(filename, 'r') as f:
content = f.read()
packets = extract_bytes_from_c_array(content)
for name, data in packets:
print(f"\nPacket {name}:")
payload = get_tcp_payload(data)
print(f"Dircon payload: {payload.hex()}")
offset = 0
while offset < len(payload):
packet, consumed = parse_dircon_packet(payload, offset)
if packet is None or consumed == 0:
break
print(f"Frame: {packet}")
offset += consumed
if __name__ == "__main__":
import sys
if len(sys.argv) != 2:
print("Usage: python script.py <input_file>")
sys.exit(1)
parse_file(sys.argv[1])

331
helpers/wahoo-simulator.py Normal file
View File

@@ -0,0 +1,331 @@
import sys
import logging
import asyncio
import threading
import random
import struct
import binascii
import time
from typing import Any, Union
# Verificare che siamo su macOS
if sys.platform != 'darwin':
print("Questo script è progettato specificamente per macOS!")
sys.exit(1)
# Importare bless
try:
from bless import (
BlessServer,
BlessGATTCharacteristic,
GATTCharacteristicProperties,
GATTAttributePermissions,
)
except ImportError:
print("Errore: impossibile importare bless. Installarlo con: pip install bless")
sys.exit(1)
# Configurazione logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Trigger per eventi
trigger = threading.Event()
# Informazioni sul dispositivo
DEVICE_NAME = "Wahoo KICKR 51A6"
# UUID dei servizi standard
CYCLING_POWER_SERVICE = "00001818-0000-1000-8000-00805f9b34fb"
USER_DATA_SERVICE = "0000181c-0000-1000-8000-00805f9b34fb"
FITNESS_MACHINE_SERVICE = "00001826-0000-1000-8000-00805f9b34fb"
# UUID dei servizi Wahoo personalizzati
WAHOO_SERVICE_1 = "a026ee01-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_SERVICE_3 = "a026ee03-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_SERVICE_6 = "a026ee06-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_SERVICE_B = "a026ee0b-0a7d-4ab3-97fa-f1500f9feb8b"
# UUID delle caratteristiche standard
CYCLING_POWER_MEASUREMENT = "00002a63-0000-1000-8000-00805f9b34fb"
CYCLING_POWER_FEATURE = "00002a65-0000-1000-8000-00805f9b34fb"
SENSOR_LOCATION = "00002a5d-0000-1000-8000-00805f9b34fb"
CYCLING_POWER_CONTROL_POINT = "00002a66-0000-1000-8000-00805f9b34fb"
WEIGHT = "00002a98-0000-1000-8000-00805f9b34fb"
FITNESS_MACHINE_FEATURE = "00002acc-0000-1000-8000-00805f9b34fb"
TRAINING_STATUS = "00002ad3-0000-1000-8000-00805f9b34fb"
FITNESS_MACHINE_CONTROL_POINT = "00002ad9-0000-1000-8000-00805f9b34fb"
FITNESS_MACHINE_STATUS = "00002ada-0000-1000-8000-00805f9b34fb"
INDOOR_BIKE_DATA = "00002ad2-0000-1000-8000-00805f9b34fb"
# UUID delle caratteristiche Wahoo personalizzate
WAHOO_CUSTOM_CP_CHAR = "a026e005-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_CHAR_1 = "a026e002-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_CHAR_2 = "a026e004-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_CHAR_3 = "a026e00a-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_CHAR_4 = "a026e023-0a7d-4ab3-97fa-f1500f9feb8b"
WAHOO_CHAR_5 = "a026e037-0a7d-4ab3-97fa-f1500f9feb8b"
# Stato dispositivo - variabili globali
current_power = 120
current_cadence = 85
current_speed = 25.0
current_resistance = 5
# Funzioni di callback
def read_request(characteristic, **kwargs):
logger.debug(f"Lettura: {characteristic.value}")
return characteristic.value
def write_request(characteristic, value, **kwargs):
uuid_str = str(characteristic.uuid).lower()
logger.info(f"Scrittura su caratteristica: {uuid_str}, valore: {binascii.hexlify(value)}")
# Gestione delle richieste di scrittura
if uuid_str == FITNESS_MACHINE_CONTROL_POINT.lower():
handle_ftms_control_point(value)
elif uuid_str == CYCLING_POWER_CONTROL_POINT.lower():
handle_cp_control_point(value)
elif uuid_str in [WAHOO_CHAR_1.lower(), WAHOO_CHAR_3.lower(), WAHOO_CHAR_4.lower(), WAHOO_CHAR_5.lower()]:
handle_wahoo_char_write(uuid_str, value)
characteristic.value = value
# Gestori di richieste di scrittura
def handle_ftms_control_point(data):
global current_power, current_resistance
if not data:
return
op_code = data[0]
logger.info(f"Comando FTMS Control Point: {op_code:#x}")
if op_code == 0x05: # Set Target Power (ERG mode)
if len(data) >= 3:
target_power = int.from_bytes(data[1:3], byteorder='little')
logger.info(f"Target power impostato: {target_power}W")
current_power = target_power
def handle_cp_control_point(data):
if not data:
return
op_code = data[0]
logger.info(f"Comando CP Control Point: {op_code:#x}")
def handle_wahoo_char_write(uuid_str, data):
logger.info(f"Scrittura su caratteristica Wahoo {uuid_str}: {binascii.hexlify(data)}")
# Funzioni per generare dati
def generate_cycling_power_data():
global current_power, current_cadence
# Varia leggermente i valori
current_power += random.randint(-3, 3)
current_power = max(0, min(2000, current_power))
current_cadence += random.randint(-1, 1)
current_cadence = max(0, min(200, current_cadence))
# Crea Cycling Power Measurement
power_data = bytearray(16)
power_data[0:2] = (0x0034).to_bytes(2, byteorder='little')
power_data[2:4] = (current_power).to_bytes(2, byteorder='little')
power_data[4:8] = (int(current_power * 10)).to_bytes(4, byteorder='little')
power_data[8:12] = (0).to_bytes(4, byteorder='little')
power_data[12:14] = (current_cadence).to_bytes(2, byteorder='little')
power_data[14:16] = (0xBAD8).to_bytes(2, byteorder='little')
return bytes(power_data)
def generate_indoor_bike_data():
global current_speed, current_cadence
# Varia leggermente i valori
current_speed += random.uniform(-0.2, 0.2)
current_speed = max(0, min(60.0, current_speed))
# Crea Indoor Bike Data
bike_data = bytearray(8)
bike_data[0:2] = (0x0044).to_bytes(2, byteorder='little')
bike_data[2:4] = (int(current_speed * 100)).to_bytes(2, byteorder='little')
bike_data[4:6] = (current_cadence).to_bytes(2, byteorder='little')
bike_data[6:8] = (0).to_bytes(2, byteorder='little')
return bytes(bike_data)
async def run():
# Crea server con minimo di parametri
server = BlessServer(name=DEVICE_NAME)
server.read_request_func = read_request
server.write_request_func = write_request
logger.info(f"Configurazione del simulatore {DEVICE_NAME}...")
# 1. Servizi standard
# Aggiungi Cycling Power Service
await server.add_new_service(CYCLING_POWER_SERVICE)
await server.add_new_characteristic(
CYCLING_POWER_SERVICE,
CYCLING_POWER_MEASUREMENT,
GATTCharacteristicProperties.read | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable
)
await server.add_new_characteristic(
CYCLING_POWER_SERVICE,
CYCLING_POWER_FEATURE,
GATTCharacteristicProperties.read,
None,
GATTAttributePermissions.readable
)
await server.add_new_characteristic(
CYCLING_POWER_SERVICE,
CYCLING_POWER_CONTROL_POINT,
GATTCharacteristicProperties.write | GATTCharacteristicProperties.indicate,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
await server.add_new_characteristic(
CYCLING_POWER_SERVICE,
WAHOO_CUSTOM_CP_CHAR,
GATTCharacteristicProperties.write | GATTCharacteristicProperties.indicate,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
# Aggiungi Fitness Machine Service
await server.add_new_service(FITNESS_MACHINE_SERVICE)
await server.add_new_characteristic(
FITNESS_MACHINE_SERVICE,
INDOOR_BIKE_DATA,
GATTCharacteristicProperties.read | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable
)
await server.add_new_characteristic(
FITNESS_MACHINE_SERVICE,
FITNESS_MACHINE_CONTROL_POINT,
GATTCharacteristicProperties.write | GATTCharacteristicProperties.indicate,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
await server.add_new_characteristic(
FITNESS_MACHINE_SERVICE,
FITNESS_MACHINE_FEATURE,
GATTCharacteristicProperties.read,
None,
GATTAttributePermissions.readable
)
# 2. Servizi Wahoo personalizzati
# Wahoo Service 1
await server.add_new_service(WAHOO_SERVICE_1)
await server.add_new_characteristic(
WAHOO_SERVICE_1,
WAHOO_CHAR_1,
GATTCharacteristicProperties.write_without_response | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
await server.add_new_characteristic(
WAHOO_SERVICE_1,
WAHOO_CHAR_2,
GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable
)
# Wahoo Service 3
await server.add_new_service(WAHOO_SERVICE_3)
await server.add_new_characteristic(
WAHOO_SERVICE_3,
WAHOO_CHAR_3,
GATTCharacteristicProperties.write_without_response | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
# Wahoo Service 6
await server.add_new_service(WAHOO_SERVICE_6)
await server.add_new_characteristic(
WAHOO_SERVICE_6,
WAHOO_CHAR_4,
GATTCharacteristicProperties.write_without_response | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
# Wahoo Service B
await server.add_new_service(WAHOO_SERVICE_B)
await server.add_new_characteristic(
WAHOO_SERVICE_B,
WAHOO_CHAR_5,
GATTCharacteristicProperties.read | GATTCharacteristicProperties.write_without_response | GATTCharacteristicProperties.notify,
None,
GATTAttributePermissions.readable | GATTAttributePermissions.writeable
)
logger.info("Configurazione dei servizi completata")
# Avvia il server
await server.start()
logger.info(f"{DEVICE_NAME} è ora in fase di advertising")
# Imposta i valori iniziali DOPO l'avvio del server
# Valori per servizi standard
server.get_characteristic(CYCLING_POWER_MEASUREMENT).value = generate_cycling_power_data()
server.get_characteristic(CYCLING_POWER_FEATURE).value = (0x08).to_bytes(4, byteorder='little')
server.get_characteristic(INDOOR_BIKE_DATA).value = generate_indoor_bike_data()
server.get_characteristic(FITNESS_MACHINE_FEATURE).value = (0x02C6).to_bytes(4, byteorder='little')
# Valori per caratteristiche Wahoo
server.get_characteristic(WAHOO_CHAR_1).value = bytearray(1)
server.get_characteristic(WAHOO_CHAR_2).value = bytearray(1)
server.get_characteristic(WAHOO_CHAR_3).value = bytearray(1)
server.get_characteristic(WAHOO_CHAR_4).value = bytearray(1)
server.get_characteristic(WAHOO_CHAR_5).value = bytearray(1)
# Loop di aggiornamento
try:
counter = 0
while True:
# Aggiorna i dati principali
server.get_characteristic(INDOOR_BIKE_DATA).value = generate_indoor_bike_data()
server.get_characteristic(CYCLING_POWER_MEASUREMENT).value = generate_cycling_power_data()
# Invia notifiche
server.update_value(FITNESS_MACHINE_SERVICE, INDOOR_BIKE_DATA)
server.update_value(CYCLING_POWER_SERVICE, CYCLING_POWER_MEASUREMENT)
if counter % 10 == 0: # Log ogni 10 cicli
logger.info(f"Potenza: {current_power}W, Cadenza: {current_cadence}rpm, Velocità: {current_speed:.1f}km/h")
counter += 1
await asyncio.sleep(0.1)
except KeyboardInterrupt:
logger.info("Arresto richiesto dall'utente")
except Exception as e:
logger.error(f"Errore durante l'esecuzione: {e}")
finally:
await server.stop()
logger.info("Server arrestato")
if __name__ == "__main__":
print("=" * 80)
print(f"Wahoo KICKR 51A6 BLE Simulator per macOS (Versione completa)")
print("=" * 80)
print(f"Avvio della simulazione di {DEVICE_NAME}")
print("Premi Ctrl+C per terminare il server")
print("=" * 80)
try:
asyncio.run(run())
except KeyboardInterrupt:
print("\nSimulazione fermata dall'utente")
except Exception as e:
print(f"Errore: {e}")
print("Potrebbe essere necessario eseguire questo script con sudo")
sys.exit(1)

143
helpers/winbt.py Normal file
View File

@@ -0,0 +1,143 @@
import sys
import logging
import asyncio
import threading
import random
import struct
import binascii
from typing import Any, Union
from bless import (
BlessServer,
BlessGATTCharacteristic,
GATTCharacteristicProperties,
GATTAttributePermissions,
)
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(name=__name__)
trigger: Union[asyncio.Event, threading.Event]
if sys.platform in ["darwin", "win32"]:
trigger = threading.Event()
else:
trigger = asyncio.Event()
def read_request(characteristic: BlessGATTCharacteristic, **kwargs) -> bytearray:
logger.debug(f"Reading {characteristic.value}")
return characteristic.value
def write_request(characteristic: BlessGATTCharacteristic, value: Any, **kwargs):
characteristic.value = value
logger.debug(f"Char value set to {characteristic.value}")
if characteristic.value == b"\x0f":
logger.debug("NICE")
trigger.set()
def generate_indoor_bike_data():
# Flags (16 bits)
flags = (1 << 2) | (1 << 6) # Instantaneous Cadence and Instantaneous Power present
speed = random.randint(0, 20000) # 0-20000
# Instantaneous Cadence (uint16, 0.5 rpm resolution)
cadence = random.randint(0, 400) # 0-200 rpm
# Instantaneous Power (sint16, watts)
power = random.randint(10, 50)
# Pack data into bytes
data = struct.pack("<HHHh", flags, speed, cadence, power)
return data
def generate_zwift_ride_data():
data_str = "2308ffbfffff0f1a04080010001a04080110001a04080210001a0408031000"
data = binascii.unhexlify(data_str)
return data
async def update_indoor_bike_data(server, service_uuid, char_uuid):
while True:
c = server.get_characteristic(char_uuid)
c.value = bytes(generate_indoor_bike_data())
server.update_value(service_uuid, char_uuid)
await asyncio.sleep(1)
async def update_zwift_ride_data(server, service_uuid, char_uuid):
while True:
c = server.get_characteristic(char_uuid)
c.value = bytes(generate_zwift_ride_data())
server.update_value(service_uuid, char_uuid)
await asyncio.sleep(1)
async def run(loop):
trigger.clear()
# Instantiate the server
server = BlessServer(name="FTMS Indoor Bike", loop=loop)
server.read_request_func = read_request
server.write_request_func = write_request
# Add Fitness Machine Service
ftms_uuid = "00001826-0000-1000-8000-00805f9b34fb"
await server.add_new_service(ftms_uuid)
# Add Indoor Bike Data Characteristic
indoor_bike_data_uuid = "00002ad2-0000-1000-8000-00805f9b34fb"
char_flags = (
GATTCharacteristicProperties.read
| GATTCharacteristicProperties.notify
)
permissions = GATTAttributePermissions.readable
await server.add_new_characteristic(
ftms_uuid, indoor_bike_data_uuid, char_flags, generate_indoor_bike_data(), permissions
)
zwift_ride_uuid = "00000001-19ca-4651-86e5-fa29dcdd09d1"
await server.add_new_service(zwift_ride_uuid)
syncRxChar = "00000003-19CA-4651-86E5-FA29DCDD09D1"
syncRx_flags = (
GATTCharacteristicProperties.write
)
syncRx_permissions = GATTAttributePermissions.writeable
syncTxChar = "00000004-19CA-4651-86E5-FA29DCDD09D1"
syncTx_flags = (
GATTCharacteristicProperties.read
| GATTCharacteristicProperties.indicate
)
syncTx_permissions = GATTAttributePermissions.readable
asyncChar = "00000002-19CA-4651-86E5-FA29DCDD09D1"
async_flags = (
GATTCharacteristicProperties.read
| GATTCharacteristicProperties.notify
)
async_permissions = GATTAttributePermissions.readable
await server.add_new_characteristic(
zwift_ride_uuid, syncRxChar, syncRx_flags, generate_indoor_bike_data(), syncRx_permissions
)
await server.add_new_characteristic(
zwift_ride_uuid, syncTxChar, syncTx_flags, generate_indoor_bike_data(), syncTx_permissions
)
await server.add_new_characteristic(
zwift_ride_uuid, asyncChar, async_flags, generate_zwift_ride_data(), async_permissions
)
logger.debug(server.get_characteristic(indoor_bike_data_uuid))
await server.start()
logger.debug("Advertising")
logger.info(f"FTMS Indoor Bike is now advertising")
# Start updating the indoor bike data
update_task = asyncio.create_task(update_indoor_bike_data(server, ftms_uuid, indoor_bike_data_uuid))
update_task_zwift_ride = asyncio.create_task(update_zwift_ride_data(server, zwift_ride_uuid, asyncChar))
await asyncio.sleep(99999999)
await server.stop()
loop = asyncio.get_event_loop()
loop.run_until_complete(run(loop))

View File

@@ -0,0 +1,28 @@
import json
def generate_code(hex_string, start_index):
hex_pairs = [hex_string[i:i+2] for i in range(0, len(hex_string), 2)]
output = ""
array_name = f"initData{start_index}"
array_elements = ', '.join([f"0x{hex_pair}" for hex_pair in hex_pairs])
output += f"uint8_t {array_name}[] = {{{array_elements}}};\n"
output += f'writeCharacteristic({array_name}, sizeof({array_name}), QStringLiteral("init"), false, false);\n'
output += "QThread::msleep(sleepms);\n\n"
return output
json_file_path = "C:\\Work\\qdomyos-zwift\\helpers\\tmp.json"
with open(json_file_path, 'r') as file:
# Carica i dati JSON
json_data = json.load(file)
line = 0
for item in json_data:
try:
if(item['_source']['layers']['btatt']['btatt.value_raw'][0] != ''):
line = line + 1
print(generate_code(item['_source']['layers']['btatt']['btatt.value_raw'][0], line))
except:
pass

View File

@@ -0,0 +1,37 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"files.associations": {
"list": "cpp",
"chrono": "cpp",
"complex": "cpp",
"functional": "cpp",
"optional": "cpp",
"system_error": "cpp",
"type_traits": "cpp",
"xlocnum": "cpp",
"xtr1common": "cpp",
"qhttpserver": "cpp",
"array": "cpp",
"deque": "cpp",
"map": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"xstring": "cpp",
"algorithm": "cpp",
"xutility": "cpp",
"xlocale": "cpp",
"filesystem": "cpp",
"bitset": "cpp",
"iterator": "cpp",
"xhash": "cpp",
"xtree": "cpp",
"ostream": "cpp",
"locale": "cpp"
}
}
}

View File

@@ -329,6 +329,7 @@ public slots:
descData.uuid = QBluetoothUuid(descriptorUuid);
charData.descriptorList.insert(descHandle, descData);
if (descData.uuid == QBluetoothUuid(QBluetoothUuid::ClientCharacteristicConfiguration)) {
mIndicateChars << charData.uuid;
ComPtr<IAsyncOperation<ClientCharConfigDescriptorResult *>> readOp;
hr = characteristic->ReadClientCharacteristicConfigurationDescriptorAsync(&readOp);
WARN_AND_CONTINUE_IF_FAILED(hr, "Could not read descriptor value")
@@ -356,7 +357,7 @@ public slots:
descData.value = QByteArray(2, Qt::Uninitialized);
qToLittleEndian(result, descData.value.data());
mIndicateChars << charData.uuid;
} else {
ComPtr<IAsyncOperation<GattReadResult *>> readOp;
hr = descriptor->ReadValueWithCacheModeAsync(BluetoothCacheMode_Uncached,
@@ -612,6 +613,7 @@ HRESULT QLowEnergyControllerPrivateWinRTNew::onValueChange(IGattCharacteristic *
{
HRESULT hr;
quint16 handle;
qCDebug(QT_BT_WINRT) << __FUNCTION__ << characteristic;
hr = characteristic->get_AttributeHandle(&handle);
RETURN_IF_FAILED("Could not obtain characteristic's handle", return S_OK)
ComPtr<IBuffer> buffer;

View File

@@ -10,59 +10,87 @@ ColumnLayout {
property alias textFont: accordionText.font.family
property alias textFontSize: accordionText.font.pixelSize
property alias indicatRectColor: indicatRect.color
default property alias accordionContent: contentPlaceholder.data
spacing: 0
default property alias accordionContent: contentLoader.sourceComponent
Layout.fillWidth: true;
// Signal emitted when content becomes visible
signal contentBecameVisible()
spacing: 0
Layout.fillWidth: true
Rectangle {
id: accordionHeader
color: "red"
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true;
Layout.fillWidth: true
height: 48
Rectangle{
id:indicatRect
x: 16; y: 20
width: 8; height: 8
radius: 8
color: "white"
Rectangle {
id: indicatRect
x: 16; y: 20
width: 8; height: 8
radius: 8
color: "white"
}
Text {
id: accordionText
x:34;y:13
x: 34; y: 13
color: "#FFFFFF"
text: rootElement.title
}
Image {
y:13
anchors.right: parent.right
y: 13
anchors.right: parent.right
anchors.rightMargin: 20
width: 30; height: 30
id: indicatImg
source: "qrc:/icons/arrow-collapse-vertical.png"
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
rootElement.isOpen = !rootElement.isOpen
if(rootElement.isOpen)
{
if(rootElement.isOpen) {
indicatImg.source = "qrc:/icons/arrow-expand-vertical.png"
}else{
} else {
indicatImg.source = "qrc:/icons/arrow-collapse-vertical.png"
}
}
}
}
// This will get filled with the content
ColumnLayout {
id: contentPlaceholder
visible: rootElement.isOpen
Layout.fillWidth: true;
// Loader with enhanced visibility handling
Loader {
id: contentLoader
active: rootElement.isOpen
visible: false // Start invisible
Layout.fillWidth: true
asynchronous: false
onLoaded: {
if (item) {
item.Layout.fillWidth = true
visible = true
rootElement.contentBecameVisible()
}
}
// Handle visibility changes
onVisibleChanged: {
if (visible && status === Loader.Ready) {
rootElement.contentBecameVisible()
}
}
}
// Handle accordion closing
onIsOpenChanged: {
if (!isOpen) {
contentLoader.visible = false
}
}
}

View File

@@ -5,26 +5,29 @@
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>ConnectIQ.framework/ConnectIQ</string>
<key>LibraryIdentifier</key>
<string>ios-armv7_arm64</string>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>ConnectIQ.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>armv7</string>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>ConnectIQ.framework/ConnectIQ</string>
<key>LibraryIdentifier</key>
<string>ios-i386_x86_64-simulator</string>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>ConnectIQ.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>i386</string>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>

View File

@@ -6,9 +6,9 @@
//
#import <Foundation/Foundation.h>
#import "IQConstants.h"
#import "IQDevice.h"
#import "IQApp.h"
#import <ConnectIQ/IQConstants.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQApp.h>
// --------------------------------------------------------------------------------
#pragma mark - PUBLIC TYPES

View File

@@ -6,8 +6,8 @@
//
#import <Foundation/Foundation.h>
#import "IQDevice.h"
#import "IQAppStatus.h"
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQAppStatus.h>
/// @brief Represents an instance of a ConnectIQ app that is installed on a
/// Garmin device.

View File

@@ -13,6 +13,9 @@ extern int const IQSDKVersion;
/// @brief The bundle identifier for the Garmin Connect Mobile app.
extern NSString * const IQGCMBundle;
/// @brief The bundle identifier for the Garmin Connect Mobile Beta app.
extern NSString * const IQGCMInternalBetaBundle;
/// @brief The result of a SendMessage operation
typedef NS_ENUM(NSInteger, IQSendMessageResult){
///! @brief The message was sent successfully.

View File

@@ -6,9 +6,9 @@
//
#import <Foundation/Foundation.h>
#import "IQConstants.h"
#import "IQDevice.h"
#import "IQApp.h"
#import <ConnectIQ/IQConstants.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQApp.h>
// --------------------------------------------------------------------------------
#pragma mark - PUBLIC TYPES

View File

@@ -6,8 +6,8 @@
//
#import <Foundation/Foundation.h>
#import "IQDevice.h"
#import "IQAppStatus.h"
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQAppStatus.h>
/// @brief Represents an instance of a ConnectIQ app that is installed on a
/// Garmin device.

View File

@@ -13,6 +13,9 @@ extern int const IQSDKVersion;
/// @brief The bundle identifier for the Garmin Connect Mobile app.
extern NSString * const IQGCMBundle;
/// @brief The bundle identifier for the Garmin Connect Mobile Beta app.
extern NSString * const IQGCMInternalBetaBundle;
/// @brief The result of a SendMessage operation
typedef NS_ENUM(NSInteger, IQSendMessageResult){
///! @brief The message was sent successfully.

View File

@@ -6,11 +6,11 @@
<dict>
<key>Headers/ConnectIQ.h</key>
<data>
F1hICh90Ex4ADEjYLcSi0YPhrPA=
yih4e2KjbC/GqavxdCZ3xQ4mHmA=
</data>
<key>Headers/IQApp.h</key>
<data>
R7+SmeArgBACIBWHRnEAugyFHKE=
NDlj8k5C84UPFmD+qEMz2WcZloY=
</data>
<key>Headers/IQAppStatus.h</key>
<data>
@@ -18,7 +18,7 @@
</data>
<key>Headers/IQConstants.h</key>
<data>
eI7keKSkaajUZACnuMhgtV1RuBA=
z5FAXaGG7RDVUTai1Vvqs33zc98=
</data>
<key>Headers/IQDevice.h</key>
<data>
@@ -26,11 +26,11 @@
</data>
<key>Info.plist</key>
<data>
sMY09qXRBL/m1OGNWejLjfNg04w=
YUOCJU/YBLc4CRWV1z8JHDjCx8M=
</data>
<key>Modules/module.modulemap</key>
<data>
SSRVAtIAdFmowQqE4HzOpWYLubg=
eEyhq/G44PBlD3KiydN8B1vbfCU=
</data>
<key>ar.lproj/IQLocalizable.strings</key>
<dict>
@@ -298,32 +298,20 @@
<dict>
<key>Headers/ConnectIQ.h</key>
<dict>
<key>hash</key>
<data>
F1hICh90Ex4ADEjYLcSi0YPhrPA=
</data>
<key>hash2</key>
<data>
ABtgvHbvmly4QpZO/KmmrwYkL0N+AqV3gXdPVrseysY=
kAenemss8n98vVLi54JqBUtGwaL1/i+HSejFBZgawHA=
</data>
</dict>
<key>Headers/IQApp.h</key>
<dict>
<key>hash</key>
<data>
R7+SmeArgBACIBWHRnEAugyFHKE=
</data>
<key>hash2</key>
<data>
X4vXt0sO9gxQNzQalIaLqMpSGNRC9ue2USDcfjBYkec=
bSRRooQ0FKFr3BgrFolAnkU402889YFHrH+6EEca3cg=
</data>
</dict>
<key>Headers/IQAppStatus.h</key>
<dict>
<key>hash</key>
<data>
WnybOSMMVqCKGns0rEz9C3EfQOg=
</data>
<key>hash2</key>
<data>
tg9qNXtTmFUvNoJtq7O/aEXBNngcGENVRhvxLJ8C/xo=
@@ -331,21 +319,13 @@
</dict>
<key>Headers/IQConstants.h</key>
<dict>
<key>hash</key>
<data>
eI7keKSkaajUZACnuMhgtV1RuBA=
</data>
<key>hash2</key>
<data>
bqDpm8yikc2FIqaSUHcLqPY6TPXLlXSUo+Dl9NUYwmA=
qVLQDlPhVsyAAQ/LCGOCdEOUaabcgwTHijMQiuWbAXM=
</data>
</dict>
<key>Headers/IQDevice.h</key>
<dict>
<key>hash</key>
<data>
bl545C/cu0mw2KlRmzojKmHPom0=
</data>
<key>hash2</key>
<data>
4N4+64IHeb9iBwyziNxo0SMuCM75ez9Em4UfmtgtTHA=
@@ -353,21 +333,13 @@
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
<data>
SSRVAtIAdFmowQqE4HzOpWYLubg=
</data>
<key>hash2</key>
<data>
lQGjVO5Q0wfztjETCwDkwAkQ7nZInCgWdStnHL3o6Co=
6a9Ehz1N4Sm/6qBlTfQpHUqRlpzQr2JMF26AfW4xUtY=
</data>
</dict>
<key>ar.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
1CDTE/Qaf1Z/HuhSt9CUnwitv4M=
</data>
<key>hash2</key>
<data>
CWyQue2TCS0heGoGbN4ffetM2QZSk7lqgc2Wer2fgTg=
@@ -377,10 +349,6 @@
</dict>
<key>cs.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
/jkyQ77G2Xd9wy6QptBphGNbtCY=
</data>
<key>hash2</key>
<data>
1mSn+EYeYcTV1dArgHz7PkmZrV6mHWfnuG5aDa6Y87E=
@@ -390,10 +358,6 @@
</dict>
<key>da.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
FYi0wjOu/Hw//Qe96yqxSb9yClc=
</data>
<key>hash2</key>
<data>
yLkvGzd+smkOjicvW/+Oe6wGGyirHS+/YfjuSzyVoMM=
@@ -403,10 +367,6 @@
</dict>
<key>de.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
MitzVbGhXhTLjPvw9vuWcQQa50Q=
</data>
<key>hash2</key>
<data>
DFHv7MWBJmyAkOj993NmSFKbS2t8/vtSev603sBUtjI=
@@ -416,10 +376,6 @@
</dict>
<key>el.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
n82gLcjjjHszaroTFeJUvSrrc0o=
</data>
<key>hash2</key>
<data>
i4FAK4mi+SgS6oZv8zM74kRZToakn49E8GD7FcJBLoQ=
@@ -429,10 +385,6 @@
</dict>
<key>en.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
hcxxLyrTI+aElXlPc5dwr7jdqwc=
</data>
<key>hash2</key>
<data>
vmBi9DFJzFcG0OwaWKSDjgklNi407U8u2pz3EnEENN4=
@@ -442,10 +394,6 @@
</dict>
<key>es.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
ff8DVQtNhO8pF7HFnXjh8foHXbo=
</data>
<key>hash2</key>
<data>
z6RjynaWjrRKHmv4sLirc4eXwKOtQdylzj5+TiHpaTc=
@@ -455,10 +403,6 @@
</dict>
<key>fi.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
R9cr8yqJmu91Xz31tGyprGR3t/s=
</data>
<key>hash2</key>
<data>
6BI0iPRVWaP63/XFdjLBz6z7DsvvuOoaEAS+mYzrx8E=
@@ -468,10 +412,6 @@
</dict>
<key>fr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
PwFmqFeRTcjdHmkXYrPzNVYoe5o=
</data>
<key>hash2</key>
<data>
geXjZzXre2CRiALecPFBGz4JSJA7MbkDnB4qrEMKNwk=
@@ -481,10 +421,6 @@
</dict>
<key>he.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
/jPUgFtYbbyELG5DZ3Sjoi/If9w=
</data>
<key>hash2</key>
<data>
47mcrSx16SFjWPIiN7guCAG0va8NiJ6I5s45tSVEHlY=
@@ -494,10 +430,6 @@
</dict>
<key>hr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
H2GtdTeORRPCnogvpWY69Dg9uME=
</data>
<key>hash2</key>
<data>
4bQvygPax6VBpoFlyS5by1N6otnDMliHu+bWsDaWSQc=
@@ -507,10 +439,6 @@
</dict>
<key>hu.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
QIimMhNyYmqp4ZW01hfj554WAMg=
</data>
<key>hash2</key>
<data>
0m2fIyz26vh3RlUqqSXvoNTLovxIixrUyJoL/IDSoVk=
@@ -520,10 +448,6 @@
</dict>
<key>id.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
2/54a0gkcVuk1I3m4ulDAXOLL5o=
</data>
<key>hash2</key>
<data>
hQf9SrG7d8aVWsXIbCIxkKEJjbnW1FLvS+MbOI1VtHQ=
@@ -533,10 +457,6 @@
</dict>
<key>it.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
hNIKYIcP/87e6g7AUP+zKRtJ52M=
</data>
<key>hash2</key>
<data>
XAbEWX6cicDxGzxGgSx3DhF4rjUHX4LV+dO0X3rUEqc=
@@ -546,10 +466,6 @@
</dict>
<key>ja.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
0iU2PbJ/3xgXMZ20ffsqaWpxKWc=
</data>
<key>hash2</key>
<data>
YOqOvZq0WEN4DCoSwc0lcTSRc4C812DqzjIsaid1SHg=
@@ -559,10 +475,6 @@
</dict>
<key>ko.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
ERH8oHR9H9jMHjP0EAgaTtVhnX4=
</data>
<key>hash2</key>
<data>
WJyaRCWn1KqmcDeajRnC41MdNrlpbI+1JbPkXhbKrKY=
@@ -572,10 +484,6 @@
</dict>
<key>ms.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
DkbQA2+v/qSgQWma/fg3647Bkqs=
</data>
<key>hash2</key>
<data>
gztYxa4Hn58HkKmcUIZI1jCz44IETZeMsqrpZSKxJvc=
@@ -585,10 +493,6 @@
</dict>
<key>nb.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
T3zFOvuvrJt5Vnmfqt2Mf/du8as=
</data>
<key>hash2</key>
<data>
Oy6UOwSN+/xPIrthAEvzV8PEn27kfsHpMMLU5w1rww0=
@@ -598,10 +502,6 @@
</dict>
<key>nl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
t9PD5JEbfoSLaQ7f8M2cLghOReI=
</data>
<key>hash2</key>
<data>
XbijhSaZgmsW59Vo9ZEbhDuUQH18fHizWKzsLosiM0o=
@@ -611,10 +511,6 @@
</dict>
<key>pl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
wfTnhBccAm6JfwH/JkZKNRKTUAU=
</data>
<key>hash2</key>
<data>
MQYgqA+Hl03JJ261Q19K5Lt64kSTBP+pfpD+jOVE3AU=
@@ -624,10 +520,6 @@
</dict>
<key>pt-PT.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
7yXkcZEpJ4UiRHAzhK+vw/Q857Y=
</data>
<key>hash2</key>
<data>
seINq3QazVameLGOW+pIAtGWLa6NDl5XWRtqnObxywo=
@@ -637,10 +529,6 @@
</dict>
<key>pt.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
tZPncsQs8weCDJa03AKLpijXSUw=
</data>
<key>hash2</key>
<data>
GnzdqEuQwORzVCih99bwr79UHIyzXm+zuN5b9m1NrKY=
@@ -650,10 +538,6 @@
</dict>
<key>ru.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
Ct+byJ3rWeigvg0q6rB/kQaR+yE=
</data>
<key>hash2</key>
<data>
yCN9s/JXYqsMNZ1icaH4hUwyMQ1NtxOmV6sIAtRd9pc=
@@ -663,10 +547,6 @@
</dict>
<key>sk.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
1yTM1nAsAYpSH7NrYU6/nFlqk5E=
</data>
<key>hash2</key>
<data>
OFHDtkGLLSfTuSx8GOTycKDCKOKmX0Wh2QG1CHhRz3I=
@@ -676,10 +556,6 @@
</dict>
<key>sv.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
i84z6vuHLrFpO0qZ2V0zYjixIws=
</data>
<key>hash2</key>
<data>
a3Gk+3USOT5uundOXrNCgnbcD0rDo2lkCO7b7+zg2Is=
@@ -689,10 +565,6 @@
</dict>
<key>th.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
oW5npy+pDJM1wUOgTkw9FY1Ave4=
</data>
<key>hash2</key>
<data>
qxGqAqRMwm0/dMd0W7DUsvbWb9x65GT+3d1zOQEql1w=
@@ -702,10 +574,6 @@
</dict>
<key>tr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
76rD7PLrQMiT5YTlI8IjEFgsiU4=
</data>
<key>hash2</key>
<data>
Y6TnKQmqO/TAx+0KYqRRG6UOz7I/gM1YmbUwgSfZSQU=
@@ -715,10 +583,6 @@
</dict>
<key>zh-Hans.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
DNlMxUKypOvKArzi7ioJUiFfFXg=
</data>
<key>hash2</key>
<data>
BI3m4MTMHuPI4sQKPGeQnxIlBJJrXwgVuR7Ho1Q5o6Y=
@@ -728,10 +592,6 @@
</dict>
<key>zh-Hant.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
U6I+uL07KIv2b77w0c0glaJlhMg=
</data>
<key>hash2</key>
<data>
14dQnjX3pEz2Um4J/fOdQDRe/LSuXxqkg1hEkO8E5ys=

Some files were not shown because too many files have changed in this diff Show More