Compare commits

...

1933 Commits

Author SHA1 Message Date
Roberto Viola
379cf8d7de Update project.pbxproj 2024-10-29 08:02:08 +01:00
Roberto Viola
2f2989f90d completed? 2024-10-28 15:40:00 +01:00
Roberto Viola
6fac9770be qml finally saves the settings correctly 2024-10-28 15:09:13 +01:00
Roberto Viola
8d07d7c3f7 Merge branch 'master' into Custom-gearing-ranges/ratios-(Discussion-#2671) 2024-10-28 13:44:31 +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
f85f743499 i need to save the first 3 static objects and use it in the wahoo module 2024-10-28 11:11:05 +01:00
Roberto Viola
74c37f5624 Update gears.qml 2024-10-28 09:46:58 +01:00
Roberto Viola
d4dbaf5c57 Adidas Treadmill #1705 (#2705) 2024-10-28 09:45:49 +01:00
Roberto Viola
527396eafc Revert "Update gears.qml"
This reverts commit 0f149448b3.
2024-10-28 09:18:54 +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
0f149448b3 Update gears.qml 2024-10-25 16:28:33 +02: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
ed1599ca8e need to center the values in the table 2024-10-24 15:08:25 +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
89808ae65b fixing casting to double 2024-10-24 11:15:51 +02:00
Roberto Viola
2da194f073 Merge branch 'master' into Custom-gearing-ranges/ratios-(Discussion-#2671) 2024-10-24 11:00:46 +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
d712621b7b fixing formula 2024-10-23 11:47:05 +02:00
Roberto Viola
1c06260036 Merge branch 'master' into Custom-gearing-ranges/ratios-(Discussion-#2671) 2024-10-23 11:44:26 +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
2d1364497e Update virtualbike_zwift.swift 2024-10-22 15:40:04 +02:00
Roberto Viola
cc7757bfcd Update project.pbxproj 2024-10-22 15:38:44 +02:00
Roberto Viola
49c7a96c81 Merge branch 'master' into Custom-gearing-ranges/ratios-(Discussion-#2671) 2024-10-22 15:32:50 +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
05d598ffcf first raw version 2024-10-21 14:06:48 +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
ce051344e9 Pro-Form 595i ProShox2 #2287 2024-05-07 12:03:22 +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
757febf35a Update main.yml 2023-11-06 09:42:31 +01:00
Roberto Viola
2c46293612 No connection to x22i #65
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/65
2023-11-06 09:21:51 +01:00
Roberto Viola
9a1f9ee980 QZ on iOS does not receive data from the bike (Issue #1770) 2023-11-06 08:28:04 +01:00
Roberto Viola
96c80d5bb6 Use user determined power gain values with Stryd and Incline #1765
reverting #1741
2023-11-02 15:25:23 +01:00
Roberto Viola
98fbd64b89 moc removed 2023-11-02 15:03:52 +01:00
Roberto Viola
23131f8fb8 removing moc causing issue on iOS build on Mac 2023-11-02 14:49:50 +01:00
Roberto Viola
ec966d6036 2.16.22 2023-11-02 14:23:45 +01:00
Roberto Viola
11f0d6786b Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-11-02 14:04:53 +01:00
Roberto Viola
0f2619233c Update main.yml 2023-11-02 14:04:38 +01:00
cagnulein
a2ba4cefb5 moc files added 2023-11-02 12:49:13 +00:00
Roberto Viola
a83e5951aa Update main.yml 2023-11-02 13:23:46 +01:00
Roberto Viola
9fe09e7b4b adding moc files to CI (#1559)
* adding moc to CI

* 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
2023-11-02 12:07:13 +01:00
Roberto Viola
0ea2269a67 Update main.yml 2023-11-02 09:31:58 +01:00
Roberto Viola
fdba749812 Connectivity issue with Saris/ Cycleops Hammer trainer #1724 2023-11-02 08:56:37 +01:00
Roberto Viola
ac257b13ed Update wahookickrheadwind.cpp 2023-11-01 22:33:43 +01:00
Roberto Viola
0890bf8096 Update proformtreadmill.cpp #1755 2023-11-01 11:49:38 +01:00
Roberto Viola
ea75a04ad5 Update main.yml 2023-11-01 11:21:44 +01:00
Roberto Viola
c3a4238618 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-10-31 17:30:43 +01:00
Roberto Viola
8017bf64cd Speed/Incline support for ProForm Pro 1000 Treadmill #1755 2023-10-31 17:30:33 +01:00
Roberto Viola
04633c6296 CI Releases (#1754)
* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Revert "Update main.yml"

This reverts commit b7c85b0bb4.

* Revert "Update main.yml"

This reverts commit d8a310de03.

* Update main.yml
2023-10-31 17:11:52 +01:00
Roberto Viola
513b59c106 Old Treadmill/Android 2 compatibility #62
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/62
2023-10-31 15:17:38 +01:00
Roberto Viola
04c3cc329c Windows PATH batch (#1736)
* Create setup.bat

* Update main.yml

* Update setup.bat

* Update setup.bat

* Update setup.bat
2023-10-31 11:55:00 +01:00
Roberto Viola
e99d7279f4 version 2.16.21 2023-10-31 11:53:55 +01:00
Roberto Viola
716f917e2a odometer keeps going when stopped echelon row #1750 2023-10-31 08:43:27 +01:00
Roberto Viola
0147498c69 Assault bike #1746 2023-10-31 08:29:24 +01:00
Vaibhav
22b3cef9d2 Fixes errors in 30_usage.md file (#1749) 2023-10-30 18:55:55 +01:00
Vaibhav
81e4e95272 Update README.md (#1747) 2023-10-30 17:55:01 +01:00
Roberto Viola
12cc5d0221 Wahoo Kickr Headwind #1281 2023-10-30 16:14:29 +01:00
Roberto Viola
5b1f85a8cb Urevo T2S bike #1744 2023-10-30 14:18:51 +01:00
Vivek Kumar
9a9d5fa95e Update 10_Installation.md (#1742) 2023-10-30 09:47:36 +01:00
Roberto Viola
8f335894e7 fr30z support/multiuser xp (Issue #1735) 2023-10-30 09:32:11 +01:00
Roberto Viola
3292af09ec Stryd power + Inclination power from the treadmill #1741 2023-10-30 09:16:18 +01:00
Roberto Viola
747acae290 fr30z support/multiuser xp (Issue #1735) 2023-10-30 08:53:54 +01:00
Roberto Viola
04c13f2842 Stryd power + Inclination power from the treadmill #1741 2023-10-30 08:33:07 +01:00
Roberto Viola
b77ed2af6a Peloton Resistance is not following the Targeted Peloton Resistance when using the "lower" option #1668 2023-10-30 08:10:42 +01:00
Roberto Viola
5f186204d6 Estimated FTP in email #1739 2023-10-30 08:07:44 +01:00
Roberto Viola
6e9a1ef58a Power Profile Peloton #1733 2023-10-27 11:18:34 +02:00
Roberto Viola
180a246902 Power Profile Peloton #1733 2023-10-27 10:53:51 +02:00
Roberto Viola
09ab5b142c Tacx Vortex #1734 2023-10-27 10:16:43 +02:00
Roberto Viola
50249a5236 Sole F63 doesn't work with qz #597 2023-10-27 09:37:43 +02:00
Roberto Viola
4da2ac2fe1 Sole F63 doesn't work with qz #597 2023-10-27 09:22:17 +02:00
Roberto Viola
ba9253209c Sole F63 doesn't work with qz #597 2023-10-27 09:19:25 +02:00
Roberto Viola
e8031f5a19 Sole F63 doesn't work with qz #597 2023-10-26 10:23:37 +02:00
Roberto Viola
b649e5e0f5 Sole F63 doesn't work with qz #597 2023-10-26 10:16:17 +02:00
Roberto Viola
da9c570029 Connectivity issue with Saris/ Cycleops Hammer trainer #1724 2023-10-26 09:43:05 +02:00
Roberto Viola
f79eae87a9 horizon treadmill with stryd 2023-10-25 14:46:34 +02:00
Roberto Viola
44beb23212 Connectivity issue with Saris/ Cycleops Hammer trainer #1724 2023-10-25 09:31:02 +02:00
Roberto Viola
ed35ece439 With Direct Connect, cadence value is not accurate on Zwift #1688 2023-10-25 09:23:53 +02:00
Roberto Viola
37b513904c Support for Domyos EL540 (Domyos-EL-1350) #1725 2023-10-25 08:23:52 +02:00
Roberto Viola
639397d594 version 2.16.20 2023-10-23 11:48:04 +02:00
Roberto Viola
de51899ca3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-10-23 11:45:57 +02:00
Roberto Viola
ff40d68223 resistance not working on proform studio bike with companion #1690 2023-10-23 11:45:40 +02:00
Roberto Viola
1385ea8b88 Fixing Windows CI 2023-10-23 11:40:34 +02:00
Roberto Viola
13c88474c6 Win64 msvc2019 64 (#1467)
* first test

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* trying to fix build

* compiler dump

* Update metric.h

* minmax issue

* Revert "compiler dump"

This reverts commit 7a6917f872.

* Update qdomyos-zwift.pri

* Revert "Update qdomyos-zwift.pri"

This reverts commit 54715413f0.

* debug enabled

* Revert "debug enabled"

This reverts commit 25c16c94ca.

* msvc 2015

* Revert "msvc 2015"

This reverts commit cded1bfac2.

* msvc 2015

* Update main.yml

* Revert "Update main.yml"

This reverts commit 78d88cc15d.

* Revert "msvc 2015"

This reverts commit a6e5252a5a.

* runtime error fixed!

* adding back the rest of the CI  + qhttpserver build

* enable always the log to debug

* msvc library rebuilt

* Update main.yml

* Create ucrtbased.dll

* finalizing

* Update horizontreadmill.cpp

* Update horizontreadmill.cpp

* Update horizontreadmill.cpp

https://bugreports.qt.io/browse/QTBUG-78488

* Update horizontreadmill.cpp

* Windows QZ crashing upon startup (Issue #1670)

* trying to patch qt directly

* Speed and Incline not working on QZ Desktop app [BUG] #1675

* Revert "Speed and Incline not working on QZ Desktop app [BUG] #1675"

This reverts commit 9f0111e919.

* Update proformtreadmill.cpp

* Speed and Incline not working on QZ Desktop app [BUG] #1675
2023-10-23 10:49:36 +02:00
Roberto Viola
e55577d835 Colours for speed tile on Echelon Stride aren't correct? #1718 2023-10-23 10:37:56 +02:00
Roberto Viola
6409eab90c Fixing Windows CI 2023-10-23 09:32:02 +02:00
Roberto Viola
a314dfe325 Tacx Flux #1720 2023-10-23 08:27:11 +02:00
Roberto Viola
9b41e2494d Renpho AI bike lacking any change in resistance when inclination changes or when power-ups are used in Zwift (Issue #1712) 2023-10-21 14:22:10 +02:00
Roberto Viola
8672240d72 Advance setting Watt offset (Discussion #1714) 2023-10-19 08:30:24 +02:00
Roberto Viola
8e83967036 2.16.18 2023-10-18 13:53:59 +02:00
Roberto Viola
8d8b1c141a Garmin Cadence Sensor not sending data (Issue #1704) 2023-10-18 10:07:15 +02:00
Roberto Viola
64d40b5d79 Revert "Garmin Cadence Sensor not sending data (Issue #1704)"
This reverts commit 42c2c52eef.
2023-10-18 09:04:37 +02:00
Roberto Viola
91811b6b0e Revert "Garmin Cadence Sensor not sending data (Issue #1704)"
This reverts commit 67398fce4b.
2023-10-18 09:04:32 +02:00
Roberto Viola
3e4c898d9f Conversion gain setting and conversion offset setting do not work with Tacx Neo 2 and Peloton. + resistance crashes when adjusted manually #1707 2023-10-17 14:22:28 +02:00
Roberto Viola
67398fce4b Garmin Cadence Sensor not sending data (Issue #1704) 2023-10-17 11:34:14 +02:00
Roberto Viola
42c2c52eef Garmin Cadence Sensor not sending data (Issue #1704) 2023-10-17 09:53:08 +02:00
Roberto Viola
94cfede7ac Conversion gain setting and conversion offset setting do not work with Tacx Neo 2 and Peloton. + resistance crashes when adjusted manually #1707 2023-10-17 09:29:22 +02:00
Roberto Viola
e8e6068aa2 resistance not working on proform studio bike with companion #1690 2023-10-17 08:34:05 +02:00
Roberto Viola
056a903cf2 Tacx Neo power lag #1431 2023-10-16 09:18:38 +02:00
Roberto Viola
911e66041f Adidas Treadmill #1705 2023-10-16 09:05:24 +02:00
Roberto Viola
dbc3c2abf2 Rowing Concept2 Pm3, Pm4 (Bluetooth) (Issue #1486) 2023-10-14 07:43:00 +02:00
Roberto Viola
6f37799e56 Rowing Concept2 Pm3, Pm4 (Bluetooth) (Issue #1486) 2023-10-14 07:37:19 +02:00
Roberto Viola
00bfd0707c Adidas Treadmill #1705 2023-10-14 07:36:32 +02:00
Roberto Viola
6bc003db9b tdf4 change gears without manual workout #1697 2023-10-12 14:32:07 +02:00
Roberto Viola
7b1044a634 tdf4 change gears without manual workout #1697 2023-10-12 14:18:24 +02:00
Cameron Horton
3686b77405 ERG setting high resistance on Merach S09 (Issue #1683) (#1701) 2023-10-12 14:16:44 +02:00
Roberto Viola
ba3bb3b724 tdf4 change gears without manual workout #1697 2023-10-11 11:54:34 +02:00
Roberto Viola
495168c204 ERG setting high resistance on Merach S09 (Issue #1683) 2023-10-10 08:37:52 +02:00
Roberto Viola
8a9230942b Echelon EX3 resistance not adjusting during ERG Mode #1692 2023-10-09 14:41:15 +02:00
Roberto Viola
100eaccc99 Resistance preset for rowers 2023-10-07 17:45:38 +01:00
Roberto Viola
24c0df5075 fixing "holes" in apple health for cadence 2023-10-06 08:48:38 +02:00
Roberto Viola
9116a46b27 New Peloton Rower Paces #1611 2023-10-03 11:37:29 +02:00
Roberto Viola
64059f2db5 on proform RL with Holofit, strokes and hr reported but not pace or calories #1681 2023-10-02 11:53:47 +02:00
Roberto Viola
2e386ef2a1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-10-02 09:31:53 +02:00
Roberto Viola
1ecee4cd3e Rowing With Zwift Avatar Keeps Moving When You Stop #1671 2023-10-02 09:31:42 +02:00
Roberto Viola
fd523000c0 on proform RL with Holofit, strokes and hr reported but not pace or calories #1681 2023-09-30 17:23:46 +02:00
Roberto Viola
47c272d3d0 on proform RL with Holofit, strokes and hr reported but not pace or calories #1681 2023-09-30 15:26:18 +02:00
Roberto Viola
4eec504016 Elite smart trainer #1682 2023-09-30 15:17:11 +02:00
Roberto Viola
da08e3335e Update main.yml 2023-09-30 12:36:10 +02:00
Roberto Viola
0100da67cf on proform RL with Holofit, strokes and hr reported but not pace or calories (Issue #1681) 2023-09-30 11:57:31 +02:00
Roberto Viola
12e03510f6 Update main.yml 2023-09-30 11:51:27 +02:00
Roberto Viola
c8a17ad70e Update main.yml 2023-09-29 13:49:45 +02:00
Roberto Viola
9748558f1b releases only on master 2023-09-29 13:37:28 +02:00
Roberto Viola
c807291389 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-09-29 13:18:06 +02:00
Roberto Viola
29c4e323b0 adding trial apk to releases 2023-09-29 13:17:57 +02:00
Roberto Viola
4b1408401f HR from Apple Watch to Windows build (#1677)
* let's try

* Update homeform.cpp
2023-09-29 13:04:26 +02:00
Roberto Viola
39e2ef50cb Proform Rower (Proform Sport RL) cannot change resistance from app #1643 2023-09-28 14:46:28 +02:00
Roberto Viola
880ac67fbc creating releases automatically 2023-09-28 10:15:34 +02:00
Roberto Viola
b21695bc14 Proform Rower (Proform Sport RL) cannot change resistance from app #1643 2023-09-28 09:52:10 +02:00
Roberto Viola
eab058f401 Proform Rower (Proform Sport RL) cannot change resistance from app #1643 2023-09-27 14:25:50 +02:00
Roberto Viola
58f62303be Proform CX Carbon: some resistance levels missing #1674 2023-09-27 14:21:20 +02:00
Roberto Viola
22f935c827 Proform Rower (Proform Sport RL) cannot change resistance from app (Issue #1643) 2023-09-27 11:44:04 +02:00
Roberto Viola
dce2ba7067 Proform Rower (Proform Sport RL) cannot change resistance from app (Issue #1643) 2023-09-26 17:55:36 +02:00
Roberto Viola
51665c76b4 Video Playback seem's to be broken with last iOS Build (Issue #1665) 2023-09-26 15:27:43 +02:00
Roberto Viola
a76cf602d6 Proform Rower (Proform Sport RL) cannot change resistance from app #1643 2023-09-26 11:12:02 +02:00
Roberto Viola
a3f6bb8d0c Proform CX Carbon: some resistance levels missing #1674 2023-09-26 10:55:33 +02:00
Roberto Viola
3f83e4a999 Walkingpad C2 #1672 2023-09-25 21:59:57 +02:00
Roberto Viola
14546d4ed3 Wahoo Blue SC without a heart rate monitor. #1651 2023-09-18 10:39:18 +02:00
Roberto Viola
1afff6a79d power zone max on the floating window 2023-09-18 08:26:40 +02:00
Roberto Viola
e95bf77c9d Yesoul C1H Resistance Value is jumping in iOS (Issue #1641) 2023-09-15 21:34:29 +02:00
Roberto Viola
76ebceccbc Add date tag to generic activities (Ride Row etc) #1648 2023-09-15 10:46:08 +02:00
Roberto Viola
f54b900c18 Holofit connection issue #1623 2023-09-15 06:44:57 +02:00
Roberto Viola
42e7749856 New Peloton Rower Paces (Issue #1611) 2023-09-14 20:54:20 +02:00
Roberto Viola
13fb8ae05a New Peloton Rower Paces (Issue #1611) 2023-09-14 10:47:27 +02:00
Roberto Viola
ee27386d11 HRM from Nordictrack ADB bikes (#1636) 2023-09-14 07:57:13 +02:00
Roberto Viola
5073ed766f Proform Rower (Proform Sport RL) cannot change resistance from app #1643 2023-09-13 13:57:58 +02:00
Roberto Viola
c571a98775 2.16.11 2023-09-12 15:59:21 +02:00
Roberto Viola
1e66fb10b9 QZ not working with Echelon Stride (Issue #1644) 2023-09-12 15:58:37 +02:00
Roberto Viola
c9bcfb201e Focus fitness fox 5 iplus (Issue #1642) 2023-09-12 14:26:00 +02:00
Roberto Viola
d701d01f13 2.16.10 2023-09-12 14:02:59 +02:00
Roberto Viola
f3ae244587 WearOS Companion App (#1635)
* receiving HR

* Update build.gradle

* Revert "Update build.gradle"

This reverts commit 6876191cbb.

* Revert "receiving HR"

This reverts commit a4f7acffa8.

* builds!

* wearable controller added

* is it required?

* Update build.gradle

* heart rate works!
2023-09-12 11:46:32 +02:00
Roberto Viola
755e98d49a HRM from Nordictrack ADB bikes (#1636) 2023-09-12 06:56:54 +02:00
Roberto Viola
006c365fee Yesoul C1H Resistance Value is jumping in iOS #1641 2023-09-11 17:17:44 +02:00
Roberto Viola
2d9110c251 HRM from Nordictrack ADB bikes (#1636)
* trying to get HRM

https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/59

* Update nordictrackifitadbbike.cpp
2023-09-11 14:30:25 +02:00
Roberto Viola
30e945f609 QZ PowerZone Real Time Chart Not working on QZ V2.16.8 for uBike FTMS [BUG] #1639 2023-09-11 08:21:37 +02:00
Roberto Viola
d3289fa5d1 2.16.8 2023-09-07 07:33:11 +02:00
Roberto Viola
1dd8846c2e Web Live Charts (#1637)
* starting

* Update dochartlivewatt.js

* Update dochartlivewatt.js

* Update dochartlivewatt.js

* adding to qml

* adding compatibility with windows

* Update Home.qml

* file names renamed

* working point!

* icon works too

* conditional qml is working on iOS

* responsive
2023-09-07 07:29:35 +02:00
Roberto Viola
9a3dc093a2 qtHttpServer Lib for Android CI (#1638)
* Update main.yml

* Update main.yml
2023-09-06 15:09:08 +02:00
Roberto Viola
5674c75f4f [WINDOWS] Incline and resistance not controlling s22i bike #1627 (#1629) 2023-09-02 03:08:38 +02:00
Roberto Viola
f97e11b1d2 [WINDOWS] Incline and resistance not controlling s22i bike #1627 (#1629) 2023-09-01 19:55:21 +02:00
Roberto Viola
68a5bf7f44 iOS17 cycling power,speed and cadence (#1515) 2023-09-01 13:33:19 +02:00
Roberto Viola
d644aa4523 saris M2 control resistance from qz #1634 2023-09-01 07:23:19 +02:00
Roberto Viola
d04a1a9f01 version 2.16.7 2023-09-01 06:28:09 +02:00
Roberto Viola
e907170ba2 Separate Gain & Offset tables for Bluetooth & ANT+ (Issue #1633) 2023-08-31 18:11:29 +02:00
Roberto Viola
8a55ac1088 fixing ios build 2023-08-31 14:42:18 +02:00
Roberto Viola
f83c7565cc version 2.16.6 2023-08-31 14:28:45 +02:00
Roberto Viola
7de500503e Separate Gain & Offset tables for Bluetooth & ANT+ (Issue #1633) 2023-08-31 14:27:11 +02:00
Roberto Viola
61b15254e1 qdebug from objective c is possible 2023-08-31 14:15:38 +02:00
Roberto Viola
2503835a59 saris m2 #1625 2023-08-30 16:28:39 +02:00
Roberto Viola
00ceee2ee0 Home trainee elite zumo no resistance #1626 2023-08-30 11:17:18 +02:00
Roberto Viola
c93cf781fb fixing build #1622 #1497 2023-08-30 09:19:31 +02:00
Roberto Viola
a17da417c2 some buggy TDF1 bikes send spurious wattage at the end with cadence = 0 2023-08-30 08:27:22 +02:00
Roberto Viola
306ce699d4 Custom made broadcoaster connected to Nordicktrack s15 bike not sending resistance to QZ [BUG] #1622 #1497 2023-08-30 08:10:41 +02:00
Roberto Viola
fbbd40a0f8 DKN Endurun Treadmill #492 2023-08-29 08:52:12 +02:00
Roberto Viola
5398b09643 Nordictrack Z1300i #1618 2023-08-23 12:22:22 +02:00
Roberto Viola
94046b18fe Nordictrack Z1300i #1618 2023-08-23 08:53:43 +02:00
Roberto Viola
4e9a03d931 Domyos Rower incorrect speed #1594 2023-08-22 09:11:29 +02:00
Roberto Viola
2392251992 Horizon Paragon X #637 2023-08-22 08:10:07 +02:00
Roberto Viola
973ff3a586 Horizon Paragon X #637 2023-08-21 10:04:08 +02:00
Roberto Viola
87e5a1905d version 2.16.2 2023-08-18 11:47:47 +02:00
Roberto Viola
f39ca765d8 Andorid App Connection Failing - NoblePro Elite E8i #1609 2023-08-18 11:37:58 +02:00
Roberto Viola
b33ce3233d Support for Flowfitness speedbike DSB600i (Iconsole+/FITHIWAY0038) #1610 2023-08-18 11:32:43 +02:00
Roberto Viola
4209f6f653 [BUG] - Andorid App Connection Failing - NoblePro Elite E8i #1609 2023-08-17 11:27:19 +02:00
Roberto Viola
7d36b4082b Runmaxx 9.1 Threadmill on Win 10 (Issue #1581) 2023-08-17 10:15:39 +02:00
Roberto Viola
a3015858f9 Runmaxx 9.1 Threadmill on Win 10 (Issue #1581) 2023-08-15 10:24:28 +02:00
Roberto Viola
12515752f6 Peloton Resistance green tolerance for echelon bikes #1608 2023-08-15 10:21:09 +02:00
Roberto Viola
9334c6b472 Heart rate drops to zero intermittently (Issue #1607) 2023-08-15 09:52:15 +02:00
Roberto Viola
884bea8352 BH Mycron T200 Treadmill #1606 2023-08-14 17:35:26 +02:00
Roberto Viola
8b4c579539 Renpho AI Bike new model #1605 2023-08-14 17:33:22 +02:00
Roberto Viola
c9f3a3a092 2.16 build 628 2023-08-12 10:43:12 +02:00
Roberto Viola
547bc8a5c9 HR on iPad issue #1529 2023-08-12 10:32:06 +02:00
Roberto Viola
9c600dbc00 fs5i nordick track more realistic ride when running with Rouvy or Zwift (Discussion #1345) 2023-08-12 09:16:13 +02:00
Roberto Viola
f29d9fd1e6 Update .gitignore 2023-08-11 09:13:41 +02:00
Roberto Viola
8d1e98e81f version 2.16.0 2023-08-11 09:10:32 +02:00
Roberto Viola
94ac9d1bdd Treadmill Peloton issue #1603 2023-08-11 09:08:50 +02:00
Roberto Viola
9e74918b65 Domyos Rower incorrect speed #1594 2023-08-08 15:22:09 +02:00
Roberto Viola
3be43c14e1 "Recovery" tag on PowerZone peloton workout #1596 2023-08-08 14:44:27 +02:00
Roberto Viola
e1b951e664 next row fixed for power zone 2023-08-07 17:34:59 +02:00
Roberto Viola
53126b16d3 Watts not matching on Sole E95 Elliptical (Issue #1595) 2023-08-07 17:33:14 +02:00
Roberto Viola
0fb8e12d31 Watts not matching on Sole E95 Elliptical (Issue #1595) 2023-08-07 15:16:59 +02:00
Roberto Viola
679300c930 version 2.15.4 2023-08-07 14:10:02 +02:00
Roberto Viola
4008d588d7 "Recovery" tag on PowerZone peloton workout #1596 2023-08-07 14:02:56 +02:00
Roberto Viola
fda528babc Domyos Rower incorrect speed #1594 2023-08-06 14:52:11 +02:00
Roberto Viola
0e9bac6168 Watts not matching on Sole E95 Elliptical #1595 2023-08-06 14:49:14 +02:00
Roberto Viola
f8c1330862 version 2.15.1 for iOS 2023-08-06 10:39:41 +02:00
Roberto Viola
8e81df67d0 HR on iPad issue #1529 2023-08-06 10:12:32 +02:00
Roberto Viola
1a3c13eac9 Domyos Rower incorrect speed #1594 2023-08-05 11:05:17 +02:00
Roberto Viola
15b16c7e5c Domyos Rower incorrect speed #1594 2023-08-05 10:00:35 +02:00
Roberto Viola
b5ceb0a0f1 Costaway folding treadmill #1350 2023-08-02 17:11:24 +02:00
Roberto Viola
00939c56dd Costaway folding treadmill #1350 2023-08-02 15:18:41 +02:00
Roberto Viola
5f1ebc439e ANT+ Running speed sensor #1586 (#1589)
* first version (not tested)

* Update ChannelService.java

* Update SDMChannelController.java

* Update SDMChannelController.java

* Update bluetooth.cpp
2023-08-01 23:15:44 +02:00
Roberto Viola
81db615692 Runmaxx 9.1 Threadmill on Win 10 (Issue #1581) 2023-08-01 13:53:02 +02:00
Roberto Viola
65d12f00f4 fixing crash on ios 12 or lower 2023-07-31 21:37:58 +02:00
Roberto Viola
adcb87b3c4 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-07-31 11:55:41 +02:00
Roberto Viola
90900b786a fs5i nordick track more realistic ride when running with Rouvy or Zwift #1345 2023-07-27 08:40:49 +02:00
Roberto Viola
b495e833bd Inxide XS08 #1583 2023-07-27 08:19:34 +02:00
Roberto Viola
fb01341dd1 Release Android for Fdroid (#1582)
* Update main.yml

* fixing build error

* Update main.yml
2023-07-25 22:43:50 +02:00
Roberto Viola
867143e43e android 2.14.1 2023-07-24 21:01:32 +02:00
Roberto Viola
b85d7d72f5 2023 Sole F80 integration #1576 2023-07-24 11:00:17 +02:00
Roberto Viola
32cb3b9e37 2023 Sole F80 integration #1576 2023-07-24 10:19:24 +02:00
Roberto Viola
3ff8938b41 datetime tile now follow the locale of the user's system 2023-07-24 09:26:31 +02:00
Roberto Viola
5156cb38f0 adding virtual peloton bike to nordictrackadbbike 2023-07-24 06:26:19 +02:00
Roberto Viola
dd4a5dbc54 fixing hr on ios on ftmsbike 2023-07-24 06:25:58 +02:00
Roberto Viola
cf37b8705e fixing hr on ios on ftmsbike 2023-07-21 20:28:16 +02:00
Roberto Viola
bc8302c761 adding virtual peloton bike to nordictrackadbbike 2023-07-21 09:06:38 +02:00
Roberto Viola
76ecf5c66e adding virtual peloton bike to nordictrackadbbike 2023-07-21 09:03:31 +02:00
Roberto Viola
3693c2d1b2 v 2.14.0 2023-07-20 23:25:46 +02:00
Roberto Viola
3905bd8ba7 fixed peloton xml path 2023-07-20 23:12:21 +02:00
Roberto Viola
92cac7485e HR on iPad issue #1529 2023-07-20 16:34:15 +02:00
Roberto Viola
458c44758e Android QT Jars patched (#1575)
* Add files via upload

* adding only bluetooth one
2023-07-20 11:45:30 +02:00
Roberto Viola
be12859343 No charts when using floating window #1565 2023-07-19 09:53:21 +02:00
Roberto Viola
d201919b55 HR on iPad issue #1529 2023-07-19 09:38:07 +02:00
Roberto Viola
138a42c2e6 fixing CI build 2023-07-18 16:29:08 +02:00
Roberto Viola
bbe69f3f60 fixing build error 2023-07-18 16:02:50 +02:00
Roberto Viola
b95b3a5018 adding gears to wahookickrsnapbike as did for tacxneo
b443b03d49
2023-07-18 15:54:48 +02:00
Roberto Viola
fb0cbb74a5 adding smtp server info on the bottom of the email 2023-07-18 14:28:54 +02:00
Roberto Viola
deed6019ab adding restore purchase button for iOS guidelines 2023-07-18 14:28:33 +02:00
Roberto Viola
7636f768f1 pro form tour de france no reading #1560 (#1566)
* init and update wrote. need to check the force resistance and inclination and read metrics

* finalizing
2023-07-17 15:54:27 +02:00
Roberto Viola
cdf8a95e30 PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-14 07:39:12 +02:00
Roberto Viola
13389afe77 PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-14 07:36:16 +02:00
Roberto Viola
8acfb6b764 PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-14 07:35:13 +02:00
Roberto Viola
4244ce79a0 Ability to play a video in sync with ZWO training file #1562 2023-07-13 20:48:35 +02:00
Roberto Viola
907e96330f version 2.13.97 2023-07-13 19:25:51 +02:00
Roberto Viola
35136be5b9 Ability to play a video in sync with ZWO training file #1562 2023-07-13 19:00:40 +02:00
Roberto Viola
6cd33f2ff9 Ability to play a video in sync with ZWO training file #1562 2023-07-13 17:21:40 +02:00
Roberto Viola
7e52925242 zwift settings visible only on PC 2023-07-13 16:31:57 +02:00
Roberto Viola
98971bf036 Domyos Treadmill Randomly Send Speed = 0 #1567 2023-07-13 16:28:33 +02:00
Roberto Viola
51e97321ac PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-13 14:22:02 +02:00
Roberto Viola
d959c0bea2 version 2.13.96 2023-07-13 13:26:56 +02:00
Roberto Viola
875f283984 Ability to play a video in sync with ZWO training file #1562 (#1563)
* to be tested

* it's working!
2023-07-12 23:13:48 +02:00
Roberto Viola
b4f378a8e9 PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-11 17:03:56 +02:00
Roberto Viola
22e50a7600 PaddleOCR for Zwift Workout OCR on Windows #1511 2023-07-11 13:52:02 +02:00
Roberto Viola
30f3b47a8c fs5i nordick track more realistic ride when running with Rouvy or Zwift #1345 gewahr started this conversation in General fs5i nordick track more realistic ride when running with Rouvy or Zwift #1345 2023-07-11 13:45:33 +02:00
Roberto Viola
103f1675e6 fixing CI android due to USB library (#1547)
* Update build.gradle

* Update main.yml

* Update build.gradle

* Revert "Update main.yml"

This reverts commit 5b232904b1.

* Revert "Update build.gradle"

This reverts commit e961bac22d.
2023-07-11 13:20:37 +02:00
Roberto Viola
db7bc008e4 Training programs UI improvement #1537 2023-07-11 10:52:08 +02:00
Roberto Viola
e634348d75 Life Fitness Elliptical #1554 2023-07-10 08:21:41 +02:00
Roberto Viola
8956957e4d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-07-10 08:06:30 +02:00
Roberto Viola
f79b0074a8 version 2.13.95 2023-07-06 11:19:27 +02:00
Roberto Viola
34abdab013 Sync workout data from android to apple (issue #1551) (#1552)
* first test, doesn't work on android yet

* first test on android

* hr from apple watch to android!
2023-07-06 11:17:11 +02:00
Roberto Viola
b741378a0e qzlogo added as watermark to watt badge 2023-07-06 11:15:51 +02:00
Roberto Viola
5404a68689 version 2.13.94 2023-07-05 20:49:31 +02:00
Roberto Viola
73bc5691e8 Fixed Speed over ANT+: tested on garmin edge 530 #1550 2023-07-05 20:48:10 +02:00
Roberto Viola
de42318370 Fixed Speed over ANT+: tested on garmin edge 530 #1550 2023-07-05 20:31:14 +02:00
Roberto Viola
61acaf033a peloton resistance instead of resistance in the watt badge 2023-07-05 19:34:19 +02:00
Roberto Viola
cd2592b14e fixing miles on badge 2023-07-05 19:29:55 +02:00
Roberto Viola
b0ef38885b ANT+ not working (Issue #1548) 2023-07-05 11:55:08 +02:00
Roberto Viola
34a3e1067d version 2.13.92 2023-07-04 20:28:02 +02:00
Roberto Viola
b084afea11 fixing crash on echelon rower 2023-07-04 19:31:50 +02:00
Roberto Viola
46eb6b3776 ANT+ not working (Issue #1548) 2023-07-04 19:12:54 +02:00
Roberto Viola
23d646848e Watt badge by Email (#1545)
* I have to verifiy if the image works

* Update qml.qrc
2023-07-04 19:04:59 +02:00
Roberto Viola
e78d4565bc Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-07-04 16:15:53 +02:00
Roberto Viola
9540bff975 PaddleOCR for Zwift Workout OCR on Windows (#1511)
* Update qzsettings.h

* Create zwift-workout.py

* ready to test!

* Update main.yml

* Update windows_zwift_workout_paddleocr_thread.cpp

* disabling Npu

* Update zwift-workout.py

* Update zwift-incline.py

* preventing conficts in the settings
2023-07-04 15:38:33 +02:00
Roberto Viola
4d5db2e3b3 workoutNameBasedOnBluetoothDevice function added 2023-07-04 09:48:46 +02:00
Roberto Viola
20027b914e 2.13.91 2023-07-04 08:08:50 +02:00
Andrea Gelmini
5764efd487 Fix typos (#1542)
* Fix typos

* Fix typo

* Fix typo

* Fix typo

* Update strydrunpowersensor.cpp

---------

Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2023-07-04 07:59:11 +02:00
Roberto Viola
c427c72726 Amazon App Store 64 bit compatibility #1328 (#1544)
* trying renaming libs

https://stackoverflow.com/questions/49402451/gradle-task-to-rename-file

* Update main.yml

* Update build.gradle

* Update build.gradle

* Update build.gradle

* Update build.gradle

* fixing for merge it

* fixing!

* Update build.gradle
2023-07-04 07:58:02 +02:00
Roberto Viola
41be14bb8a target cadence added to the overridable metrics for peloton 2023-07-03 19:07:23 +02:00
Roberto Viola
2fcd6eb310 FTMS treadmill: pause handled 2023-07-03 14:51:29 +02:00
Roberto Viola
656d404582 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-07-01 22:02:26 +02:00
Roberto Viola
548bdeb5e4 Adding Pace to Virtual Rower #1540 2023-07-01 22:02:08 +02:00
Roberto Viola
eaa5fca1fe Create "Peloton-Like" Summary Page in addition to Charts (Issue #517) 2023-06-30 23:01:46 +02:00
Roberto Viola
c9778f918d Adding Pace to Virtual Rower #1540 2023-06-30 22:29:52 +02:00
Roberto Viola
de17acdfcf fixing chartjs image on iOS 2023-06-30 21:58:13 +02:00
Roberto Viola
3f16b7d146 version 2.13.87 2023-06-29 13:52:39 +02:00
Roberto Viola
881e6db650 Android Billing v5 requirements from 11/1/2023 #1512 2023-06-29 13:51:39 +02:00
Roberto Viola
d27bccaea5 Training programs UI improvement #1537 2023-06-29 09:02:09 +02:00
Roberto Viola
afde8ad8d5 Adding Pace to Virtual Rower #1540 2023-06-28 23:18:31 +02:00
Roberto Viola
d8d0613f6d Create "Peloton-Like" Summary Page in addition to Charts #517 (#1533)
* drafting

* creating summary

* i need to work to the image

* ready to test

* Update qml.qrc

* fixing

* preparing for release
2023-06-28 21:59:29 +02:00
Roberto Viola
e255267116 fixed speed over 12.7 on the ziprotreadmill 2023-06-28 21:30:06 +02:00
Roberto Viola
e7e79b1816 zip windows release to improve CI performance (#1539)
* zip windows release to improve CI performance

* Update main.yml
2023-06-28 14:19:12 +02:00
Roberto Viola
df09bd2a9c Windows CI with and without python (#1513)
* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml
2023-06-28 13:50:51 +02:00
Roberto Viola
7ae17516f1 Create CODE_OF_CONDUCT.md 2023-06-28 13:24:18 +02:00
Roberto Viola
4f53e28cc4 using QT cache for CI (#1538)
* Update main.yml

* Update main.yml
2023-06-28 12:21:26 +02:00
Roberto Viola
08c9869c84 VirtuFit Etappe 2.0i Spinbike ERG Table #1526 2023-06-27 22:43:08 +02:00
Roberto Viola
86bd39b370 BH NLS12 ELLIPTICAL #1393 2023-06-27 11:18:55 +02:00
Roberto Viola
1e68328c0f Training programs UI improvement #1537 2023-06-27 10:13:57 +02:00
Roberto Viola
81d8950bb6 VirtuFit Etappe 2.0i Spinbike ERG Table #1526 2023-06-27 08:56:24 +02:00
Andrea Gelmini
df109a620e Fix typos (#1536) 2023-06-26 11:28:24 +02:00
Roberto Viola
fdc3e4166a Nordic Track S22i 10x expected Watt [BUG] (Issue #1534) 2023-06-22 23:26:10 +02:00
Roberto Viola
144472c57f VirtuFit Etappe 2.0i Spinbike ERG Table #1526 2023-06-22 23:14:49 +02:00
Roberto Viola
d23b36f267 BH NLS12 ELLIPTICAL #1393 2023-06-22 10:08:00 +02:00
Roberto Viola
47ed429773 Wahoo Kickr Headwind #1281 2023-06-22 09:52:10 +02:00
Roberto Viola
f8a09dc301 iOS Crash when bluetooth thread is busy #1530 2023-06-22 09:50:24 +02:00
Roberto Viola
c1b6b0e175 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-22 09:46:30 +02:00
Roberto Viola
d2e007fb43 Auto-Resistance Adjustment for NordicTrack VR25 #1532 2023-06-22 08:25:10 +02:00
Roberto Viola
589dd85678 Auto-Resistance Adjustment for NordicTrack VR25 #1532 2023-06-21 16:09:24 +02:00
Roberto Viola
4f4c6cebf1 added the first draft of a ESP32 app 2023-06-21 11:21:45 +02:00
Roberto Viola
1688a571af android version 2.13.83 2023-06-20 09:32:58 +02:00
Roberto Viola
018f96d243 Pro-form SB - Model # PFEVEX72917S #1507 (#1514)
* init and write done, i don't see any resistance writing in the hci snoof

* Update proformbike.cpp
2023-06-20 09:31:21 +02:00
Roberto Viola
428d7fee83 A setting to allow QZ to read data as KM rather than Miles on Echelon Stride Treadmill (Issue #1528) 2023-06-19 22:16:32 +02:00
Roberto Viola
ffb09bf78d Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-19 22:06:42 +02:00
Roberto Viola
3a94929584 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-19 17:16:31 +02:00
Roberto Viola
fea04b29a4 v. 2.13.80 2023-06-16 10:15:44 +02:00
Roberto Viola
f7145710af VirtuFit Etappe 2.0i Spinbike ERG Table #1526 2023-06-16 09:31:13 +02:00
Roberto Viola
e3ef341e60 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-16 09:02:31 +02:00
Roberto Viola
b097e0898e Volume keys not working on android even if the volume gears setting is disabled #1524 (#1525)
* Update main.qml

* fixed!
2023-06-16 07:13:28 +02:00
Roberto Viola
8237c3c862 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-06-15 21:58:39 +02:00
Roberto Viola
6d6bad02db Peloton workout doesnt start on fake device #1522 2023-06-15 21:58:09 +02:00
Roberto Viola
9dd25f0d69 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-15 08:07:00 +02:00
Roberto Viola
c84e16aed9 build 590 2023-06-14 21:00:46 +02:00
Roberto Viola
f10e68f47b Peloton workout doesnt start on fake device #1522 2023-06-14 15:40:18 +02:00
Roberto Viola
07111d5a9e Support for Ultrasport F-Bike 400B #690 2023-06-14 14:06:31 +02:00
Roberto Viola
77a4d4224a NordicTrack X11i - watt value takes on huge value when incline level set to "-6%" #52
https://github.com/cagnulein/QZCompanionNordictrackTreadmill/issues/52
2023-06-14 11:54:55 +02:00
Roberto Viola
bda145a29e Kickr Snap #585 2023-06-14 11:17:41 +02:00
Roberto Viola
54799c3519 Revert "Peloton Rowing with Concept 2 #1481"
This reverts commit 90469409b7.
2023-06-13 21:48:05 +02:00
Roberto Viola
1580471db8 Update csaferower.cpp 2023-06-12 13:19:52 +02:00
Roberto Viola
0b918f1b44 Rowing Concept2 Pm3, Pm4 (Bluetooth) (Issue #1486) 2023-06-12 13:08:30 +02:00
Roberto Viola
a13719b0a0 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-06-12 11:43:15 +02:00
Roberto Viola
90469409b7 Peloton Rowing with Concept 2 #1481 2023-06-12 11:43:02 +02:00
Roberto Viola
e3474fa844 Update CSafeRowerUSBHID.java 2023-06-11 16:30:26 +02:00
Roberto Viola
2da438778a Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-11 15:54:10 +02:00
Roberto Viola
2cf61c2ccf fitplusbike with and without response 2023-06-11 12:10:57 +02:00
Roberto Viola
6b8b1c2f68 fixing android build error 2023-06-10 20:41:31 +02:00
Roberto Viola
85b0bd5f74 Domyos EL500 elliptical Cadence settings (Issue #1519) 2023-06-10 20:31:42 +02:00
Roberto Viola
bf53671dc7 Rowing Concept2 Pm3, Pm4 (Bluetooth) (Issue #1486) 2023-06-10 20:27:08 +02:00
Roberto Viola
86f4bdddd7 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-09 10:27:38 +02:00
Roberto Viola
1096b08fdd Use Peloton workout name in fit file #1502 2023-06-09 09:37:11 +02:00
Roberto Viola
5d1b115645 Usbhid #1486 (#1510)
* Revert "fixing android build"

This reverts commit c44f576876.

* Revert "Rowing concept2 pm3, pm4 (bluetooth) #1486 (#1505)"

This reverts commit 71647a8406.

* usb hid first commit

* fixing android build

* Update CSafeRowerUSBHID.java
2023-06-08 11:11:01 +02:00
Roberto Viola
094c5a838d Use Peloton workout name in fit file #1502 2023-06-08 10:15:01 +02:00
Roberto Viola
2488cc8758 PaddleOCR for Zwift OCR on Windows (#1438)
* 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

* Update main.yml

* very raw implementation of the python script

https://github.com/victorypoint/iFit-Wolf3/blob/main/process-image.py

* Update windows_zwift_incline_paddleocr_thread.h

* fixing path

* use signal

* fixing lag on debug prints

* fixing chinese file url

* Update zwift-incline.py

* Update zwift-incline.py

* Update main.yml

* Update zwift-incline.py
2023-06-08 10:03:47 +02:00
Roberto Viola
8084b9f06b Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-07 21:42:14 +02:00
Roberto Viola
8b48707dfb Powerzone line and zones not showing #1509 2023-06-07 21:31:00 +02:00
Roberto Viola
0ad679e2f8 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-07 21:20:05 +02:00
Roberto Viola
33a1202f5f BH NLS12 ELLIPTICAL #1393 2023-06-06 16:20:29 +02:00
Roberto Viola
776aee4902 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-06-06 14:19:51 +02:00
Roberto Viola
c44f576876 fixing android build 2023-06-06 14:19:47 +02:00
Roberto Viola
a723dce8fc fixed simulator don't show up on xcode 2023-06-06 10:53:56 +02:00
Roberto Viola
7329389ffc 2.13.72 2023-06-06 09:17:02 +02:00
Roberto Viola
71647a8406 Rowing concept2 pm3, pm4 (bluetooth) #1486 (#1505)
* builds!

* Update Usbserial.java
2023-06-06 09:15:57 +02:00
Roberto Viola
669a99e6cd Peloton Rowing with Concept 2 #1481 2023-06-05 22:29:23 +02:00
Roberto Viola
49b0883e26 STOP , PAUSE , START buttons do not function on FTMS treadmill (Issue #1503) 2023-06-05 22:13:53 +02:00
Roberto Viola
ec13911855 Auto Sync Not Working On Google TV with IPAD ios #1441
https://github.com/cagnulein/qdomyos-zwift/issues/1441#issuecomment-1575613785
2023-06-05 09:01:47 +02:00
Roberto Viola
5b7422cff0 Use Peloton workout name in fit file #1502 2023-06-05 08:26:30 +02:00
Roberto Viola
ee7b1ca1d5 STOP , PAUSE , START buttons do not function on FTMS treadmill #1503 2023-06-05 08:17:32 +02:00
Roberto Viola
b588037651 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486
reverting and start a separate branch
2023-06-04 17:03:54 +02:00
Roberto Viola
5a19c314ba Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-04 16:56:41 +02:00
Roberto Viola
4e06af6200 Use Peloton workout name in fit file #1502 2023-06-04 16:47:12 +02:00
Roberto Viola
b6ffdb7145 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-06-04 16:35:32 +02:00
Roberto Viola
02c7c2ff2a Peloton Rowing with Concept 2 (Issue #1481) 2023-06-04 10:14:51 +02:00
Roberto Viola
6369194167 Peloton Rowing with Concept 2 #1481 2023-06-04 08:36:15 +02:00
Roberto Viola
fd8984f2ca 2.13.67 2023-06-03 16:16:46 +02:00
Roberto Viola
328b2cadc1 Peloton Rowing with Concept 2 #1481 2023-06-03 16:16:03 +02:00
Roberto Viola
8a9b5a3cc9 Peloton Rowing with Concept 2 (Issue #1481)
https://github.com/cagnulein/qdomyos-zwift/issues/1481#issuecomment-1574706758
2023-06-03 08:40:15 +02:00
Roberto Viola
46792b3c4f build 574 2023-06-03 07:20:37 +02:00
Roberto Viola
5662f90e31 2.13.66 2023-06-03 07:18:22 +02:00
Roberto Viola
81c94738b0 Use Peloton workout name in fit file #1502 2023-06-03 07:15:52 +02:00
Roberto Viola
b3874957ca Pro-form Sport RL rower Bluetooth Name I_RW Pace and Speed are incorrect #1498 2023-06-03 06:56:44 +02:00
Roberto Viola
7f16b04824 Peloton Rowing with Concept 2 (Issue #1481)
https://github.com/cagnulein/qdomyos-zwift/issues/1481#issuecomment-1574648781
2023-06-03 06:44:43 +02:00
Roberto Viola
a3af5be2ce Peloton Rowing with Concept 2 (Issue #1481)
https://github.com/cagnulein/qdomyos-zwift/issues/1481#issuecomment-1574354738
2023-06-03 06:00:05 +02:00
Roberto Viola
033ab6bd16 Echelon Row Sport Pace & Odometer Data Wrong #1500 2023-06-03 05:50:10 +02:00
Roberto Viola
38df1caf10 build 573 2023-06-02 17:58:51 +02:00
Roberto Viola
ef909a35df negative HR (Issue #1501) 2023-06-02 17:48:48 +02:00
Roberto Viola
65777dea2d Echelon Row Sport Pace & Odometer Data Wrong #1500 2023-06-02 17:46:11 +02:00
Roberto Viola
f2554ad454 Echelon Row Sport Pace & Odometer Data Wrong (Issue #1500) 2023-06-02 16:00:10 +02:00
Roberto Viola
56c04335ae Add FTMS device rower setting #1497 2023-06-02 12:13:42 +02:00
Roberto Viola
c5cf31b228 Peloton Rowing with Concept 2 (Issue #1481) 2023-06-02 07:26:14 +02:00
Roberto Viola
1b04588b4e Peloton Rowing with Concept 2 (Issue #1481) 2023-06-02 07:19:17 +02:00
Roberto Viola
c99c008b64 Peloton Rowing with Concept 2 (Issue #1481) 2023-06-02 07:16:33 +02:00
Roberto Viola
af2db915b4 Vision 600E Treadmill FTMS #1499 2023-06-02 07:06:10 +02:00
Roberto Viola
1c2a220ae4 SmartRow rower on iOS #1485 2023-06-02 07:01:37 +02:00
David Mason
77cb8439c0 Override keyword 1472 (#1475)
* #1472 make a lack of override keyword a compile error

* #1472 added override keyword as recommended by QtCreator

* #1472 deleting void Virtual* in prep for merge from master

* fix typo in the merge

---------

Co-authored-by: Roberto Viola <cagnulein@gmail.com>
2023-06-01 16:46:14 +02:00
Roberto Viola
5f14e7aa22 SmartRow rower on iOS #1485 2023-06-01 16:32:16 +02:00
Roberto Viola
e0ab1edbb6 Peloton Rowing with Concept 2 (Issue #1481) 2023-06-01 15:23:46 +02:00
Roberto Viola
ff09896cf4 Octane Fitness Q37xi Support #1023 2023-06-01 15:02:47 +02:00
Roberto Viola
a9a118d03a 2.13.64 2023-06-01 09:07:02 +02:00
Roberto Viola
f3d6f13be9 Rower AVG pace #1158 2023-06-01 09:04:44 +02:00
Roberto Viola
f23ec88dfb Peloton Rowing with Concept 2 (Issue #1481)
colors!
2023-06-01 08:52:28 +02:00
Roberto Viola
9027eb961f Peloton Rowing with Concept 2 (Issue #1481) 2023-06-01 08:34:10 +02:00
Roberto Viola
6b637e1d92 Peloton Rowing with Concept 2 #1481 2023-05-31 17:55:20 +02:00
Roberto Viola
e96eceb271 Peloton Rowing with Concept 2 #1481 2023-05-31 09:56:00 +02:00
Roberto Viola
a77074a874 Rowing Concept2 Pm3, Pm4 (Bluetooth) #1486 2023-05-31 09:46:44 +02:00
Roberto Viola
1927ad9577 CSafe Rower (#1491)
* very basic csafe implementation

* trying to fix build

* fixing build

* Update csaferower.cpp

* Update csafe.h

* Update csafe.h

* Update csafe.cpp

* Revert "Update csafe.h"

This reverts commit 3af958da71.

* builds

* ready to merge!
2023-05-30 19:14:07 +02:00
Roberto Viola
f79fd80838 Peloton Rowing with Concept 2 #1481
target pace tile added
2023-05-30 11:46:07 +02:00
Roberto Viola
cfe05c76f4 BH NLS12 ELLIPTICAL #1393 2023-05-30 09:10:05 +02:00
Roberto Viola
4c8da03f19 Peloton Rowing with Concept 2 #1481 2023-05-30 08:45:13 +02:00
Roberto Viola
7abf133a61 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-05-29 08:29:09 +02:00
Roberto Viola
383ecc6381 version 2.13.59 2023-05-29 08:27:09 +02:00
Roberto Viola
dfd68c4445 Peloton Rower Pace (#1490)
* Update peloton.cpp

* added setting for the level and parsed

* handle target speed on trainprogram.cpp

* changespeed signal handled on the training program
2023-05-29 08:24:20 +02:00
Roberto Viola
cd689cb6fc Linux WebSockects in CI (#1489)
* Update main.yml

* Update main.yml
2023-05-28 19:21:49 +02:00
Roberto Viola
43094f41e2 Update ftmsrowertestdata.h 2023-05-28 06:40:51 +02:00
Roberto Viola
ad6d683b09 Concept 2 Rower #335 2023-05-28 06:08:58 +02:00
Roberto Viola
db5d177925 Concept 2 Rower #335 2023-05-27 21:12:16 +02:00
Roberto Viola
bfe6838acc replacing / with - in the xml training program file name 2023-05-27 18:45:25 +02:00
Roberto Viola
4a061acbfb peloton training program xml in the training folder with also the air date 2023-05-27 18:21:46 +02:00
Roberto Viola
5326089804 pm5 rower fix 2023-05-27 18:06:10 +02:00
Roberto Viola
42c6e35219 SmartRow rower on iOS #1485 2023-05-27 11:12:43 +02:00
Roberto Viola
a9f86f78b4 BH NLS12 ELLIPTICAL #1393 2023-05-27 08:27:19 +02:00
Roberto Viola
3ce7828c8f version 2.13.58 2023-05-27 08:00:05 +02:00
Roberto Viola
cb821f65b8 smartrow fix 2023-05-26 21:27:13 +02:00
Roberto Viola
cbc09609a0 adding request cadence to the rower charts 2023-05-26 08:00:58 +02:00
Roberto Viola
0f8ad887dd adding a separator for the auto saved training program 2023-05-25 16:44:57 +02:00
Roberto Viola
5d7f688321 version 2.13.57 2023-05-25 08:44:54 +02:00
Roberto Viola
b904af9335 Peloton Rowing with Concept 2 (Issue #1481) 2023-05-25 08:36:36 +02:00
Roberto Viola
030689217c save and send peloton xml training program by email 2023-05-25 08:36:11 +02:00
Roberto Viola
8f02feb172 bkoolbike added to ios 2023-05-25 08:13:16 +02:00
Roberto Viola
27ee8d99d8 Kickr Snap #585 2023-05-24 22:13:55 +02:00
Roberto Viola
4fcb13b11b fixing build error 2023-05-24 22:08:56 +02:00
Roberto Viola
13d488025f Bkool trainer #1483 2023-05-24 21:57:11 +02:00
Roberto Viola
c379985c68 Bkool trainer #1483 2023-05-24 10:08:34 +02:00
Roberto Viola
50e4ff371f Back to Back workouts without Restarting app cause NEGATIVE Calories #1480 2023-05-24 08:53:01 +02:00
Roberto Viola
01749bad6e Nautilus U618 [BUG] #1477 2023-05-24 08:24:47 +02:00
Roberto Viola
7ba1986929 BH Spada 2 bike (i.concept module) #486 2023-05-23 11:04:21 +02:00
David Mason
0a52f15406 Virtual device encapsulation #994 (#995)
* #887 converted a group of many fields of different subclasses of bluetoothdevice to use a single bluetoothdevice instance.
- This changes the behaviour. Previously multiple devices could be found and references stored, and the first in the order of ifs in device() used. Now the last one found is used and the others found are overwritten. This needs to be addressed.
- Still not making use of virtual destructors.

* #887 added virtualdevice abstract class and used it throughout

* #887 added the ability to hide the virtual device and still manage its deletion from the bluetoothdevice destructor, and used for the various cases where only 1 of multiple possible virtual devices are exposed via VirtualDevice().

* #887 fixes from merge

* #887 removed superfluous command

* #887 restored code deleted in merge

* typo fixed!

* Video again, just to show and see #838

* Video again, just to show and see #838

* Video again, just to show and see #838

* Video again, just to show and see (Issue #838)

* qz immediately crashes (Issue #929)

* faketreadmill HR fixed

* #927 route starting and stopping of bluetooth discovery through new functions startDiscovery() and stopDiscovery()

* #927 log a qDebug when stopDiscovery is called when the discovery agent is null

* #887 fixed merge conflict

* #997 fix merge conflict

* #997 fix merge conflict

* #887 fix merge problem

* #994 restored bluetooth class from master, and removed the deletion of the virtual devices

* #994 restored keepawakehelper.h includes for Android builds, but inside #ifdefs to avoid the little yellow "correction" flag (i.e. to remove it) from QtCreator.

* #994 restored unnecessarily adjusted white space

* #994 adjustments based on self review in the PR

* #994 adjusted header includes - put keepawakehelper in Android-only builds, and lockscreen.h in iOS only builds

* #994 removed some #includes repeated from the header

* #994 updated new device class to use inherited virtual device functionality

* #994 log deletion to qDebug

* #994 log deletion to qDebug

* #994 align qmdnsengine with master

* #994 fixed typo

* #994 fixed build errors

* #994 fix merge error

* #994 introduce VIRTUAL_DEVICE_MODE enum to say something about why the virtual device is exposed or not

* #994 updated some devices to use inherited virtual device management

* #994 reduction of diff with master

* #994 fixed typo in doc

* #994 reduction of diff with master

* #994 fix check for virtual device

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 reduction of diff with master

* #994 align submodule with master

* fixing build error

Signed-off-by: Roberto Viola <Cagnulein@gmail.com>

* #994 removed override keyword not required for this PR

* #994 removed deprecated comment

* fixing build on iOS

* from bluetoothdevice::VirtualDevice() always returning a virtualDevice pointer

Signed-off-by: Roberto Viola <Cagnulein@gmail.com>

* #994 updated some @brief comments to account for bluetoothdevice::VirtualDevice() now returning the virtual device regardless of virtual device mode.

* reverting merge error in proformrower.cpp

Signed-off-by: Roberto Viola <Cagnulein@gmail.com>

---------

Signed-off-by: Roberto Viola <Cagnulein@gmail.com>
Co-authored-by: Roberto Viola <Cagnulein@gmail.com>
2023-05-22 17:40:21 +02:00
Roberto Viola
abd2e76f4f WalkingPad X21 new version #1473 2023-05-22 14:06:23 +02:00
Roberto Viola
035d150c6d Update horizontreadmill.cpp 2023-05-21 13:26:21 +02:00
Roberto Viola
a29619feca fixing CI auth (#1474)
* Update main.yml

* Create http_parser.h

* Add files via upload

* Update main.yml
2023-05-21 11:27:22 +02:00
Roberto Viola
964be4b5d1 KETTLER TM support #1465 2023-05-21 07:18:37 +02:00
Roberto Viola
d01be6384d KETTLER TM support #1465 2023-05-20 19:00:35 +02:00
Roberto Viola
0845406940 Open WalkingPad X21 new version #1473 2023-05-20 15:54:06 +02:00
Roberto Viola
fd30c61124 KETTLER TM support #1465 2023-05-20 15:20:30 +02:00
Roberto Viola
a49b9b07ef new KinfSmith R2 treadmill ( KS-NACH-X21C ) 2023-05-20 15:10:36 +02:00
Roberto Viola
af91761a23 KETTLER TM support (#1470) 2023-05-20 12:07:16 +02:00
Roberto Viola
32af96b05b Zero ZT-2500 treadmill #1471 2023-05-20 07:29:29 +02:00
Roberto Viola
658006a12a Assault Air Runner Treadmill #1446 2023-05-19 19:36:26 +02:00
Roberto Viola
4451680cea fixing test cases for Sole treadmills 2023-05-19 12:07:50 +02:00
Roberto Viola
beaab12894 fixing floating issue with the null values 2023-05-18 17:25:26 +02:00
Roberto Viola
cc74ef6fe4 fixing overflow on kettler treadmill #1465 2023-05-18 16:06:37 +02:00
Roberto Viola
958487b0e5 Sole F85 help #1468 2023-05-18 15:33:10 +02:00
Roberto Viola
68d191d581 Open Floating on a Browser button added 2023-05-18 14:37:32 +02:00
Roberto Viola
aca68b2a10 KETTLER TM support (#1470)
* preparing the modification

* Update horizontreadmill.cpp
2023-05-18 14:06:16 +02:00
Roberto Viola
c3f013a69a add/allow minimum resistance for classic peloton workouts #1469 2023-05-17 10:00:52 +02:00
Roberto Viola
c2dc509c97 KETTLER TM support #1465 2023-05-17 09:47:08 +02:00
Roberto Viola
520726f989 Support for Ultrasport F-Bike 400B #690 2023-05-16 22:03:04 +02:00
Roberto Viola
04c7837e35 Kickr Snap #585 2023-05-16 16:07:58 +02:00
Roberto Viola
e1b097837b Proform 8 speed and inclination force #1454 2023-05-15 09:03:20 +02:00
Roberto Viola
b443b03d49 Tacx Flow requests #1460 2023-05-14 09:15:00 +02:00
Roberto Viola
c8cf9367db Auto Sync Not Working On Google TV with IPAD ios #1441 2023-05-13 14:52:21 +02:00
Roberto Viola
1a7c0be896 Reduce Incline not working on Horizon 7.0AT (01) #1458 2023-05-12 15:10:12 +02:00
Roberto Viola
bb219fdf9a fix build 2023-05-12 06:27:32 +02:00
Roberto Viola
d446186082 Reduce Incline not working on Horizon 7.0AT (01) #1458 2023-05-12 06:26:03 +02:00
Roberto Viola
1bc00b4f9d background and shadow color customization
Top bar custom color modification
#1420
2023-05-10 13:47:02 +02:00
Roberto Viola
28db6a7f70 Option for voice announcement of treadmill speed changes #1453 2023-05-09 10:06:50 +02:00
Roberto Viola
a1ad083422 Horizon Paragon X #637 2023-05-09 09:25:25 +02:00
Roberto Viola
0132a3f38d BH NLS12 ELLIPTICAL #1393 2023-05-08 14:36:09 +02:00
Roberto Viola
1a6a06ead4 version 2.13.41 2023-05-07 20:11:15 +02:00
Roberto Viola
f34f373687 BH Spada 2 bike (i.concept module) #486 2023-05-05 11:05:37 +02:00
Roberto Viola
95327f6c1a Update domyoselliptical.cpp (#1444) 2023-05-03 21:38:54 +02:00
Roberto Viola
93e60262d6 Assault Air Runner Treadmill #1446 2023-05-02 17:17:32 +02:00
Roberto Viola
992ae1c88c arranging metrics in floating window - Android qz #1131 2023-05-02 16:59:13 +02:00
Roberto Viola
5754e800d2 Xiaomi Walkingpad R2 Pro #1447 2023-04-30 20:07:30 +02:00
Roberto Viola
ee9491d5f6 Assault Air Runner Treadmill #1446 2023-04-30 19:56:52 +02:00
Roberto Viola
789c911966 Yesoul S3 FTMS #1445 2023-04-30 19:16:30 +02:00
Roberto Viola
d95c6f86c7 arranging metrics in floating window - Android qz (Issue #1131) 2023-04-28 13:44:23 +02:00
Roberto Viola
4d7da98c7a Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-04-28 13:10:20 +02:00
Roberto Viola
193518c1c1 2.13.38 543 2023-04-28 13:10:17 +02:00
Roberto Viola
32aafc3d00 Connect with strava button (#1439)
* peloton bike communicate with QZ AI Companion

* image added

* Update main.qml
2023-04-28 09:52:43 +02:00
Roberto Viola
1ffd44ae91 peloton bike communicate with QZ AI Companion 2023-04-28 09:00:34 +02:00
Roberto Viola
d3c8441717 BH Spada 2 bike (i.concept module) #486 2023-04-27 16:53:37 +02:00
Roberto Viola
ca8638abe0 UI theme (#1435)
* UI theme first commit

* status bar default color is not working yet

* all the new 3 settings are working!

---------

Co-authored-by: Roberto Viola <roberto.viola@systemceramics.com>
2023-04-27 12:20:51 +02:00
Roberto Viola
514ac12484 Horizon Paragon X #637 2023-04-27 09:27:10 +02:00
Roberto Viola
db5c4cc73e Disabling auto resistance does not work #1430 2023-04-26 14:29:29 +02:00
Roberto Viola
58f2934bb8 BH NLS12 Elliptical (#1408) 2023-04-26 14:25:48 +02:00
Roberto Viola
6c677a3a2b 2.13.37 build 542 2023-04-26 11:54:58 +02:00
Roberto Viola
2b4d04acc0 BH NLS12 Elliptical (#1408) #486 2023-04-26 11:54:08 +02:00
Roberto Viola
3841918383 Revert "BH Spada 2 bike (i.concept module) #486"
This reverts commit 95cb85fd88.
2023-04-26 11:51:13 +02:00
Roberto Viola
d843d09829 Nexgim QB-C01 smart bike #1433 2023-04-24 17:57:56 +02:00
Roberto Viola
c1bceca06f Disabling auto resistance does not work #1430 2023-04-24 15:23:39 +02:00
Roberto Viola
ec7782b86f Ypoo elliptical trainer U3 cross trainer #1412 (PR #1417) 2023-04-24 15:19:44 +02:00
Roberto Viola
ae6505bdb4 android version 2.13.35 2023-04-21 20:51:38 +02:00
Roberto Viola
3690120207 Sportplus SP-HT-1200 B IE #1429 2023-04-21 20:18:33 +02:00
Roberto Viola
dfe8c59a91 Update ftmsbiketestdata.h 2023-04-21 14:15:38 +02:00
Roberto Viola
e25abb0317 Update ftmsbiketestdata.h 2023-04-21 12:34:16 +02:00
Roberto Viola
4dd02ad1b6 Update ftmsbiketestdata.h 2023-04-21 12:04:46 +02:00
Roberto Viola
ef715f002b ios build 539 2023-04-21 11:32:17 +02:00
Roberto Viola
f02c2d4293 Diamondback 1260Sc Bike #1428 2023-04-21 11:29:07 +02:00
Roberto Viola
9a4baffe81 Stroke Rate with WaterRower COM Module doesn't decrease when I stop rowing. #1424 2023-04-21 10:18:16 +02:00
Roberto Viola
dd7e1b3861 android version 2.13.34 2023-04-20 15:21:50 +02:00
Roberto Viola
7cffb2c51e Ypoo elliptical trainer U3 cross trainer #1412 (#1417)
* init and write resistance done

* cross trainer data used, need to check with these frames

Value: 9e0000000040021800000000100014006e00

Value: 002f00000000000b000000000000000f00

* i guess I finished

* Update devices.h

* Update ypooellipticaltestdata.h
2023-04-20 14:47:01 +02:00
Roberto Viola
d6e5accc84 fixed popup on floating window 2023-04-19 16:46:20 +02:00
Roberto Viola
900a7f2d94 Conversion gain setting and conversion offset setting do not work with Tacx Neo 2 and Peloton. #1418 2023-04-19 10:47:56 +02:00
Roberto Viola
dd6e0068ee Qthttpserver for windows #1308 (#1309) 2023-04-18 21:13:07 +02:00
Roberto Viola
fd9c3f414b closing the popup on the floating if the user press the popup on the main screen 2023-04-18 17:35:10 +02:00
Roberto Viola
dd692b5b04 Peloton workout doesn't follow #1419 2023-04-18 08:54:34 +02:00
Roberto Viola
1f83bc94f2 closing the popup on the floating if the user press the popup on the main screen 2023-04-18 07:15:53 +02:00
Roberto Viola
c7386511ea bodytone zro-t4 treadmill #1416 2023-04-17 17:37:36 +02:00
Bepo7012
446c6ee027 Inclination improvement for Videos (#1415)
* Test Videos with higher fps Rates

* Set the speed limit higher, no longer a Problem

* iOS project updated

* Inclination Filter and Pause Video implemented

* Update qmdnsengine

* Revert "Update qmdnsengine"

This reverts commit 779bc6e4d0.

* Changes requested

* Fixed power selection for fakebike

* fakebike reverted, fixed bug in trainprogram speed limit

* Revert "Update qmdnsengine"

This reverts commit 779bc6e4d0.

* Video rec. factor included in max. Replay Rate

---------

Co-authored-by: Roberto Viola <cagnulein@gmail.com>
2023-04-17 17:15:17 +02:00
Roberto Viola
e85a6bc090 bodytone zro-t4 treadmill #1416 2023-04-17 17:10:25 +02:00
Roberto Viola
2a84b6075e bodytone zro-t4 treadmill #1416 2023-04-17 16:01:45 +02:00
Roberto Viola
1ff6295aae Inclination improvement for Videos (PR #1415) 2023-04-16 16:01:58 +02:00
Roberto Viola
70913cd7af label for the garmin companion in the settings 2023-04-14 08:33:20 +02:00
Roberto Viola
3576eff46e build 536 2023-04-13 19:49:17 +02:00
Roberto Viola
49984654ea peloton floating url available always even if the train program is not ready 2023-04-13 19:41:55 +02:00
Roberto Viola
c7f17cd749 BH NLS12 Elliptical (#1408)
* init done

* first phase

* test cases added

* fixing linker error

* Update iconceptellipticaltestdata.h

* test updated
2023-04-13 11:51:27 +02:00
Roberto Viola
20af8dcfed Wahoo Kickr Headwind #1281 2023-04-13 08:55:19 +02:00
Roberto Viola
1f113b0164 ios build CI (#1394) 2023-04-12 22:36:42 +02:00
Roberto Viola
11d0a33374 Kickr Snap #585 2023-04-12 11:31:07 +02:00
Roberto Viola
e371d13f0f trying to fix cadence (#1406) 2023-04-11 11:39:27 +02:00
Roberto Viola
f5d201aed1 floating window on ios works to qz ai companion app 2023-04-10 18:16:51 +02:00
Roberto Viola
d561dfa318 adding new case for the peloton ocr and toast messages 2023-04-10 11:35:27 +02:00
Roberto Viola
ef095dc9f1 ZWO Running distance file #1403 2023-04-09 08:46:17 +02:00
Roberto Viola
0db053b60a garmin running cadence fixed 2023-04-07 15:19:11 +02:00
Roberto Viola
2eeba4f9a6 adding cadenceFromAppleWatch to echelonstride 2023-04-07 13:42:58 +02:00
Roberto Viola
f4ccbfb33f QZ Peloton Auto Sync through an external device (#1400)
* it works, most of

* floating url added

* settings added!

* Update qmdnsengine

* preparing for release

* keeping the same logic between android ocr and companion ocr
2023-04-07 13:32:10 +02:00
Roberto Viola
32b9c2810f Update treadmill.cpp 2023-04-06 21:55:26 +02:00
Roberto Viola
7abc3834aa fixing android build 2023-04-06 21:53:56 +02:00
Roberto Viola
51cf710b08 foot cadence from Garmin Companion 2023-04-06 21:42:52 +02:00
Roberto Viola
34ae065c2c compatibilty with Garmin Companion 1.1.0 2023-04-06 11:24:51 +02:00
Roberto Viola
cbf0b178d6 Zwift OCR for Auto incline on freerun (PR #1369) 2023-04-06 10:01:57 +02:00
Roberto Viola
229b6a8e30 ios build fixed 2023-04-05 13:23:51 +02:00
Roberto Viola
02cc189d72 version 2.13.26 2023-04-05 08:44:42 +02:00
Roberto Viola
af9d1d97a8 Nautilus B616 connects but shows 0 for all stats #1383 2023-04-05 08:43:29 +02:00
Roberto Viola
20b3263a5b Garmin ConnectIQ Companion App (#1330)
* library added to the iOS project

* iOS build on CI

* adding app_delegate

* fixing typo

* Update main.yml

* Update main.yml

* fixing build error

* app on ios builds!

* handleURL works!

* connect to device but doesn't receive msgs

* android sdk works!

* HR receveid!

* getHR added to android

* should be everything for android

* fixing ios build

* fixing new xcode errors

* hr read from ios too!

* ios startup cleaned

* full chain on ios works!

* removing ant heart and apple watch hr from device files

* update_hr_from_external added

* fixing hr for 2 devices

* garmin hr fixed on android

* removing the ios CI

* Update fakebike.cpp

* Update lockscreen.h

* Update proformwifibike.cpp
2023-04-05 08:20:06 +02:00
Roberto Viola
f712b7bb92 Provide Increment/Decrement preferences for Speed/Incline #618 2023-04-03 19:04:28 +02:00
Roberto Viola
38b69c20e1 proformwifibike: turned on inclinationAvailableByHardware 2023-04-03 14:36:25 +02:00
Roberto Viola
5f99c1dd22 Heart Rate Monitor (Wahoo tick) going On and Off intermittently, only when in Domyos Elliptical bike setup. #1392 2023-04-03 09:49:08 +02:00
David Mason
a715849756 #1221 added test that bluetooth class performs action to activate template managers after detecting a device (#1223)
* #1221 decoupled template managers from class bluetooth and added tests

* #1221 renamed function

* #1221 updated comments

* #1221 adjusted for enhanced messages of #1287

* #1221 fixed merge error

* #1221 fix build error post-merge

* fix ios build

---------

Co-authored-by: Roberto Viola <cagnulein@gmail.com>
2023-04-03 09:33:35 +02:00
Roberto Viola
16b62d8752 Allow the resitance knob on echelon bikes to be used to switch gears (Issue #1299) 2023-04-03 09:28:58 +02:00
Roberto Viola
b68c166b01 disabled auto start of the tap for activiotreadmill.cpp 2023-04-02 18:39:50 +02:00
Roberto Viola
c6aaaa6944 android version 2.13.25 2023-04-02 05:19:30 +02:00
Roberto Viola
625e8c91eb Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-04-01 17:53:02 +02:00
Roberto Viola
4d81a51442 adding external power sensor on proformwifibikes 2023-04-01 17:52:55 +02:00
Roberto Viola
bbe3b4e369 ios android fixed 2023-04-01 12:20:55 +02:00
Roberto Viola
e94e030a00 adding toast from C++ 2023-04-01 09:30:23 +02:00
Roberto Viola
c9f8076a5e Nautilus B616 connects but shows 0 for all stats #1383 2023-04-01 08:53:37 +02:00
Roberto Viola
dbc1e43c2b iOS build fixed 2023-04-01 08:43:04 +02:00
Roberto Viola
b4ea2cd1c5 Zwift OCR for Auto incline on freerun #1369 2023-03-31 16:20:31 +02:00
Roberto Viola
e2d0c9284a Back character missing from title bar #1163 2023-03-31 14:16:01 +02:00
Roberto Viola
66bedca4a4 double back to close android app, ask before closing #1386 2023-03-31 12:20:35 +02:00
Roberto Viola
5a10627594 Confirmation on OK on the settings page #417 2023-03-31 11:52:55 +02:00
Roberto Viola
7465f71c74 Toast manager added
thanks to https://gist.github.com/jonmcclung/bae669101d17b103e94790341301c129
2023-03-31 10:50:54 +02:00
Roberto Viola
8c58f03d82 version 2.13.23 2023-03-31 10:09:02 +02:00
Roberto Viola
e199ea3fc6 Settings / auto restart #1114 2023-03-31 10:06:57 +02:00
Roberto Viola
bbd37dc36c Zwift OCR for Auto incline on freerun #1369 2023-03-30 17:30:15 +02:00
Roberto Viola
48646ec3bb Bowflex T128 #1385 2023-03-30 10:45:24 +02:00
Roberto Viola
dca0b1b917 iOS version 2.13.22 2023-03-30 07:08:57 +02:00
Roberto Viola
db78365ffd Nautilus B616 connects but shows 0 for all stats #1383 2023-03-30 06:54:01 +02:00
Roberto Viola
1325b1cd29 Add support for hometrainer Skandika X-2000 #1364 2023-03-29 16:32:37 +02:00
Roberto Viola
43780a076f Zwift OCR for Auto incline on freerun #1369 2023-03-29 08:55:54 +02:00
Roberto Viola
a374ebcf6e Schwinn 170 not connecting in QZ #1365 2023-03-29 08:45:53 +02:00
Roberto Viola
7ab1eac7fe Schwinn 170 not connecting in QZ #1365 2023-03-28 15:33:00 +02:00
Roberto Viola
d378ab23ea Schwinn 170 not connecting in QZ #1365 2023-03-28 14:29:09 +02:00
Roberto Viola
4c3566a156 added an option to simulate incline with an increment of speed
for all the treadmills
2023-03-27 16:45:18 +02:00
Roberto Viola
51fb564640 added an option to simulate incline with an increment of speed 2023-03-27 15:11:34 +02:00
Roberto Viola
ef40f29597 Floating Window: start button and disabling auto resistance #1134 2023-03-27 14:57:08 +02:00
Roberto Viola
34db47f611 qz crashes with Rouvy #1282 2023-03-27 12:16:45 +02:00
Roberto Viola
100d0b3f58 Add support for hometrainer Skandika X-2000 #1364 2023-03-27 11:32:35 +02:00
Takiora
2a4b58634b Fixing Resistance nordictrackelliptical.cpp (#1375) 2023-03-24 14:46:14 +01:00
Roberto Viola
95cb85fd88 BH Spada 2 bike (i.concept module) #486 2023-03-24 14:36:16 +01:00
Roberto Viola
ff1abb2b9f Zwift OCR for Auto incline on freerun (#1369) 2023-03-23 19:44:02 +01:00
Roberto Viola
aa22225e5e Zwift OCR for Auto incline on freerun (#1369) 2023-03-23 17:04:45 +01:00
Roberto Viola
b6b5d8ecba GEM module inclination added 2023-03-23 15:48:14 +01:00
Roberto Viola
e9be1d8fb2 BH Spada 2 bike (i.concept module) #486 2023-03-22 14:17:07 +01:00
Roberto Viola
5bfa0b3312 Auto-resistance not working properly with tacx neo 2 and peleton app (Issue #1370) 2023-03-22 12:56:14 +01:00
Roberto Viola
7fd491e005 android version 2.13.17 2023-03-22 12:11:26 +01:00
Roberto Viola
0717799d15 Floating Window: start button and disabling auto resistance #1134 2023-03-22 11:08:25 +01:00
Roberto Viola
2c34d9001b added some note on the zwift ocr setting 2023-03-22 11:03:11 +01:00
Roberto Viola
61498cb6ef Zwift OCR for Auto incline on freerun (#1369)
* testing and output

* getting ready to get the inclination

* Update trainprogram.cpp

* Update trainprogram.cpp

* Update ScreenCaptureService.java

* it's working!

* fixing resolution!
2023-03-22 10:25:56 +01:00
Roberto Viola
95ec82b641 Save FIT file when the app is closing (#1346)
* Update homeform.cpp

* -fit-file-saved-on-quit added

* debug log added

* Update qzsettings.cpp

* Update main.cpp
2023-03-21 16:56:12 +01:00
Roberto Viola
c6a34c59d3 BH Spada 2 bike (i.concept module) #486 2023-03-21 08:21:31 +01:00
Roberto Viola
c9d243ab18 QZ won't connect to Norditrack C1750 #1373 2023-03-20 17:28:06 +01:00
Roberto Viola
172440872a n Support for Sole Fitness F85 >2019 treadmill #1243 2023-03-20 16:15:28 +01:00
Roberto Viola
7ccbc07808 fixing android build 2023-03-20 11:18:58 +01:00
Roberto Viola
e02fb8e1c5 Stride in metric when other measures are imperial #1372 2023-03-20 11:17:10 +01:00
Roberto Viola
17b54a1963 Auto-resistance not working properly with tacx neo 2 and peleton app #1370 2023-03-20 10:50:52 +01:00
Roberto Viola
5e7b208c92 BH Spada 2 bike (i.concept module) #486 2023-03-20 10:26:05 +01:00
Roberto Viola
78a652a512 NPE RUNN Inclination Override Not Working #1352 2023-03-19 16:34:49 +01:00
Roberto Viola
9a49ef1e7f BH Spada 2 bike (i.concept module) #486 2023-03-19 16:22:24 +01:00
Roberto Viola
39f92a429a QZCompanion and Wahoo Direct Connect no-gui #1332 2023-03-19 07:46:32 +01:00
Roberto Viola
a70c79f144 WaterRower S4 ComModule #1366 2023-03-17 08:38:20 +01:00
Roberto Viola
278e209670 version 2.13.13 2023-03-16 16:43:48 +01:00
Roberto Viola
9fefde58ac Add support for hometrainer Skandika X-2000 #1364 2023-03-16 16:24:11 +01:00
Roberto Viola
7f26e63cd6 Add support for hometrainer Skandika X-2000 #1364 2023-03-16 15:39:01 +01:00
Roberto Viola
54beb7cc4e fix build error 2023-03-16 08:53:06 +01:00
Roberto Viola
35d7e54871 Open Resistance dropping or going higher when using QZ + Zwift/Rouvy[BUG] #1356 #1299 2023-03-16 08:23:14 +01:00
Roberto Viola
5eb9de8c9b NPE RUNN Inclination Override Not Working #1352 2023-03-16 08:07:35 +01:00
Roberto Viola
0f703cd836 Costaway folding treadmill #1350 (#1355)
* Costaway folding treadmill #1350

first implementation, not finished yet

* Update eslinkertreadmill.cpp
2023-03-15 08:55:00 +01:00
Roberto Viola
9157e39ebd fixing treadmillInclinationOverride 2023-03-14 21:16:16 +01:00
Roberto Viola
e9c76bde99 version 2.13.12 2023-03-14 20:37:42 +01:00
Roberto Viola
1398cb26fb fixing treadmillInclinationOverride 2023-03-14 20:34:55 +01:00
Roberto Viola
35a986fdd0 fixing virtual bike device for strydrunpowersensor 2023-03-14 20:22:03 +01:00
Roberto Viola
3f8aa376a6 version 2.13.11 2023-03-14 10:42:55 +01:00
Roberto Viola
21a3ae6816 Paragon X #1359 2023-03-14 10:42:10 +01:00
Roberto Viola
3da7ac198a Proform Pro22 add #1341 2023-03-14 05:47:27 +01:00
Roberto Viola
36aed6c326 setting tips fonts increased 2023-03-13 08:30:14 +01:00
Roberto Viola
2a02eec288 NPE RUNN Inclination Override Not Working #1352 2023-03-13 08:09:28 +01:00
Roberto Viola
0ca1a8caad Support for ZIPRO Notus (Issue #1344) 2023-03-11 08:00:39 +01:00
Roberto Viola
13ea251697 adding virtual bike to stryd (rouvy abandoned treadmill thing so users want to play with rouvy bike format) 2023-03-11 07:55:13 +01:00
Roberto Viola
9c0757986f WalkingPad #1348 2023-03-10 13:41:33 +01:00
Roberto Viola
81028fc111 iOS version 2.13.7 514 2023-03-10 09:47:51 +01:00
Roberto Viola
1999bbaee0 Support for ZIPRO Notus (Issue #1344) 2023-03-10 09:19:56 +01:00
Roberto Viola
12ad01ddde power calculation for footpods 2023-03-10 09:09:58 +01:00
Roberto Viola
8b79b85f8c Support for ZIPRO Notus (Issue #1344) 2023-03-09 16:09:52 +01:00
Roberto Viola
3e900c1a55 Broadcast cadence & speed to Garmin watch #1316
send power and cadence to garmin device also on android (not tested)
2023-03-09 10:17:43 +01:00
Roberto Viola
5f22107085 Open Support for ZIPRO Notus #1344 2023-03-09 10:04:57 +01:00
Roberto Viola
6354d20bc4 Open Support for ZIPRO Notus #1344
HR added!
2023-03-09 09:54:10 +01:00
Roberto Viola
d1aeb30abb PID not showing right number according to training program (Issue #1234) 2023-03-09 09:48:54 +01:00
Roberto Viola
e2592896c6 Broadcast cadence & speed to Garmin watch #1316 2023-03-09 08:54:19 +01:00
Roberto Viola
d4305fa93a align swift virtual bike from Garmin power sensor over bluetooth #1347 2023-03-09 06:41:32 +01:00
Roberto Viola
cc0051f7c3 it works! 2023-03-09 06:31:54 +01:00
Roberto Viola
56962545d8 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-03-08 14:31:08 +01:00
Roberto Viola
7b128d2a8a iOS 2.13.6 2023-03-08 14:30:51 +01:00
Roberto Viola
a228f55a9a Please add total output & time to next as a metric available in the floater window #1321 2023-03-08 14:15:25 +01:00
Roberto Viola
9ec12d5733 Support for ZIPRO Notus #1344 2023-03-08 10:22:23 +01:00
Roberto Viola
f460a9770a Support for ZIPRO Notus #1344 2023-03-08 09:44:35 +01:00
Roberto Viola
49bbbddbe2 PID not showing right number according to training program #1234 2023-03-08 08:29:45 +01:00
Roberto Viola
f1b7daf34b Some tiles data missing from floating window #1247 2023-03-07 10:15:31 +01:00
Roberto Viola
e78434fbb3 Add Google Maps Display when "travelling" imported GPX Files #455
https://github.com/cagnulein/qdomyos-zwift/issues/455#issuecomment-1456871560
2023-03-07 10:04:18 +01:00
Roberto Viola
397dcc7db8 fix typo 2023-03-07 09:24:08 +01:00
Roberto Viola
c2b0ebb882 Solution to get Octane Zero Runner ZR8 Elliptical working with Zwift #1338 2023-03-07 09:01:16 +01:00
Roberto Viola
68a8169e0b 2.13.4 on iOS 2023-03-06 16:45:48 +01:00
Roberto Viola
5611be511f 2.13.5 2023-03-06 12:26:40 +01:00
Roberto Viola
427b63b113 Some tiles data missing from floating window #1247 2023-03-06 12:12:58 +01:00
Roberto Viola
716a256cf4 Some tiles data missing from floating window #12 2023-03-06 12:02:39 +01:00
Roberto Viola
8d123cec1a Horizon Paragon X #637 2023-03-06 11:51:04 +01:00
Roberto Viola
582c260dd9 typo 2023-03-06 10:20:20 +01:00
Roberto Viola
7994c884ea Gear adjustment option within floating window #1336 2023-03-06 10:06:27 +01:00
Roberto Viola
58dbee1e15 Solution to get Octane Zero Runner ZR8 Elliptical working with Zwift #1338 2023-03-06 10:05:03 +01:00
Roberto Viola
5c2483b264 Solution to get Octane Zero Runner ZR8 Elliptical working with Zwift #1338 2023-03-06 09:50:21 +01:00
Roberto Viola
15d94329c2 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-03-06 09:21:01 +01:00
Roberto Viola
77de4703d3 Wahoo Kickr Headwind #1281 2023-03-06 09:20:30 +01:00
Takiora
2318531980 Nordictrack_C7.5 (#1337)
* inclination+cadence+resistance+heart+speed ok

* Update nordictrackelliptical.cpp
2023-03-04 16:01:56 +01:00
Roberto Viola
993727d251 Solution to get Octane Zero Runner ZR8 Elliptical working with Zwift #1338 2023-03-04 15:54:11 +01:00
Roberto Viola
128ad2a84b Ability to turn magnet on/off from floater window (Issue #1322) 2023-03-03 08:24:08 +01:00
Roberto Viola
9e8a8a18f2 QZ FIT file start timestamp inconsistent with Zwift (Issue #1311) (#1312) 2023-03-03 07:00:36 +00:00
Roberto Viola
19e05219f5 MatrixTF50 Treadmill #1331 2023-03-02 17:43:48 +01:00
Roberto Viola
58376bff43 Ability to turn magnet on/off from floater window #1322
https://github.com/cagnulein/qdomyos-zwift/issues/1322#issuecomment-1449125738
2023-03-02 13:53:07 +01:00
Roberto Viola
d4518fe018 version 507 for iOS 2023-03-01 16:05:56 +01:00
Roberto Viola
d6258a5774 Low Speed based on calculation on wattage #1325 2023-03-01 12:14:47 +01:00
Roberto Viola
063ab524e6 Allow the resitance knob on echelon bikes to be used to switch gears #1299 2023-03-01 10:36:08 +01:00
Roberto Viola
fbf8fed94d Ability to turn magnet on/off from floater window #1322 2023-03-01 10:14:40 +01:00
Roberto Viola
bbf0ef11d4 iOS Crash when stop pressed #1323 2023-03-01 09:11:20 +01:00
Roberto Viola
1439f5d15a added a protection for the homeform singleton in the templateinfosenderbuilder 2023-02-28 16:47:47 +01:00
Roberto Viola
79aad21d26 fixed homeform singleton 2023-02-28 16:29:31 +01:00
Roberto Viola
062cac38f6 Ability to turn magnet on/off from floater window #1322 2023-02-28 15:57:35 +01:00
Roberto Viola
36046c00ad Please add total output & time to next as a metric available in the floater window #1321 2023-02-28 15:22:33 +01:00
Roberto Viola
8e84d2bf95 Please add total output & time to next as a metric available in the floater window #1321 2023-02-28 14:27:46 +01:00
Roberto Viola
66aaeb5c8b floating: removed target number if 0 2023-02-28 11:56:41 +01:00
Roberto Viola
52c25f5fc7 Update apexbiketestdata.h 2023-02-28 10:12:33 +01:00
Roberto Viola
ec457a18c2 Apex Rides bikes #1230 2023-02-28 09:45:34 +01:00
Roberto Viola
eb00d52512 Apex Rides bikes #1230 2023-02-28 09:27:09 +01:00
Roberto Viola
55ad2dbe3e QZ FIT file start timestamp inconsistent with Zwift #1311 2023-02-28 08:28:21 +01:00
Roberto Viola
2ea9ad2992 Occasional wildly inaccurate distance measurement #1290 2023-02-28 08:07:08 +01:00
Roberto Viola
211024f67f Samsung S22/S23 crash on startup #1320 2023-02-27 17:38:58 +01:00
Roberto Viola
3b7fa4f8a8 Target/Actual Zones on floater #1310 2023-02-27 10:41:36 +01:00
Roberto Viola
e3c0fc933a PID not showing right number according to training program #1234 2023-02-27 09:55:53 +01:00
Roberto Viola
e4d2d7899b PID not showing right number according to training program #1234 2023-02-27 09:41:43 +01:00
Roberto Viola
70e87ac6a3 Elliptical NordicTrack C 7.5 #1277 2023-02-27 09:34:04 +01:00
Roberto Viola
9d6b53586a target inclination added in the floating 2023-02-27 08:14:03 +01:00
Roberto Viola
b35c41a319 target speed added to the floating 2023-02-27 08:02:25 +01:00
Roberto Viola
010d0b0dcc floating.htm clang formatted 2023-02-27 07:55:32 +01:00
Roberto Viola
a31c926a1a fixed cadence in the floating window for device different from bike 2023-02-27 07:49:34 +01:00
Roberto Viola
94c03ba9b4 Allow the resitance knob on echelon bikes to be used to switch gears #1299 2023-02-26 22:43:55 +01:00
Roberto Viola
bce965c6d6 Domyos EL 520 auto resistance #1252 2023-02-26 08:50:24 +01:00
Roberto Viola
74e5e04f0c Issue with Peloton ride 1/21/23 (Issue #1315) 2023-02-25 19:45:14 +01:00
Roberto Viola
159611da89 YPOO treadmill #1306 2023-02-25 03:14:15 +01:00
Roberto Viola
8cb9d24261 Indicate n/a for speeds too low for Pace calculation (Issue #1293) 2023-02-25 02:54:14 +01:00
Roberto Viola
74cc93b91e Elliptical NordicTrack C 7.5 (Issue #1277) 2023-02-24 14:54:41 +01:00
Roberto Viola
85d622a1e3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-24 14:44:25 +01:00
Roberto Viola
9967550a41 Beta 2.12(498) - Incline Step : Per Facebook #1303 2023-02-24 13:37:03 +01:00
Roberto Viola
bf41d8f1d7 Update treadmill.cpp 2023-02-24 07:39:26 +01:00
Roberto Viola
f4999e3233 YPOO treadmill #1306 2023-02-23 16:28:05 +01:00
Roberto Viola
2b01877a7c Beta 2.12(498) - Incline Step : Per Facebook #1303 2023-02-23 16:12:01 +01:00
Roberto Viola
d985b9a477 Elliptical NordicTrack C 7.5 #1277 2023-02-23 15:55:19 +01:00
Roberto Viola
960aa7a17b Display step cadence on main app #1242 2023-02-23 12:04:23 +01:00
Roberto Viola
42e7c3481e Allow the resitance knob on echelon bikes to be used to switch gears #1299 2023-02-23 09:27:31 +01:00
Roberto Viola
7404128eba Elliptical NordicTrack C 7.5 #1277 2023-02-23 08:25:38 +01:00
Roberto Viola
f81f5354f6 2.12.72 2023-02-22 16:41:29 +01:00
Roberto Viola
b3e588cff5 Beta 2.12(498) - Incline Step : Per Facebook (Issue #1303) 2023-02-22 16:27:18 +01:00
Roberto Viola
a39597765c 2.12.71 2023-02-22 14:59:52 +01:00
Roberto Viola
28f4bb04da Beta 2.12(498) - Incline Step : Per Facebook #1303 2023-02-22 14:20:22 +01:00
Roberto Viola
80ab7a3877 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-22 14:12:58 +01:00
Roberto Viola
5fcd1233c1 Cadence not showing #1302 2023-02-22 14:12:55 +01:00
Roberto Viola
b894906f48 Strava Auth Webview (#1296)
* test needed

* linker error

* removing static for linker error

* signals fixed

* Update Home.qml

* Update main.qml

* fixing anchors

* using a separate qml

* Update WebStravaAuth.qml

* Update WebStravaAuth.qml

* added setting to fallback to previous

* removed unused import
2023-02-22 14:04:19 +01:00
Roberto Viola
f998d7123f Preset tiles colour setting doesn't work, crashes [BUG] #1301 2023-02-22 13:46:35 +01:00
Roberto Viola
35c4ecc781 Elliptical NordicTrack C 7.5 #1277 2023-02-22 11:28:50 +01:00
Roberto Viola
c98e0db8b0 Technogym myrun cadence but no stride length #1260 2023-02-22 11:01:01 +01:00
Roberto Viola
0eead667a3 Indicate n/a for speeds too low for Pace calculation #1293 2023-02-22 10:57:14 +01:00
Roberto Viola
759dcf37c7 dynamic text recognition for amazon app store 2023-02-22 06:39:40 +01:00
Roberto Viola
4f79679601 Noble Pro Elite e8i treadmill #1298 2023-02-21 21:34:28 +01:00
Roberto Viola
a834e6ea14 adding the mlkit text recogniton library for amazon app store 2023-02-21 20:22:19 +01:00
Roberto Viola
325963327e version 2.12.70 2023-02-21 15:22:39 +01:00
Roberto Viola
ef96f05127 Domyos EL 520 auto resistance #1252 2023-02-21 15:07:36 +01:00
Roberto Viola
d836883fc3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-21 11:05:52 +01:00
Roberto Viola
4abb1be184 Elliptical NordicTrack C 7.5 #1277 2023-02-21 11:05:42 +01:00
Roberto Viola
8af0ca3350 Google Test on CI (#1148)
* Update main.yml

* Update main.yml

* Update main.yml

* fixing bluetooth scan thanks to tests!

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml
2023-02-21 11:03:18 +01:00
David Mason
c16e113290 #1294 additional compiler option in Windows to avoid "File too big" error (#1295) 2023-02-21 06:40:34 +01:00
Roberto Viola
6e92bcece2 Kickr connection not showing watts (Issue #1229) 2023-02-21 06:37:43 +01:00
Roberto Viola
f71a393c2b noblepro connect to fitshow treadmill 2023-02-20 22:32:11 +01:00
Roberto Viola
015bf842b0 Domyos 500b self powered rower (Issue #1238) 2023-02-20 22:08:17 +01:00
Roberto Viola
cde122089e Nordictrack Incline Trainer x7i #1284 2023-02-20 14:23:21 +01:00
Roberto Viola
709ead19a3 Sole S77 Support #1283 2023-02-20 13:28:07 +01:00
David Mason
8b4fe10f87 #1287 unit test fixes (#1288)
* #1287 unit test fixes

* #1287 made test name values more user friendly, after all, they aren't actually the test name identifier anymore.
2023-02-20 08:45:39 +01:00
Roberto Viola
74d69f5d8f Kickr connection not showing watts #1229 2023-02-20 08:35:38 +01:00
Roberto Viola
d7a8caa24c Sunny Health Fitness Smart Multifunction Magnetic Rowing Machine SF-RW5941SMART #1289 2023-02-20 08:22:22 +01:00
Roberto Viola
803291ba43 TREADMILL NORDIC TRACK 2950 #1278 2023-02-20 08:16:23 +01:00
Roberto Viola
38f53fd1bf Sole S77 Support (Issue #1283) 2023-02-20 07:56:52 +01:00
Roberto Viola
3d310bfd14 fixing double issue for the color of the resistance 2023-02-19 14:24:26 +01:00
Roberto Viola
5cdad64d9c cadence missing in the floating window for treadmill and elliptical 2023-02-19 08:34:07 +01:00
Roberto Viola
d3c2d15fc3 Sole S77 Support (Issue #1283) 2023-02-19 08:32:10 +01:00
Roberto Viola
794cda41cc license on apk 2023-02-18 18:00:51 +01:00
Roberto Viola
330359c446 Kickr connection not showing watts (Issue #1229) 2023-02-18 06:55:10 +01:00
Roberto Viola
c75906f766 disable_hr_frommachinery setting for fitshow treadmill 2023-02-18 06:42:06 +01:00
Roberto Viola
a2d9994608 version 2.12.67 2023-02-17 15:13:58 +01:00
Roberto Viola
0a01f62f79 Missing event_type start in Fit Export #1279 2023-02-17 15:09:13 +01:00
Roberto Viola
8888639bef DYNAMAX treadmill added 2023-02-17 15:04:20 +01:00
Roberto Viola
5a114a7f8f Renpho. Auto resistance with only whole numbers #1245 2023-02-17 11:23:14 +01:00
Roberto Viola
53717078b9 Missing event_type start in Fit Export #1279 2023-02-17 10:57:05 +01:00
Roberto Viola
d2c94da6bf Kickr connection not showing watts #1229 2023-02-17 08:14:10 +01:00
Roberto Viola
320a40c65c NPE Runn Incline Data #1276 2023-02-17 07:31:31 +01:00
Roberto Viola
9efb573f83 version 2.12.65 2023-02-16 19:00:21 +01:00
Roberto Viola
072024cee1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-16 18:56:07 +01:00
Roberto Viola
bf692fbcc0 Nordictrack Incline Trainer added (not tested yet) 2023-02-16 11:29:20 +01:00
Roberto Viola
2909a61a94 added disabling auto resistance handling to ftmsbike 2023-02-16 07:56:22 +01:00
Roberto Viola
c06dc9c332 NPE Runn Incline Data #1276 2023-02-16 07:52:29 +01:00
Roberto Viola
85ee8fae3c 2.12.64 2023-02-15 13:35:03 +01:00
Roberto Viola
0f3f5d7db3 Update wahookickrsnapbike.cpp 2023-02-15 10:00:29 +01:00
Roberto Viola
5d34e2e6eb Missing event_type start in Fit Export #1279 2023-02-15 09:58:15 +01:00
Roberto Viola
679fec7e69 Lap Issue #1102 2023-02-14 15:40:04 +01:00
Roberto Viola
1cd68457a9 Elliptical NordicTrack C 7.5 #1277 2023-02-14 09:48:27 +01:00
Roberto Viola
065494ae43 Fixed treadmill incline #1273 2023-02-14 08:58:05 +01:00
Roberto Viola
c59ee00d3e NPE Runn Incline Data #1276 2023-02-14 08:46:51 +01:00
Roberto Viola
d504812655 Domyos EL 520 auto resistance #1252 2023-02-14 08:30:08 +01:00
Roberto Viola
06110e808d Strava Activity Walking when average speed is under 6.5 km/h #1275 2023-02-13 15:13:11 +01:00
Roberto Viola
c27e7353b7 Train Program: HR Min and Max #1271 2023-02-13 11:43:30 +01:00
Roberto Viola
38ca4cbf33 Rhythm 24 HRM cadence and heart rate sensor 2023-02-13 10:34:34 +01:00
Roberto Viola
f86604d7b2 Auto Resistance from Zwift-QZ is not working on Proform Hybrid #1172 2023-02-13 10:11:07 +01:00
Roberto Viola
7309df034e Kickr connection not showing watts #1229 2023-02-13 09:56:06 +01:00
Roberto Viola
16180689ac Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-13 08:55:39 +01:00
Roberto Viola
880a8708f0 Domyos Elliptical EL 520 Power Calibration #1267 2023-02-13 08:55:31 +01:00
Roberto Viola
fbc68c5487 version 2.12.62 2023-02-11 09:11:07 +01:00
Roberto Viola
1540fd4fe3 Domyos EL500 Gears [BUG] (Issue #1263) 2023-02-11 09:02:29 +01:00
Roberto Viola
9855b9e76f Kickr connection not showing watts #1229 2023-02-10 15:15:16 +01:00
Roberto Viola
3ba1eaf92a Technogym myrun cadence but no stride length (Issue #1260) 2023-02-10 15:08:38 +01:00
Roberto Viola
474d519d85 Matching QZ Speed to Zwift Speed using Zwift Workout files (.zwo) (Issue #1209) 2023-02-10 14:08:20 +01:00
Roberto Viola
3e8bbf57d2 Auto Resistance from Zwift-QZ is not working on Proform Hybrid #1172 2023-02-10 08:59:44 +01:00
Roberto Viola
80f6a5a9ee Revert "Auto Resistance from Zwift-QZ is not working on Proform Hybrid #1172"
This reverts commit 7191141177.
2023-02-10 08:42:21 +01:00
Roberto Viola
c1c1a07cd9 cardiostrang TX90 smart treadmill #1251 2023-02-10 08:23:37 +01:00
Roberto Viola
369eb4d101 Kickr connection not showing watts #1229 2023-02-10 08:21:04 +01:00
Roberto Viola
115bdc1cb2 Kickr connection not showing watts #1229 2023-02-09 15:49:46 +01:00
Roberto Viola
3b6b5a6721 Renpho. Auto resistance with only whole numbers #1245 2023-02-09 11:21:53 +01:00
Roberto Viola
24b680ca12 removed email from debug log 2023-02-08 17:27:44 +01:00
Roberto Viola
7c53a16e38 Horizon Paragon X not able to control through qz (Issue #1256) 2023-02-08 15:38:14 +01:00
Roberto Viola
0eabe10ea1 Matching QZ Speed to Zwift Speed using Zwift Workout files (.zwo) (Issue #1209) 2023-02-08 15:26:42 +01:00
Roberto Viola
c92b702b2e Debug log using qdomyos on a proform Tour de France 10.0 bike #877
https://github.com/cagnulein/qdomyos-zwift/issues/877#issuecomment-1422555720
2023-02-08 14:08:56 +01:00
Roberto Viola
9068e82ae3 Tiles not displaying data for Sole e55 elliptical (#1240) 2023-02-08 13:56:51 +01:00
Roberto Viola
77ebbe7c6d Domyos EL 520 auto resistance #1252 2023-02-08 10:46:18 +01:00
Roberto Viola
8ec760855e Jumping Resistance on Schwinn IC8 (Issue #1236) 2023-02-08 09:59:25 +01:00
Roberto Viola
5d1b399fa6 Incline Override (Issue #1244) 2023-02-07 23:21:59 +01:00
Roberto Viola
b6ebeadae2 fix build error on iOS 2023-02-07 18:53:07 +01:00
Roberto Viola
c43dfaeb1f Lap Issue #1102 2023-02-07 17:16:23 +01:00
Roberto Viola
0f6caeff8a Winfita (T532) Treadmill Incline Levels Table for Calculations, etc. #1244 (#1253)
* settings added

* done
2023-02-07 15:17:53 +01:00
Roberto Viola
7191141177 Auto Resistance from Zwift-QZ is not working on Proform Hybrid #1172 2023-02-07 14:56:04 +01:00
Roberto Viola
256981dff7 adding adb for windows for nordictrack treadmill (#1167)
* start adding adb for windows for nordictrack treadmill #1153

* adding adb to package

* Update main.yml

* Update main.yml

* fixing file path

* fixing file name

* avoiding searching for bluetooth for wifi devices

* using adb pull to get the logs

* Update nordictrackifitadbtreadmill.cpp

* fixing open file issue

* Update nordictrackifitadbtreadmill.cpp

* Update nordictrackifitadbtreadmill.cpp

* adb on a thread

* thread error

* trying to get log emulating the tail command

* trying logcat directly

* using logcat only!
2023-02-07 09:00:08 +01:00
Roberto Viola
ac8e295322 Joroto x2pro #1239 2023-02-07 08:34:50 +01:00
Roberto Viola
d772ae85bf filering watch device #110 2023-02-07 08:17:13 +01:00
Roberto Viola
83180f37ce target power on echelon #1198 2023-02-07 08:09:47 +01:00
Roberto Viola
af695b0aab Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2023-02-07 07:52:42 +01:00
Roberto Viola
68bf628cf3 cardiostrang TX90 smart treadmill #1251 2023-02-07 07:52:33 +01:00
Roberto Viola
c631511fc9 Display step cadence on main app #1242 2023-02-06 16:30:24 +01:00
Roberto Viola
7a0ac82f0d Display step cadence on main app #1242 2023-02-06 16:18:08 +01:00
Roberto Viola
f90e980a62 Horizon Paragon X #637 2023-02-06 15:34:55 +01:00
Roberto Viola
03b871143a Jumping Resistance on Schwinn IC8 #1236 2023-02-06 09:26:32 +01:00
Roberto Viola
c374cbeace Matching QZ Speed to Zwift Speed using Zwift Workout files (.zwo) (Issue #1209) 2023-02-05 18:32:24 +01:00
Roberto Viola
df55d648c9 Wahoo Kickr compatibity #442 #1229 2023-02-04 06:33:54 +01:00
Roberto Viola
d18a2ebe38 version 2.12.59 2023-02-03 15:42:43 +01:00
Roberto Viola
bca55a68a1 Getting peloton timestamp #1224 (#1225)
* Getting peloton timestamp #1224

crash on start service

* screenshot works!

* OCR implementation done!

* OCR implemented, not tested

* linker fix

* fixing linking error

* fix compile error

* Update ScreenCaptureService.java

* fixing android build

* it's working at least for a minute!

* some optimizations, working

* memory leak fixed

* working like a charm! super stable!

* peloton logic added, not tested

* added AppChecker

* Update AndroidManifest.xml

* adding also landscape recognizer

* Update MediaProjection.java

* Update MediaProjection.java

* Update MediaProjection.java

* Update MediaProjection.java

* peloton bike added!

* peloton bike ocr works

* peloton bike doesn't require location services (don't know if it's available)

* added androidadblog class

* getting package name

* removing previewtrainingprogram when a program is correctly loaded

* it's working!
2023-02-03 15:40:38 +01:00
Roberto Viola
a34d880ef3 FTMS Treadmill inclination timeout issue #1237 2023-02-03 12:24:32 +01:00
Roberto Viola
1b07564429 Jumping Resistance on Schwinn IC8 #1236 2023-02-02 15:48:23 +01:00
Roberto Viola
53fd346348 Jumping Resistance on Schwinn IC8 #1236 2023-02-02 15:32:13 +01:00
Roberto Viola
11e037dd84 Max Resistance #1219 2023-02-02 12:09:19 +01:00
Roberto Viola
0869ad36c5 Max Resistance #1219 2023-02-02 11:54:57 +01:00
Roberto Viola
334e0cfd25 Auto Resistance from Zwift-QZ is not working on Proform Hybrid #1172 2023-02-02 11:49:11 +01:00
Roberto Viola
d2af89f693 BUG] Kickr connection not showing watts #1229 2023-02-02 11:24:58 +01:00
Roberto Viola
2f832c65ed Matching QZ Speed to Zwift Speed using Zwift Workout files (.zwo) #1209
math issue
2023-02-02 11:01:49 +01:00
Roberto Viola
cb087ea4be Matrix T50 Treadmill #1235 2023-02-02 08:18:16 +01:00
Roberto Viola
72df934997 Wrong speed after update QZ on 31 Jan 2023 #1233 2023-02-02 08:13:30 +01:00
Roberto Viola
349b525295 add canStartStop method to the treadmills 2023-02-01 10:56:09 +01:00
Roberto Viola
3e58c2d681 Open Matching QZ Speed to Zwift Speed using Zwift Workout files (.zwo) #1209 2023-02-01 10:31:25 +01:00
Roberto Viola
e7748f943c Sprint XBR555 #1231 2023-02-01 08:25:39 +01:00
Roberto Viola
03a755ee36 fixing minor on #1134 2023-01-31 12:08:46 +01:00
Roberto Viola
9ad1821194 Differences in the GPX starting point (Issue #988)
scaling down the pin
2023-01-31 10:33:05 +01:00
Roberto Viola
04b16b5849 Floating Window: start button and disabling auto resistance (Issue #1134) 2023-01-31 10:30:54 +01:00
Roberto Viola
12c16b9634 Floating Window: start button and disabling auto resistance #1134 2023-01-30 10:56:45 +01:00
914 changed files with 178485 additions and 17646 deletions

File diff suppressed because it is too large Load Diff

4
.gitignore vendored
View File

@@ -25,7 +25,6 @@ src/secret.h
build-qdomyos-zwift-Android_Qt_5_15_2_Clang_Multi_Abi-Debug/*
**/node_modules/*
*.pro.user
template-examples/youtube-viewer/node_modules/*
template-examples/youtube-viewer/*.json
@@ -48,3 +47,6 @@ google_test/*
!build-qdomyos-zwift-Qt_*_for_iOS-Debug # Needed for Apple Watch
src/inner_templates/googlemaps/cesium-key.js
*.autosave
.vscode/settings.json
/tst/Devices/.vs
src/inner_templates/googlemaps/cesium-key.js

7
.gitmodules vendored
View File

@@ -13,3 +13,10 @@
path = tst/googletest
url = https://github.com/google/googletest.git
branch = tags/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

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
roberto.viola83@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

437
QZ_ESP32/QZ_ESP32.ino Normal file
View File

@@ -0,0 +1,437 @@
/** NimBLE_Server Demo:
*
This is working to broadcast Power and Cadence under the Cycling Power Service Profile
Data tested against Edge and Phone
*
*/
#include <Arduino.h>
#include <NimBLEDevice.h>
short powerInstantaneous = 0;
short cadenceInstantaneous = 0;
short speedInstantaneous = 0;
float powerScale = 1.28; // incoming power is multiplied by this value for correction
short resistance = 0; //Not currently doing anything with this value after receiving it
bool notify = false;
// Define stuff for the Client that will receive data from Fitness Machine
// The remote service we wish to connect to.
static BLEUUID serviceUUID("1826"); // Fitness Machine
// The characteristic of the remote service we are interested in.
static BLEUUID charUUID("2ad2"); // Indoor Bike (Fitness Machine)
static BLEUUID HRserviceUUID("180D"); // HR Service
static BLEUUID HRcharUUID("2a37"); // HR Measuremente
static boolean doConnect = false;
static boolean connected = false;
static boolean doScan = false;
static BLERemoteCharacteristic *pRemoteCharacteristic;
static BLEAdvertisedDevice *myDevice;
/*
* Server Stuff
*/
static NimBLEServer *pServer;
/** None of these are required as they will be handled by the library with defaults. **
** Remove as you see fit for your needs */
class ServerCallbacks : public NimBLEServerCallbacks
{
void onConnect(NimBLEServer *pServer)
{
Serial.println("Client connected");
Serial.println("Multi-connect support: start advertising");
NimBLEDevice::startAdvertising();
};
/** Alternative onConnect() method to extract details of the connection.
* See: src/ble_gap.h for the details of the ble_gap_conn_desc struct.
*/
void onConnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)
{
Serial.print("Client address: ");
Serial.println(NimBLEAddress(desc->peer_ota_addr).toString().c_str());
/** We can use the connection handle here to ask for different connection parameters.
* Args: connection handle, min connection interval, max connection interval
* latency, supervision timeout.
* Units; Min/Max Intervals: 1.25 millisecond increments.
* Latency: number of intervals allowed to skip.
* Timeout: 10 millisecond increments, try for 5x interval time for best results.
*/
pServer->updateConnParams(desc->conn_handle, 24, 48, 0, 60);
};
void onDisconnect(NimBLEServer *pServer)
{
Serial.println("Client disconnected - start advertising");
NimBLEDevice::startAdvertising();
};
void onMTUChange(uint16_t MTU, ble_gap_conn_desc *desc)
{
Serial.printf("MTU updated: %u for connection ID: %u\n", MTU, desc->conn_handle);
};
};
/** Handler class for characteristic actions */
class CharacteristicCallbacks : public NimBLECharacteristicCallbacks
{
void onRead(NimBLECharacteristic *pCharacteristic)
{
Serial.print(pCharacteristic->getUUID().toString().c_str());
Serial.print(": onRead(), value: ");
Serial.println(pCharacteristic->getValue().c_str());
};
void onWrite(NimBLECharacteristic *pCharacteristic)
{
Serial.print(pCharacteristic->getUUID().toString().c_str());
Serial.print(": onWrite(), value: ");
Serial.println(pCharacteristic->getValue().c_str());
};
/** Called before notification or indication is sent,
* the value can be changed here before sending if desired.
*/
void onNotify(NimBLECharacteristic *pCharacteristic)
{
Serial.println("Sending notification to clients");
};
/** The status returned in status is defined in NimBLECharacteristic.h.
* The value returned in code is the NimBLE host return code.
*/
void onStatus(NimBLECharacteristic *pCharacteristic, Status status, int code)
{
String str = ("Notification/Indication status code: ");
str += status;
str += ", return code: ";
str += code;
str += ", ";
str += NimBLEUtils::returnCodeToString(code);
Serial.println(str);
};
void onSubscribe(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc, uint16_t subValue)
{
String str = "Client ID: ";
str += desc->conn_handle;
str += " Address: ";
str += std::string(NimBLEAddress(desc->peer_ota_addr)).c_str();
if (subValue == 0)
{
str += " Unsubscribed to ";
}
else if (subValue == 1)
{
str += " Subscribed to notifications for ";
}
else if (subValue == 2)
{
str += " Subscribed to indications for ";
}
else if (subValue == 3)
{
str += " Subscribed to notifications and indications for ";
}
str += std::string(pCharacteristic->getUUID()).c_str();
Serial.println(str);
};
};
/** Handler class for descriptor actions */
class DescriptorCallbacks : public NimBLEDescriptorCallbacks
{
void onWrite(NimBLEDescriptor *pDescriptor)
{
std::string dscVal((char *)pDescriptor->getValue(), pDescriptor->getLength());
Serial.print("Descriptor witten value:");
Serial.println(dscVal.c_str());
};
void onRead(NimBLEDescriptor *pDescriptor)
{
Serial.print(pDescriptor->getUUID().toString().c_str());
Serial.println(" Descriptor read");
};
};
/*
* Client Stuff
*/
// This callback is for when data is received from Server
static void notifyCallback(
BLERemoteCharacteristic *pBLERemoteCharacteristic,
uint8_t *pData,
size_t length,
bool isNotify)
{
powerInstantaneous = pData[8] | pData[9] << 8; // 2 bytes of power
cadenceInstantaneous = 60; //(pData[4] | pData[5] << 8) / 2; // 2 bytes of power in 0.5 resolution RPM, convert to RPM
resistance = pData[6]; // 1 byte of resistance
Serial.printf("Power = %d | Cadence = %d | Resistance = %d\n", powerInstantaneous, cadenceInstantaneous, resistance);
}
/** None of these are required as they will be handled by the library with defaults. **
** Remove as you see fit for your needs */
class MyClientCallback : public BLEClientCallbacks
{
void onConnect(BLEClient *pclient)
{
}
void onDisconnect(BLEClient *pclient)
{
connected = false;
Serial.println("onDisconnect");
}
};
bool connectToServer()
{
Serial.print("Forming a connection to ");
Serial.println(myDevice->getAddress().toString().c_str());
BLEClient *pClient = BLEDevice::createClient();
Serial.println(" - Created client");
pClient->setClientCallbacks(new MyClientCallback());
// Connect to the remove BLE Server.
pClient->connect(myDevice); // if you pass BLEAdvertisedDevice instead of address, it will be recognized type of peer device address (public or private)
Serial.println(" - Connected to server");
// Obtain a reference to the service we are after in the remote BLE server.
BLERemoteService *pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr)
{
Serial.print("Failed to find our service UUID: ");
Serial.println(serviceUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our service");
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr)
{
Serial.print("Failed to find our characteristic UUID: ");
Serial.println(charUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
// Read the value of the characteristic.
if (pRemoteCharacteristic->canRead())
{
std::string value = pRemoteCharacteristic->readValue();
Serial.print("The characteristic value was: ");
Serial.println(value.c_str());
}
if (pRemoteCharacteristic->canNotify())
pRemoteCharacteristic->registerForNotify(notifyCallback);
connected = true;
return true;
}
/**
* Scan for BLE servers and find the first one that advertises the service we are looking for.
*/
class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
{
/**
* Called for each advertising BLE server.
*/
/*** Only a reference to the advertised device is passed now
void onResult(BLEAdvertisedDevice advertisedDevice) { **/
void onResult(BLEAdvertisedDevice *advertisedDevice)
{
Serial.print("BLE Advertised Device found: ");
Serial.println(advertisedDevice->toString().c_str());
// We have found a device, let us now see if it contains the service we are looking for.
/********************************************************************************
if (advertisedDevice.haveServiceUUID() && advertisedDevice.isAdvertisingService(serviceUUID)) {
********************************************************************************/
if (advertisedDevice->haveServiceUUID() && advertisedDevice->isAdvertisingService(serviceUUID))
{
BLEDevice::getScan()->stop();
/*******************************************************************
myDevice = new BLEAdvertisedDevice(advertisedDevice);
*******************************************************************/
myDevice = advertisedDevice; /** Just save the reference now, no need to copy the object */
doConnect = true;
doScan = true;
} // Found our server
} // onResult
}; // MyAdvertisedDeviceCallbacks
//delays for X ms, should not block execution
void softDelay(unsigned long delayTime)
{
unsigned long startTime = millis();
while ((millis() - startTime) < delayTime)
{
//wait
}
}
/** Define callback instances globally to use for multiple Characteristics \ Descriptors */
// This section is for the Server that will broadcast the data as Cycling Power
static DescriptorCallbacks dscCallbacks;
static CharacteristicCallbacks chrCallbacks;
NimBLECharacteristic *CyclingPowerFeature = NULL;
NimBLECharacteristic *CyclingPowerMeasurement = NULL;
NimBLECharacteristic *CyclingPowerSensorLocation = NULL;
NimBLECharacteristic *HRMeasurement = NULL;
unsigned char bleBuffer[8];
unsigned char slBuffer[1];
unsigned char fBuffer[4];
unsigned short revolutions = 0;
unsigned short timestamp = 0;
unsigned short flags = 0x20;
byte sensorlocation = 0x0D;
long lastNotify = 0;
long lastRevolution = 0;
void setup()
{
Serial.begin(115200);
Serial.println("Starting NimBLE Server");
/** sets device name */
NimBLEDevice::init("QZESP");
/** Optional: set the transmit power, default is 3db */
NimBLEDevice::setPower(ESP_PWR_LVL_P9); /** +9db */
pServer = NimBLEDevice::createServer();
pServer->setCallbacks(new ServerCallbacks());
fBuffer[0] = 0x00;
fBuffer[1] = 0x00;
fBuffer[2] = 0x00;
fBuffer[3] = 0x08;
slBuffer[0] = sensorlocation & 0xff;
NimBLEService *pDeadService = pServer->createService("1818");
CyclingPowerFeature = pDeadService->createCharacteristic(
"2A65",
NIMBLE_PROPERTY::READ);
CyclingPowerSensorLocation = pDeadService->createCharacteristic(
"2A5D",
NIMBLE_PROPERTY::READ);
CyclingPowerMeasurement = pDeadService->createCharacteristic(
"2A63",
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::NOTIFY);
CyclingPowerFeature->setValue(fBuffer, 4);
CyclingPowerSensorLocation->setValue(slBuffer, 1);
CyclingPowerMeasurement->setValue(slBuffer, 1);
/** Start the services when finished creating all Characteristics and Descriptors */
pDeadService->start();
#if 0
// HR service
NimBLEService *pHRService = pServer->createService("180D");
HRMeasurement = pHRService->createCharacteristic(
"2A37",
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::NOTIFY);
HRMeasurement->setValue(fBuffer, 2);
/** Start the services when finished creating all Characteristics and Descriptors */
pHRService->start();
#endif
NimBLEAdvertising *pAdvertising = NimBLEDevice::getAdvertising();
/** Add the services to the advertisement data **/
// pAdvertising->addServiceUUID(pHRService->getUUID());
pAdvertising->addServiceUUID(pDeadService->getUUID());
pAdvertising->setScanResponse(true);
pAdvertising->start();
Serial.println("Advertising Started");
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
// Retrieve a Scanner and set the callback we want to use to be informed when we
// have detected a new device. Specify that we want active scanning and start the
// scan to run for 5 seconds.
BLEScan *pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
pBLEScan->start(5, false);
}
void loop()
{
// If the flag "doConnect" is true then we have scanned for and found the desired
// BLE Server with which we wish to connect. Now we connect to it. Once we are
// connected we set the connected flag to be true.
if (doConnect == true)
{
if (connectToServer())
{
Serial.println("We are now connected to the BLE Server.");
}
else
{
Serial.println("We have failed to connect to the server; there is nothing more we will do.");
}
doConnect = false;
}
// If we are connected to a peer BLE Server, update the characteristic each time we are reached
// with the current time since boot.
if (connected)
{
//Stuff to do when connected to Client
}
else if (doScan)
{
BLEDevice::getScan()->start(0); // this is just sample to start scan after disconnect, most likely there is better way to do it in arduino
}
// convert RPM to timestamp
if (cadenceInstantaneous != 0 && (millis()) >= (lastRevolution + (60000 / cadenceInstantaneous)))
{
revolutions++; // One crank revolution should have passed, add one revolution
timestamp = (unsigned short)(((millis() * 1024) / 1000) % 65536); // create timestamp and format
lastRevolution = millis();
}
if (millis() - lastNotify >= 1000) // do this every second
{
//if (pServer->getConnectedCount() > 0)
{
bleBuffer[0] = flags & 0xff;
bleBuffer[1] = (flags >> 8) & 0xff;
bleBuffer[2] = powerInstantaneous & 0xff;
bleBuffer[3] = (powerInstantaneous >> 8) & 0xff;
bleBuffer[4] = revolutions & 0xff;
bleBuffer[5] = (revolutions >> 8) & 0xff;
bleBuffer[6] = timestamp & 0xff;
bleBuffer[7] = (timestamp >> 8) & 0xff;
CyclingPowerMeasurement->setValue(bleBuffer, 8);
CyclingPowerMeasurement->notify();
/*bleBuffer[0] = 0;
bleBuffer[1] = powerInstantaneous;
HRMeasurement->setValue(bleBuffer, 2);
HRMeasurement->notify();*/
lastNotify = millis();
}
}
/*if (pServer->getConnectedCount() == 0)
{
powerInstantaneous = 0;
}*/
}

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
}

113
README.md
View File

@@ -7,35 +7,100 @@ 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||
![First Success](docs/img/first_success.jpg)
### Installation
You can install on multiple platforms.
You can install it on multiple platforms.
Read the [installation procedure](docs/10_Installation.md)
@@ -45,7 +110,7 @@ You can run the app on [Macintosh or Linux devices](docs/10_Installation.md). IO
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).
### No gui version
### No GUI version
run as
@@ -57,7 +122,7 @@ https://github.com/ProH4Ck/treadmill-bridge
https://www.livestrong.com/article/422012-what-is-10-degrees-in-incline-on-a-treadmill/
Icons used in this documentation comes from [flaticon.com](https://www.flaticon.com)
Icons used in this documentation come from [flaticon.com](https://www.flaticon.com)
### Blog

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

@@ -87,8 +87,6 @@
</RemoteRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "876E4E102594747F00BD5714"
BuildableName = "watchkit.app"
BlueprintName = "watchkit"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">

View File

@@ -104,6 +104,9 @@ extension MainController: WorkoutTrackingDelegate {
"\(heartRate)" as AnyObject])
WorkoutTracking.distance = WatchKitConnection.distance
WorkoutTracking.kcal = WatchKitConnection.kcal
WorkoutTracking.speed = WatchKitConnection.speed
WorkoutTracking.power = WatchKitConnection.power
WorkoutTracking.cadence = WatchKitConnection.cadence
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

@@ -24,6 +24,9 @@ class WatchKitConnection: NSObject {
public static var distance = 0.0
public static var kcal = 0.0
public static var stepCadence = 0
public static var speed = 0.0
public static var cadence = 0.0
public static var power = 0.0
weak var delegate: WatchKitConnectionDelegate?
private override init() {
@@ -66,6 +69,13 @@ extension WatchKitConnection: WatchKitConnectionProtocol {
WatchKitConnection.distance = dDistance
let dKcal = Double(result["kcal"] as! Double)
WatchKitConnection.kcal = dKcal
let dSpeed = Double(result["speed"] as! Double)
WatchKitConnection.speed = dSpeed
let dPower = Double(result["power"] as! Double)
WatchKitConnection.power = dPower
let dCadence = Double(result["cadence"] as! Double)
WatchKitConnection.cadence = dCadence
}, errorHandler: { (error) in
print(error)
})

View File

@@ -31,6 +31,10 @@ class WorkoutTracking: NSObject {
public static var cadenceTimeStamp = NSDate().timeIntervalSince1970
public static var cadenceLastSteps = Double()
public static var cadenceSteps = 0
public static var speed = Double()
public static var power = Double()
public static var cadence = Double()
public static var lastDateMetric = Date()
var sport: Int = 0
let healthStore = HKHealthStore()
let configuration = HKWorkoutConfiguration()
@@ -146,14 +150,37 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
HKSampleType.workoutType()
])
let infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.quantityType(forIdentifier: .distanceCycling)!,
HKSampleType.quantityType(forIdentifier: .distanceWalkingRunning)!,
HKSampleType.quantityType(forIdentifier: .activeEnergyBurned)!,
HKSampleType.workoutType()
])
var infoToShare: Set<HKSampleType> = []
if #available(watchOSApplicationExtension 10.0, *) {
infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.quantityType(forIdentifier: .distanceCycling)!,
HKSampleType.quantityType(forIdentifier: .distanceWalkingRunning)!,
HKSampleType.quantityType(forIdentifier: .activeEnergyBurned)!,
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 {
// Fallback on earlier versions
infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.quantityType(forIdentifier: .distanceCycling)!,
HKSampleType.quantityType(forIdentifier: .distanceWalkingRunning)!,
HKSampleType.quantityType(forIdentifier: .activeEnergyBurned)!,
HKSampleType.workoutType()
])
}
HKHealthStore().requestAuthorization(toShare: infoToShare, read: infoToRead) { (success, error) in
if success {
@@ -168,6 +195,7 @@ extension WorkoutTracking: WorkoutTrackingProtocol {
}
func startWorkOut() {
WorkoutTracking.lastDateMetric = Date()
print("Start workout")
configWorkout()
workoutSession.startActivity(with: Date())
@@ -312,6 +340,135 @@ extension WorkoutTracking: HKLiveWorkoutBuilderDelegate {
handleSendStatisticsData(statistics)
}
}
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
}
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 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 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()
}
func workoutBuilderDidCollectEvent(_ workoutBuilder: HKLiveWorkoutBuilder) {

View File

@@ -12,3 +12,4 @@ ANDROID_PACKAGE_SOURCE_DIR = $$PWD/src/android
ANDROID_ABIS = armeabi-v7a arm64-v8a x86 x86_64
#QMAKE_CXXFLAGS += -Werror=suggest-override

View File

@@ -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
@@ -77,7 +77,7 @@ Apply the changes `sudo systemctl restart dhcpcd.service` and ensure you have in
#### Enable SSH access
You might want to access your raspberry remotely while it is attached to your fitness equipement.
You might want to access your raspberry remotely while it is attached to your fitness equipment.
`sudo raspi-config` > `Interface Options` > `SSH`
@@ -175,7 +175,7 @@ Then reboot to check operations (`sudo reboot`)
### (optional) Enable overlay FS
Once that everything is working as expected, and if you dedicate your raspeberry pi to this usage, you might want to enable the read-only overlay FS.
Once that everything is working as expected, and if you dedicate your Raspberry pi to this usage, you might want to enable the read-only overlay FS.
By enabling the overlay read-only system, your SD card will be read-only only and every file written will be to RAM.
Then at each reboot the RAM is erased and you'll revert to the initial status of the overlay file-system.

View File

@@ -18,7 +18,7 @@ Please refer to this article for more information under [QML Operations](https:/
## Configuration in NativeQT mode
This is the list of settings available in the application. These settings needs to be appended to the binary command line.
This is the list of settings available in the application. These settings need to be appended to the binary command line.
*Example :* `sudo ./qdomyos-zwift -no-gui` for disabling any graphical interface.
| **Option** | **Type** | **Default** | **Function** |
@@ -35,8 +35,8 @@ This is the list of settings available in the application. These settings needs
| -heart-service | Boolean | True | Simulate HR service (required for applications not reading FTMS) |
| -only-virtualbike | Boolean | False | |
| -only-virtualtreadmill | Boolean | False | |
| -no-reconnection | Boolean | False | QZ will not try to reconnect your fitness equipement if enabled |
| -bluetooth-relaxed | Boolean | False | In case of deconnections from QZ to your fitness equipement |
| -no-reconnection | Boolean | False | QZ will not try to reconnect your fitness equipment if enabled |
| -bluetooth-relaxed | Boolean | False | In case of deconnections from QZ to your fitness equipment |
| -bike-cadence-sensor | Boolean | False | |
| -bike-power-sensor | Boolean | False | |
| -battery-service | Boolean | False | |
@@ -45,7 +45,7 @@ This is the list of settings available in the application. These settings needs
| -run-cadence-sensor | Boolean | False | |
| -nordictrack-10-treadmill | Boolean | False | Enable NordicTrack compatibility mode |
| -train | String | | Force training program |
| -name | String | | Force bluetooth device name (if QZ struggles finding your fitness equipment) |
| -name | String | | Force bluetooth device name (if QZ struggles to find your fitness equipment) |
| -poll-device-time | Int | 200 (ms) | Frequency to refresh information from QZ to Fitness equipment |
| -bike-resistance-gain | Int | | Adjust resistance from the fitness application |
| -bike-resistance-offset | Int | | Set another resistance point than default |

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.

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,449 @@
/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#ifndef http_parser_h
#define http_parser_h
#ifdef __cplusplus
extern "C" {
#endif
/* Also update SONAME in the Makefile whenever you change these. */
#define HTTP_PARSER_VERSION_MAJOR 2
#define HTTP_PARSER_VERSION_MINOR 9
#define HTTP_PARSER_VERSION_PATCH 4
#include <stddef.h>
#if defined(_WIN32) && !defined(__MINGW32__) && \
(!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__)
#include <BaseTsd.h>
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
typedef unsigned __int16 uint16_t;
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#elif (defined(__sun) || defined(__sun__)) && defined(__SunOS_5_9)
#include <sys/inttypes.h>
#else
#include <stdint.h>
#endif
/* Compile with -DHTTP_PARSER_STRICT=0 to make less checks, but run
* faster
*/
#ifndef HTTP_PARSER_STRICT
# define HTTP_PARSER_STRICT 1
#endif
/* Maximium header size allowed. If the macro is not defined
* before including this header then the default is used. To
* change the maximum header size, define the macro in the build
* environment (e.g. -DHTTP_MAX_HEADER_SIZE=<value>). To remove
* the effective limit on the size of the header, define the macro
* to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff)
*/
#ifndef HTTP_MAX_HEADER_SIZE
# define HTTP_MAX_HEADER_SIZE (80*1024)
#endif
typedef struct http_parser http_parser;
typedef struct http_parser_settings http_parser_settings;
/* Callbacks should return non-zero to indicate an error. The parser will
* then halt execution.
*
* The one exception is on_headers_complete. In a HTTP_RESPONSE parser
* returning '1' from on_headers_complete will tell the parser that it
* should not expect a body. This is used when receiving a response to a
* HEAD request which may contain 'Content-Length' or 'Transfer-Encoding:
* chunked' headers that indicate the presence of a body.
*
* Returning `2` from on_headers_complete will tell parser that it should not
* expect neither a body nor any futher responses on this connection. This is
* useful for handling responses to a CONNECT request which may not contain
* `Upgrade` or `Connection: upgrade` headers.
*
* http_data_cb does not return data chunks. It will be called arbitrarily
* many times for each string. E.G. you might get 10 callbacks for "on_url"
* each providing just a few characters more data.
*/
typedef int (*http_data_cb) (http_parser*, const char *at, size_t length);
typedef int (*http_cb) (http_parser*);
/* Status Codes */
#define HTTP_STATUS_MAP(XX) \
XX(100, CONTINUE, Continue) \
XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \
XX(102, PROCESSING, Processing) \
XX(200, OK, OK) \
XX(201, CREATED, Created) \
XX(202, ACCEPTED, Accepted) \
XX(203, NON_AUTHORITATIVE_INFORMATION, Non-Authoritative Information) \
XX(204, NO_CONTENT, No Content) \
XX(205, RESET_CONTENT, Reset Content) \
XX(206, PARTIAL_CONTENT, Partial Content) \
XX(207, MULTI_STATUS, Multi-Status) \
XX(208, ALREADY_REPORTED, Already Reported) \
XX(226, IM_USED, IM Used) \
XX(300, MULTIPLE_CHOICES, Multiple Choices) \
XX(301, MOVED_PERMANENTLY, Moved Permanently) \
XX(302, FOUND, Found) \
XX(303, SEE_OTHER, See Other) \
XX(304, NOT_MODIFIED, Not Modified) \
XX(305, USE_PROXY, Use Proxy) \
XX(307, TEMPORARY_REDIRECT, Temporary Redirect) \
XX(308, PERMANENT_REDIRECT, Permanent Redirect) \
XX(400, BAD_REQUEST, Bad Request) \
XX(401, UNAUTHORIZED, Unauthorized) \
XX(402, PAYMENT_REQUIRED, Payment Required) \
XX(403, FORBIDDEN, Forbidden) \
XX(404, NOT_FOUND, Not Found) \
XX(405, METHOD_NOT_ALLOWED, Method Not Allowed) \
XX(406, NOT_ACCEPTABLE, Not Acceptable) \
XX(407, PROXY_AUTHENTICATION_REQUIRED, Proxy Authentication Required) \
XX(408, REQUEST_TIMEOUT, Request Timeout) \
XX(409, CONFLICT, Conflict) \
XX(410, GONE, Gone) \
XX(411, LENGTH_REQUIRED, Length Required) \
XX(412, PRECONDITION_FAILED, Precondition Failed) \
XX(413, PAYLOAD_TOO_LARGE, Payload Too Large) \
XX(414, URI_TOO_LONG, URI Too Long) \
XX(415, UNSUPPORTED_MEDIA_TYPE, Unsupported Media Type) \
XX(416, RANGE_NOT_SATISFIABLE, Range Not Satisfiable) \
XX(417, EXPECTATION_FAILED, Expectation Failed) \
XX(421, MISDIRECTED_REQUEST, Misdirected Request) \
XX(422, UNPROCESSABLE_ENTITY, Unprocessable Entity) \
XX(423, LOCKED, Locked) \
XX(424, FAILED_DEPENDENCY, Failed Dependency) \
XX(426, UPGRADE_REQUIRED, Upgrade Required) \
XX(428, PRECONDITION_REQUIRED, Precondition Required) \
XX(429, TOO_MANY_REQUESTS, Too Many Requests) \
XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, Request Header Fields Too Large) \
XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, Unavailable For Legal Reasons) \
XX(500, INTERNAL_SERVER_ERROR, Internal Server Error) \
XX(501, NOT_IMPLEMENTED, Not Implemented) \
XX(502, BAD_GATEWAY, Bad Gateway) \
XX(503, SERVICE_UNAVAILABLE, Service Unavailable) \
XX(504, GATEWAY_TIMEOUT, Gateway Timeout) \
XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP Version Not Supported) \
XX(506, VARIANT_ALSO_NEGOTIATES, Variant Also Negotiates) \
XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \
XX(508, LOOP_DETECTED, Loop Detected) \
XX(510, NOT_EXTENDED, Not Extended) \
XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \
enum http_status
{
#define XX(num, name, string) HTTP_STATUS_##name = num,
HTTP_STATUS_MAP(XX)
#undef XX
};
/* Request Methods */
#define HTTP_METHOD_MAP(XX) \
XX(0, DELETE, DELETE) \
XX(1, GET, GET) \
XX(2, HEAD, HEAD) \
XX(3, POST, POST) \
XX(4, PUT, PUT) \
/* pathological */ \
XX(5, CONNECT, CONNECT) \
XX(6, OPTIONS, OPTIONS) \
XX(7, TRACE, TRACE) \
/* WebDAV */ \
XX(8, COPY, COPY) \
XX(9, LOCK, LOCK) \
XX(10, MKCOL, MKCOL) \
XX(11, MOVE, MOVE) \
XX(12, PROPFIND, PROPFIND) \
XX(13, PROPPATCH, PROPPATCH) \
XX(14, SEARCH, SEARCH) \
XX(15, UNLOCK, UNLOCK) \
XX(16, BIND, BIND) \
XX(17, REBIND, REBIND) \
XX(18, UNBIND, UNBIND) \
XX(19, ACL, ACL) \
/* subversion */ \
XX(20, REPORT, REPORT) \
XX(21, MKACTIVITY, MKACTIVITY) \
XX(22, CHECKOUT, CHECKOUT) \
XX(23, MERGE, MERGE) \
/* upnp */ \
XX(24, MSEARCH, M-SEARCH) \
XX(25, NOTIFY, NOTIFY) \
XX(26, SUBSCRIBE, SUBSCRIBE) \
XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \
/* RFC-5789 */ \
XX(28, PATCH, PATCH) \
XX(29, PURGE, PURGE) \
/* CalDAV */ \
XX(30, MKCALENDAR, MKCALENDAR) \
/* RFC-2068, section 19.6.1.2 */ \
XX(31, LINK, LINK) \
XX(32, UNLINK, UNLINK) \
/* icecast */ \
XX(33, SOURCE, SOURCE) \
enum http_method
{
#define XX(num, name, string) HTTP_##name = num,
HTTP_METHOD_MAP(XX)
#undef XX
};
enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH };
/* Flag values for http_parser.flags field */
enum flags
{ F_CHUNKED = 1 << 0
, F_CONNECTION_KEEP_ALIVE = 1 << 1
, F_CONNECTION_CLOSE = 1 << 2
, F_CONNECTION_UPGRADE = 1 << 3
, F_TRAILING = 1 << 4
, F_UPGRADE = 1 << 5
, F_SKIPBODY = 1 << 6
, F_CONTENTLENGTH = 1 << 7
};
/* Map for errno-related constants
*
* The provided argument should be a macro that takes 2 arguments.
*/
#define HTTP_ERRNO_MAP(XX) \
/* No error */ \
XX(OK, "success") \
\
/* Callback-related errors */ \
XX(CB_message_begin, "the on_message_begin callback failed") \
XX(CB_url, "the on_url callback failed") \
XX(CB_header_field, "the on_header_field callback failed") \
XX(CB_header_value, "the on_header_value callback failed") \
XX(CB_headers_complete, "the on_headers_complete callback failed") \
XX(CB_body, "the on_body callback failed") \
XX(CB_message_complete, "the on_message_complete callback failed") \
XX(CB_status, "the on_status callback failed") \
XX(CB_chunk_header, "the on_chunk_header callback failed") \
XX(CB_chunk_complete, "the on_chunk_complete callback failed") \
\
/* Parsing-related errors */ \
XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \
XX(HEADER_OVERFLOW, \
"too many header bytes seen; overflow detected") \
XX(CLOSED_CONNECTION, \
"data received after completed connection: close message") \
XX(INVALID_VERSION, "invalid HTTP version") \
XX(INVALID_STATUS, "invalid HTTP status code") \
XX(INVALID_METHOD, "invalid HTTP method") \
XX(INVALID_URL, "invalid URL") \
XX(INVALID_HOST, "invalid host") \
XX(INVALID_PORT, "invalid port") \
XX(INVALID_PATH, "invalid path") \
XX(INVALID_QUERY_STRING, "invalid query string") \
XX(INVALID_FRAGMENT, "invalid fragment") \
XX(LF_EXPECTED, "LF character expected") \
XX(INVALID_HEADER_TOKEN, "invalid character in header") \
XX(INVALID_CONTENT_LENGTH, \
"invalid character in content-length header") \
XX(UNEXPECTED_CONTENT_LENGTH, \
"unexpected content-length header") \
XX(INVALID_CHUNK_SIZE, \
"invalid character in chunk size header") \
XX(INVALID_CONSTANT, "invalid constant string") \
XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\
XX(STRICT, "strict mode assertion failed") \
XX(PAUSED, "parser is paused") \
XX(UNKNOWN, "an unknown error occurred") \
XX(INVALID_TRANSFER_ENCODING, \
"request has invalid transfer-encoding") \
/* Define HPE_* values for each errno value above */
#define HTTP_ERRNO_GEN(n, s) HPE_##n,
enum http_errno {
HTTP_ERRNO_MAP(HTTP_ERRNO_GEN)
};
#undef HTTP_ERRNO_GEN
/* Get an http_errno value from an http_parser */
#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno)
struct http_parser {
/** PRIVATE **/
unsigned int type : 2; /* enum http_parser_type */
unsigned int flags : 8; /* F_* values from 'flags' enum; semi-public */
unsigned int state : 7; /* enum state from http_parser.c */
unsigned int header_state : 7; /* enum header_state from http_parser.c */
unsigned int index : 5; /* index into current matcher */
unsigned int uses_transfer_encoding : 1; /* Transfer-Encoding header is present */
unsigned int allow_chunked_length : 1; /* Allow headers with both
* `Content-Length` and
* `Transfer-Encoding: chunked` set */
unsigned int lenient_http_headers : 1;
uint32_t nread; /* # bytes read in various scenarios */
uint64_t content_length; /* # bytes in body. `(uint64_t) -1` (all bits one)
* if no Content-Length header.
*/
/** READ-ONLY **/
unsigned short http_major;
unsigned short http_minor;
unsigned int status_code : 16; /* responses only */
unsigned int method : 8; /* requests only */
unsigned int http_errno : 7;
/* 1 = Upgrade header was present and the parser has exited because of that.
* 0 = No upgrade header present.
* Should be checked when http_parser_execute() returns in addition to
* error checking.
*/
unsigned int upgrade : 1;
/** PUBLIC **/
void *data; /* A pointer to get hook to the "connection" or "socket" object */
};
struct http_parser_settings {
http_cb on_message_begin;
http_data_cb on_url;
http_data_cb on_status;
http_data_cb on_header_field;
http_data_cb on_header_value;
http_cb on_headers_complete;
http_data_cb on_body;
http_cb on_message_complete;
/* When on_chunk_header is called, the current chunk length is stored
* in parser->content_length.
*/
http_cb on_chunk_header;
http_cb on_chunk_complete;
};
enum http_parser_url_fields
{ UF_SCHEMA = 0
, UF_HOST = 1
, UF_PORT = 2
, UF_PATH = 3
, UF_QUERY = 4
, UF_FRAGMENT = 5
, UF_USERINFO = 6
, UF_MAX = 7
};
/* Result structure for http_parser_parse_url().
*
* Callers should index into field_data[] with UF_* values iff field_set
* has the relevant (1 << UF_*) bit set. As a courtesy to clients (and
* because we probably have padding left over), we convert any port to
* a uint16_t.
*/
struct http_parser_url {
uint16_t field_set; /* Bitmask of (1 << UF_*) values */
uint16_t port; /* Converted UF_PORT string */
struct {
uint16_t off; /* Offset into buffer in which field starts */
uint16_t len; /* Length of run in buffer */
} field_data[UF_MAX];
};
/* Returns the library version. Bits 16-23 contain the major version number,
* bits 8-15 the minor version number and bits 0-7 the patch level.
* Usage example:
*
* unsigned long version = http_parser_version();
* unsigned major = (version >> 16) & 255;
* unsigned minor = (version >> 8) & 255;
* unsigned patch = version & 255;
* printf("http_parser v%u.%u.%u\n", major, minor, patch);
*/
unsigned long http_parser_version(void);
void http_parser_init(http_parser *parser, enum http_parser_type type);
/* Initialize http_parser_settings members to 0
*/
void http_parser_settings_init(http_parser_settings *settings);
/* Executes the parser. Returns number of parsed bytes. Sets
* `parser->http_errno` on error. */
size_t http_parser_execute(http_parser *parser,
const http_parser_settings *settings,
const char *data,
size_t len);
/* If http_should_keep_alive() in the on_headers_complete or
* on_message_complete callback returns 0, then this should be
* the last message on the connection.
* If you are the server, respond with the "Connection: close" header.
* If you are the client, close the connection.
*/
int http_should_keep_alive(const http_parser *parser);
/* Returns a string version of the HTTP method. */
const char *http_method_str(enum http_method m);
/* Returns a string version of the HTTP status code. */
const char *http_status_str(enum http_status s);
/* Return a string name of the given error */
const char *http_errno_name(enum http_errno err);
/* Return a string description of the given error */
const char *http_errno_description(enum http_errno err);
/* Initialize all http_parser_url members to 0 */
void http_parser_url_init(struct http_parser_url *u);
/* Parse a URL; return nonzero on failure */
int http_parser_parse_url(const char *buf, size_t buflen,
int is_connect,
struct http_parser_url *u);
/* Pause or un-pause the parser; a nonzero value pauses */
void http_parser_pause(http_parser *parser, int paused);
/* Checks if this is the final chunk of the body. */
int http_body_is_final(const http_parser *parser);
/* Change the maximum header size provided at compile time. */
void http_parser_set_max_header_size(uint32_t size);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,7 +1,7 @@
TEMPLATE = subdirs
CONFIG+=ordered
!android: {
!ios: !android: {
SUBDIRS = \
src/qdomyos-zwift-lib.pro \
src/qdomyos-zwift.pro \
@@ -10,9 +10,15 @@ SUBDIRS = \
tst.depends = src/qdomyos-zwift-lib.pro
}
android: {
android: {
SUBDIRS = \
src/qdomyos-zwift.pro
}
ios: {
SUBDIRS = \
src/qdomyos-zwift-lib.pro \
src/qdomyos-zwift.pro
}

Binary file not shown.

View File

@@ -0,0 +1,5 @@
QMAKE_PRL_BUILD_DIR = C:/qt-everywhere-src-5.15.2/qtconnectivity/src/bluetooth
QMAKE_PRO_INPUT = bluetooth.pro
QMAKE_PRL_TARGET = Qt5Bluetooth.lib
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_plugins import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on release link_prl flat debug_and_release precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared shared release no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c force_debug_info largefile precompile_header rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions release ReleaseBuild Release build_pass c++11 generated_privates relative_qt_rpath target_qt c++11 strict_c++ c++14 c++1z qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext release ReleaseBuild Release build_pass have_target dll exclusive_builds debug_info no_autoqmake thread moc resources
QMAKE_PRL_VERSION = 5.15.2

View File

@@ -0,0 +1,5 @@
QMAKE_PRL_BUILD_DIR = C:/qt-everywhere-src-5.15.2/qtconnectivity/src/bluetooth
QMAKE_PRO_INPUT = bluetooth.pro
QMAKE_PRL_TARGET = Qt5Bluetoothd.lib
QMAKE_PRL_CONFIG = lex yacc debug depend_includepath testcase_targets import_plugins import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on link_prl flat debug_and_release precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared shared no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c force_debug_info largefile precompile_header rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions debug DebugBuild Debug build_pass c++11 generated_privates relative_qt_rpath target_qt c++11 strict_c++ c++14 c++1z qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext debug DebugBuild Debug build_pass have_target dll no_plist exclusive_builds debug_info no_autoqmake thread moc resources
QMAKE_PRL_VERSION = 5.15.2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

61
src/CRC16IBM.h Normal file
View File

@@ -0,0 +1,61 @@
#ifndef CRC16IBM_H
#define CRC16IBM_H
#include <QByteArray>
#include <QDebug>
class CRC16IBM {
public:
// Function to calculate CRC-16 (XMODEM) checksum
static quint16 calculateCRC(const QByteArray &data) {
quint16 crc = 0xFFFF; // Initial value
for (char byte : data) {
quint8 index = (crc >> 8) ^ static_cast<quint8>(byte);
crc = (crc << 8) ^ crc16Table[index];
}
return crc;
}
private:
// Precomputed CRC-16-IBM table
static constexpr quint16 crc16Table[256] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};
};
#endif // CRC16IBM_H

25
src/ChartFooter.qml Normal file
View File

@@ -0,0 +1,25 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.0
import Qt.labs.settings 1.0
ColumnLayout {
anchors.fill: parent
Loader {
id: chartFooterLoader
sourceComponent: ChartFooterInnerJS
anchors.fill: parent
active: false
}
Loader {
anchors.fill: parent
source: CHARTJS ? "ChartFooterInnerJS.qml":"ChartFooterInnerNoJS.qml"
onLoaded: {
if(CHARTJS) {
chartFooterLoader.active = true;
}
}
}
}

View File

@@ -0,0 +1,31 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.0
import Qt.labs.settings 1.0
import QtWebView 1.1
ColumnLayout {
anchors.fill: parent
Settings {
id: settings
}
WebView {
id: webView
anchors.fill: parent
url: "http://localhost:" + settings.value("template_inner_QZWS_port") + "/chartjs/chartlive.htm"
visible: rootItem.chartFooterVisible
onLoadingChanged: {
if (loadRequest.errorString) {
console.error(loadRequest.errorString);
console.error("port " + settings.value("template_inner_QZWS_port"));
}
}
onVisibleChanged: {
console.log("onVisibleChanged" + visible)
if(visible === true) {
reload();
}
}
}
}

View File

@@ -0,0 +1,12 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.0
import Qt.labs.settings 1.0
ColumnLayout {
anchors.fill: parent
Settings {
id: settings
}
}

View File

@@ -26,6 +26,12 @@ ColumnLayout {
}
}
Timer {
id: chartJscheckStartFromWeb
interval: 200; running: true; repeat: true
onTriggered: {if(rootItem.startRequested) {rootItem.startRequested = false; rootItem.stopRequested = false; stackView.pop(); }}
}
Button {
id: closeButton
height: 50

View File

@@ -0,0 +1,44 @@
<?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>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>ConnectIQ.framework/ConnectIQ</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>ConnectIQ.framework</string>
<key>SupportedArchitectures</key>
<array>
<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-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>ConnectIQ.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

View File

@@ -0,0 +1,237 @@
//
// ConnectIQ.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <ConnectIQ/IQConstants.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQApp.h>
// --------------------------------------------------------------------------------
#pragma mark - PUBLIC TYPES
// --------------------------------------------------------------------------------
/// @brief SendMessage progress callback block
///
/// @param sentBytes The number of bytes that have been successfully transferred
/// to the device so far for this connection.
/// @param totalBytes The total number of bytes to transfer for this connection.
typedef void (^IQSendMessageProgress)(uint32_t sentBytes, uint32_t totalBytes);
/// @brief SendMessage completion callback block
///
/// @param result The result of the SendMessage operation.
typedef void (^IQSendMessageCompletion)(IQSendMessageResult result);
/// @brief Conforming to the IQUIOverrideDelegate protocol indicates that an
/// object handles one or more events triggered by the ConnectIQ SDK that
/// require user input.
@protocol IQUIOverrideDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when an action has been requested that
/// requires Garmin Connect Mobile to be installed.
///
/// The receiver should choose whether or not to launch the Apple App
/// Store page for GCM, ideally by presenting the user with a choice.
///
/// If the receiver of this message decides to install GCM, it must call
/// showAppStoreForConnectMobile.
- (void)needsToInstallConnectMobile;
@end
/// @brief Conforming to the IQDeviceEventDelegate protocol indicates that an
/// object handles ConnectIQ device status events.
@protocol IQDeviceEventDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when an IQDevice's connection status has
/// changed.
///
/// @param device The IQDevice whose status changed.
/// @param status The new status of the device.
- (void)deviceStatusChanged:(IQDevice *)device status:(IQDeviceStatus)status;
@end
/// @brief Conforming to the IQAppMessageDelegate protocol indicates that an
/// object handles messages from ConnectIQ apps on compatible devices.
@protocol IQAppMessageDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when a message is received from a device.
///
/// @param message The message that was received.
/// @param app The device app that sent the message.
- (void)receivedMessage:(id)message fromApp:(IQApp *)app;
@end
// --------------------------------------------------------------------------------
#pragma mark - CLASS DEFINITION
// --------------------------------------------------------------------------------
/// @brief The root of the ConnectIQ SDK API.
@interface ConnectIQ : NSObject
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
// --------------------------------------------------------------------------------
#pragma mark - SINGLETON ACCESS
// --------------------------------------------------------------------------------
/// @brief Exposes the single static instance of the ConnectIQ class.
///
/// @return The single status instance of the ConnectIQ class.
+ (ConnectIQ *)sharedInstance;
// --------------------------------------------------------------------------------
#pragma mark - INITIALIZATION
// --------------------------------------------------------------------------------
/// @brief Initializes the ConnectIQ SDK with startup parameters necessary for
/// its operation.
///
/// @param urlScheme The URL scheme for this companion app. When Garmin Connect
/// Mobile is launched, it will return to the companion app by
/// launching a URL with this scheme.
/// @param delegate The delegate that the SDK will use for notifying the
/// companion app about events that require user input. If this
/// is nil, the SDK's default UI will be used.
- (void)initializeWithUrlScheme:(NSString *)urlScheme uiOverrideDelegate:(id<IQUIOverrideDelegate>)delegate;
// --------------------------------------------------------------------------------
#pragma mark - EXTERNAL LAUNCHING
// --------------------------------------------------------------------------------
/// @brief Launches the Apple App Store page for the Garmin Connect Mobile app.
/// The companion app should only call this in response to a
/// needsToInstallConnectMobile event that gets triggered on the
/// IQUIOverrideDelegate.
- (void)showAppStoreForConnectMobile;
/// @brief Launches Garmin Connect Mobile for the purpose of retrieving a list of
/// ConnectIQ-compatible devices.
///
/// Once the user has chosen which ConnectIQ devices to share with the
/// companion app, GCM will return those devices to the companion app by
/// opening a URL with the scheme registered in
/// initializeWithUrlScheme:uiOverrideDelegate:.
///
/// The companion app should handle this URL by passing it in to the
/// parseDeviceSelectionResponseFromURL: method to get the list of devices
/// that the user permitted the companion app to communicate with.
- (void)showConnectIQDeviceSelection;
/// @brief Parses a URL opened from Garmin Connect Mobile into a list of devices.
///
/// @param url The URL to parse.
///
/// @return An array of IQDevice objects representing the ConnectIQ-compatible
/// devices that the user allowed GCM to share with the companion app.
///
/// @seealso showConnectIQDeviceSelection
- (NSArray *)parseDeviceSelectionResponseFromURL:(NSURL *)url;
/// @brief Launches Garmin Connect Mobile and shows the ConnectIQ app store page
/// for the given app.
///
/// The companion app should call this if the user would like to manage
/// the app on the device, such as to install, upgrade, uninstall, or
/// modify settings.
///
/// @param app The app to show the ConnectIQ app store page for.
- (void)showConnectIQStoreForApp:(IQApp *)app;
// --------------------------------------------------------------------------------
#pragma mark - DEVICE MANAGEMENT
// --------------------------------------------------------------------------------
/// @brief Registers an object as a listener for ConnectIQ device status events.
///
/// A device may have multiple device event listeners if this method is
/// called more than once.
///
/// @param device A device to listen for status events from.
/// @param delegate The listener which will receive status events for this device.
- (void)registerForDeviceEvents:(IQDevice *)device delegate:(id<IQDeviceEventDelegate>)delegate;
/// @brief Unregisters a listener for a specific device.
///
/// @param device The device to unregister the listener for.
/// @param delegate The listener to remove from the device.
- (void)unregisterForDeviceEvents:(IQDevice *)device delegate:(id<IQDeviceEventDelegate>)delegate;
/// @brief Unregisters the specified listener from all devices for which it had
/// previously been registered.
///
/// @param delegate The listener to unregister.
- (void)unregisterForAllDeviceEvents:(id<IQDeviceEventDelegate>)delegate;
/// @brief Gets the current connection status of a device.
///
/// The device must have been registered for event notifications by
/// calling registerForDeviceEvents:delegate: or this method will return
/// IQDeviceStatus_InvalidDevice.
///
/// @param device The device to get the status for.
///
/// @return The device's current connection status.
- (IQDeviceStatus)getDeviceStatus:(IQDevice *)device;
// --------------------------------------------------------------------------------
#pragma mark - APP MANAGEMENT
// --------------------------------------------------------------------------------
/// @brief Begins getting the status of an app on a device. This method returns
/// immediately.
///
/// @param app The IQApp to get the status for.
/// @param completion The completion block that will be triggered when the device
/// status operation is complete.
- (void)getAppStatus:(IQApp *)app completion:(void(^)(IQAppStatus *appStatus))completion;
/// @brief Registers an object as a listener for ConnectIQ messages from an app
/// on a device.
///
/// An app may have multiple message listeners if this method is called
/// more than once.
///
/// @param app The app to listen for messages from.
/// @param delegate The listener which will receive messages for this app.
- (void)registerForAppMessages:(IQApp *)app delegate:(id<IQAppMessageDelegate>)delegate;
/// @brief Unregisters a listener for a specific app.
///
/// @param app The app to unregister a listener for.
/// @param delegate The listener to remove from the app.
- (void)unregisterForAppMessages:(IQApp *)app delegate:(id<IQAppMessageDelegate>)delegate;
/// @brief Unregisters all previously registered apps for a specific listener.
///
/// @param delegate The listener to unregister.
- (void)unregisterForAllAppMessages:(id<IQAppMessageDelegate>)delegate;
/// @brief Begins sending a message to an app. This method returns immediately.
///
/// @param message The message to send to the app. This message must be one of
/// the following types: NSString, NSNumber, NSNull, NSArray,
/// or NSDictionary. Arrays and dictionaries may be nested.
/// @param app The app to send the message to.
/// @param progress A progress block that will be triggered periodically
/// throughout the transfer. This is guaranteed to be triggered
/// at least once.
/// @param completion A completion block that will be triggered when the send
/// message operation is complete.
- (void)sendMessage:(id)message toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion;
/// @brief Sends an open app request message request to the device. This method returns immediately.
///
/// @param app The app to open.
/// @param completion A completion block that will be triggered when the send
/// message operation is complete.
- (void)openAppRequest:(IQApp *)app completion:(IQSendMessageCompletion)completion;
// TODO *** Holding off on documenting this until this method actually works.
- (void)sendImage:(NSData *)bitmap toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion;
@end

View File

@@ -0,0 +1,34 @@
//
// IQApp.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQAppStatus.h>
/// @brief Represents an instance of a ConnectIQ app that is installed on a
/// Garmin device.
@interface IQApp : NSObject <NSSecureCoding>
/// @brief The unique identifier for this app.
@property (nonatomic, readonly) NSUUID *uuid;
/// @brief The unique identifier for this app in the store.
@property (nonatomic, readonly) NSUUID *storeUuid;
/// @brief The device that this app is installed on.
@property (nonatomic, readonly) IQDevice *device;
/// @brief Creates a new app instance.
///
/// @param uuid The UUID of the app to create.
/// @param storeUuid The store UUID of the app to create.
/// @param device The device the app to create is installed on.
///
/// @return A new IQApp instance with the appropriate values set.
+ (IQApp *)appWithUUID:(NSUUID *)uuid storeUuid:(NSUUID *)storeUuid device:(IQDevice *)device;
@end

View File

@@ -0,0 +1,20 @@
//
// IQAppStatus.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
/// @brief Represents the current status of an app on a Garmin device.
@interface IQAppStatus : NSObject
/// @brief YES if the app is installed on the device, NO if it isn't.
@property (nonatomic, readonly) BOOL isInstalled;
/// @brief The version of the app that is currently installed on the device. If
/// the app is not installed, this value is unused.
@property (nonatomic, readonly) uint16_t version;
@end

View File

@@ -0,0 +1,66 @@
//
// IQConstants.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
/// @brief The current version of the ConnectIQ SDK.
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.
IQSendMessageResult_Success,
/// @brief The message failed to send due to an unknown error.
IQSendMessageResult_Failure_Unknown,
/// @brief The message failed to send. There was an error within the SDK or
/// on the device.
IQSendMessageResult_Failure_InternalError,
/// @brief The message failed to send. The device is not available right now.
IQSendMessageResult_Failure_DeviceNotAvailable,
/// @brief The message failed to send. The app is not installed on the
/// device.
IQSendMessageResult_Failure_AppNotFound,
/// @brief The message failed to send. The device is busy and cannot receive
/// the message right now.
IQSendMessageResult_Failure_DeviceIsBusy,
/// @brief The message failed to send. The message contained an unsupported
/// type.
IQSendMessageResult_Failure_UnsupportedType,
/// @brief The message failed to send. The device does not have enough memory
/// to receive the message.
IQSendMessageResult_Failure_InsufficientMemory,
/// @brief The message failed to send. The connection timed out while sending
/// the message.
IQSendMessageResult_Failure_Timeout,
/// @brief The message failed to send and was retried, but could not complete
/// after a number of tries.
IQSendMessageResult_Failure_MaxRetries,
/// @brief The message was received by the device but it chose not to display
/// a message prompt, ignoring the message.
IQSendMessageResult_Failure_PromptNotDisplayed,
/// @brief The message was received by the device but the app to open
/// was already running on the device.
IQSendMessageResult_Failure_AppAlreadyRunning,
};
NSString *NSStringFromSendMessageResult(IQSendMessageResult value);

View File

@@ -0,0 +1,61 @@
//
// IQDevice.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreBluetooth/CoreBluetooth.h>
/// @brief The current status of an IQDevice.
typedef NS_ENUM(NSInteger, IQDeviceStatus){
/// @brief No device with this UUID has been registered for status events
/// the SDK.
IQDeviceStatus_InvalidDevice,
/// @brief Bluetooth is either powered off or resetting.
IQDeviceStatus_BluetoothNotReady,
/// @brief This device could not be found by iOS. Perhaps the user removed
/// the device?
IQDeviceStatus_NotFound,
/// @brief The device is recognized by iOS, but it is not currently
/// connected.
IQDeviceStatus_NotConnected,
/// @brief The device is connected and ready to communicate.
IQDeviceStatus_Connected,
};
/// @brief Represents a ConnectIQ-compatible Garmin device.
@interface IQDevice : NSObject <NSSecureCoding>
/// @brief The unique identifier for this device.
@property (nonatomic, readonly) NSUUID *uuid;
/// @brief The model name of the device provided by Garmin Connect Mobile.
@property (nonatomic, readonly) NSString *modelName;
/// @brief The friendly name of the device, set by the user and provided by
/// Garmin Connect Mobile.
@property (nonatomic, readonly) NSString *friendlyName;
/// @brief Creates a new device instance.
///
/// @param uuid The UUID of the device to create.
/// @param modelName The model name of the device to create.
/// @param friendlyName The friendly name of the device to create.
///
/// @return A new IQDevice instance with the appropriate values set.
+ (IQDevice *)deviceWithId:(NSUUID *)uuid modelName:(NSString *)modelName friendlyName:(NSString *)friendlyName;
/// @brief Creates a new device instance by copying another device's values.
///
/// @param device The device to copy values from.
///
/// @return A new IQDevice instance with all values copied.
- (instancetype)initWithDevice:(IQDevice *)device;
@end

View File

@@ -0,0 +1,6 @@
framework module ConnectIQ {
umbrella header "ConnectIQ.h"
export *
module * { export * }
}

View File

@@ -0,0 +1,237 @@
//
// ConnectIQ.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <ConnectIQ/IQConstants.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQApp.h>
// --------------------------------------------------------------------------------
#pragma mark - PUBLIC TYPES
// --------------------------------------------------------------------------------
/// @brief SendMessage progress callback block
///
/// @param sentBytes The number of bytes that have been successfully transferred
/// to the device so far for this connection.
/// @param totalBytes The total number of bytes to transfer for this connection.
typedef void (^IQSendMessageProgress)(uint32_t sentBytes, uint32_t totalBytes);
/// @brief SendMessage completion callback block
///
/// @param result The result of the SendMessage operation.
typedef void (^IQSendMessageCompletion)(IQSendMessageResult result);
/// @brief Conforming to the IQUIOverrideDelegate protocol indicates that an
/// object handles one or more events triggered by the ConnectIQ SDK that
/// require user input.
@protocol IQUIOverrideDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when an action has been requested that
/// requires Garmin Connect Mobile to be installed.
///
/// The receiver should choose whether or not to launch the Apple App
/// Store page for GCM, ideally by presenting the user with a choice.
///
/// If the receiver of this message decides to install GCM, it must call
/// showAppStoreForConnectMobile.
- (void)needsToInstallConnectMobile;
@end
/// @brief Conforming to the IQDeviceEventDelegate protocol indicates that an
/// object handles ConnectIQ device status events.
@protocol IQDeviceEventDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when an IQDevice's connection status has
/// changed.
///
/// @param device The IQDevice whose status changed.
/// @param status The new status of the device.
- (void)deviceStatusChanged:(IQDevice *)device status:(IQDeviceStatus)status;
@end
/// @brief Conforming to the IQAppMessageDelegate protocol indicates that an
/// object handles messages from ConnectIQ apps on compatible devices.
@protocol IQAppMessageDelegate <NSObject>
@optional
/// @brief Called by the ConnectIQ SDK when a message is received from a device.
///
/// @param message The message that was received.
/// @param app The device app that sent the message.
- (void)receivedMessage:(id)message fromApp:(IQApp *)app;
@end
// --------------------------------------------------------------------------------
#pragma mark - CLASS DEFINITION
// --------------------------------------------------------------------------------
/// @brief The root of the ConnectIQ SDK API.
@interface ConnectIQ : NSObject
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
// --------------------------------------------------------------------------------
#pragma mark - SINGLETON ACCESS
// --------------------------------------------------------------------------------
/// @brief Exposes the single static instance of the ConnectIQ class.
///
/// @return The single status instance of the ConnectIQ class.
+ (ConnectIQ *)sharedInstance;
// --------------------------------------------------------------------------------
#pragma mark - INITIALIZATION
// --------------------------------------------------------------------------------
/// @brief Initializes the ConnectIQ SDK with startup parameters necessary for
/// its operation.
///
/// @param urlScheme The URL scheme for this companion app. When Garmin Connect
/// Mobile is launched, it will return to the companion app by
/// launching a URL with this scheme.
/// @param delegate The delegate that the SDK will use for notifying the
/// companion app about events that require user input. If this
/// is nil, the SDK's default UI will be used.
- (void)initializeWithUrlScheme:(NSString *)urlScheme uiOverrideDelegate:(id<IQUIOverrideDelegate>)delegate;
// --------------------------------------------------------------------------------
#pragma mark - EXTERNAL LAUNCHING
// --------------------------------------------------------------------------------
/// @brief Launches the Apple App Store page for the Garmin Connect Mobile app.
/// The companion app should only call this in response to a
/// needsToInstallConnectMobile event that gets triggered on the
/// IQUIOverrideDelegate.
- (void)showAppStoreForConnectMobile;
/// @brief Launches Garmin Connect Mobile for the purpose of retrieving a list of
/// ConnectIQ-compatible devices.
///
/// Once the user has chosen which ConnectIQ devices to share with the
/// companion app, GCM will return those devices to the companion app by
/// opening a URL with the scheme registered in
/// initializeWithUrlScheme:uiOverrideDelegate:.
///
/// The companion app should handle this URL by passing it in to the
/// parseDeviceSelectionResponseFromURL: method to get the list of devices
/// that the user permitted the companion app to communicate with.
- (void)showConnectIQDeviceSelection;
/// @brief Parses a URL opened from Garmin Connect Mobile into a list of devices.
///
/// @param url The URL to parse.
///
/// @return An array of IQDevice objects representing the ConnectIQ-compatible
/// devices that the user allowed GCM to share with the companion app.
///
/// @seealso showConnectIQDeviceSelection
- (NSArray *)parseDeviceSelectionResponseFromURL:(NSURL *)url;
/// @brief Launches Garmin Connect Mobile and shows the ConnectIQ app store page
/// for the given app.
///
/// The companion app should call this if the user would like to manage
/// the app on the device, such as to install, upgrade, uninstall, or
/// modify settings.
///
/// @param app The app to show the ConnectIQ app store page for.
- (void)showConnectIQStoreForApp:(IQApp *)app;
// --------------------------------------------------------------------------------
#pragma mark - DEVICE MANAGEMENT
// --------------------------------------------------------------------------------
/// @brief Registers an object as a listener for ConnectIQ device status events.
///
/// A device may have multiple device event listeners if this method is
/// called more than once.
///
/// @param device A device to listen for status events from.
/// @param delegate The listener which will receive status events for this device.
- (void)registerForDeviceEvents:(IQDevice *)device delegate:(id<IQDeviceEventDelegate>)delegate;
/// @brief Unregisters a listener for a specific device.
///
/// @param device The device to unregister the listener for.
/// @param delegate The listener to remove from the device.
- (void)unregisterForDeviceEvents:(IQDevice *)device delegate:(id<IQDeviceEventDelegate>)delegate;
/// @brief Unregisters the specified listener from all devices for which it had
/// previously been registered.
///
/// @param delegate The listener to unregister.
- (void)unregisterForAllDeviceEvents:(id<IQDeviceEventDelegate>)delegate;
/// @brief Gets the current connection status of a device.
///
/// The device must have been registered for event notifications by
/// calling registerForDeviceEvents:delegate: or this method will return
/// IQDeviceStatus_InvalidDevice.
///
/// @param device The device to get the status for.
///
/// @return The device's current connection status.
- (IQDeviceStatus)getDeviceStatus:(IQDevice *)device;
// --------------------------------------------------------------------------------
#pragma mark - APP MANAGEMENT
// --------------------------------------------------------------------------------
/// @brief Begins getting the status of an app on a device. This method returns
/// immediately.
///
/// @param app The IQApp to get the status for.
/// @param completion The completion block that will be triggered when the device
/// status operation is complete.
- (void)getAppStatus:(IQApp *)app completion:(void(^)(IQAppStatus *appStatus))completion;
/// @brief Registers an object as a listener for ConnectIQ messages from an app
/// on a device.
///
/// An app may have multiple message listeners if this method is called
/// more than once.
///
/// @param app The app to listen for messages from.
/// @param delegate The listener which will receive messages for this app.
- (void)registerForAppMessages:(IQApp *)app delegate:(id<IQAppMessageDelegate>)delegate;
/// @brief Unregisters a listener for a specific app.
///
/// @param app The app to unregister a listener for.
/// @param delegate The listener to remove from the app.
- (void)unregisterForAppMessages:(IQApp *)app delegate:(id<IQAppMessageDelegate>)delegate;
/// @brief Unregisters all previously registered apps for a specific listener.
///
/// @param delegate The listener to unregister.
- (void)unregisterForAllAppMessages:(id<IQAppMessageDelegate>)delegate;
/// @brief Begins sending a message to an app. This method returns immediately.
///
/// @param message The message to send to the app. This message must be one of
/// the following types: NSString, NSNumber, NSNull, NSArray,
/// or NSDictionary. Arrays and dictionaries may be nested.
/// @param app The app to send the message to.
/// @param progress A progress block that will be triggered periodically
/// throughout the transfer. This is guaranteed to be triggered
/// at least once.
/// @param completion A completion block that will be triggered when the send
/// message operation is complete.
- (void)sendMessage:(id)message toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion;
/// @brief Sends an open app request message request to the device. This method returns immediately.
///
/// @param app The app to open.
/// @param completion A completion block that will be triggered when the send
/// message operation is complete.
- (void)openAppRequest:(IQApp *)app completion:(IQSendMessageCompletion)completion;
// TODO *** Holding off on documenting this until this method actually works.
- (void)sendImage:(NSData *)bitmap toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion;
@end

View File

@@ -0,0 +1,34 @@
//
// IQApp.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <ConnectIQ/IQDevice.h>
#import <ConnectIQ/IQAppStatus.h>
/// @brief Represents an instance of a ConnectIQ app that is installed on a
/// Garmin device.
@interface IQApp : NSObject <NSSecureCoding>
/// @brief The unique identifier for this app.
@property (nonatomic, readonly) NSUUID *uuid;
/// @brief The unique identifier for this app in the store.
@property (nonatomic, readonly) NSUUID *storeUuid;
/// @brief The device that this app is installed on.
@property (nonatomic, readonly) IQDevice *device;
/// @brief Creates a new app instance.
///
/// @param uuid The UUID of the app to create.
/// @param storeUuid The store UUID of the app to create.
/// @param device The device the app to create is installed on.
///
/// @return A new IQApp instance with the appropriate values set.
+ (IQApp *)appWithUUID:(NSUUID *)uuid storeUuid:(NSUUID *)storeUuid device:(IQDevice *)device;
@end

View File

@@ -0,0 +1,20 @@
//
// IQAppStatus.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
/// @brief Represents the current status of an app on a Garmin device.
@interface IQAppStatus : NSObject
/// @brief YES if the app is installed on the device, NO if it isn't.
@property (nonatomic, readonly) BOOL isInstalled;
/// @brief The version of the app that is currently installed on the device. If
/// the app is not installed, this value is unused.
@property (nonatomic, readonly) uint16_t version;
@end

View File

@@ -0,0 +1,66 @@
//
// IQConstants.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
/// @brief The current version of the ConnectIQ SDK.
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.
IQSendMessageResult_Success,
/// @brief The message failed to send due to an unknown error.
IQSendMessageResult_Failure_Unknown,
/// @brief The message failed to send. There was an error within the SDK or
/// on the device.
IQSendMessageResult_Failure_InternalError,
/// @brief The message failed to send. The device is not available right now.
IQSendMessageResult_Failure_DeviceNotAvailable,
/// @brief The message failed to send. The app is not installed on the
/// device.
IQSendMessageResult_Failure_AppNotFound,
/// @brief The message failed to send. The device is busy and cannot receive
/// the message right now.
IQSendMessageResult_Failure_DeviceIsBusy,
/// @brief The message failed to send. The message contained an unsupported
/// type.
IQSendMessageResult_Failure_UnsupportedType,
/// @brief The message failed to send. The device does not have enough memory
/// to receive the message.
IQSendMessageResult_Failure_InsufficientMemory,
/// @brief The message failed to send. The connection timed out while sending
/// the message.
IQSendMessageResult_Failure_Timeout,
/// @brief The message failed to send and was retried, but could not complete
/// after a number of tries.
IQSendMessageResult_Failure_MaxRetries,
/// @brief The message was received by the device but it chose not to display
/// a message prompt, ignoring the message.
IQSendMessageResult_Failure_PromptNotDisplayed,
/// @brief The message was received by the device but the app to open
/// was already running on the device.
IQSendMessageResult_Failure_AppAlreadyRunning,
};
NSString *NSStringFromSendMessageResult(IQSendMessageResult value);

View File

@@ -0,0 +1,61 @@
//
// IQDevice.h
// ConnectIQ
//
// Copyright (c) 2014 Garmin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreBluetooth/CoreBluetooth.h>
/// @brief The current status of an IQDevice.
typedef NS_ENUM(NSInteger, IQDeviceStatus){
/// @brief No device with this UUID has been registered for status events
/// the SDK.
IQDeviceStatus_InvalidDevice,
/// @brief Bluetooth is either powered off or resetting.
IQDeviceStatus_BluetoothNotReady,
/// @brief This device could not be found by iOS. Perhaps the user removed
/// the device?
IQDeviceStatus_NotFound,
/// @brief The device is recognized by iOS, but it is not currently
/// connected.
IQDeviceStatus_NotConnected,
/// @brief The device is connected and ready to communicate.
IQDeviceStatus_Connected,
};
/// @brief Represents a ConnectIQ-compatible Garmin device.
@interface IQDevice : NSObject <NSSecureCoding>
/// @brief The unique identifier for this device.
@property (nonatomic, readonly) NSUUID *uuid;
/// @brief The model name of the device provided by Garmin Connect Mobile.
@property (nonatomic, readonly) NSString *modelName;
/// @brief The friendly name of the device, set by the user and provided by
/// Garmin Connect Mobile.
@property (nonatomic, readonly) NSString *friendlyName;
/// @brief Creates a new device instance.
///
/// @param uuid The UUID of the device to create.
/// @param modelName The model name of the device to create.
/// @param friendlyName The friendly name of the device to create.
///
/// @return A new IQDevice instance with the appropriate values set.
+ (IQDevice *)deviceWithId:(NSUUID *)uuid modelName:(NSString *)modelName friendlyName:(NSString *)friendlyName;
/// @brief Creates a new device instance by copying another device's values.
///
/// @param device The device to copy values from.
///
/// @return A new IQDevice instance with all values copied.
- (instancetype)initWithDevice:(IQDevice *)device;
@end

View File

@@ -0,0 +1,6 @@
framework module ConnectIQ {
umbrella header "ConnectIQ.h"
export *
module * { export * }
}

View File

@@ -0,0 +1,690 @@
<?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>files</key>
<dict>
<key>Headers/ConnectIQ.h</key>
<data>
yih4e2KjbC/GqavxdCZ3xQ4mHmA=
</data>
<key>Headers/IQApp.h</key>
<data>
NDlj8k5C84UPFmD+qEMz2WcZloY=
</data>
<key>Headers/IQAppStatus.h</key>
<data>
WnybOSMMVqCKGns0rEz9C3EfQOg=
</data>
<key>Headers/IQConstants.h</key>
<data>
z5FAXaGG7RDVUTai1Vvqs33zc98=
</data>
<key>Headers/IQDevice.h</key>
<data>
bl545C/cu0mw2KlRmzojKmHPom0=
</data>
<key>Info.plist</key>
<data>
YUOCJU/YBLc4CRWV1z8JHDjCx8M=
</data>
<key>Modules/module.modulemap</key>
<data>
eEyhq/G44PBlD3KiydN8B1vbfCU=
</data>
<key>ar.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
1CDTE/Qaf1Z/HuhSt9CUnwitv4M=
</data>
<key>optional</key>
<true/>
</dict>
<key>cs.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
/jkyQ77G2Xd9wy6QptBphGNbtCY=
</data>
<key>optional</key>
<true/>
</dict>
<key>da.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
FYi0wjOu/Hw//Qe96yqxSb9yClc=
</data>
<key>optional</key>
<true/>
</dict>
<key>de.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
MitzVbGhXhTLjPvw9vuWcQQa50Q=
</data>
<key>optional</key>
<true/>
</dict>
<key>el.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
n82gLcjjjHszaroTFeJUvSrrc0o=
</data>
<key>optional</key>
<true/>
</dict>
<key>en.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
hcxxLyrTI+aElXlPc5dwr7jdqwc=
</data>
<key>optional</key>
<true/>
</dict>
<key>es.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
ff8DVQtNhO8pF7HFnXjh8foHXbo=
</data>
<key>optional</key>
<true/>
</dict>
<key>fi.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
R9cr8yqJmu91Xz31tGyprGR3t/s=
</data>
<key>optional</key>
<true/>
</dict>
<key>fr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
PwFmqFeRTcjdHmkXYrPzNVYoe5o=
</data>
<key>optional</key>
<true/>
</dict>
<key>he.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
/jPUgFtYbbyELG5DZ3Sjoi/If9w=
</data>
<key>optional</key>
<true/>
</dict>
<key>hr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
H2GtdTeORRPCnogvpWY69Dg9uME=
</data>
<key>optional</key>
<true/>
</dict>
<key>hu.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
QIimMhNyYmqp4ZW01hfj554WAMg=
</data>
<key>optional</key>
<true/>
</dict>
<key>id.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
2/54a0gkcVuk1I3m4ulDAXOLL5o=
</data>
<key>optional</key>
<true/>
</dict>
<key>it.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
hNIKYIcP/87e6g7AUP+zKRtJ52M=
</data>
<key>optional</key>
<true/>
</dict>
<key>ja.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
0iU2PbJ/3xgXMZ20ffsqaWpxKWc=
</data>
<key>optional</key>
<true/>
</dict>
<key>ko.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
ERH8oHR9H9jMHjP0EAgaTtVhnX4=
</data>
<key>optional</key>
<true/>
</dict>
<key>ms.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
DkbQA2+v/qSgQWma/fg3647Bkqs=
</data>
<key>optional</key>
<true/>
</dict>
<key>nb.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
T3zFOvuvrJt5Vnmfqt2Mf/du8as=
</data>
<key>optional</key>
<true/>
</dict>
<key>nl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
t9PD5JEbfoSLaQ7f8M2cLghOReI=
</data>
<key>optional</key>
<true/>
</dict>
<key>pl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
wfTnhBccAm6JfwH/JkZKNRKTUAU=
</data>
<key>optional</key>
<true/>
</dict>
<key>pt-PT.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
7yXkcZEpJ4UiRHAzhK+vw/Q857Y=
</data>
<key>optional</key>
<true/>
</dict>
<key>pt.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
tZPncsQs8weCDJa03AKLpijXSUw=
</data>
<key>optional</key>
<true/>
</dict>
<key>ru.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
Ct+byJ3rWeigvg0q6rB/kQaR+yE=
</data>
<key>optional</key>
<true/>
</dict>
<key>sk.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
1yTM1nAsAYpSH7NrYU6/nFlqk5E=
</data>
<key>optional</key>
<true/>
</dict>
<key>sv.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
i84z6vuHLrFpO0qZ2V0zYjixIws=
</data>
<key>optional</key>
<true/>
</dict>
<key>th.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
oW5npy+pDJM1wUOgTkw9FY1Ave4=
</data>
<key>optional</key>
<true/>
</dict>
<key>tr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
76rD7PLrQMiT5YTlI8IjEFgsiU4=
</data>
<key>optional</key>
<true/>
</dict>
<key>zh-Hans.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
DNlMxUKypOvKArzi7ioJUiFfFXg=
</data>
<key>optional</key>
<true/>
</dict>
<key>zh-Hant.lproj/IQLocalizable.strings</key>
<dict>
<key>hash</key>
<data>
U6I+uL07KIv2b77w0c0glaJlhMg=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>files2</key>
<dict>
<key>Headers/ConnectIQ.h</key>
<dict>
<key>hash2</key>
<data>
kAenemss8n98vVLi54JqBUtGwaL1/i+HSejFBZgawHA=
</data>
</dict>
<key>Headers/IQApp.h</key>
<dict>
<key>hash2</key>
<data>
bSRRooQ0FKFr3BgrFolAnkU402889YFHrH+6EEca3cg=
</data>
</dict>
<key>Headers/IQAppStatus.h</key>
<dict>
<key>hash2</key>
<data>
tg9qNXtTmFUvNoJtq7O/aEXBNngcGENVRhvxLJ8C/xo=
</data>
</dict>
<key>Headers/IQConstants.h</key>
<dict>
<key>hash2</key>
<data>
qVLQDlPhVsyAAQ/LCGOCdEOUaabcgwTHijMQiuWbAXM=
</data>
</dict>
<key>Headers/IQDevice.h</key>
<dict>
<key>hash2</key>
<data>
4N4+64IHeb9iBwyziNxo0SMuCM75ez9Em4UfmtgtTHA=
</data>
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash2</key>
<data>
6a9Ehz1N4Sm/6qBlTfQpHUqRlpzQr2JMF26AfW4xUtY=
</data>
</dict>
<key>ar.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
CWyQue2TCS0heGoGbN4ffetM2QZSk7lqgc2Wer2fgTg=
</data>
<key>optional</key>
<true/>
</dict>
<key>cs.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
1mSn+EYeYcTV1dArgHz7PkmZrV6mHWfnuG5aDa6Y87E=
</data>
<key>optional</key>
<true/>
</dict>
<key>da.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
yLkvGzd+smkOjicvW/+Oe6wGGyirHS+/YfjuSzyVoMM=
</data>
<key>optional</key>
<true/>
</dict>
<key>de.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
DFHv7MWBJmyAkOj993NmSFKbS2t8/vtSev603sBUtjI=
</data>
<key>optional</key>
<true/>
</dict>
<key>el.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
i4FAK4mi+SgS6oZv8zM74kRZToakn49E8GD7FcJBLoQ=
</data>
<key>optional</key>
<true/>
</dict>
<key>en.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
vmBi9DFJzFcG0OwaWKSDjgklNi407U8u2pz3EnEENN4=
</data>
<key>optional</key>
<true/>
</dict>
<key>es.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
z6RjynaWjrRKHmv4sLirc4eXwKOtQdylzj5+TiHpaTc=
</data>
<key>optional</key>
<true/>
</dict>
<key>fi.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
6BI0iPRVWaP63/XFdjLBz6z7DsvvuOoaEAS+mYzrx8E=
</data>
<key>optional</key>
<true/>
</dict>
<key>fr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
geXjZzXre2CRiALecPFBGz4JSJA7MbkDnB4qrEMKNwk=
</data>
<key>optional</key>
<true/>
</dict>
<key>he.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
47mcrSx16SFjWPIiN7guCAG0va8NiJ6I5s45tSVEHlY=
</data>
<key>optional</key>
<true/>
</dict>
<key>hr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
4bQvygPax6VBpoFlyS5by1N6otnDMliHu+bWsDaWSQc=
</data>
<key>optional</key>
<true/>
</dict>
<key>hu.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
0m2fIyz26vh3RlUqqSXvoNTLovxIixrUyJoL/IDSoVk=
</data>
<key>optional</key>
<true/>
</dict>
<key>id.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
hQf9SrG7d8aVWsXIbCIxkKEJjbnW1FLvS+MbOI1VtHQ=
</data>
<key>optional</key>
<true/>
</dict>
<key>it.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
XAbEWX6cicDxGzxGgSx3DhF4rjUHX4LV+dO0X3rUEqc=
</data>
<key>optional</key>
<true/>
</dict>
<key>ja.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
YOqOvZq0WEN4DCoSwc0lcTSRc4C812DqzjIsaid1SHg=
</data>
<key>optional</key>
<true/>
</dict>
<key>ko.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
WJyaRCWn1KqmcDeajRnC41MdNrlpbI+1JbPkXhbKrKY=
</data>
<key>optional</key>
<true/>
</dict>
<key>ms.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
gztYxa4Hn58HkKmcUIZI1jCz44IETZeMsqrpZSKxJvc=
</data>
<key>optional</key>
<true/>
</dict>
<key>nb.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
Oy6UOwSN+/xPIrthAEvzV8PEn27kfsHpMMLU5w1rww0=
</data>
<key>optional</key>
<true/>
</dict>
<key>nl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
XbijhSaZgmsW59Vo9ZEbhDuUQH18fHizWKzsLosiM0o=
</data>
<key>optional</key>
<true/>
</dict>
<key>pl.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
MQYgqA+Hl03JJ261Q19K5Lt64kSTBP+pfpD+jOVE3AU=
</data>
<key>optional</key>
<true/>
</dict>
<key>pt-PT.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
seINq3QazVameLGOW+pIAtGWLa6NDl5XWRtqnObxywo=
</data>
<key>optional</key>
<true/>
</dict>
<key>pt.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
GnzdqEuQwORzVCih99bwr79UHIyzXm+zuN5b9m1NrKY=
</data>
<key>optional</key>
<true/>
</dict>
<key>ru.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
yCN9s/JXYqsMNZ1icaH4hUwyMQ1NtxOmV6sIAtRd9pc=
</data>
<key>optional</key>
<true/>
</dict>
<key>sk.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
OFHDtkGLLSfTuSx8GOTycKDCKOKmX0Wh2QG1CHhRz3I=
</data>
<key>optional</key>
<true/>
</dict>
<key>sv.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
a3Gk+3USOT5uundOXrNCgnbcD0rDo2lkCO7b7+zg2Is=
</data>
<key>optional</key>
<true/>
</dict>
<key>th.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
qxGqAqRMwm0/dMd0W7DUsvbWb9x65GT+3d1zOQEql1w=
</data>
<key>optional</key>
<true/>
</dict>
<key>tr.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
Y6TnKQmqO/TAx+0KYqRRG6UOz7I/gM1YmbUwgSfZSQU=
</data>
<key>optional</key>
<true/>
</dict>
<key>zh-Hans.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
BI3m4MTMHuPI4sQKPGeQnxIlBJJrXwgVuR7Ho1Q5o6Y=
</data>
<key>optional</key>
<true/>
</dict>
<key>zh-Hant.lproj/IQLocalizable.strings</key>
<dict>
<key>hash2</key>
<data>
14dQnjX3pEz2Um4J/fOdQDRe/LSuXxqkg1hEkO8E5ys=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

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