Compare commits

...

647 Commits
0.4.0 ... ant

Author SHA1 Message Date
Roberto Viola
e78830c5b5 added ant setting and linked to the cadence value on the homeform 2021-02-03 11:06:59 +01:00
Roberto Viola
31d9af07a5 compilation is ok now :) 2021-02-03 10:36:10 +01:00
Roberto Viola
1c388aa3ca added android_antlib_4-14-0.jar 2021-02-03 09:32:50 +01:00
Roberto Viola
030d33e8b6 porting other stuff about ANT+ 2021-02-03 08:40:25 +01:00
Roberto Viola
fdff25facc starting working on ANT+ 2021-02-03 08:29:11 +01:00
Roberto Viola
ca7d3f2d3a inspirebike added some notification 2021-02-02 08:52:54 +01:00
Roberto Viola
c110e899c0 start and pause text disabled if the top bar is disabled 2021-02-02 08:10:28 +01:00
Roberto Viola
7e599050db disabled rfcomm security on toorxtreadmill 2021-02-01 09:57:50 +01:00
Roberto Viola
37272be0b9 top bar text fixed when top bar is disabled 2021-02-01 08:28:02 +01:00
Roberto Viola
e1b8e59d5e compatibility added with RGT Cycling 2021-01-31 15:32:49 +01:00
Roberto Viola
784bb15f3c change behaviour from pause-stop to start-pause on UI 2021-01-31 06:56:58 +01:00
Roberto Viola
4e6e4dbaae ftmsbike trying to change the 16 bit uuid service to a 128bit one for
the schwinn bike
2021-01-30 12:37:11 +01:00
Roberto Viola
932699df6e reverting the heartratebelt disconnection modification 2021-01-30 12:36:29 +01:00
Roberto Viola
bede6301e9 wheel ratio setting on proformbike added 2021-01-29 16:14:24 +01:00
Roberto Viola
e597e13f8c fixing filter device 2021-01-29 10:39:35 +01:00
Roberto Viola
bcadec84d7 inspirebike added, trying to fixing disconnection from the
heartratebelt, added 5 seconds to delay to schwinnbike
2021-01-29 10:28:00 +01:00
Roberto Viola
d65b4286e8 added filter on bad data on proformtreadmill 2021-01-28 11:14:01 +01:00
Roberto Viola
7cca39e2b4 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-28 08:55:21 +01:00
Roberto Viola
95c30726f4 fixed calories on proform devices 2021-01-28 08:52:55 +01:00
Roberto Viola
7a55640fdc toorxtreadmill connection fixed 2021-01-27 21:07:38 +01:00
Roberto Viola
56e09db023 avoiding calculate average,max and min during pause 2021-01-27 18:30:55 +01:00
Roberto Viola
e142b67368 watt avg and max on the second line of the tile 2021-01-27 14:38:37 +01:00
Roberto Viola
089fd43b5d stop button bliniking when in pause 2021-01-27 11:40:02 +01:00
Roberto Viola
771f1c4b9c managing the pause event inside the machineries 2021-01-27 10:08:06 +01:00
Roberto Viola
480115bef1 schwinnIC4bike added 2021-01-27 08:38:56 +01:00
Roberto Viola
37aeed51a6 some stats comes very odd after the clearStats 2021-01-27 05:25:02 +01:00
Roberto Viola
aff43e083a added version to the UI 2021-01-26 10:19:19 +01:00
Roberto Viola
3291faf003 redraw the start and stop button only if the top bar is enabled 2021-01-26 09:37:42 +01:00
Roberto Viola
770ba1bc75 added an option to disable the wakelock for older android devices
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-26 08:29:12 +01:00
Roberto Viola
e584bc4f1e added some debug print to start and stop button
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-26 06:54:56 +01:00
Roberto Viola
f203da8690 added setting for trx route key
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 17:35:21 +01:00
Roberto Viola
9e54e85173 Delete build-qdomyos-zwift-Desktop_Qt_5_15_1_MinGW_32_bit-Debug directory 2021-01-25 16:52:48 +01:00
Roberto Viola
8ca2a4fc07 Update issue templates 2021-01-25 16:51:52 +01:00
Roberto Viola
67ef89463d distance on console settings, managed also on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 16:47:09 +01:00
Roberto Viola
b91e9c6f69 fit file saved when the user press stop
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 14:44:34 +01:00
Roberto Viola
a7b45a1bff start, pause and stop managed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 14:42:34 +01:00
Roberto Viola
370f79b6f0 virtualbike resistance controlled by zwift improved
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 09:43:55 +01:00
Roberto Viola
eb23778142 watt formula improved for the domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 09:24:58 +01:00
Roberto Viola
cc88b7b8eb added an option to disable the distance on the console of the
domyostreadmill

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-25 08:30:19 +01:00
Roberto Viola
b11899b6ce Update README.md 2021-01-25 08:16:47 +01:00
Roberto Viola
d989e5e00d fixed casting issues on proformbike, proformtreadmill and yesoulbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-24 09:54:19 +01:00
Roberto Viola
e31e9ce5a5 fixed iconsole+ name
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-23 11:24:42 +01:00
Roberto Viola
95b705a37a i-console+ compatibility added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-23 06:50:13 +01:00
Roberto Viola
c1c67585ba fixed resistance values on proformbike and filtered out some strange
values

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-23 06:44:51 +01:00
Roberto Viola
da2e6d80ba fixed casting on cadence on display on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-22 16:17:28 +01:00
Roberto Viola
23c9ae490c JK fitness treadmill compatibility added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-22 14:27:10 +01:00
Roberto Viola
ad123cdfc1 proformbike filter on watts
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-22 10:30:38 +01:00
Roberto Viola
174f5bfefa elapsed time fixed on flywheelbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-21 16:15:20 +01:00
Roberto Viola
77f8c48040 speed changed in the proformbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-21 11:36:26 +01:00
Roberto Viola
ed67fbadc6 proformtreadmill added (just the protocol)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-21 11:34:54 +01:00
Roberto Viola
b2c6356685 version 2.2.5
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-20 09:31:55 +01:00
Roberto Viola
2624c61775 workaround for flywheelbike (elapsed time and jouls)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-20 09:17:33 +01:00
Roberto Viola
7fbd678957 trying to fix notification error on yesoulbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-20 09:08:50 +01:00
Roberto Viola
399116476d trying to stabilize proformbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-19 20:39:04 +01:00
Roberto Viola
8aca057474 flywheelbike casting fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-19 17:30:51 +01:00
Roberto Viola
53d375def2 telink multiplier on display added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-19 16:06:46 +01:00
Roberto Viola
00062428de first proformbike version
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-19 14:17:14 +01:00
Roberto Viola
37b2e13b0c fixed casting issue on cadence and heart rate 2021-01-19 07:08:53 +01:00
Roberto Viola
23089c4b1f fixing flywheelbike name
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-17 21:51:36 +01:00
Roberto Viola
4d475b13e3 flywheel first implementation
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-17 19:12:47 +01:00
Roberto Viola
73f8de5037 toorx 3.0 compatibility added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-17 08:42:56 +01:00
Roberto Viola
cf0bf8a4b3 bluetooth connection improved; timeout on heartratebelt added; trying to
fix some cadence issue on iOS

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-15 08:50:03 +01:00
Roberto Viola
275deb5542 discovery mode only for LE
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-14 16:13:53 +01:00
Roberto Viola
632e817e1d fixed strava UI message
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-14 14:54:17 +01:00
Roberto Viola
25adc74a61 Update main.yml 2021-01-14 14:41:39 +01:00
Roberto Viola
7a3e1c9fb6 Merge branch 'strava_autoupload' 2021-01-14 14:34:07 +01:00
Roberto Viola
0fd2370d1b strava popup fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-14 14:30:11 +01:00
Roberto Viola
df4c4977de Merge branch 'strava_autoupload' of https://github.com/cagnulein/qdomyos-zwift into strava_autoupload 2021-01-14 14:25:43 +01:00
Roberto Viola
f5dcec7c34 avg watt fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-14 14:25:34 +01:00
Roberto Viola
338f63aa40 removed entitlement on iOS that cause issue from yesterday 2021-01-14 11:35:50 +01:00
Roberto Viola
d475877d6b Merge branch 'strava_autoupload' of https://github.com/cagnulein/qdomyos-zwift into strava_autoupload 2021-01-13 20:55:41 +01:00
Roberto Viola
1d39c434a7 first android version with auto upload to strava
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 20:49:24 +01:00
Roberto Viola
21078aa9b2 some strava UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 19:39:40 +01:00
Roberto Viola
efc8e71ff7 ignore secret.h 2021-01-13 18:47:40 +01:00
Roberto Viola
4acb97c93c added secret.h 2021-01-13 18:40:50 +01:00
Roberto Viola
4c91fd95d0 Merge branch 'strava_autoupload' of https://github.com/cagnulein/qdomyos-zwift into strava_autoupload 2021-01-13 18:27:01 +01:00
Roberto Viola
c50eb06abd Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-13 18:26:24 +01:00
Roberto Viola
eb909723de removed stupid control on packet received
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 18:25:57 +01:00
Roberto Viola
f648c3ae91 removed stupid control on packet received
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 18:25:27 +01:00
Roberto Viola
8148376558 ios build fixed 2021-01-13 15:49:25 +01:00
Roberto Viola
2476f77c44 ios build fix 2021-01-13 14:14:29 +01:00
Roberto Viola
9c9972adde altitude fixed in the FIT file
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 11:52:54 +01:00
Roberto Viola
8d36b32aea Merge branch 'master' into strava_autoupload 2021-01-13 11:42:38 +01:00
Roberto Viola
bcc831cac8 android openssl added 2021-01-13 11:31:30 +01:00
Roberto Viola
c8970442af android 2.1.1 version
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 10:26:32 +01:00
Roberto Viola
d9c2d7217e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-13 08:24:51 +01:00
Roberto Viola
468a543c90 ios build fixed 2021-01-13 08:24:26 +01:00
Roberto Viola
2762452e7b fit file now compatibile with garmin connect
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-13 08:15:08 +01:00
Roberto Viola
c03996560d fixed watt overflow on yesoulbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-12 16:15:46 +01:00
Roberto Viola
43ed26e822 removed filter about same packets received: it causes miss data on the
stats

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-12 16:01:32 +01:00
Roberto Viola
78356ecf4b better management of reconnect event for all devices
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-12 11:46:09 +01:00
Roberto Viola
136896ea53 fassitreadmill filter on wrong inclination numbers
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-12 08:15:59 +01:00
Roberto Viola
6a8512e623 fassitreadmill crash fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-11 16:18:02 +01:00
Roberto Viola
20dad1b0f1 added metric class. I need to do some test about this
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-11 11:48:08 +01:00
Roberto Viola
062f405601 changed to lighter icons on apple watch 2021-01-10 22:21:07 +01:00
Roberto Viola
5339afa449 iOS project updated with new devices 2021-01-10 16:14:25 +01:00
Roberto Viola
d7f7dc9de6 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-10 16:03:12 +01:00
Roberto Viola
073772d14c trying to fix crash when the user select a wrong heart rate belt
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-10 08:43:21 +01:00
Roberto Viola
b4ea3a2fa6 cadence bluetooth values fixed if the cadence is 0
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-10 08:37:27 +01:00
Roberto Viola
93200fc9a8 added resistance to yesoulbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-10 08:31:48 +01:00
Roberto Viola
f964763bc1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-09 19:16:14 +01:00
Roberto Viola
374fef75e2 yesoulbike first commit
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-09 19:15:27 +01:00
Roberto Viola
afbb8db8f4 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift
# Conflicts:
#	src/main.cpp
2021-01-09 19:10:36 +01:00
Roberto Viola
99cb6315ec trying to understand strange behaviout on fassitreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-09 17:05:34 +01:00
Roberto Viola
9dfd192e15 fassitreadmill UUID fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-09 13:57:52 +01:00
Roberto Viola
13a4f65ccb fassi treadmill first commit
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-09 11:13:44 +01:00
Roberto Viola
2b10dd445e trying toggling the update of the iOS services 2021-01-09 07:43:58 +01:00
Roberto Viola
bd8b7462f9 enabling by default the iOS workaround, better than nothing 2021-01-08 21:55:40 +01:00
Roberto Viola
92cc332008 trying again a fix on iOS workaround 2021-01-08 21:49:06 +01:00
Roberto Viola
a03d1bf690 very dirty strava upload implementation, but it works!
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-08 16:32:46 +01:00
Roberto Viola
8310aa2017 crash fixed on iOS workaround 2021-01-08 08:46:49 +01:00
Roberto Viola
881bc6e9a5 add cadence to iOS workaround 2021-01-07 21:30:31 +01:00
Roberto Viola
2441d2908a working again on iOS workaround. Almost done
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 17:38:03 +01:00
Roberto Viola
bf4ab9571d ok hold on this, i have to fix the cadence 0 issue
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 16:44:13 +01:00
Roberto Viola
30921940e6 adding strava auth
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 16:05:07 +01:00
Roberto Viola
dcb4d3971d heart rate workaround is working! 2021-01-07 15:50:24 +01:00
Roberto Viola
df0a0c98d2 first try to ios cadence 0 workaround 2021-01-07 11:18:02 +01:00
Roberto Viola
78ca3c35f3 ble ios workaround starts from here 2021-01-07 09:17:53 +01:00
Roberto Viola
3618f5c986 preparing the way for the iOS workaround for cadence 0 issue
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 09:04:29 +01:00
Roberto Viola
4bdcf9a5fd avgpelotonresistance, avgresistance, maxresistance and
maxpelotonresistance added

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 08:51:15 +01:00
Roberto Viola
bfe4c450c4 domyostreadmill console sidebar buttons managed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-07 08:17:03 +01:00
Roberto Viola
094ba4a0f7 added help label
Signed-off-by: Roberto Viola <roberto.viola83@gmail.com>
2021-01-06 12:16:46 +01:00
Roberto Viola
b5c7846550 watt issue on FIT
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-05 20:08:32 +01:00
Roberto Viola
83889cf0ae secret key added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-05 20:07:30 +01:00
Roberto Viola
045d3d3336 watt fixed on fit export
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-05 19:52:21 +01:00
Roberto Viola
ac937f6f16 networkauth is better :)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-05 19:49:53 +01:00
Roberto Viola
6f49d0e490 playing with qwebview
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-05 09:50:53 +01:00
Roberto Viola
e309c39f93 fixed workout type on apple watch 2021-01-05 08:51:31 +01:00
Roberto Viola
f4e1d61980 fixed float accuracy on domyos treadmill buttons events 2021-01-05 08:50:57 +01:00
Roberto Viola
59344f74a8 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-04 17:38:27 +01:00
Roberto Viola
986d9a7d55 trying to fixing layout issue on rotation
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-04 17:37:47 +01:00
Roberto Viola
2e26d40c47 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-04 16:13:07 +01:00
Roberto Viola
8f23c6a471 layout fixed when the user changes the orientation
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-04 15:36:32 +01:00
Roberto Viola
45c1d6ff0a double tiles fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-04 15:26:35 +01:00
Roberto Viola
c3d6affd93 hiding toolbar when the tiles scrolls
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-04 15:10:37 +01:00
Roberto Viola
0f6646321a domyostreadmill buttons managed and option added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-04 15:02:34 +01:00
Roberto Viola
7de5bf533f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-03 11:57:32 +01:00
Roberto Viola
b608755230 fixed viewport on settings page
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-03 11:55:22 +01:00
Roberto Viola
c484ac50f8 add a topBar setting to hide it
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-03 11:26:08 +01:00
Roberto Viola
625d022ca6 when the heartRate belt disconnects it doesn't have to stop the
connection to the machinery
2021-01-03 08:30:42 +01:00
Roberto Viola
532420bb5b apple watch disclaimer on the settings page 2021-01-03 08:21:42 +01:00
Roberto Viola
e627cae245 cadence label fixed 2021-01-03 08:02:45 +01:00
Roberto Viola
32a4609740 virtual_device_enabled setting added to debug issue on some android
devices

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 21:42:53 +01:00
Roberto Viola
b09299c23d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-02 18:30:57 +01:00
Roberto Viola
671c27f7ba ios 1.11.0 2021-01-02 18:30:43 +01:00
Roberto Viola
4196b99b8c secondLine added to QML for FTP %
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 18:27:17 +01:00
Roberto Viola
27858ccc95 android icons 2021-01-02 17:24:07 +01:00
Roberto Viola
1fcec6a9e1 version 1.11.0 on android
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 12:42:58 +01:00
Roberto Viola
dc5159e608 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-01-02 12:29:18 +01:00
Roberto Viola
ae73026ee0 elliptical files added to iOS build 2021-01-02 12:29:01 +01:00
Roberto Viola
5401d84c2a ftp tile added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 12:26:48 +01:00
Roberto Viola
d99098cf0f refresh_bluetooth_devices_clicked tested on real android
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 11:34:49 +01:00
Roberto Viola
4cb9e434d8 semaphore added to bluetooth discovery process on settings page
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-02 10:03:14 +01:00
Roberto Viola
1302ecf56e elliptical experimental support 2021-01-02 08:24:56 +01:00
Roberto Viola
36c3f039ef refresh bluetooth devices added to the setting page 2021-01-02 06:59:45 +01:00
Roberto Viola
e38f0073a1 ignoring qt user file 2021-01-02 06:57:03 +01:00
Roberto Viola
4200cea55a fix typo on running cadence sensor
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-01 14:06:29 +01:00
Roberto Viola
36ae5b1732 running speed and cadence sensor support added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2021-01-01 14:00:22 +01:00
Roberto Viola
9a19203426 ios build fixed 2020-12-31 12:53:37 +01:00
Roberto Viola
4111c5af2b combobox added to QML to heartRate belt setting
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-31 12:24:15 +01:00
Roberto Viola
f937565ebd text field fixed on heart rate belt setting
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-30 19:29:27 +01:00
Roberto Viola
b668f0e1e5 version 1.9.0
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-30 19:28:06 +01:00
Roberto Viola
89d5154d26 fixed concurrent connection on heartrate and machine on android
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-30 19:26:27 +01:00
Roberto Viola
d6c9e84fe9 heart rate belt supported! need more test of course :) 2020-12-30 17:00:04 +01:00
Roberto Viola
4eb15236f2 heartratebelt template added 2020-12-30 13:47:07 +01:00
Roberto Viola
4e4e551f59 fixed build on older qt version
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-30 11:53:53 +01:00
Roberto Viola
8296c1f380 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-30 11:42:24 +01:00
Roberto Viola
e27b1529d1 iOS: apple watch app open automatically when the app opens on the phone 2020-12-30 11:42:10 +01:00
Roberto Viola
afc7cf9cc9 added deviceUpdated event in order to catch the HRM devices
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-30 11:29:33 +01:00
Roberto Viola
cebdd8120a fixed services list on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-29 10:11:35 +01:00
Roberto Viola
a4524a60ad fixed math in wheel revs
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-29 10:04:18 +01:00
Roberto Viola
2b23478216 trying wheel revs (NOT TESTED YET)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-29 09:46:51 +01:00
Roberto Viola
c91b87d9cf added -service-changed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-28 21:49:50 +01:00
Roberto Viola
ce5e99f2c8 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-28 12:24:38 +01:00
Roberto Viola
283d6eada2 ios build improvement (remember always to revert xcode project after building from qtcreator) 2020-12-28 12:21:14 +01:00
Roberto Viola
6d48e05927 fixed init bike_power_sensor
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-28 10:08:20 +01:00
Roberto Viola
789d8f9c12 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-28 10:00:42 +01:00
Roberto Viola
bd40dc2a78 -bike-power-sensor added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-28 10:00:12 +01:00
Roberto Viola
106b648273 added battery service setting to QML 2020-12-27 17:56:48 +01:00
Roberto Viola
3afab888e5 cadence sensor on domyosbike fixed
Signed-off-by: Roberto Viola <roberto.viola83@gmail.com>
2020-12-27 16:20:59 +01:00
Roberto Viola
eff45e53d0 fixed typo on merging
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-27 12:13:38 +01:00
Roberto Viola
f3352edf88 Merge branch 'applewatch' of https://github.com/cagnulein/qdomyos-zwift into applewatch
# Conflicts:
#	src/ios/Info.plist
#	src/main.cpp
#	src/qdomyos-zwift.pro
#	src/qfit.cpp
2020-12-27 12:10:00 +01:00
Roberto Viola
27b0352e45 fix typo
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-27 11:56:46 +01:00
Roberto Viola
0e9dee1b03 added -battery_service and -bluetooth_relaxed options
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-27 11:48:41 +01:00
Roberto Viola
fa3d1c425a 1.8.5 android version released
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-26 17:52:57 +01:00
Roberto Viola
5ec0133a35 added services terminator to virtualbike and virtualtreadmill for
watched compatibility

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-26 16:12:33 +01:00
Roberto Viola
a969fc277d -bike-cadence-sensor added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-26 14:48:12 +01:00
Roberto Viola
0f9a0519e9 fixed elapsed time greater than 1h
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-26 14:44:18 +01:00
Roberto Viola
395f5939b6 fixed fit file distance
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-25 09:11:56 +01:00
Roberto Viola
b1de9c958a fixed fit distance and bumped version to 1.8.5 2020-12-25 09:09:26 +01:00
Roberto Viola
865da62c8d removed notification from apple watch and allow to run on background! 2020-12-24 19:09:12 +01:00
Roberto Viola
ba0f46da61 icons updated 2020-12-24 17:06:55 +01:00
Roberto Viola
4e94a6b3e9 add watch icons 2020-12-24 09:32:43 +01:00
Roberto Viola
2ea73d79b3 running version after mac crash 2020-12-24 09:17:38 +01:00
Roberto Viola
7c29822153 fix path on entitlement file 2020-12-24 09:05:56 +01:00
Roberto Viola
df7926692b add apple bureaucracy in the plist files 2020-12-24 09:04:18 +01:00
Roberto Viola
0dabe17ed3 add swift option to project 2020-12-24 08:56:32 +01:00
Roberto Viola
17443e34ca added swift files to project 2020-12-24 08:30:26 +01:00
Roberto Viola
0cd76a1c73 restoring work from yesterday 2020-12-24 08:21:36 +01:00
Roberto Viola
de670c6742 continuing adding files 2020-12-24 08:07:59 +01:00
Roberto Viola
c6661a8b6e add watchkit storyboard 2020-12-24 07:57:51 +01:00
Roberto Viola
69c143cad2 add missing files to repo 2020-12-24 07:52:44 +01:00
Roberto Viola
32df14937c fix apple burocracy 2020-12-23 15:55:37 +01:00
Roberto Viola
1bcbdccf2c version 1.8.0 2020-12-23 14:37:47 +01:00
Roberto Viola
3e5af0313c ready for the first real try on an apple watch! 2020-12-23 14:16:14 +01:00
Roberto Viola
f81ab2cb04 authorization request for access to healthkit 2020-12-23 13:40:33 +01:00
Roberto Viola
fe6caca5de add swift files to project, built and run! 2020-12-23 11:28:35 +01:00
Roberto Viola
5c493fe2a7 add swift files to app 2020-12-23 11:01:46 +01:00
Roberto Viola
50850479fd entitlmentes added to qdomyos-zwift 2020-12-23 10:55:52 +01:00
Roberto Viola
6922eb20f9 entitlmentes added to qdomyos-zwift 2020-12-23 10:54:55 +01:00
Roberto Viola
ab692b674a entitlements added 2020-12-23 10:49:52 +01:00
Roberto Viola
ef66ecbc38 first build without swift main 2020-12-23 10:41:19 +01:00
Roberto Viola
dc283acc0a first build with WatchKit 2020-12-23 09:30:55 +01:00
Roberto Viola
7fb578f66e xcode project without applewatch 2020-12-23 08:26:00 +01:00
Roberto Viola
f9c9fd156c -no-reconnection fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-23 05:06:26 +01:00
Roberto Viola
bfc80125c1 added avgwatt tile
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-22 09:03:22 +01:00
Roberto Viola
e005fe804d fit export fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-22 08:40:55 +01:00
Roberto Viola
e1bc9f707b removed sleep from init phase of trxappgateusbtreadmill when the device
is not a irunning

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-21 15:18:38 +01:00
Roberto Viola
c2fb05617c ios build fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-21 10:05:18 +01:00
Roberto Viola
03cdfe35eb Merge branch 'fit'
# Conflicts:
#	src/main.cpp
#	src/qdomyos-zwift.pro
2020-12-21 09:27:07 +01:00
Roberto Viola
77a1981da9 FIT export statically tested
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-21 09:20:04 +01:00
Roberto Viola
5ae2fbef45 -no-reconnection added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-21 07:35:44 +01:00
Roberto Viola
93db34cf38 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-21 07:25:07 +01:00
Roberto Viola
889a57ed7b added relaxed bluetooth for samsung s10
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-21 07:18:52 +01:00
Roberto Viola
25eb9b0990 first fit commit 2020-12-20 17:35:40 +01:00
Roberto Viola
9bf3cab830 fixing ios build
Signed-off-by: Roberto Viola <cagnulein@gmail.com>
2020-12-18 15:14:35 +01:00
Roberto Viola
d53af5ce90 trying to avoid screen off on iOS
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-18 15:09:32 +01:00
Roberto Viola
688cafd3d6 iOS log and GPX enabled 2020-12-18 12:49:50 +01:00
Roberto Viola
b4d2197fd4 added buttons to confirm text settings
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-18 08:02:57 +01:00
Roberto Viola
0a8ecbe4b6 V-RUN experimental support
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-18 08:02:08 +01:00
Roberto Viola
cf9bc0696e tiles visibilty customizable
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-17 11:56:45 +01:00
Roberto Viola
944f2c5f1d android version 1.6.1
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-17 08:36:31 +01:00
Roberto Viola
2db2de48dc calories added to echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-17 08:17:04 +01:00
Roberto Viola
8641efb7a2 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-16 21:36:54 +01:00
Roberto Viola
e5507e5202 added start frame to trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-16 21:36:44 +01:00
Roberto Viola
b3f6d57696 gpx speed converted to meter/seconds
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-16 21:36:15 +01:00
Roberto Viola
a613473a05 negative pedelon resistance filtered out
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-16 21:35:44 +01:00
Roberto Viola
3ece71e60b power and speed added to gpx export (NOT TESTED)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-16 18:27:32 +01:00
Roberto Viola
7b69d00451 1.6.0 iOS 2020-12-16 18:13:00 +01:00
Roberto Viola
e0c78d5a10 added peloton resistance to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-16 15:55:11 +01:00
Roberto Viola
3e26693e2a try to fixing init phase on i-running
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 16:41:08 +01:00
Roberto Viola
a9e45008e0 android build fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 15:10:12 +01:00
Roberto Viola
e3251d0091 tested gpx on strava with a simulate run
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 14:45:06 +01:00
Roberto Viola
620f62e9f3 quick and dirty gpx saving function
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 12:16:28 +01:00
Roberto Viola
b07e7255db adding some sleep on init phase on trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 09:33:56 +01:00
Roberto Viola
9dd797587b i-running init phase improved
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-15 08:48:30 +01:00
Roberto Viola
f36deaca13 i-running added packetReceived signal
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 15:57:42 +01:00
Roberto Viola
4e201675f6 i-running characteristics fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 15:46:34 +01:00
Roberto Viola
35c0f32787 carnielli (i-running) treadmill experimental support
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 14:50:58 +01:00
Roberto Viola
44ce147e1a carnielli log added
Vel a 4
Incl 1
A 1’45 vel 6
2’30 incl 4
3 ‘stop
2020-12-14 12:22:56 +01:00
Roberto Viola
79b0018c11 added weight to the settings
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 10:23:18 +01:00
Roberto Viola
9cc4e7dda8 description value font size on iOS fixed 2020-12-14 08:47:19 +01:00
Roberto Viola
a5ae6e17de tested elapsed UI on android (just a static run)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 08:16:12 +01:00
Roberto Viola
00737a9252 UI labelFontSize dynamic (need to test the correct size on android and
iOS)

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 05:58:54 +01:00
Roberto Viola
31b461b3e6 added elapsedTime to QML UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 05:42:00 +01:00
Roberto Viola
e30bb3fc84 removed a decimal point from the speed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 05:16:01 +01:00
Roberto Viola
2a711ce5a6 filtering only DomyosBr (some android devices cut the name off)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-14 05:15:31 +01:00
Roberto Viola
e41a88edbc Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-12 18:43:56 +01:00
Roberto Viola
f9b1627aaa fan on domyostreadmill synced finally!
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-12 18:43:23 +01:00
Roberto Viola
12656af6e0 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-11 09:40:54 +01:00
Roberto Viola
a812be8cd0 store icon reduced 2020-12-11 08:54:33 +01:00
Roberto Viola
fa15fbfe3a app store and google play icons added 2020-12-11 08:50:20 +01:00
Roberto Viola
2da3bb145f echelon ex1 compability added (UNTESTED)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-11 08:09:13 +01:00
Roberto Viola
12359dc9f7 version 1.5.0
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-10 22:53:10 +01:00
Roberto Viola
c058da7eaf relaxing times on domyostreadmill and check all uncomplete packets
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-10 12:22:13 +01:00
Roberto Viola
235748cd68 removed static variables from domyosbike and domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-10 08:49:01 +01:00
Roberto Viola
e6af34a095 removed location from UIBackgroundModes
Signed-off-by: Roberto Viola <cagnulein@gmail.com>
2020-12-10 06:59:58 +01:00
Roberto Viola
ca06203d88 removed static variable from trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 18:22:20 +01:00
Roberto Viola
7aec2104b6 support for old android device
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 15:50:22 +01:00
Roberto Viola
3b489fda3f crash fixed when a bluetooth device disconnects
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 15:16:30 +01:00
Roberto Viola
8ebe1b9d81 gpx and trainProgram now work on Android
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 14:30:26 +01:00
Roberto Viola
52d1ba5914 added full android ABIs
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 12:23:30 +01:00
Roberto Viola
dfebfc41ef qdebug prints also on the console (with android debug is very useful)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-09 12:23:04 +01:00
Roberto Viola
8a99d76736 android build fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-08 14:31:45 +01:00
Roberto Viola
363a4d0860 version 1.4.6 released on play store
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-08 14:00:56 +01:00
Roberto Viola
299ec399e2 log enabled on mac and ios
Signed-off-by: Roberto Viola <cagnulein@gmail.com>
2020-12-08 11:00:16 +01:00
Roberto Viola
2949162e12 echelonconnectsport resistance fixed on iOS
Signed-off-by: Roberto Viola <cagnulein@gmail.com>
2020-12-07 23:17:02 +01:00
Roberto Viola
dddb76fba0 avoid checking bluetooth on ios
Signed-off-by: Roberto Viola <cagnulein@gmail.com>
2020-12-07 22:46:06 +01:00
Roberto Viola
187535d68a ios description stuff 2020-12-07 15:19:08 +01:00
Roberto Viola
6a134255de new iconset ios
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-07 14:37:51 +01:00
Roberto Viola
20558196f7 fix ios infos
Signed-off-by: Roberto Viola <cagnulein@Robertos-iPro.lan>
2020-12-07 14:18:55 +01:00
Roberto Viola
4049b31636 ios icons added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-07 12:29:30 +01:00
Roberto Viola
7b45aef29c lockScreen on mac solved
Signed-off-by: Roberto Viola <cagnulein@Robertos-iPro.lan>
2020-12-07 11:12:39 +01:00
Roberto Viola
945b7eec76 trying to avoid macos sleep
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-07 10:32:15 +01:00
Roberto Viola
b3e16e1290 setting noheartservice default for android >= 10
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-07 10:17:29 +01:00
Roberto Viola
da6fadbb1e fix compilation issue
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-07 10:07:49 +01:00
Roberto Viola
80c53bfe45 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-12-07 09:49:50 +01:00
Roberto Viola
005e6fba99 built under iOS
Signed-off-by: Roberto Viola <cagnulein@Robertos-iPro.lan>
2020-12-07 09:49:08 +01:00
Roberto Viola
d59a862b76 added KJouls to QML UI 2020-12-06 16:00:53 +01:00
Roberto Viola
c8f89d27ae removed static virtualbike variable from domyosbike 2020-12-06 12:50:26 +01:00
Roberto Viola
0eaa352cd0 destroy virtualbike when domyosbike dies 2020-12-06 12:03:04 +01:00
Roberto Viola
8b7593fe53 fixed cadence unstability on echelonconnectsport 2020-12-06 11:33:13 +01:00
Roberto Viola
91ff0fbada increased cadence average for echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-06 08:37:35 +01:00
Roberto Viola
dd21ed2635 relaxing timing for domyosbike #61
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-06 08:36:54 +01:00
Roberto Viola
481e256621 trying to stabilize cadence on echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-05 10:44:44 +01:00
Roberto Viola
2e94a16889 restoring correct fitness machine feature bytearray on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-04 11:13:48 +01:00
Roberto Viola
b4c4b194b2 elevation gain fixed on domyostreadmill #67
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-04 10:39:08 +01:00
Roberto Viola
5da8440086 toggling bluetooth icon on connecting on QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-04 10:35:32 +01:00
Roberto Viola
d5424a38fa fixed adv parameter on future zwift connections. added cadence support
for virtualbike

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-04 09:58:28 +01:00
Roberto Viola
1947473b2c wait the stop of the discovery before starting the virtualtreadmill and
virtualbike

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-04 09:57:39 +01:00
Roberto Viola
1b38c1f400 fixed typo on wakelock on android 2020-12-04 09:55:45 +01:00
Roberto Viola
51f7580d06 setting HR to primary back on virtualbike (windows 10 doesn't see it
with secondary)

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 22:32:23 +01:00
Roberto Viola
e6b2a17bee miles added to argument
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 17:05:11 +01:00
Roberto Viola
95338bb35e fixed wake lock on android #59
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 16:59:34 +01:00
Roberto Viola
f4138820cf speed and distance implemented on echelonconnectsport #62
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 16:18:02 +01:00
Roberto Viola
f446dac1db add android 64 bit and minlevelsdk 29 2020-12-03 16:01:00 +01:00
Roberto Viola
2967fc1ab4 compiling for android release 2020-12-03 15:12:26 +01:00
Roberto Viola
ed3ab8b0f1 peloton compatibility added (UNTESTED)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 11:43:45 +01:00
Roberto Viola
884b9a9a8c added miles option to QML #66
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-03 11:13:47 +01:00
Roberto Viola
aac169b834 heartrate on virtualbike put as secondaryservice
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-02 18:28:23 +01:00
Roberto Viola
601d9cb20e pace icon changed 2020-12-02 16:15:58 +01:00
Roberto Viola
90034c3746 working on trainProgram on QML, they don't work yet
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-02 15:15:20 +01:00
Roberto Viola
97a2e7d8c9 swap order of heartrate service on virtualbike 2020-12-02 13:50:42 +01:00
Roberto Viola
bccd5522d1 drop shadow on QML and purpling everything :D
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-02 10:37:18 +01:00
Roberto Viola
07c5dc247a watt calculation improved for echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-02 10:05:47 +01:00
Roberto Viola
005834588a fixed parameters on main
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-02 08:16:35 +01:00
Roberto Viola
a2fa9a4843 timeout added to writeCharacteristic to domyosbike and domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 22:24:28 +01:00
Roberto Viola
1d8f473e4c removed ugly and useless workaround on virtualtreadmill ( https://
github.com/cagnulein/qdomyos-zwift/issues/60#issuecomment-736587560 )

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 16:37:26 +01:00
Roberto Viola
4dc48fca2b popup on train program loaded on QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 16:15:36 +01:00
Roberto Viola
7eb0176e0c train prorgam and gpx added to QML (untested)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 15:58:37 +01:00
Roberto Viola
974396672a built version 1.2.1
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 14:03:38 +01:00
Roberto Viola
1758255399 fixed heart rate service in QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 12:26:34 +01:00
Roberto Viola
1506839f54 Update README.md 2020-12-01 11:34:29 +01:00
Roberto Viola
636c4c8185 bikeResistanceOffset and bikeResistanceGain added to parameter and QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 11:29:38 +01:00
Roberto Viola
9d0fd94a23 fixed issue on -qml parameter
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 09:29:35 +01:00
Roberto Viola
251c00cefb added -qml parameter to force the qml on Desktop too (useful for debug)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:59:49 +01:00
Roberto Viola
4949e8d816 version 1.1.5
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:37:11 +01:00
Roberto Viola
e57b0834c6 trying force heart rate service enabled on virtualbike ( https://
github.com/cagnulein/qdomyos-zwift/issues/61#issuecomment-735999248 )

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:32:07 +01:00
Roberto Viola
bb3f9d0bb4 indoorbike xml was wrong!
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:22:43 +01:00
Roberto Viola
2a8b8d6584 resistance doubled in virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:03:55 +01:00
Roberto Viola
ea58b92fed sync write display added to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-12-01 08:02:19 +01:00
Roberto Viola
d6f5ce405e added watt table to echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 19:50:40 +01:00
Roberto Viola
34ffafb55f distance fixed on echelonconnectsport
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 19:23:55 +01:00
Roberto Viola
e6d9f5d847 fixed typo on echelonconnectsport resistance parser
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 19:11:01 +01:00
Roberto Viola
c3bfaffcf1 init echelonconnectsport fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 16:10:26 +01:00
Roberto Viola
f5eac6d6a1 linux build fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 15:55:42 +01:00
Roberto Viola
19c3a90bf4 storage permission on android for the logs
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 15:52:19 +01:00
Roberto Viola
705baaa37c odometer on echelonconnectsport fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 15:37:06 +01:00
Roberto Viola
e302e90066 logs on android restored
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 15:36:38 +01:00
Roberto Viola
9d9800d4e6 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-11-30 14:04:09 +01:00
Roberto Viola
5c00a959f4 echelonconnectsport service UUID fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 14:03:39 +01:00
Roberto Viola
54501760d3 cache dropped 2020-11-30 13:49:59 +01:00
Roberto Viola
2f4b76014f android compatibility issue fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 11:44:23 +01:00
Roberto Viola
7de4bac932 fixed elevation gain on domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 11:15:10 +01:00
Roberto Viola
d992959792 android build commented 2020-11-30 10:25:14 +01:00
Roberto Viola
1ce77629ff echelonconnectsport added (NOT TESTED)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 10:16:06 +01:00
Roberto Viola
908c1536f6 signal icon added to QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 08:09:49 +01:00
Roberto Viola
b8948c6d8f bluetoothdeviceinfo move to bluetoothdevice to get signal strength
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-30 07:32:39 +01:00
Roberto Viola
1ab448f7cc ugly workaround for zwift virtualtreadmill on raspberry 2020-11-29 17:13:11 +01:00
Roberto Viola
38ea3f5c80 fixed cadence on UI 2020-11-29 17:09:30 +01:00
Roberto Viola
a87e818d9a virtual treadmill created when the domyostreadmill has finished its init
Signed-off-by: Roberto Viola <roberto.viola83@gmail.com>
2020-11-28 17:47:17 +01:00
Roberto Viola
d852bd44fe added root check 2020-11-28 17:14:55 +01:00
Roberto Viola
5f7d7e01b8 speed and inclination not synced in the state file fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-27 16:01:52 +01:00
Roberto Viola
548fa9d8d6 android qml: show relevant icons only
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-27 15:56:10 +01:00
Roberto Viola
3a725d71b5 linux compilation fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-25 15:17:28 +01:00
Roberto Viola
a304963dc5 decimal point fixed on the state file
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-25 09:45:22 +01:00
Roberto Viola
bf9fb4537b restore from previous values on domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-25 09:37:15 +01:00
Roberto Viola
838fe8c96e xml state file written for domyostreadmill (untested)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-25 06:08:59 +01:00
Roberto Viola
77b204d9fd SIGINT handled
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-25 05:55:04 +01:00
Roberto Viola
8a6e8e9c9d youtube video added 2020-11-23 14:41:18 +01:00
Roberto Viola
123df9db6b saving speed and inclination for future session on domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-23 10:40:25 +01:00
Roberto Viola
8a3235c7d3 very first alpha android version
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-23 08:00:04 +01:00
Roberto Viola
a5d823549a info label added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-21 12:26:04 +01:00
Roberto Viola
90970f75c8 plus and minus button handled in QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-21 09:54:18 +01:00
Roberto Viola
a175cc7f45 finally start and stop button work!
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-21 07:11:39 +01:00
Roberto Viola
f15437f84e giving life to QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-20 19:17:02 +01:00
Roberto Viola
5b80303a92 playing with QML models
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-20 17:07:46 +01:00
Roberto Viola
9350e342b2 new icons
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-20 08:57:52 +01:00
Roberto Viola
a0c3576b2e learning QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-19 19:45:16 +01:00
Roberto Viola
c33242f077 start working on QML
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-19 16:24:54 +01:00
Roberto Viola
65e1a7522c fixed midnight issue
Signed-off-by: Roberto Viola <roberto.viola83@gmail.com>
2020-11-15 08:56:43 +01:00
Roberto Viola
429cb2077a Update main.yml 2020-11-12 09:27:48 +01:00
Roberto Viola
49b47cd432 Update README.md 2020-11-12 09:12:33 +01:00
Roberto Viola
34780cb2b0 Update main.yml 2020-11-12 09:07:49 +01:00
Roberto Viola
f2e8d3e9e8 Update main.yml 2020-11-11 19:36:59 +01:00
Roberto Viola
64e4ee5974 Update main.yml 2020-11-11 19:21:31 +01:00
Roberto Viola
11173726fe Update main.yml
https://github.com/jurplel/install-qt-action/issues/63
2020-11-11 19:12:31 +01:00
Roberto Viola
3ce5f320c7 Update main.yml 2020-11-11 19:02:43 +01:00
Roberto Viola
e7153fd087 Update main.yml 2020-11-11 09:17:26 +01:00
Roberto Viola
a3b929fcc7 Update main.yml 2020-11-11 09:08:51 +01:00
Roberto Viola
7846341fd7 Update main.yml 2020-11-11 08:49:39 +01:00
Roberto Viola
4d2ead7e1b removed heartrate service from default (using FTMS instead). Tested on
android succesfully

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-11 08:31:13 +01:00
Roberto Viola
2e69a155fc Update main.yml 2020-11-10 16:27:11 +01:00
Roberto Viola
821d49e8e6 Update main.yml 2020-11-10 16:18:54 +01:00
Roberto Viola
c1800f65ea Update main.yml 2020-11-10 16:17:47 +01:00
Roberto Viola
9781f5de7d Update main.yml 2020-11-10 16:10:44 +01:00
Roberto Viola
e10d0d1127 Update main.yml 2020-11-10 16:07:40 +01:00
Roberto Viola
32213b6a31 grade received from zwift should be increased by 1 because the
resistance level starts from 1

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 14:54:56 +01:00
Roberto Viola
55047173a2 negative grade handled on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 14:47:35 +01:00
Roberto Viola
07fe27abf5 Update README.md 2020-11-10 14:38:40 +01:00
Roberto Viola
ae0001b8fa put some boundaries on resistance on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 14:35:50 +01:00
Roberto Viola
9a342a4724 typo on mainwindow.cpp
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 11:13:20 +01:00
Roberto Viola
b2dcbef3b8 added wait for response to writeCharacteristic to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 10:31:21 +01:00
Roberto Viola
667a384232 added a wait for response to writeCharacteristic to domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 10:24:59 +01:00
Roberto Viola
e40a170b61 added -test-resistance for alpat59
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 09:30:45 +01:00
Roberto Viola
0d3ecd702d fixed groupTrain clicked signal
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 09:17:42 +01:00
Roberto Viola
3ce4443adb android: log file generated to the download folder
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 09:06:20 +01:00
Roberto Viola
1837c0d120 elapsed time for domyosbike fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-10 07:44:55 +01:00
Roberto Viola
55a5def6a5 Create main.yml 2020-11-09 17:28:37 +01:00
Roberto Viola
96176bd36c Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-11-09 16:45:22 +01:00
Roberto Viola
0e400e967e started working on a Dockerfile 2020-11-09 16:45:11 +01:00
Roberto Viola
20d6ec74d8 Update FUNDING.yml 2020-11-09 16:05:01 +01:00
Roberto Viola
0aa1693dde added a stupid icon to the project
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 15:35:07 +01:00
Roberto Viola
fab495d68f alpha icons 2020-11-09 15:09:39 +01:00
Roberto Viola
75882d07b8 Merge branch 'android' 2020-11-09 14:53:53 +01:00
Roberto Viola
279adb0ea2 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-11-09 14:08:05 +01:00
Roberto Viola
fe69cc2c8f handled disconnection error on trxappgateusbtreadmill as did for
https://github.com/cagnulein/qdomyos-zwift/commit/
27f207b022

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 14:07:52 +01:00
Roberto Viola
3ca7e6ecb5 Create FUNDING.yml 2020-11-09 12:15:40 +01:00
Roberto Viola
b9e08d3cce Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-11-09 12:09:06 +01:00
Roberto Viola
02cb7003cc fixed speed on trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 12:07:41 +01:00
Roberto Viola
1858fbb7d8 first build on android
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 11:48:51 +01:00
Roberto Viola
bf31f00ce7 Update README.md 2020-11-09 11:07:14 +01:00
Roberto Viola
60fa28417c added indicate to FTMS control point
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 08:14:04 +01:00
Roberto Viola
b1ce0973e7 added check to invalid resistance to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 07:58:50 +01:00
Roberto Viola
a208b26a39 speed check added again to bike.cpp
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-09 07:54:46 +01:00
Roberto Viola
79f8942b06 /n added to new debug prints
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-08 19:58:27 +01:00
Roberto Viola
6030616209 console debug readded
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-08 19:53:44 +01:00
Roberto Viola
7e846d4228 fixed log file name
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-08 19:49:29 +01:00
Roberto Viola
b43dd6f80d fixed compatibility with old qt version
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-08 19:45:36 +01:00
Roberto Viola
07676e35c6 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-11-08 19:41:06 +01:00
Roberto Viola
53dc952ece logfile improved with qmessagehandler
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-08 19:40:37 +01:00
Roberto Viola
a48a40b8f2 Merge pull request #52 from kenands/master
Update bike.cpp
2020-11-08 06:27:44 +01:00
Roberto Viola
825d51f86b added the path https://github.com/cagnulein/qdomyos-zwift/commit/
27f207b022 to domyosbike
2020-11-08 06:20:47 +01:00
yusuf20
87be3f3837 Update bike.cpp
"Power Table for Wattbike pro" seems to be more near of power provided by kinomap with bike 500
(https://support.wattbike.com/hc/en-us/articles/115001881825-Power-Resistance-and-Cadence-Tables)
With kinomap:
- At resistance level 1 and 80 rpm, power was about 110w 
- At resistance level 15 and high rpm (up to 150) I reached 1200w
2020-11-08 01:54:52 +01:00
Roberto Viola
e3b7089d20 fixed decimal point on odometer on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 19:15:28 +01:00
Roberto Viola
e9c114d285 trying to set resistance equal to grade
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 19:14:03 +01:00
Roberto Viola
e5412146f7 removed dependencies of speed in the math of watt on bike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 19:13:31 +01:00
Roberto Viola
4fa78ff8b4 added -only-virtualbike and -only-virtualtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 05:51:59 +01:00
Roberto Viola
31c85fdfd5 fixed error "incoming connection request in unexpected state"
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 05:46:29 +01:00
Roberto Viola
d10b0da265 watt debug print added to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 05:19:13 +01:00
Roberto Viola
468c118ded added REQUEST_CONTROL to virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 05:00:11 +01:00
Roberto Viola
904251e05c fixed odometer on domyosbike console
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 04:55:19 +01:00
Roberto Viola
3dded9c9d3 fixed (again) speed on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-07 04:51:56 +01:00
Roberto Viola
e48622a831 telink domyosbike init simiplified following the snoop log provided
https://github.com/cagnulein/qdomyos-zwift/issues/
48#issuecomment-723118458

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 16:03:37 +01:00
Roberto Viola
88e14ae23b added -no-console to domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 13:54:29 +01:00
Roberto Viola
05a442832d changing some fixed data for T900C
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 13:49:03 +01:00
Roberto Viola
3b88809614 sent unsupported to zwift in case of unmanaged parameters
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 08:15:51 +01:00
Roberto Viola
d5e777fe96 odometer fixed on console of the domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 08:08:33 +01:00
Roberto Viola
85578558fb speed corrected on domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-06 08:02:31 +01:00
Roberto Viola
97a63846e7 added calories and correct visualization after 1h:39m:59s of running on
domyostreadmill console

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 17:23:20 +01:00
Roberto Viola
cf7f6ca1c2 domyostreadmill merged 2020-11-05 16:32:47 +01:00
Roberto Viola
55d632a01f added -poll-device-time for domyostreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 16:29:52 +01:00
Roberto Viola
7550022673 domyostreadmill T900C reverted to a non SEGFAULT commit https://
github.com/cagnulein/qdomyos-zwift/issues/13#issuecomment-722383562

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 16:23:06 +01:00
Roberto Viola
70f37dbebb Increased retry on domyos treadmill 2020-11-05 13:24:24 +01:00
Roberto Viola
37c3703283 adding some timeout delay for T900C https://github.com/cagnulein/
qdomyos-zwift/issues/13#issuecomment-722300134

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 12:03:44 +01:00
Roberto Viola
1260e1efc4 trying avoid packets collision on T900C
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 10:19:37 +01:00
Roberto Viola
62a76f5f13 fixed speed and inclination on trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 09:52:08 +01:00
Roberto Viola
147ca95be1 telink domyosbike init updated: trying to follow the snoop log
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 09:35:59 +01:00
Roberto Viola
53fde43c3c added some better management to FTMS control point to virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 09:16:48 +01:00
Roberto Viola
09defca49b fixed odometer to the console of the domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 08:51:37 +01:00
Roberto Viola
541b150763 controller error debug print fixed on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 08:50:24 +01:00
Roberto Viola
ac77d22eef added precisetimer to domyostreadmill; handled writeCharacteristic error
on domyostreadmill; added debug print in case of the update timer has
nothing to do on domyostreadmill

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-05 08:33:44 +01:00
Roberto Viola
aeb2d5d1bd trying to manage strange packets from T900C 2020-11-04 21:06:34 +01:00
Roberto Viola
60b00b978e trying fix odometer and calories on display of domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 15:37:15 +01:00
Roberto Viola
e924694fea started working on telink domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 14:56:57 +01:00
Roberto Viola
d510e61234 added device class id debug prints
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 12:15:29 +01:00
Roberto Viola
7f58393b5b removed the manufacturer print because they are avaiable only on qt 5.12
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 12:13:18 +01:00
Roberto Viola
4e7b73ab8d manufacturer id debug prints added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 12:06:24 +01:00
Roberto Viola
7b2a81e2f5 flush logs added every time writes a line (in order to keep the log
always updated)

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-04 09:29:10 +01:00
Roberto Viola
0fa8873e19 another lock to domyostreadmill (poll command) 2020-11-04 06:11:38 +01:00
Roberto Viola
eb0dd0c618 uncompleted packet improved on domyostreadmill 2020-11-03 20:22:43 +01:00
Roberto Viola
b7fdbbed90 QLowEnergyController::Error handled in virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-03 16:24:21 +01:00
Roberto Viola
13f341b6a9 added -no-heart-service parameter
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-03 14:24:05 +01:00
Roberto Viola
90523d388c Revert "removed HR service from virtualbike in order to a better compatibility"
This reverts commit bee124bdcf.
2020-11-03 14:15:49 +01:00
Roberto Viola
32b4ba21de Update README.md 2020-11-03 11:45:06 +01:00
Roberto Viola
fbe4571734 fixed packets collision on T900C
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-03 10:03:37 +01:00
Roberto Viola
8a248f7451 trying to get the T900C working
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-03 08:33:55 +01:00
Roberto Viola
bee124bdcf removed HR service from virtualbike in order to a better compatibility
with FTMS external apps
2020-11-02 22:03:23 +01:00
Roberto Viola
d015149365 added some new debug prints to domyostreadmill 2020-11-02 21:58:35 +01:00
Roberto Viola
27f207b022 fixed segmentation fault on domyos treadmill disconnection 2020-11-02 19:19:50 +01:00
Roberto Viola
54c7acf263 added button to enable charts because they are too heavy to run on a
raspi 0w

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-02 16:47:21 +01:00
Roberto Viola
53e25c8592 fixed decostructor on bluetooth.cpp (segfault when the device
disconnects)

Signed-off-by: Roberto Viola <roberto.viola83@gmail.com>
2020-11-02 10:07:42 +01:00
Roberto Viola
24600b0a01 virtualbike migrated to FTMS 2020-11-01 21:45:06 +01:00
Roberto Viola
850ea9144a cadence fix reverted
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-01 19:21:02 +01:00
Roberto Viola
bde4c5f5cc trying to fix cadence instability
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-01 19:02:42 +01:00
Roberto Viola
66f6f6ca97 added -no-write-resistance
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-11-01 18:18:38 +01:00
Roberto Viola
209da708c9 fixed zwift icon on UI 2020-10-30 14:46:35 +01:00
Roberto Viola
8243c936b5 fixed zwift icon 2020-10-30 10:17:38 +01:00
Roberto Viola
d35b1fa1ca fixed decimal position on distance on the console of the domyostreadmill 2020-10-30 09:41:39 +01:00
Roberto Viola
9a6f4617b6 fixed pace on chart 2020-10-30 09:23:43 +01:00
Roberto Viola
fee67bb812 charts restored 2020-10-30 09:13:45 +01:00
Roberto Viola
895d2c31a0 fixed precision on numbers on UI 2020-10-30 09:09:01 +01:00
Roberto Viola
7d37e333f1 added pace to charts
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-29 15:38:49 +01:00
Roberto Viola
70cf5040ee current pace added to bluetoothdevice and to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-29 15:29:15 +01:00
Roberto Viola
53b2bd4516 elapsed time added to the trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-29 14:49:14 +01:00
Roberto Viola
d77fba6734 fix maths on trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-29 12:25:09 +01:00
Roberto Viola
a7dcac02df tested virtualbike class on raspberry3 updated (sudo apt upgrade) 2020-10-29 11:50:45 +01:00
Roberto Viola
bb0a9cde92 Update README.md 2020-10-29 09:44:08 +01:00
Roberto Viola
f279c3689d Update README.md 2020-10-29 09:36:37 +01:00
Roberto Viola
5b36ad9e4f cleaned up chart math
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-29 09:07:50 +01:00
Roberto Viola
d5ddc4cabd temporary charts disabled 2020-10-28 19:31:45 +01:00
Roberto Viola
ea62337b16 adding visual studio project file 2020-10-28 16:38:37 +01:00
Roberto Viola
15f24b8d0c starting build on windows 10
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 16:06:16 +01:00
Roberto Viola
dacbb475c8 trying to have a stable connection on trxappgateusbtreadmill reducing
the polling time

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 15:07:37 +01:00
Roberto Viola
6f2b19b4aa fixed trxappgateusbtreadmill parse values
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 14:48:10 +01:00
Roberto Viola
b71ca62110 uuid chars trxappgateusb fixed 2020-10-28 11:14:16 +01:00
Roberto Viola
24da757c5e added plus and minus buttons to speed, inclination and resistance
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 08:39:22 +01:00
Roberto Viola
fe1ec40f6c resistance and cadence added to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 08:26:48 +01:00
Roberto Viola
9cbd054ab4 added debug to trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-28 08:12:53 +01:00
Roberto Viola
62ae1f5c6d fixed uuid on trxappgateusbtreadmill 2020-10-27 22:45:37 +01:00
Roberto Viola
d57f265315 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-10-27 19:02:03 +00:00
Roberto Viola
ce56464046 fixed jitter on elapsed time on domyostreadmill 2020-10-27 19:01:39 +00:00
Roberto Viola
a162e0dcfb Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-10-27 16:31:19 +01:00
Roberto Viola
f0074697d6 fix typo on bluetooth
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-27 16:31:00 +01:00
Roberto Viola
e25b32bba4 Update README.md 2020-10-27 15:10:42 +01:00
Roberto Viola
ddbd41e79f added xcode cli to the dependencies 2020-10-27 14:17:59 +01:00
Roberto Viola
cecd624d13 info added 2020-10-27 10:53:28 +01:00
Roberto Viola
074f5d60f9 realtime-chart.png added 2020-10-27 09:35:15 +01:00
Roberto Viola
8795e5ec3c libqt5charts5-dev and libqt5charts5 added to dependency 2020-10-27 09:32:03 +01:00
Roberto Viola
b23183e308 Merge branch 'charts' 2020-10-27 09:29:17 +01:00
Roberto Viola
663ed67a02 charts seems stable :)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-27 09:26:11 +01:00
Roberto Viola
586ba40527 Delete mainwindow.o 2020-10-26 21:47:42 +01:00
Roberto Viola
f5d85eb1ae Delete bluetooth.o 2020-10-26 21:47:20 +01:00
Roberto Viola
1af0246490 Removed rssi check 2020-10-26 21:46:51 +01:00
Roberto Viola
40336b70c8 fixed build error 2020-10-26 20:28:05 +01:00
Roberto Viola
0460de0fe7 started working on charts
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-26 17:25:04 +01:00
Roberto Viola
61fde67eaf avoid connection to device with RSSI equals to 0
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-26 11:26:54 +01:00
Roberto Viola
e4ee05d2a7 added debug to virtualbike and virtualtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-26 10:01:23 +01:00
Roberto Viola
f49d1e69ff fix warnings
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-26 09:59:57 +01:00
Roberto Viola
4118ed914b fix cadence on virtual bike 2020-10-25 15:00:50 +01:00
Roberto Viola
5564720b56 supported resistance fixed on virtualbike 2020-10-23 20:31:41 +02:00
Roberto Viola
6d88cef84c trxappgateusbtreadmill init updated
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-23 15:41:13 +02:00
Roberto Viola
671c262288 experimental support added to trxappgateusbtreadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-23 15:28:57 +02:00
Roberto Viola
d76ec7e32e Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-10-23 09:16:55 +02:00
Roberto Viola
5d3b9b3645 fixed characteristicChanged signal on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-23 09:16:37 +02:00
Roberto Viola
f3e6fa9d61 fixed casting on distance calculated to domyos treadmill 2020-10-22 19:04:35 +01:00
Roberto Viola
4da9566713 elapsed time on domyostreadmill is now calculate from RTC (better
precision)

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-22 10:27:02 +02:00
Roberto Viola
a43b7b393c added distance calulated to domyostreadmill in order to increase
precision

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-22 10:22:07 +02:00
Roberto Viola
a6c369cb0b resistance level set target added to virtualbike (not tested)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-22 09:07:22 +02:00
Roberto Viola
60a8f7b93f odometer added to domyosbike console
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-22 07:58:20 +02:00
Roberto Viola
9f49d0eee9 TOORX device name added 2020-10-22 05:24:30 +01:00
Roberto Viola
7b4a3d3aca crank flags swapped on virtualbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-21 08:43:15 +02:00
Roberto Viola
6aeb3c475f display speed on domyosbike fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-21 08:16:08 +02:00
Roberto Viola
04c8cb8be5 app_bundle added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-20 15:40:32 +02:00
Roberto Viola
34e69f55ae bundle added to deploy on mac
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-20 12:00:17 +02:00
Roberto Viola
19dcb2e600 speed to the domyosbike's console fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-20 10:28:50 +02:00
Roberto Viola
45d118b90e added cadence to console to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-20 09:47:51 +02:00
Roberto Viola
384deeda16 bike watt maths fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-20 08:18:59 +02:00
Roberto Viola
dc5290ced9 added filter to bluetooth device 2020-10-19 22:30:32 +02:00
Roberto Viola
900f364cfe swapped bytes in virtualbike 2020-10-19 22:09:16 +02:00
Roberto Viola
fd819219da distance on treadmill fixed 2020-10-19 21:56:19 +02:00
Roberto Viola
91db440047 LastCrankEventTime added to domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 14:20:59 +02:00
Roberto Viola
98e5e50017 crank revolutions and watts added to domyosbike (not tested)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 12:14:56 +02:00
Roberto Viola
a93408aecd removed fan from domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 11:17:57 +02:00
Roberto Viola
20af3107b7 read resistance and cadence from domyosbike
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 11:12:42 +02:00
Roberto Viola
23309060a4 added bike class
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 10:34:18 +02:00
Roberto Viola
26a64bce34 bluetoothdevice added to split bikes from treadmills
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 10:05:46 +02:00
Roberto Viola
117fce8f7c heartrate service missing on reconnect
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-19 08:00:28 +02:00
Roberto Viola
ebc842060c first implementation of virtualbike 2020-10-18 19:11:31 +02:00
Roberto Viola
d172350a13 add docs 2020-10-18 09:31:50 +02:00
Roberto Viola
8426f4640b virtualbike class added 2020-10-18 09:08:27 +02:00
Roberto Viola
e31c8b6ff9 domyosbike class added 2020-10-18 06:48:20 +01:00
Roberto Viola
bb2909750f Merge branch 'toorx' (not tested) 2020-10-18 06:12:47 +01:00
Roberto Viola
11d560d14b Update README.md 2020-10-17 22:42:52 +02:00
Roberto Viola
e774fbf575 Update README.md 2020-10-17 15:39:12 +02:00
Roberto Viola
4c2d82abf2 mac ui screenshot added 2020-10-17 15:36:26 +02:00
Roberto Viola
b5cd1d5915 distance added to domyos console 2020-10-17 13:44:22 +01:00
Roberto Viola
c5dd48219a virtualtreadmill advertising fixed 2020-10-17 13:03:55 +01:00
Roberto Viola
2320ef4124 virtualtreadmill advertising fixed 2020-10-17 12:55:40 +01:00
Roberto Viola
d3d54b19dc built with Qt 5.15.1 2020-10-16 19:17:06 +01:00
Roberto Viola
30a6008c82 train program rows not cleaned when load a new program
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-16 10:52:45 +02:00
Roberto Viola
0ca04756f3 added tooltip to difficulty slider
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-16 10:45:13 +02:00
Roberto Viola
8a1ee08d50 watts moved from virtualtreadmill to treadmill
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-16 10:41:07 +02:00
Roberto Viola
9fae936586 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-10-15 13:29:38 +01:00
Roberto Viola
63c36bbafc arm32 binary added 2020-10-15 13:29:11 +01:00
Roberto Viola
2a59e75e57 Update README.md 2020-10-15 14:08:16 +02:00
Roberto Viola
15fdaec3c6 binary with debug symbols 2020-10-15 10:26:15 +01:00
Roberto Viola
29a2173e35 Update README.md 2020-10-15 11:21:44 +02:00
Roberto Viola
88dfacb0c3 new binary 2020-10-15 10:01:35 +01:00
Roberto Viola
06cb2d9586 Merge branch 'toorx' of https://github.com/cagnulein/qdomyos-zwift into toorx 2020-10-15 09:59:32 +02:00
Roberto Viola
b28effc4c0 fixed service discovered
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-15 09:59:00 +02:00
Roberto Viola
0ddd953b2e fan icon fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-15 09:25:25 +02:00
Roberto Viola
d5e2e98429 new icons added 2020-10-15 08:38:58 +02:00
Roberto Viola
1e1c977332 example file added 2020-10-15 08:21:13 +02:00
Roberto Viola
df16d94438 trainprogram argument added to the executable
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-15 08:18:06 +02:00
Roberto Viola
9425e751f2 difficulty slider added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-15 08:05:46 +02:00
Roberto Viola
eb8d354111 domyostreadmill: updateDisplay called every seconds. payload to be
tested and filled

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-14 16:48:34 +02:00
Roberto Viola
78c9c86227 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2020-10-14 15:51:54 +02:00
Roberto Viola
7cc40ffe30 dark theme added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-14 15:51:33 +02:00
Roberto Viola
9e6a5ca4af updated dependencies 2020-10-14 14:44:33 +02:00
Roberto Viola
37ec561409 Merge pull request #23 from cagnulein/gpx_import
Gpx import
2020-10-14 14:40:53 +02:00
Roberto Viola
ba8df2c2eb Update README.md 2020-10-14 09:26:42 +02:00
Roberto Viola
4b86f77a22 gpx imported correctly!
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-14 09:24:43 +02:00
Roberto Viola
e43276e52b gpx opened and analyzed. i have to put in the train program table, easy
step i guess

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-14 09:03:21 +02:00
Roberto Viola
33fdd4c979 Update README.md 2020-10-13 16:10:41 +02:00
Roberto Viola
87f8887ef3 added binary for testing purpose 2020-10-13 14:30:18 +01:00
Roberto Viola
ed7e4c6bf2 toorx attributes read (test needed)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-13 12:25:54 +02:00
Roberto Viola
12992df557 fixed build issue
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-13 12:03:13 +02:00
Roberto Viola
8d42d530cc toorx connection (need test)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-13 11:53:27 +02:00
Roberto Viola
7b9bd00ff4 bluetooth class added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-13 10:50:58 +02:00
Roberto Viola
5e7a8d938b fan speed supported
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-13 08:38:50 +02:00
cagnulein
a0c1e1b645 Merge pull request #21 from cagnulein/ui
Ui and much more!
2020-10-13 08:00:12 +02:00
cagnulein
aa53956a35 Merge branch 'master' into ui 2020-10-13 07:59:56 +02:00
Roberto Viola
cd1c10a090 -no-log added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 16:06:07 +02:00
Roberto Viola
c21e337bdd train program example added 2020-10-12 15:32:49 +02:00
Roberto Viola
1d23ac4b81 fix typo
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 15:13:42 +02:00
Roberto Viola
bbeaa5ec95 calories added to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 15:12:34 +02:00
Roberto Viola
9f6a4de4ac ui screenshot added 2020-10-12 15:06:20 +02:00
Roberto Viola
ee1c3e0118 connectivity icon on UI added
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 15:00:02 +02:00
Roberto Viola
81ac8909c8 elevationGain added to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 12:23:27 +02:00
Roberto Viola
3a45935617 UI layout fixed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 12:12:20 +02:00
Roberto Viola
c89c381177 odometer added on UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 12:09:40 +02:00
Roberto Viola
ea57069f33 train program total distance added to UI
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 11:51:05 +02:00
Roberto Viola
bf40c460a5 added currentRowElapsedTime, totalElapsedTime and Duration of the train
program on UI

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 11:39:58 +02:00
Roberto Viola
338b19f664 added the ability to enable/disable the train program; start button on
the console starts the program also is valid and enabled

Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 11:03:42 +02:00
Roberto Viola
9f9000427f auto start tape on connect disabled
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 10:44:56 +02:00
Roberto Viola
92cd9baea3 updated installation from source steps 2020-10-12 10:25:57 +02:00
Roberto Viola
e21ad70ea9 getting kcal and distance from the treadmill (tests need)
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 08:55:26 +02:00
cagnulein
d7ac459a3d fan speed buttons managed
Signed-off-by: Roberto Viola <roberto.viola@systemceramics.com>
2020-10-12 08:24:19 +02:00
Roberto Viola
d58db4100f fix typo on requestSpeed check 2020-10-11 16:15:08 +02:00
Roberto Viola
3c7cb254e6 fixed changing speed and inclination at the same time 2020-10-11 15:59:40 +02:00
Roberto Viola
259b53e8e0 change speed and inclination only if needed 2020-10-11 15:48:56 +02:00
Roberto Viola
b73092bd8f fix treadmill slots 2020-10-11 15:28:02 +02:00
Roberto Viola
787b9aa2c2 trainprogram debug lines added 2020-10-11 14:44:41 +02:00
Roberto Viola
73a0bd7c65 fix seg fault without a train program 2020-10-11 14:39:06 +02:00
Roberto Viola
d068526e55 save program xml issue fixed 2020-10-11 14:27:56 +02:00
Roberto Viola
8945063f30 support for future arguments to the executable 2020-10-11 14:27:35 +02:00
Roberto Viola
4625bccad3 no bluetooth dongle support added 2020-10-11 14:26:56 +02:00
Roberto Viola
5c723375d7 trainprogram start added 2020-10-11 10:34:59 +02:00
Roberto Viola
1212bc83f8 restart bt connection to domyos treadmill 2020-10-11 09:45:17 +02:00
Roberto Viola
efc9788c89 fixed build issues 2020-10-10 13:47:28 +02:00
Roberto Viola
42c43158e6 Merge remote-tracking branch 'origin/startup_sequence_fix' into ui 2020-10-10 13:27:53 +02:00
Roberto Viola
ff354fd20d speed and inclination writing finally works! 2020-10-10 09:39:04 +02:00
Roberto Viola
d21f92727e domyos init outside btle events 2020-10-09 16:39:37 +02:00
Roberto Viola
632991e58e bluez logging added 2020-10-09 14:39:34 +02:00
cagnulein
1d6c46a32b Merge branch 'cleaning_code' into ui 2020-10-09 11:25:35 +02:00
Roberto Viola
3ba0219ce4 added watt visualization 2020-10-09 10:36:27 +02:00
Roberto Viola
21ec2a890e cleaned useless comments 2020-10-09 10:19:19 +02:00
Roberto Viola
b434d1f1e6 fix typo 2020-10-09 09:48:18 +02:00
Roberto Viola
373eb3fbf9 virtualtreadmill created when the services are fully discovered 2020-10-09 09:34:38 +02:00
Roberto Viola
acfdff7b5c added timestamp to log filename 2020-10-09 08:06:32 +02:00
Roberto Viola
38a41451f3 descriptorWritten added 2020-10-09 08:05:46 +02:00
cagnulein
c2c5b7746f treadmill class created deleting all the external variables 2020-10-08 17:21:16 +02:00
cagnulein
4944f6d48d scheduler added 2020-10-08 16:35:36 +02:00
cagnulein
33a478b1ae load, save and reset added and tested 2020-10-08 15:19:38 +02:00
cagnulein
99fd62c8ec converted mutex to eventloop 2020-10-08 14:21:53 +02:00
cagnulein
4712d5780a adding ability to save and load training program (not finished yet) 2020-10-08 14:19:09 +02:00
cagnulein
eff5d1d2f3 elapsed timer should count only when tape is moving 2020-10-08 10:31:05 +02:00
cagnulein
22b6de14f1 characteristicWritten and error added with mutex 2020-10-08 08:56:00 +02:00
cagnulein
76d3139d79 added spaces on debug log 2020-10-08 08:16:21 +02:00
cagnulein
8fb8ed6f44 Merge pull request #14 from cagnulein/startup_sequence_fix
trying to fix startup sequence
2020-10-08 08:13:35 +02:00
Roberto Viola
483cc45643 domyos controller error managed and fixed the startup sequence of the
virtual treadmill
2020-10-07 17:30:39 +02:00
cagnulein
3d152b903a updated startup sequence via Intense Run and Kinomap. Splitted writing
inclination and speed
2020-10-07 17:30:38 +02:00
Cagnulein
1974dd26ee put all domyostreadmill debug string to file and to screen 2020-10-07 17:29:05 +02:00
cagnulein
78f81261d9 Merge pull request #11 from cagnulein/debug_log_bt_comms
log bluetooth communications added
2020-10-06 09:33:19 +02:00
cagnulein
d542aa819b log bluetooth communications added 2020-10-06 09:31:58 +02:00
cagnulein
5774e725a7 started adding a gui 2020-10-02 16:38:07 +02:00
521 changed files with 139121 additions and 618 deletions

12
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: cagnulein
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://www.buymeacoffee.com/cagnulein'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

36
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: cagnulein
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

103
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,103 @@
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# - name: Cache Qt Linux Desktop
# id: cache-qt-linux-desktop
# uses: actions/cache@v1
# with:
# path: '${{ github.workspace }}/output/linux-desktop/'
# key: ${{ runner.os }}-QtCache-Linux-Desktop
# - name: Cache Qt Linux Android
# id: cache-qt-android
# uses: actions/cache@v1
# with:
# path: '${{ github.workspace }}/output/android/'
# key: ${{ runner.os }}-QtCache-Android
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a set of commands using the runners shell
- name: Install Qt Linux Desktop
uses: jurplel/install-qt-action@v2
with:
version: '5.12.9'
host: 'linux'
target: 'desktop'
modules: 'qtcharts debug_info qtnetworkauth'
dir: '${{ github.workspace }}/output/linux-desktop/'
# cached: ${{ steps.cache-qt-linux-desktop.outputs.cache-hit }}
- name: Compile Linux Desktop
run: cd src; qmake; make -j4
- name: Archive linux-desktop binary
uses: actions/upload-artifact@v2
with:
name: linux-desktop-binary
path: src/qdomyos-zwift
# - uses: actions/checkout@v2
# with:
# repository: nttld/setup-ndk
# path: setup-ndk
# The packages.json in nttld/setup-ndk has already been updated,
# https://github.com/nttld/setup-ndk/commit/831db5b02a0f0cab80614619efe461a3dcc140e6
# but `dist/*` has not been rebuilt yet. Build it.
# https://github.com/nttld/setup-ndk/tree/main/dist
# - name: Locally rebuilt setup-ndk
# run: |
# npm -prefix ./setup-ndk install
# npm -prefix ./setup-ndk run all
# Install using locally rebuilt setup-ndk
# - name: Setup Android NDK r21d
# uses: ./setup-ndk
#- uses: nttld/setup-ndk@v1
# with:
# ndk-version: r21d
# waiting github.com/jurplel/install-qt-action/issues/63
# - name: Install Qt Android
# uses: jurplel/install-qt-action@v2
# with:
# version: '5.12.9'
# host: 'linux'
# target: 'android'
# arch: 'android_armv7'
# modules: 'qtcharts debug_info'
# dir: '${{ github.workspace }}/output/android/'
# cached: ${{ steps.cache-qt-android.outputs.cache-hit }}
# - name: Compile Android
# run: cd src; qmake; make -j4
# - name: Install Qt MacOS
# uses: jurplel/install-qt-action@v2
# with:
# version: '5.12.9'
# host: 'mac'
# target: 'desktop'
# modules: 'qtcharts debug_info'
# dir: '${{ github.workspace }}/output/macos/'
# - name: Compile MacOS
# run: cd src; qmake; make -j4

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "android_openssl"]
path = android_openssl
url = https://github.com/KDAB/android_openssl.git

View File

@@ -1,25 +1,92 @@
# qdomyos-zwift
Zwift bridge for Domyos treadmills
Zwift bridge for Treadmills and Bike!
[<img src="docs/google_play.png">](https://play.google.com/store/apps/details?id=org.cagnulen.qdomyoszwift&fbclid=IwAR3CVoYb0scvGf7gb0Y20VFh5Na5fDWwe7VACk-2c45Tm0x5s8sXpIGhGyw)
[<img src="docs/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/treadmill-bridge-schema.png)
[![Video](https://img.youtube.com/vi/GgG3dMhmo2Y/0.jpg)](https://www.youtube.com/watch?v=GgG3dMhmo2Y)
![UI](docs/ui.png)
![UI](docs/realtime-chart.png)
UI on Linux
![UI](docs/ui-mac.png)
UI on MacOS
### 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
![First Success](docs/first_success.jpg)
### Installation
### Installation from source
$ sudo apt update && sudo apt upgrade # this is very important on raspberry pi: you need the bluetooth firmware updated!
$ sudo apt install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-default libqt5networkauth5-dev
$ git clone https://github.com/cagnulein/qdomyos-zwift.git
$ sudo apt upgrade && sudo apt update # this is very important on raspberry pi: you need the bluetooth firmware updated!
$ cd src
$ sudo apt install libqt5bluetooth5
$ qmake
$ sudo hciconfig hci0 leadv 0
$ make -j4
$ sudo ./qdomyos-zwift
### MacOs installation
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 relase for MacOs
### Tested on
Raspberry PI 0W and Domyos Intense Run
- Raspberry PI 0W and Domyos Intense Run
- MacBook Air 2011 and Domyos Intense Run
- Raspberry 3b+ and Domyos T900C
- Raspberry 3b+ and Toorx TRX Route Key
- Android Pixel 2 and Echelon Connect Sport
### Your machine is not compatible?
Open an issue and follow these steps!
1. first of all you need an android device (phone or tablet)
2. you need to become developer on your phone https://wccftech.com/how-to/how-to-enable-developer-options-on-android-10-tutorial/
3. Go to Settings
4. Go into developer options
5. Enable the option Enable Bluetooth HCI snoop log
6. restart your phone
7. open your machine app and play with it collecting inclination and speed
8. Disable the option Enable Bluetooth HCI snoop log
9. on your phone you should have a file called btsnoop_hci.log
10. attach the log file in a new issue with a short description of the steps you did in the app when you used it
### No gui version
run as
$ sudo ./qdomyos-zwift -no-gui
### Reference

1
android_openssl Submodule

Submodule android_openssl added at fb472b74cb

BIN
btlogs/carnielli.cfa Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -0,0 +1,4 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="obG-Y5-kRd">
<rect key="frame" x="0.0" y="626.5" width="375" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="qdomyoszwift" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
<rect key="frame" x="0.0" y="202" width="375" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="obG-Y5-kRd" secondAttribute="centerX" id="5cz-MP-9tL"/>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="SfN-ll-jLj"/>
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="x7j-FC-K8j"/>
</constraints>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

View File

@@ -0,0 +1,8 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,10 @@
<?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>BuildSystemType</key>
<string>Original</string>
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
<false/>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
<?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>BuildLocationStyle</key>
<string>UseTargetSettings</string>
</dict>
</plist>

View File

@@ -0,0 +1,632 @@
#############################################################################
# Makefile for building: qdomyoszwift.app/Contents/MacOS/qdomyoszwift
# Generated by qmake (3.1) (Qt 5.15.2)
# Project: ../src/qdomyos-zwift.pro
# Template: app
# Command: /Users/cagnulein/Qt/5.15.2/ios/bin/qmake -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
#############################################################################
MAKEFILE = project.pbxproj
EQ = =
QMAKE = /Users/cagnulein/Qt/5.15.2/ios/bin/qmake
qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf ../../Qt/5.15.2/ios/mkspecs/features/spec_pre.prf \
../../Qt/5.15.2/ios/mkspecs/qdevice.pri \
../../Qt/5.15.2/ios/mkspecs/features/device_config.prf \
../../Qt/5.15.2/ios/mkspecs/common/unix.conf \
../../Qt/5.15.2/ios/mkspecs/common/mac.conf \
../../Qt/5.15.2/ios/mkspecs/common/uikit.conf \
../../Qt/5.15.2/ios/mkspecs/common/ios.conf \
../../Qt/5.15.2/ios/mkspecs/common/sanitize.conf \
../../Qt/5.15.2/ios/mkspecs/common/gcc-base.conf \
../../Qt/5.15.2/ios/mkspecs/common/gcc-base-mac.conf \
../../Qt/5.15.2/ios/mkspecs/common/clang.conf \
../../Qt/5.15.2/ios/mkspecs/common/clang-mac.conf \
../../Qt/5.15.2/ios/mkspecs/common/uikit/clang.conf \
../../Qt/5.15.2/ios/mkspecs/common/uikit/qmake.conf \
../../Qt/5.15.2/ios/mkspecs/qconfig.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender_private.pri \
../../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_bootstrap_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_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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fb_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_graphics_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui.pri \
../../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/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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_packetprotocol_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning.pri \
../../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_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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldevtools_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript.pri \
../../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_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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickparticles_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickshapes_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects.pri \
../../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_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_sql.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_theme_support_private.pri \
../../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_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 \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_zlib_private.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_darwingamepad.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_defaultgeometryloader.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfgeometryloader.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneexport.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneimport.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_openglrenderer.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfcamera.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfmediaplayer.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgenericbearer.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgif.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qicns.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qico.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qios.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qiosnsphotolibrarysupport.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qjpeg.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacheif.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacjp2.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qminimal.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_debugger.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_inspector.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_local.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_messages.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_native.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_nativedebugger.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_preview.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_profiler.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_quickprofiler.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_server.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_tcp.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qoffscreen.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsqlite.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvg.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvgicon.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtexttospeech_speechios.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtga.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_esri.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_itemsoverlay.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapbox.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapboxgl.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_nokia.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_osm.pri \
../../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_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_qtuiotouchplugin.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_qwebp.pri \
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri \
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf \
../../Qt/5.15.2/ios/mkspecs/features/qt_config.prf \
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf \
../../Qt/5.15.2/ios/mkspecs/macx-xcode/qmake.conf \
../../Qt/5.15.2/ios/mkspecs/features/spec_post.prf \
.qmake.stash \
../../Qt/5.15.2/ios/mkspecs/features/exclusive_builds.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/sdk.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/sdk.prf \
../../Qt/5.15.2/ios/mkspecs/features/toolchain.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/toolchain.prf \
../../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 \
../../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 \
../../Qt/5.15.2/ios/mkspecs/features/mac/default_post.prf \
../../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/qml_debug.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf \
../../Qt/5.15.2/ios/mkspecs/features/warn_on.prf \
../../Qt/5.15.2/ios/plugins/platforms/libqios_debug.prl \
../../Qt/5.15.2/ios/mkspecs/features/qt.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/qt.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/gc_binaries.prf \
../../Qt/5.15.2/ios/mkspecs/features/resources_functions.prf \
../../Qt/5.15.2/ios/mkspecs/features/resources.prf \
../../Qt/5.15.2/ios/mkspecs/features/moc.prf \
../../Qt/5.15.2/ios/mkspecs/features/unix/opengl.prf \
../../Qt/5.15.2/ios/mkspecs/features/uic.prf \
../../Qt/5.15.2/ios/mkspecs/features/unix/thread.prf \
../../Qt/5.15.2/ios/mkspecs/features/qmake_use.prf \
../../Qt/5.15.2/ios/mkspecs/features/file_copies.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/rez.prf \
../../Qt/5.15.2/ios/mkspecs/features/resolve_target.prf \
../../Qt/5.15.2/ios/mkspecs/features/mac/asset_catalogs.prf \
../../Qt/5.15.2/ios/mkspecs/features/testcase_targets.prf \
../../Qt/5.15.2/ios/mkspecs/features/uikit/testcase_targets.prf \
../../Qt/5.15.2/ios/mkspecs/features/exceptions.prf \
../../Qt/5.15.2/ios/mkspecs/features/yacc.prf \
../../Qt/5.15.2/ios/mkspecs/features/lex.prf \
../src/qdomyos-zwift.pro \
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/Default-568h@2x.png \
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/LaunchScreen.storyboard \
../src/icons.qrc \
../src/qml.qrc \
../../Qt/5.15.2/ios/lib/libQt5FontDatabaseSupport_debug.prl \
../../Qt/5.15.2/ios/lib/libqtfreetype_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5GraphicsSupport_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5ClipboardSupport_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Gui_debug.prl \
../../Qt/5.15.2/ios/lib/libqtlibpng_debug.prl \
../../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/imageformats/libqgif_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqjpeg_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqmacheif_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqmacjp2_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqtga_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqtiff_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqwbmp_debug.prl \
../../Qt/5.15.2/ios/plugins/imageformats/libqwebp_debug.prl \
../../Qt/5.15.2/ios/plugins/position/libqtposition_cl_debug.prl \
../../Qt/5.15.2/ios/plugins/position/libqtposition_positionpoll_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_debugger_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_inspector_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_local_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_messages_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_native_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_nativedebugger_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_preview_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_profiler_debug.prl \
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_quickprofiler_debug.prl \
../../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/lib/libQt5Widgets_debug.prl \
../../Qt/5.15.2/ios/lib/libQt5Quick_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/libQt5Network_debug.prl \
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_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/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/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/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/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
$(QMAKE) -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
@echo 'warning: Xcode project has been regenerated, custom settings have been lost. Use CONFIG+=no_autoqmake to prevent this behavior in the future, at the cost of requiring manual project change tracking.'
../../Qt/5.15.2/ios/mkspecs/features/spec_pre.prf:
../../Qt/5.15.2/ios/mkspecs/qdevice.pri:
../../Qt/5.15.2/ios/mkspecs/features/device_config.prf:
../../Qt/5.15.2/ios/mkspecs/common/unix.conf:
../../Qt/5.15.2/ios/mkspecs/common/mac.conf:
../../Qt/5.15.2/ios/mkspecs/common/uikit.conf:
../../Qt/5.15.2/ios/mkspecs/common/ios.conf:
../../Qt/5.15.2/ios/mkspecs/common/sanitize.conf:
../../Qt/5.15.2/ios/mkspecs/common/gcc-base.conf:
../../Qt/5.15.2/ios/mkspecs/common/gcc-base-mac.conf:
../../Qt/5.15.2/ios/mkspecs/common/clang.conf:
../../Qt/5.15.2/ios/mkspecs/common/clang-mac.conf:
../../Qt/5.15.2/ios/mkspecs/common/uikit/clang.conf:
../../Qt/5.15.2/ios/mkspecs/common/uikit/qmake.conf:
../../Qt/5.15.2/ios/mkspecs/qconfig.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender_private.pri:
../../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_bootstrap_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_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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fb_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_graphics_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui.pri:
../../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/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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_packetprotocol_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning.pri:
../../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_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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldevtools_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript.pri:
../../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_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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickparticles_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickshapes_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects.pri:
../../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_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_sql.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_theme_support_private.pri:
../../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_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:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_zlib_private.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_darwingamepad.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_defaultgeometryloader.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfgeometryloader.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneexport.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneimport.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_openglrenderer.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfcamera.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfmediaplayer.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgenericbearer.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgif.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qicns.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qico.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qios.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qiosnsphotolibrarysupport.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qjpeg.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacheif.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacjp2.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qminimal.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_debugger.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_inspector.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_local.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_messages.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_native.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_nativedebugger.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_preview.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_profiler.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_quickprofiler.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_server.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_tcp.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qoffscreen.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsqlite.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvg.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvgicon.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtexttospeech_speechios.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtga.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_esri.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_itemsoverlay.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapbox.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapboxgl.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_nokia.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_osm.pri:
../../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_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_qtuiotouchplugin.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_qwebp.pri:
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri:
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf:
../../Qt/5.15.2/ios/mkspecs/features/qt_config.prf:
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf:
../../Qt/5.15.2/ios/mkspecs/macx-xcode/qmake.conf:
../../Qt/5.15.2/ios/mkspecs/features/spec_post.prf:
.qmake.stash:
../../Qt/5.15.2/ios/mkspecs/features/exclusive_builds.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/sdk.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/sdk.prf:
../../Qt/5.15.2/ios/mkspecs/features/toolchain.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/toolchain.prf:
../../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:
../../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:
../../Qt/5.15.2/ios/mkspecs/features/mac/default_post.prf:
../../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/qml_debug.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf:
../../Qt/5.15.2/ios/mkspecs/features/warn_on.prf:
../../Qt/5.15.2/ios/plugins/platforms/libqios_debug.prl:
../../Qt/5.15.2/ios/mkspecs/features/qt.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/qt.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/gc_binaries.prf:
../../Qt/5.15.2/ios/mkspecs/features/resources_functions.prf:
../../Qt/5.15.2/ios/mkspecs/features/resources.prf:
../../Qt/5.15.2/ios/mkspecs/features/moc.prf:
../../Qt/5.15.2/ios/mkspecs/features/unix/opengl.prf:
../../Qt/5.15.2/ios/mkspecs/features/uic.prf:
../../Qt/5.15.2/ios/mkspecs/features/unix/thread.prf:
../../Qt/5.15.2/ios/mkspecs/features/qmake_use.prf:
../../Qt/5.15.2/ios/mkspecs/features/file_copies.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/rez.prf:
../../Qt/5.15.2/ios/mkspecs/features/resolve_target.prf:
../../Qt/5.15.2/ios/mkspecs/features/mac/asset_catalogs.prf:
../../Qt/5.15.2/ios/mkspecs/features/testcase_targets.prf:
../../Qt/5.15.2/ios/mkspecs/features/uikit/testcase_targets.prf:
../../Qt/5.15.2/ios/mkspecs/features/exceptions.prf:
../../Qt/5.15.2/ios/mkspecs/features/yacc.prf:
../../Qt/5.15.2/ios/mkspecs/features/lex.prf:
../src/qdomyos-zwift.pro:
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/Default-568h@2x.png:
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/LaunchScreen.storyboard:
../src/icons.qrc:
../src/qml.qrc:
../../Qt/5.15.2/ios/lib/libQt5FontDatabaseSupport_debug.prl:
../../Qt/5.15.2/ios/lib/libqtfreetype_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5GraphicsSupport_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5ClipboardSupport_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Gui_debug.prl:
../../Qt/5.15.2/ios/lib/libqtlibpng_debug.prl:
../../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/imageformats/libqgif_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqjpeg_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqmacheif_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqmacjp2_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqtga_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqtiff_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqwbmp_debug.prl:
../../Qt/5.15.2/ios/plugins/imageformats/libqwebp_debug.prl:
../../Qt/5.15.2/ios/plugins/position/libqtposition_cl_debug.prl:
../../Qt/5.15.2/ios/plugins/position/libqtposition_positionpoll_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_debugger_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_inspector_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_local_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_messages_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_native_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_nativedebugger_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_preview_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_profiler_debug.prl:
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_quickprofiler_debug.prl:
../../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/lib/libQt5Widgets_debug.prl:
../../Qt/5.15.2/ios/lib/libQt5Quick_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/libQt5Network_debug.prl:
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_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/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/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/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/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:
qmake: FORCE
@$(QMAKE) -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
qmake_all: FORCE

View File

@@ -0,0 +1,515 @@
#############################################################################
# Makefile for building: qdomyoszwift.app/Contents/MacOS/qdomyoszwift
# Generated by qmake (3.1) (Qt 5.15.2)
# Project: ../src/qdomyos-zwift.pro
# Template: app
# Command: /Users/cagnulein/Qt/5.15.2/ios/bin/qmake -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
#############################################################################
MAKEFILE = project.pbxproj
EQ = =
MOC = /Users/cagnulein/Qt/5.15.2/ios/bin/moc
UIC = /Users/cagnulein/Qt/5.15.2/ios/bin/uic
LEX = flex
LEXFLAGS =
YACC = yacc
YACCFLAGS = -d
DEFINES = -DQT_COMPILER_SUPPORTS_SSE2 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_BLUETOOTH_LIB -DQT_XML_LIB -DQT_POSITIONING_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
INCPATH = -I../src -I. -I../../Qt/5.15.2/ios/mkspecs/common/uikit -I../src/fit-sdk -I../../Qt/5.15.2/ios/include -I../../Qt/5.15.2/ios/include/QtWidgets -I../../Qt/5.15.2/ios/include/QtQuick -I../../Qt/5.15.2/ios/include/QtGui -I../../Qt/5.15.2/ios/include/QtBluetooth -I../../Qt/5.15.2/ios/include/QtXml -I../../Qt/5.15.2/ios/include/QtPositioning -I../../Qt/5.15.2/ios/include/QtQmlModels -I../../Qt/5.15.2/ios/include/QtQml -I../../Qt/5.15.2/ios/include/QtNetwork -I../../Qt/5.15.2/ios/include/QtCore -I. -I../../Qt/5.15.2/ios/mkspecs/macx-ios-clang
DEL_FILE = rm -f
MOVE = mv -f
preprocess: compilers
clean preprocess_clean: compiler_clean
mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
check: first
benchmark: first
compilers: qrc_icons.cpp qrc_qml.cpp moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp\
moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp\
moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp\
moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp\
moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp\
moc_domyosbike.cpp
compiler_rcc_make_all: qrc_icons.cpp qrc_qml.cpp
compiler_rcc_clean:
-$(DEL_FILE) qrc_icons.cpp qrc_qml.cpp
qrc_icons.cpp: ../src/icons.qrc \
../../Qt/5.15.2/ios/bin/rcc \
../src/icons/signal-0.png \
../src/icons/speed.png \
../src/icons/signal-1.png \
../src/icons/inclination.png \
../src/icons/signal-2.png \
../src/icons/signal-3.png \
../src/icons/watt.png \
../src/icons/heart_red.png \
../src/icons/weight.png \
../src/icons/start.png \
../src/icons/icon.png \
../src/icons/zwift-on.png \
../src/icons/kcal.png \
../src/icons/chart.png \
../src/icons/joul.png \
../src/icons/bluetooth-icon.png \
../src/icons/resistance.png \
../src/icons/odometer.png \
../src/icons/clock.png \
../src/icons/cadence.png \
../src/icons/fan.png \
../src/icons/elevationgain.png \
../src/icons/stop.png \
../src/icons/pace.png
/Users/cagnulein/Qt/5.15.2/ios/bin/rcc -name icons ../src/icons.qrc -o qrc_icons.cpp
qrc_qml.cpp: ../src/qml.qrc \
../../Qt/5.15.2/ios/bin/rcc \
../src/Page1Form.ui.qml \
../src/Page2Form.ui.qml \
../src/HomeForm.ui.qml \
../src/qtquickcontrols2.conf \
../src/main.qml \
../src/Home.qml \
../src/settings.qml
/Users/cagnulein/Qt/5.15.2/ios/bin/rcc -name qml ../src/qml.qrc -o qrc_qml.cpp
compiler_moc_header_make_all: moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp moc_domyosbike.cpp
compiler_moc_header_clean:
-$(DEL_FILE) moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp moc_domyosbike.cpp
moc_bike.cpp: ../src/bike.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bike.h -o moc_bike.cpp
moc_bluetooth.cpp: ../src/bluetooth.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../src/domyostreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualtreadmill.h \
../src/domyosbike.h \
../../Qt/5.15.2/ios/include/QtCore/QString \
../src/virtualbike.h \
../src/bike.h \
../src/trxappgateusbtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../src/toorxtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
../src/echelonconnectsport.h \
../src/signalhandler.h \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bluetooth.h -o moc_bluetooth.cpp
moc_bluetoothdevice.cpp: ../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bluetoothdevice.h -o moc_bluetoothdevice.cpp
moc_domyostreadmill.cpp: ../src/domyostreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/domyostreadmill.h -o moc_domyostreadmill.cpp
moc_echelonconnectsport.cpp: ../src/echelonconnectsport.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QString \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualbike.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../src/bike.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/echelonconnectsport.h -o moc_echelonconnectsport.cpp
moc_homeform.cpp: ../src/homeform.h \
../../Qt/5.15.2/ios/include/QtQuick/QQuickItem \
../../Qt/5.15.2/ios/include/QtQml/QQmlApplicationEngine \
../src/bluetooth.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../src/domyostreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualtreadmill.h \
../src/domyosbike.h \
../../Qt/5.15.2/ios/include/QtCore/QString \
../src/virtualbike.h \
../src/bike.h \
../src/trxappgateusbtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../src/toorxtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
../src/echelonconnectsport.h \
../src/signalhandler.h \
../src/sessionline.h \
../src/trainprogram.h \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/homeform.h -o moc_homeform.cpp
moc_qfit.cpp: ../src/qfit.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../../Qt/5.15.2/ios/include/QtPositioning/QGeoCoordinate \
../src/sessionline.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/qfit.h -o moc_qfit.cpp
moc_toorxtreadmill.cpp: ../src/toorxtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../src/virtualtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/toorxtreadmill.h -o moc_toorxtreadmill.cpp
moc_gpx.cpp: ../src/gpx.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../../Qt/5.15.2/ios/include/QtPositioning/QGeoCoordinate \
../src/sessionline.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/gpx.h -o moc_gpx.cpp
moc_treadmill.cpp: ../src/treadmill.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/treadmill.h -o moc_treadmill.cpp
moc_mainwindow.cpp: ../src/mainwindow.h \
../../Qt/5.15.2/ios/include/QtWidgets/QDialog \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../../Qt/5.15.2/ios/include/QtCore/QDebug \
../../Qt/5.15.2/ios/include/QtWidgets/QTableWidgetItem \
../src/trainprogram.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../src/bluetooth.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../src/domyostreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualtreadmill.h \
../src/domyosbike.h \
../../Qt/5.15.2/ios/include/QtCore/QString \
../src/virtualbike.h \
../src/bike.h \
../src/trxappgateusbtreadmill.h \
../src/toorxtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
../src/echelonconnectsport.h \
../src/signalhandler.h \
../src/sessionline.h \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/mainwindow.h -o moc_mainwindow.cpp
moc_trainprogram.cpp: ../src/trainprogram.h \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../src/bluetooth.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/QFile \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../src/domyostreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualtreadmill.h \
../src/domyosbike.h \
../../Qt/5.15.2/ios/include/QtCore/QString \
../src/virtualbike.h \
../src/bike.h \
../src/trxappgateusbtreadmill.h \
../src/toorxtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
../src/echelonconnectsport.h \
../src/signalhandler.h \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/trainprogram.h -o moc_trainprogram.cpp
moc_trxappgateusbtreadmill.cpp: ../src/trxappgateusbtreadmill.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QTime \
../src/virtualtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/trxappgateusbtreadmill.h -o moc_trxappgateusbtreadmill.cpp
moc_virtualbike.cpp: ../src/virtualbike.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../src/bike.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/virtualbike.h -o moc_virtualbike.cpp
moc_virtualtreadmill.cpp: ../src/virtualtreadmill.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../src/treadmill.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/virtualtreadmill.h -o moc_virtualtreadmill.cpp
moc_domyosbike.cpp: ../src/domyosbike.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
../../Qt/5.15.2/ios/include/QtCore/QObject \
../../Qt/5.15.2/ios/include/QtCore/QString \
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
../src/virtualbike.h \
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
../src/bike.h \
../src/bluetoothdevice.h \
../../Qt/5.15.2/ios/include/QtCore/QTimer \
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
../../Qt/5.15.2/ios/bin/moc
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/domyosbike.h -o moc_domyosbike.cpp
compiler_moc_objc_header_make_all:
compiler_moc_objc_header_clean:
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_rez_source_make_all:
compiler_rez_source_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_rcc_clean compiler_moc_header_clean

View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
BuildableName = "qdomyoszwift.app"
BlueprintName = "qdomyoszwift"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "NO"
disableMainThreadChecker = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
BuildableName = "qdomyoszwift.app"
BlueprintName = "qdomyoszwift"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "$(TESTARGS)"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9E73BA301EF4580BE706E2EC"
BuildableName = "Qt Test"
BlueprintName = "Qt Test"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
disableMainThreadChecker = "YES"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "NO"
debugServiceExtension = "internal"
enableGPUFrameCaptureMode = "3"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
BuildableName = "qdomyoszwift.app"
BlueprintName = "qdomyoszwift"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "DYLD_IMAGE_SUFFIX"
value = "$(QT_LIBRARY_SUFFIX)"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "NO">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
BuildableName = "qdomyoszwift.app"
BlueprintName = "qdomyoszwift"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1220"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "876E4E102594747F00BD5714"
BuildableName = "watchkit.app"
BlueprintName = "watchkit"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
BuildableName = "qdomyoszwift.app"
BlueprintName = "qdomyoszwift"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<RemoteRunnable
runnableDebuggingMode = "2"
BundleIdentifier = "com.apple.Carousel"
RemotePath = "/qdomyoszwift">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "876E4E102594747F00BD5714"
BuildableName = "watchkit.app"
BlueprintName = "watchkit"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</RemoteRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<RemoteRunnable
runnableDebuggingMode = "2"
BundleIdentifier = "com.apple.Carousel"
RemotePath = "/qdomyoszwift">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "876E4E102594747F00BD5714"
BuildableName = "watchkit.app"
BlueprintName = "watchkit"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</RemoteRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "876E4E102594747F00BD5714"
BuildableName = "watchkit.app"
BlueprintName = "watchkit"
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,631 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "6397C888-2938-4ABC-BC07-73BACD8E46BA"
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "50EB432C-A681-4A19-8144-54461AAFBC5A"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/main.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "163"
endingLineNumber = "163"
landmarkName = "createApplication(argc, argv)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "721796D3-13DB-421B-86C2-5E2328FA9E38"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/main.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "161"
endingLineNumber = "161"
landmarkName = "createApplication(argc, argv)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "E1BF66E4-BB4F-4936-9D45-AB7A82D14FDE"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/main.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "159"
endingLineNumber = "159"
landmarkName = "createApplication(argc, argv)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "80103083-98C3-439A-85EF-582852EACE58"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/WatchKitConnection.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "102"
endingLineNumber = "102"
landmarkName = "session(_:didReceiveMessage:replyHandler:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "3DD3927F-A606-4B89-B21F-832D2076D23D"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/WatchKitConnection.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "96"
endingLineNumber = "96"
landmarkName = "session(_:didReceiveMessage:replyHandler:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "7070D0F5-BD79-43DC-AE17-7B4D43FC5637"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "watchkit Extension/MainController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "56"
endingLineNumber = "56"
landmarkName = "didReceiveHealthKitHeartRate(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "watchkit Extension/WatchWorkoutTracking.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
landmarkName = "handleSendStatisticsData(_:)"
landmarkType = "7">
<Locations>
<Location
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -&gt; ()"
moduleName = "watchkit Extension"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
offsetFromSymbolStart = "260">
</Location>
<Location
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -&gt; ()"
moduleName = "watchkit Extension"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
offsetFromSymbolStart = "321">
</Location>
<Location
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -&gt; ()"
moduleName = "watchkit Extension"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
offsetFromSymbolStart = "1477">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "0F197A10-7E1F-458D-9DC1-A0B21E9F6E8A"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "48"
endingLineNumber = "48"
landmarkName = "BLEPeripheralManager"
landmarkType = "3">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "16D24B27-D0FB-4EC3-BAE8-56101FE7949B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "57"
endingLineNumber = "57"
landmarkName = "BLEPeripheralManager"
landmarkType = "3">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "6073E105-CED1-4C4B-B002-D650F7F70E32"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "78"
endingLineNumber = "78"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "AB0DB5FF-979B-4DC7-A83B-AE2053909675"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "101"
endingLineNumber = "101"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "45607ECF-89AE-45D1-B0FD-CE94793C160D"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "92"
endingLineNumber = "92"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "167ADF3B-EFCD-475C-9373-8CE22DDE0BDA"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "110"
endingLineNumber = "110"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "0264A627-97AD-4A72-83E4-AD224F128C57"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "114"
endingLineNumber = "114"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "98E0B050-6B1A-452C-B36D-FF3B539B1DD6"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "119"
endingLineNumber = "119"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A080A38F-4140-4C2A-A0CF-9DD6BB41CBBA"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "123"
endingLineNumber = "123"
landmarkName = "peripheralManagerDidUpdateState(_:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "7067E1E1-E0C5-43B9-B9A6-0654990324F3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "130"
endingLineNumber = "130"
landmarkName = "peripheralManager(_:didAdd:error:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "4503166F-EDC7-4ED3-AC2F-584ADF0E3FA5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/lockscreen.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "38"
endingLineNumber = "38"
landmarkName = "lockscreen::virtualbike_setHeartRate(heartRate)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "FE5697FF-F44C-43C2-A98D-C400EE56F047"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/lockscreen.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "44"
endingLineNumber = "44"
landmarkName = "lockscreen::virtualbike_setCadence(crankRevolutions, lastCrankEventTime)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "E8938847-29A7-4789-B7F5-B65386A6C6A0"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/lockscreen.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "37"
endingLineNumber = "37"
landmarkName = "lockscreen::virtualbike_setHeartRate(heartRate)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "3DBE0495-050A-4979-85D4-28B78676F212"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/lockscreen.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "43"
endingLineNumber = "43"
landmarkName = "lockscreen::virtualbike_setCadence(crankRevolutions, lastCrankEventTime)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "F3A2C1ED-B1A6-4772-913E-09143C997B67"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/lockscreen.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "32"
endingLineNumber = "32"
landmarkName = "lockscreen::virtualbike_ios()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
landmarkName = "updateHeartRate(HeartRate:)"
landmarkType = "7">
<Locations>
<Location
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3 - 7d1f106582667437"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "qdomyoszwift.virtualbike_ios_swift.updateHeartRate(HeartRate: Swift.UInt8) -&gt; ()"
moduleName = "qdomyoszwift"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/cagnulein/qdomyos-zwift/src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
offsetFromSymbolStart = "22">
</Location>
<Location
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3 - 4daffae51fb2d733"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "@objc qdomyoszwift.virtualbike_ios_swift.updateHeartRate(HeartRate: Swift.UInt8) -&gt; ()"
moduleName = "qdomyoszwift"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/cagnulein/qdomyos-zwift/src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
offsetFromSymbolStart = "28">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "1BED435D-636C-4FD8-9F5E-AB4351DAEC8F"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
landmarkName = "updateCadence(CrankRevolutions:LastCrankEventTime:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "AD1E4F54-E0A3-464A-A052-1102A8B5B78B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "178"
endingLineNumber = "178"
landmarkName = "startSendingDataToSubscribers()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "F9205200-7498-4DFA-8FBC-5FC639A5CFB2"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/main.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "298"
endingLineNumber = "298"
landmarkName = "main(argc, argv)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "C5748784-E678-46D9-B468-4FF24FC6C730"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "203"
endingLineNumber = "203"
landmarkName = "updateSubscribers()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "5A7118FF-F9B1-415F-974F-695C9F9913ED"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "188"
endingLineNumber = "188"
landmarkName = "calculateHeartRate()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "98876BA3-9A90-4900-B574-32EB7D5E72CE"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "197"
endingLineNumber = "197"
landmarkName = "calculateCadence()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "48566803-1327-43D7-9C71-F2DAAC4785FA"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "196"
endingLineNumber = "196"
landmarkName = "calculateCadence()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "468E0408-A96A-4030-BFEE-D78B82F16296"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
landmarkName = "unknown"
landmarkType = "0">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "DEB74A74-1486-45AC-83DD-258153AFE711"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "179"
endingLineNumber = "179"
landmarkName = "startSendingDataToSubscribers()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "C594A173-6845-4E66-8F36-DD7CD3689752"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/ios/BLEPeripheralManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "68"
endingLineNumber = "68"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "6CCF9CEA-E010-4E21-8D36-DB6058B91998"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../src/main.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "299"
endingLineNumber = "299"
landmarkName = "main(argc, argv)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@@ -0,0 +1,28 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : "<=145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,53 @@
{
"assets" : [
{
"filename" : "Circular.imageset",
"idiom" : "watch",
"role" : "circular"
},
{
"filename" : "Extra Large.imageset",
"idiom" : "watch",
"role" : "extra-large"
},
{
"filename" : "Graphic Bezel.imageset",
"idiom" : "watch",
"role" : "graphic-bezel"
},
{
"filename" : "Graphic Circular.imageset",
"idiom" : "watch",
"role" : "graphic-circular"
},
{
"filename" : "Graphic Corner.imageset",
"idiom" : "watch",
"role" : "graphic-corner"
},
{
"filename" : "Graphic Extra Large.imageset",
"idiom" : "watch",
"role" : "graphic-extra-large"
},
{
"filename" : "Graphic Large Rectangular.imageset",
"idiom" : "watch",
"role" : "graphic-large-rectangular"
},
{
"filename" : "Modular.imageset",
"idiom" : "watch",
"role" : "modular"
},
{
"filename" : "Utilitarian.imageset",
"idiom" : "watch",
"role" : "utilitarian"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,28 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : "<=145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,28 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : "<=145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,28 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : "<=145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,28 @@
{
"images" : [
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : "<=145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">161"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">145"
},
{
"idiom" : "watch",
"scale" : "2x",
"screen-width" : ">183"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,56 @@
//
// ComplicationController.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/9/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import ClockKit
class ComplicationController: NSObject, CLKComplicationDataSource {
// MARK: - Timeline Configuration
func getSupportedTimeTravelDirections(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimeTravelDirections) -> Void) {
handler([.forward, .backward])
}
func getTimelineStartDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) {
handler(nil)
}
func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) {
handler(nil)
}
func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) {
handler(.showOnLockScreen)
}
// MARK: - Timeline Population
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
// Call the handler with the current timeline entry
handler(nil)
}
func getTimelineEntries(for complication: CLKComplication, before date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) {
// Call the handler with the timeline entries prior to the given date
handler(nil)
}
func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) {
// Call the handler with the timeline entries after to the given date
handler(nil)
}
// MARK: - Placeholder Templates
func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
// This method will be called once per supported complication, and the results will be cached
handler(nil)
}
}

View File

@@ -0,0 +1,56 @@
//
// ExtensionDelegate.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/9/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import WatchKit
class ExtensionDelegate: NSObject, WKExtensionDelegate {
func applicationDidFinishLaunching() {
// Perform any final initialization of your application.
}
func applicationDidBecomeActive() {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillResignActive() {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, etc.
}
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
// Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one.
for task in backgroundTasks {
// Use a switch statement to check the task type
switch task {
case let backgroundTask as WKApplicationRefreshBackgroundTask:
// Be sure to complete the background task once youre done.
backgroundTask.setTaskCompletedWithSnapshot(false)
case let snapshotTask as WKSnapshotRefreshBackgroundTask:
// Snapshot tasks have a unique completion call, make sure to set your expiration date
snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil)
case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask:
// Be sure to complete the connectivity task once youre done.
connectivityTask.setTaskCompletedWithSnapshot(false)
case let urlSessionTask as WKURLSessionRefreshBackgroundTask:
// Be sure to complete the URL session task once youre done.
urlSessionTask.setTaskCompletedWithSnapshot(false)
case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask:
// Be sure to complete the relevant-shortcut task once you're done.
relevantShortcutTask.setTaskCompletedWithSnapshot(false)
case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask:
// Be sure to complete the intent-did-run task once you're done.
intentDidRunTask.setTaskCompletedWithSnapshot(false)
default:
// make sure to complete unhandled task types
task.setTaskCompletedWithSnapshot(false)
}
}
}
}

View File

@@ -0,0 +1,47 @@
<?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>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>watchkit Extension</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>CLKComplicationPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).ComplicationController</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>WKAppBundleIdentifier</key>
<string>org.cagnulein.qdomyoszwift.watchkitapp</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.watchkit</string>
</dict>
<key>NSHealthShareUsageDescription</key>
<string>access to heartbeat in order to show it in the application</string>
<key>NSHealthUpdateUsageDescription</key>
<string>access to heartbeat in order to show it in the application</string>
<key>UIBackgroundModes</key>
<array/>
<key>WKBackgroundModes</key>
<array>
<string>self-care</string>
<string>workout-processing</string>
</array>
</dict>
</plist>

View File

@@ -0,0 +1,70 @@
//
// MainController.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/12/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import WatchKit
import HealthKit
class MainController: WKInterfaceController {
@IBOutlet weak var userNameLabel: WKInterfaceLabel!
@IBOutlet weak var stepCountsLabel: WKInterfaceLabel!
@IBOutlet weak var heartRateLabel: WKInterfaceLabel!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
print("AWAKE")
WorkoutTracking.authorizeHealthKit()
WorkoutTracking.shared.startWorkOut()
WorkoutTracking.shared.delegate = self
WatchKitConnection.shared.delegate = self
WatchKitConnection.shared.startSession()
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
print("WILL ACTIVE")
WorkoutTracking.shared.fetchStepCounts()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
print("DID DEACTIVE")
}
}
extension MainController {
@IBAction func startWorkout() {
WorkoutTracking.shared.startWorkOut()
}
@IBAction func stopWorkout() {
WorkoutTracking.shared.stopWorkOut()
}
}
extension MainController: WorkoutTrackingDelegate {
func didReceiveHealthKitHeartRate(_ heartRate: Double) {
heartRateLabel.setText("\(heartRate) BPM")
WatchKitConnection.shared.sendMessage(message: ["heartRate":
"\(heartRate)" as AnyObject])
}
func didReceiveHealthKitStepCounts(_ stepCounts: Double) {
stepCountsLabel.setText("\(stepCounts) STEPS")
}
}
extension MainController: WatchKitConnectionDelegate {
func didReceiveUserName(_ userName: String) {
userNameLabel.setText(userName)
}
}

View File

@@ -0,0 +1,38 @@
//
// NotificationController.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/9/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import WatchKit
import Foundation
import UserNotifications
class NotificationController: WKUserNotificationInterfaceController {
override init() {
// Initialize variables here.
super.init()
// Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
override func didReceive(_ notification: UNNotification) {
// This method is called when a notification needs to be presented.
// Implement it if you use a dynamic notification interface.
// Populate your dynamic notification interface as quickly as possible.
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,20 @@
{
"aps": {
"alert": {
"body": "Test message",
"title": "Optional title",
"subtitle": "Optional subtitle"
},
"category": "myCategory",
"thread-id": "5280"
},
"WatchKit Simulator Actions": [
{
"title": "First Button",
"identifier": "firstButtonAction"
}
],
"customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
}

View File

@@ -0,0 +1,8 @@
<?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>com.apple.developer.healthkit</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,80 @@
//
// WatchKitConnection.swift
// ElecDemo
//
// Created by NhatHM on 8/12/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import Foundation
import WatchConnectivity
protocol WatchKitConnectionDelegate: class {
func didReceiveUserName(_ userName: String)
}
protocol WatchKitConnectionProtocol {
func startSession()
func sendMessage(message: [String : AnyObject], replyHandler: (([String : AnyObject]) -> Void)?, errorHandler: ((NSError) -> Void)?)
}
class WatchKitConnection: NSObject {
static let shared = WatchKitConnection()
weak var delegate: WatchKitConnectionDelegate?
private override init() {
super.init()
}
private let session: WCSession? = WCSession.isSupported() ? WCSession.default : nil
private var validSession: WCSession? {
#if os(iOS)
if let session = session, session.isPaired, session.isWatchAppInstalled {
return session
}
#elseif os(watchOS)
return session
#endif
}
private var validReachableSession: WCSession? {
if let session = validSession, session.isReachable {
return session
}
return nil
}
}
extension WatchKitConnection: WatchKitConnectionProtocol {
func startSession() {
session?.delegate = self
session?.activate()
}
func sendMessage(message: [String : AnyObject],
replyHandler: (([String : AnyObject]) -> Void)? = nil,
errorHandler: ((NSError) -> Void)? = nil)
{
validReachableSession?.sendMessage(message, replyHandler: { (result) in
print(result)
}, errorHandler: { (error) in
print(error)
})
}
}
extension WatchKitConnection: WCSessionDelegate {
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
print("activationDidCompleteWith")
}
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
guard let userName = message.values.first as? String else {
return
}
delegate?.didReceiveUserName(userName)
}
}

View File

@@ -0,0 +1,199 @@
//
// WatchWorkoutTracking.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/12/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import Foundation
import HealthKit
protocol WorkoutTrackingDelegate: class {
func didReceiveHealthKitHeartRate(_ heartRate: Double)
func didReceiveHealthKitStepCounts(_ stepCounts: Double)
}
protocol WorkoutTrackingProtocol {
static func authorizeHealthKit()
func startWorkOut()
func stopWorkOut()
func fetchStepCounts()
}
class WorkoutTracking: NSObject {
static let shared = WorkoutTracking()
let healthStore = HKHealthStore()
let configuration = HKWorkoutConfiguration()
var workoutSession: HKWorkoutSession!
var workoutBuilder: HKLiveWorkoutBuilder!
weak var delegate: WorkoutTrackingDelegate?
override init() {
super.init()
}
}
extension WorkoutTracking {
private func handleSendStatisticsData(_ statistics: HKStatistics) {
switch statistics.quantityType {
case HKQuantityType.quantityType(forIdentifier: .heartRate):
let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
delegate?.didReceiveHealthKitHeartRate(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .stepCount):
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
return
default:
return
}
}
private func configWorkout() {
configuration.activityType = .cycling
configuration.locationType = .indoor
do {
workoutSession = try HKWorkoutSession(healthStore: healthStore, configuration: configuration)
workoutBuilder = workoutSession?.associatedWorkoutBuilder()
} catch {
return
}
workoutSession.delegate = self
workoutBuilder.delegate = self
workoutBuilder.dataSource = HKLiveWorkoutDataSource(healthStore: healthStore, workoutConfiguration: configuration)
}
}
extension WorkoutTracking: WorkoutTrackingProtocol {
static func authorizeHealthKit() {
if HKHealthStore.isHealthDataAvailable() {
let infoToRead = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.workoutType()
])
let infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.workoutType()
])
HKHealthStore().requestAuthorization(toShare: infoToShare, read: infoToRead) { (success, error) in
if success {
print("Authorization healthkit success")
} else if let error = error {
print(error)
}
}
} else {
print("HealthKit not avaiable")
}
}
func startWorkOut() {
print("Start workout")
configWorkout()
workoutSession.startActivity(with: Date())
workoutBuilder.beginCollection(withStart: Date()) { (success, error) in
print(success)
if let error = error {
print(error)
}
}
}
func stopWorkOut() {
print("Stop workout")
workoutSession.stopActivity(with: Date())
workoutSession.end()
workoutBuilder.endCollection(withEnd: Date()) { (success, error) in
}
}
func fetchStepCounts() {
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
}
}
extension WorkoutTracking: HKLiveWorkoutBuilderDelegate {
func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didCollectDataOf collectedTypes: Set<HKSampleType>) {
print("GET DATA: \(Date())")
for type in collectedTypes {
guard let quantityType = type as? HKQuantityType else {
return
}
if let statistics = workoutBuilder.statistics(for: quantityType) {
handleSendStatisticsData(statistics)
}
}
}
func workoutBuilderDidCollectEvent(_ workoutBuilder: HKLiveWorkoutBuilder) {
}
}
extension WorkoutTracking: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
}

View File

@@ -0,0 +1,22 @@
//
// qdomyoszwiftApp.swift
// watchkit Extension
//
// Created by Roberto Viola on 24/12/2020.
//
import SwiftUI
/*
@main
struct qdomyoszwiftApp: App {
@SceneBuilder var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
WKNotificationScene(controller: NotificationController.self, category: "myCategory")
}
}
*/

View File

@@ -0,0 +1,4 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//

View File

@@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,81 @@
{
"images" : [
{
"idiom" : "watch",
"role" : "notificationCenter",
"scale" : "2x",
"size" : "24x24",
"subtype" : "38mm"
},
{
"idiom" : "watch",
"role" : "notificationCenter",
"scale" : "2x",
"size" : "27.5x27.5",
"subtype" : "42mm"
},
{
"idiom" : "watch",
"role" : "companionSettings",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "watch",
"role" : "companionSettings",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "40x40",
"subtype" : "38mm"
},
{
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "44x44",
"subtype" : "40mm"
},
{
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "50x50",
"subtype" : "44mm"
},
{
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "86x86",
"subtype" : "38mm"
},
{
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "98x98",
"subtype" : "42mm"
},
{
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "108x108",
"subtype" : "44mm"
},
{
"idiom" : "watch-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,200 @@
{
"images" : [
{
"filename" : "Icon-App-20x20@2x.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "Icon-App-20x20@3x.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"filename" : "Icon-App-29x29@2x.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "Icon-App-29x29@3x.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"filename" : "Icon-App-40x40@2x.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "Icon-App-40x40@3x.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"filename" : "Icon-App-60x60@2x.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "Icon-App-60x60@3x.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"filename" : "Icon-App-20x20@1x.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"filename" : "Icon-App-20x20@2x-1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "Icon-App-29x29@1x.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"filename" : "Icon-App-29x29@2x-1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "Icon-App-40x40@1x.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"filename" : "Icon-App-40x40@2x-1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "Icon-App-76x76@1x.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"filename" : "Icon-App-76x76@2x.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "Icon-App-83.5x83.5@2x.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"filename" : "ItunesArtwork@2x.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
},
{
"filename" : "48.png",
"idiom" : "watch",
"role" : "notificationCenter",
"scale" : "2x",
"size" : "24x24",
"subtype" : "38mm"
},
{
"filename" : "55.png",
"idiom" : "watch",
"role" : "notificationCenter",
"scale" : "2x",
"size" : "27.5x27.5",
"subtype" : "42mm"
},
{
"filename" : "58.png",
"idiom" : "watch",
"role" : "companionSettings",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "87.png",
"idiom" : "watch",
"role" : "companionSettings",
"scale" : "3x",
"size" : "29x29"
},
{
"filename" : "80.png",
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "40x40",
"subtype" : "38mm"
},
{
"filename" : "88.png",
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "44x44",
"subtype" : "40mm"
},
{
"filename" : "Icon100.png",
"idiom" : "watch",
"role" : "appLauncher",
"scale" : "2x",
"size" : "50x50",
"subtype" : "44mm"
},
{
"filename" : "172.png",
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "86x86",
"subtype" : "38mm"
},
{
"filename" : "196.png",
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "98x98",
"subtype" : "42mm"
},
{
"filename" : "216.png",
"idiom" : "watch",
"role" : "quickLook",
"scale" : "2x",
"size" : "108x108",
"subtype" : "44mm"
},
{
"filename" : "Icon1024.png",
"idiom" : "watch-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,33 @@
<?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>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>qdomyoszwift</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>WKCompanionAppBundleIdentifier</key>
<string>org.cagnulein.qdomyoszwift</string>
<key>WKWatchKitApp</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="17506" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Tpn-rd-UUX">
<device id="watch38"/>
<dependencies>
<deployment identifier="watchOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="17500"/>
</dependencies>
<scenes>
<!--Main-->
<scene sceneID="2gh-qF-IkA">
<objects>
<controller identifier="Main" hidesWhenLoading="NO" id="Tpn-rd-UUX" customClass="MainController" customModule="watchkit_Extension">
<items>
<label width="136" alignment="left" text="qdomyos-zwift" textAlignment="center" id="SlU-M7-WGB"/>
<label width="136" alignment="left" text="Heart Rate" id="Nda-m1-XRw"/>
<label width="136" alignment="left" text="Step Counts" id="HpA-e9-6YV"/>
<button width="1" alignment="left" title="Start" id="vZg-X8-uY5">
<connections>
<action selector="startWorkout" destination="Tpn-rd-UUX" id="UaW-pR-tn6"/>
</connections>
</button>
<button width="1" alignment="left" title="Stop" id="mVg-K9-PI9">
<connections>
<action selector="stopWorkout" destination="Tpn-rd-UUX" id="Jy7-gN-USZ"/>
</connections>
</button>
</items>
<connections>
<outlet property="heartRateLabel" destination="Nda-m1-XRw" id="1la-8R-3jG"/>
<outlet property="stepCountsLabel" destination="HpA-e9-6YV" id="Z88-ej-6oG"/>
<outlet property="userNameLabel" destination="SlU-M7-WGB" id="Y2O-Lg-bDx"/>
</connections>
</controller>
</objects>
<point key="canvasLocation" x="220" y="345"/>
</scene>
<!--Static Notification Interface Controller-->
<scene sceneID="AEw-b0-oYE">
<objects>
<notificationController id="YCC-NB-fut">
<items>
<label alignment="left" text="Alert Label" numberOfLines="0" id="IdU-wH-bcW"/>
</items>
<notificationCategory key="notificationCategory" identifier="myCategory" id="JfB-70-Muf"/>
<connections>
<outlet property="notificationAlertLabel" destination="IdU-wH-bcW" id="JKC-fr-R95"/>
<segue destination="4sK-HA-Art" kind="relationship" relationship="dynamicNotificationInterface" id="kXh-Jw-8B1"/>
<segue destination="eXb-UN-Cd0" kind="relationship" relationship="dynamicInteractiveNotificationInterface" id="mpB-YA-K8N"/>
</connections>
</notificationController>
</objects>
<point key="canvasLocation" x="220" y="643"/>
</scene>
<!--Notification Controller-->
<scene sceneID="ZPc-GJ-vnh">
<objects>
<controller id="4sK-HA-Art" customClass="NotificationController" customModule="watchkit" customModuleProvider="target"/>
</objects>
<point key="canvasLocation" x="468" y="643"/>
</scene>
<!--Notification Controller-->
<scene sceneID="Niz-AI-uX2">
<objects>
<controller id="eXb-UN-Cd0" customClass="NotificationController" customModule="watchkit" customModuleProvider="target"/>
</objects>
<point key="canvasLocation" x="468" y="345"/>
</scene>
</scenes>
</document>

10
docker/linux/Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM debian:stable
MAINTAINER cagnulein
ENV MAKEFLAGS -j8
WORKDIR /usr/local/src
# utils
RUN apt -y update
RUN apt -y upgrade
RUN apt -y install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-default

BIN
docs/CPP_v1.1.pdf Normal file

Binary file not shown.

BIN
docs/CPS_v1.1.pdf Normal file

Binary file not shown.

BIN
docs/CSCP_SPEC_V10.pdf Normal file

Binary file not shown.

BIN
docs/CSCS_SPEC_V10.pdf Normal file

Binary file not shown.

BIN
docs/app_store.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
docs/google_play.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Copyright 2011 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="CSC Measurement" type="org.bluetooth.characteristic.csc_measurement" uuid="2A5B" last-modified="2012-04-12" approved="Yes">
<InformativeText>
<Summary>
The CSC Measurement characteristic (CSC refers to Cycling Speed and Cadence) is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain one or more additional fields as shown in the tables below.
</Summary>
</InformativeText>
<Value>
<Field name="Flags">
<InformativeText>These flags define which data fields are present in the Characteristic value.</InformativeText>
<Requirement>Mandatory</Requirement>
<Format>8bit</Format>
<BitField>
<Bit index="0" size="1" name="Wheel Revolution Data Present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C1" />
</Enumerations>
</Bit>
<Bit index="1" size="1" name="Crank Revolution Data Present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C2" />
</Enumerations>
</Bit>
<ReservedForFutureUse index="2" size="6" />
</BitField>
</Field>
<Field name="Cumulative Wheel Revolutions">
<InformativeText>
C1: Field exists if the key of bit 0 of the Flags field is set to 1.
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint32</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
</Field>
<Field name="Last Wheel Event Time">
<InformativeText>
Unit has a resolution of 1/1024s.
<br>C1: Field exists if the key of bit 0 of the Flags field is set to 1.</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
<BinaryExponent>-10</BinaryExponent>
</Field>
<Field name="Cumulative Crank Revolutions">
<InformativeText>
C2: Field exists if the key of bit 1 of the Flags field is set to 1.
</InformativeText>
<Requirement>C2</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
</Field>
<Field name="Last Crank Event Time">
<InformativeText>C2: Field exists if the key of bit 1 of the Flags field is set to 1.
<br>Unit has a resolution of 1/1024s.</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
<BinaryExponent>-10</BinaryExponent>
</Field>
</Value>
<Note>
The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.
</Note>
</Characteristic>

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?><!-- <?xml-stylesheet type="text/xsl" href="FieldBasedDisplay.xslt"?> --><!--Copyright 2016 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Power Control Point"
type="org.bluetooth.characteristic.cycling_power_control_point" uuid="2A66" last-modified="2016-05-03"
approved="Yes">
<InformativeText>
<Summary>The Cycling Power Control Point characteristic is used to request a specific function to be executed
on the receiving device.
</Summary>
</InformativeText>
<Value>
<Field name="Op Codes">
<Requirement>Mandatory</Requirement>
<Format>uint8</Format>
<Enumerations>
<Enumeration key="1" value="Set Cumulative Value"
description="Initiate the procedure to set a cumulative value. The new value is sent as parameter following op code (parameter defined per service). The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="2" value="Update Sensor Location"
description="Update to the location of the Sensor with the value sent as parameter to this op code. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="3" value="Request Supported Sensor Locations"
description="Request a list of supported locations where the Sensor can be attached. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including a list of supported Sensor locations in the Response Parameter."/>
<Enumeration key="4" value="Set Crank Length"
description="Initiate the procedure to set the crank length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x04 operand. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="5" value="Request Crank Length"
description="Request the current crank length value set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the Crank Length in the Response Parameter."/>
<Enumeration key="6" value="Set Chain Length"
description="Initiate the procedure to set the chain length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x06 operand. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="7" value="Request Chain Length"
description="Request the current chain length value set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the chain length in the Response Parameter."/>
<Enumeration key="8" value="Set Chain Weight"
description="Initiate the procedure to set the chain weight value to Sensor. The new value is sent as a parameter with preceding Op Code 0x08 operand. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="9" value="Request Chain Weight"
description="Request the current chain weight value set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the chain weight in the Response Parameter."/>
<Enumeration key="10" value="Set Span Length"
description="Initiate the procedure to set the span length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x0A operand. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="11" value="Request Span Length"
description="Request the current span length value set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the span length in the Response Parameter."/>
<Enumeration key="12" value="Start Offset Compensation"
description="Starts the offset compensation process of the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the raw force or a raw torque in the Response Parameter (defined per Service)."/>
<Enumeration key="13" value="Mask Cycling Power Measurement Characteristic Content"
description="Initiate the procedure to set the content of Cycling Power Measurement Characteristic. The response to this control point is Op Code 0x20 followed by the appropriate Response Value."/>
<Enumeration key="14" value="Request Sampling Rate"
description="Request the sampling rate value set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the sampling rate in the Response Parameter."/>
<Enumeration key="15" value="Request Factory Calibration Date"
description="Request the Factory calibration date set in the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the Factory calibration date in the Response Parameter."/>
<Enumeration key="16" value="Start Enhanced Offset Compensation"
description="Starts the offset compensation process of the Sensor. The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the raw force or a raw torque in the Response Parameter and an option for a manufacturer specific value (defined per Service)."/>
<Enumeration key="32" value="Response Code"
description="The Response Code is followed by the Request Op Code, the Response Value and optionally, the Response Parameter."/>
<ReservedForFutureUse start="0" end="0"/>
<ReservedForFutureUse start="17" end="31"/>
<ReservedForFutureUse start="33" end="255"/>
</Enumerations>
</Field>
<Field name="Parameter Value"><!--<InformativeText>Parameter Value for "Set Cumulative Value" Op Code</InformativeText>-->
<Requirement>Optional</Requirement>
<Format>variable</Format>
<Description>Defined per Service specification.</Description>
</Field>
<Field name="Request Op Code">
<InformativeText>The Request Op Code is a sub field of the Parameter Value for "Response Code" Op Code.
<br>
C1: This Field is Mandatory for "Response Code" Op Code, otherwise this field is Excluded.
</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint8</Format>
<Description>Refer to the Op Code table above for additional information on the possible values for this
field.
</Description>
</Field>
<Field name="Response Value">
<InformativeText>The Response Value is a sub field of the Parameter Value for "Response Code" Op Code
<br>
C1: This Field is Mandatory for "Response Code" Op Code, otherwise this field is Excluded.
</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint8</Format>
<Enumerations>
<Enumeration key="1" value="Success" description="Response for successful operation. "/>
<Enumeration key="2" value="Op Code not Supported"
description="Response if unsupported Op Code is received."/>
<Enumeration key="3" value="Invalid Parameter"
description="Response if Parameter received does not meet the requirements of the service or is outside of the supported range of the Sensor."/>
<Enumeration key="4" value="Operation Failed"
description="Response if the requested procedure failed."/>
<ReservedForFutureUse start="0" end="0"/>
<ReservedForFutureUse start="5" end="255"/>
</Enumerations>
</Field>
<Field name="Response Parameter">
<InformativeText>The Response Parameter is a sub field of the Parameter Value for "Response Code" Op Code.
<br>
C2:This Field is Optional for "Response Code" Op Code, otherwise this field is Excluded.
</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>variable</Format>
<Description>Note: The Response Parameter Value of the response to the Control Point is a variable length
field to allow a list of different values defined by the Service Specification
</Description>
</Field>
</Value>
<Note>
The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO =
Least Significant Octet and MSO = Most Significant Octet.
The Least Significant Octet represents the eight bits numbered 0 to 7.
</Note>
</Characteristic>

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?><!-- <?xml-stylesheet type="text/xsl" href="FieldBasedDisplay.xslt"?> --><!--Copyright 2016 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Power Feature"
type="org.bluetooth.characteristic.cycling_power_feature" uuid="2A65" last-modified="2016-05-03"
approved="Yes">
<InformativeText>
<Summary>The CP Feature characteristic is used to report a list of features supported by the device.</Summary>
</InformativeText>
<Value>
<Field name="Cycling Power Feature">
<Requirement>Mandatory</Requirement>
<Format>32bit</Format>
<BitField>
<Bit index="0" size="1" name="Pedal Power Balance Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="1" size="1" name="Accumulated Torque Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="2" size="1" name="Wheel Revolution Data Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="3" size="1" name="Crank Revolution Data Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="4" size="1" name="Extreme Magnitudes Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="5" size="1" name="Extreme Angles Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="6" size="1" name="Top and Bottom Dead Spot Angles Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="7" size="1" name="Accumulated Energy Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="8" size="1" name="Offset Compensation Indicator Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="9" size="1" name="Offset Compensation Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="10" size="1" name="Cycling Power Measurement Characteristic Content Masking Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="11" size="1" name="Multiple Sensor Locations Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="12" size="1" name="Crank Length Adjustment Supported ">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="13" size="1" name="Chain Length Adjustment Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="14" size="1" name="Chain Weight Adjustment Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="15" size="1" name="Span Length Adjustment Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="16" size="1" name="Sensor Measurement Context">
<Enumerations>
<Enumeration key="0" value="Force based"/>
<Enumeration key="1" value="Torque based"/>
</Enumerations>
</Bit>
<Bit index="17" size="1" name="Instantaneous Measurement Direction Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="18" size="1" name="Factory Calibration Date Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="19" size="1" name="Enhanced Offset Compensation Supported">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="20" size="2" name="Distribute System Support">
<Enumerations>
<Enumeration key="0" value="Unspecified (legacy sensor)"/>
<Enumeration key="1" value="Not for use in a distributed system"/>
<Enumeration key="2" value="Can be used in a distributed system"/>
<Enumeration key="3" value="RFU"/>
</Enumerations>
</Bit>
<ReservedForFutureUse index="22" size="10"/>
</BitField>
</Field>
</Value>
<Note>
The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO =
Least Significant Octet and MSO = Most Significant Octet.
The Least Significant Octet represents the eight bits numbered 0 to 7.
</Note>
</Characteristic>

View File

@@ -0,0 +1,304 @@
<?xml version="1.0" encoding="utf-8"?><!--Copyright 2011 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Power Measurement"
type="org.bluetooth.characteristic.cycling_power_measurement" uuid="2A63" last-modified="2014-07-02"
approved="Yes">
<InformativeText>
<Summary>The Cycling Power Measurement characteristic is a variable length structure containing a Flags field,
an Instantaneous Power field and, based on the contents of the Flags field, may contain one or more
additional fields as shown in the table below.
</Summary>
</InformativeText>
<Value>
<Field name="Flags">
<Requirement>Mandatory</Requirement>
<Format>16bit</Format>
<BitField>
<Bit index="0" size="1" name="Pedal Power Balance Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="1" size="1" name="Pedal Power Balance Reference">
<Enumerations>
<Enumeration key="0" value="Unknown"/>
<Enumeration key="1" value="Left"/>
</Enumerations>
</Bit>
<Bit index="2" size="1" name="Accumulated Torque Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="3" size="1" name="Accumulated Torque Source">
<Enumerations>
<Enumeration key="0" value="Wheel Based"/>
<Enumeration key="1" value="Crank Based"/>
</Enumerations>
</Bit>
<Bit index="4" size="1" name="Wheel Revolution Data Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="5" size="1" name="Crank Revolution Data Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="6" size="1" name="Extreme Force Magnitudes Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="7" size="1" name="Extreme Torque Magnitudes Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="8" size="1" name="Extreme Angles Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="9" size="1" name="Top Dead Spot Angle Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="10" size="1" name="Bottom Dead Spot Angle Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="11" size="1" name="Accumulated Energy Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="12" size="1" name="Offset Compensation Indicator ">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<ReservedForFutureUse index="13" size="3"/>
</BitField>
<b>C1:These Fields are dependent upon the Flags field</b>
<p></p>
</Field>
<Field name="Instantaneous Power">
<InformativeText>
Unit is in watts with a resolution of 1.
</InformativeText>
<Requirement>Mandatory</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.power.watt</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Pedal Power Balance">
<InformativeText>
Unit is in percentage with a resolution of 1/2.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint8</Format>
<Unit>org.bluetooth.unit.percentage</Unit>
<BinaryExponent>-1</BinaryExponent>
</Field>
<Field name="Accumulated Torque">
<InformativeText>
Unit is in newton metres with a resolution of 1/32.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.moment_of_force.newton_metre</Unit>
<BinaryExponent>-5</BinaryExponent>
</Field>
<Field name="Wheel Revolution Data - Cumulative Wheel Revolutions">
<InformativeText>
Unitless
<br>C1:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint32</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Wheel Revolution Data - Last Wheel Event Time">
<InformativeText>
Unit is in seconds with a resolution of 1/2048.
<br>C1:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
<BinaryExponent>-11</BinaryExponent>
</Field>
<Field name="Crank Revolution Data- Cumulative Crank Revolutions">
<InformativeText>
Unitless
<br>C2:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Crank Revolution Data- Last Crank Event Time">
<InformativeText>
Unit is in seconds with a resolution of 1/1024.
<br>C2:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
<BinaryExponent>-10</BinaryExponent>
</Field>
<Field name="Extreme Force Magnitudes - Maximum Force Magnitude">
<InformativeText>
Unit is in newtons with a resolution of 1.
<br>C3:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C3</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.force.newton</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Extreme Force Magnitudes - Minimum Force Magnitude">
<InformativeText>
Unit is in newtons with a resolution of 1.
<br>C3:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C3</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.force.newton</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Extreme Torque Magnitudes- Maximum Torque Magnitude">
<InformativeText>
Unit is in newton metres with a resolution of 1/32.
<br>C4:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C4</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.moment_of_force.newton_metre</Unit>
<BinaryExponent>-5</BinaryExponent>
</Field>
<Field name="Extreme Torque Magnitudes- Minimum Torque Magnitude">
<InformativeText>
Unit is in newton metres with a resolution of 1/32.
<br>C4:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C4</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.moment_of_force.newton_metre</Unit>
<BinaryExponent>-5</BinaryExponent>
</Field>
<Field name="Extreme Angles - Maximum Angle">
<InformativeText>
Unit is in degrees with a resolution of 1
<br>C5: When present, this field and the "Extreme Angles - Minimum Angle" field are always present as a
pair and are concatenated into a UINT24 value (3 octets). As an example, if the Maximum Angle is
0xABC and the Minimum Angle is 0x123, the transmitted value is 0x123ABC.
</br>
</InformativeText>
<Requirement>C5</Requirement>
<Format>uint12</Format>
<Unit>org.bluetooth.unit.plane_angle.degree
</Unit><!-- 2014-07-02 - Added the Description tag to show the informational text per request from SF WG -->
<Description>When observed with the front wheel to the right of the pedals, a value of 0 degrees represents
the angle when the crank is in the 12 o'clock position and a value of 90 degrees
represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock
position. The left crank sensor (if fitted) detects the 0? when the crank it
is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the
crank it is attached to is in its 12 o'clock position; thus, there is a constant
180? difference between the right crank and the left crank position signals.
</Description>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Extreme Angles - Minimum Angle">
<InformativeText>
Unit is in degrees with a resolution of 1.
<br>C5: When present, this field and the "Extreme Angles - Maximum Angle" field are always present as a
pair and are concatenated into a UINT24 value (3 octets). As an example, if the Maximum Angle is
0xABC and the Minimum Angle is 0x123, the transmitted value is 0x123ABC.
</br>
</InformativeText>
<Requirement>C5</Requirement>
<Format>uint12</Format>
<Unit>org.bluetooth.unit.plane_angle.degree
</Unit><!-- 2014-07-02 - Added the Description tag to show the informational text per request from SF WG -->
<Description>When observed with the front wheel to the right of the pedals, a value of 0 degrees represents
the angle when the crank is in the 12 o'clock position and a value of 90 degrees
represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock
position. The left crank sensor (if fitted) detects the 0? when the crank it
is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the
crank it is attached to is in its 12 o'clock position; thus, there is a constant
180? difference between the right crank and the left crank position signals.
</Description>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Top Dead Spot Angle">
<InformativeText>
Unit is in degrees with a resolution of 1.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.plane_angle.degree
</Unit><!-- 2014-07-02 - Added the Description tag to show the informational text per request from SF WG -->
<Description>When observed with the front wheel to the right of the pedals, a value of 0 degrees represents
the angle when the crank is in the 12 o'clock position and a value of 90 degrees
represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock
position. The left crank sensor (if fitted) detects the 0? when the crank it
is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the
crank it is attached to is in its 12 o'clock position; thus, there is a constant
180? difference between the right crank and the left crank position signals.
</Description>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Bottom Dead Spot Angle">
<InformativeText>
Unit is in degrees with a resolution of 1.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.plane_angle.degree
</Unit><!-- 2014-07-02 - Added the Description tag to show the informational text per request from SF WG -->
<Description>When observed with the front wheel to the right of the pedals, a value of 0 degrees represents
the angle when the crank is in the 12 o'clock position and a value of 90 degrees
represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock
position. The left crank sensor (if fitted) detects the 0? when the crank it
is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the
crank it is attached to is in its 12 o'clock position; thus, there is a constant
180? difference between the right crank and the left crank position signals.
</Description>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Accumulated Energy">
<InformativeText>
Unit is in kilojoules with a resolution of 1.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.energy.joule</Unit>
<DecimalExponent>3</DecimalExponent>
</Field>
</Value>
<Note>
<p>
The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO
= Least Significant Octet and MSO = Most Significant Octet.
The Least Significant Octet represents the eight bits numbered 0 to 7.
</p>
</Note>
</Characteristic>

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?><!--Copyright 2011 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Power Vector"
type="org.bluetooth.characteristic.cycling_power_vector" uuid="2A64" last-modified="2014-07-02"
approved="Yes">
<InformativeText>
<Summary>The Cycling Power Vector characteristic is a variable length structure containing a Flags fieldand
based on the contents of the Flags field, may contain one or more additional fields as shown in the table
below.
</Summary>
</InformativeText>
<Value>
<Field name="Flags">
<Requirement>Mandatory</Requirement>
<Format>8bit</Format>
<BitField>
<Bit index="0" size="1" name="Crank Revolution Data Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="1" size="1" name="First Crank Measurement Angle Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="2" size="1" name="Instantaneous Force Magnitude Array Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="3" size="1" name="Instantaneous Torque Magnitude Array Present">
<Enumerations>
<Enumeration key="0" value="False"/>
<Enumeration key="1" value="True"/>
</Enumerations>
</Bit>
<Bit index="4" size="2" name="Instantaneous Measurement Direction">
<Enumerations>
<Enumeration key="0" value="Unknown"/>
<Enumeration key="1" value="Tangential Component"/>
<Enumeration key="2" value="Radial Component"/>
<Enumeration key="3" value="Lateral Component"/>
</Enumerations>
</Bit>
<ReservedForFutureUse index="6" size="2"/>
</BitField>
<br>C1:These Fields are dependent upon the Flags field</br>
<p></p>
</Field>
<Field name="Crank Revolution Data - Cumulative Crank Revolutions">
<InformativeText>
Unitless
<br>C1:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Crank Revolution Data - Last Crank Event Time">
<InformativeText>
Unit is in seconds with a resolution of 1/1024.
<br>C1:When present, these fields are always present as a pair.</br>
</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
<BinaryExponent>-10</BinaryExponent>
</Field>
<Field name="First Crank Measurement Angle ">
<InformativeText>
Unit is in degrees with a resolution of 1.
</InformativeText>
<Requirement>Optional</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.plane_angle.degree
</Unit><!-- 2014-07-02 - Added the Description tag to show the informational text per request from SF WG -->
<Description>When observed with the front wheel to the right of the pedals, a value of 0 degrees represents
the angle when the crank is in the 12 o'clock position and a value of 90 degrees
represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock
position. The left crank sensor (if fitted) detects the 0? when the crank it
is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the
crank it is attached to is in its 12 o'clock position; thus, there is a constant
180? difference between the right crank and the left crank position signals.
</Description>
<DecimalExponent>0</DecimalExponent>
</Field>
<Field name="Instantaneous Force Magnitude Array">
<InformativeText>
The unit is in newtons with a resolution of 1
<br>Array Order - Older is towards the LSO and Newer is towards the MSO</br>
<br>C2: These fields are mutually exclusive. When this field is present, the presence of the
Instantaneous Torque Magnitude Array is excluded.
</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.force.newton</Unit>
<DecimalExponent>0</DecimalExponent>
<Repeated>1</Repeated>
</Field>
<Field name="Instantaneous Torque Magnitude Array">
<InformativeText>
Unit is in newton/meter with a resolution of 1/32
<br>Array Order - Older is towards the LSO and Newer is towards the MSO</br>
<br>C2: These fields are mutually exclusive. When this field is present, the presence of the
Instantaneous Force Magnitude Array is excluded.
</br>
</InformativeText>
<Requirement>C2</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.moment_of_force.newton_metre</Unit>
<BinaryExponent>-5</BinaryExponent>
<Repeated>1</Repeated>
</Field>
</Value>
<Note>
<p>
The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO
= Least Significant Octet and MSO = Most Significant Octet.
The Least Significant Octet represents the eight bits numbered 0 to 7.
</p>
</Note>
</Characteristic>

View File

@@ -0,0 +1,210 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Copyright 2017 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Indoor Bike Data" type="org.bluetooth.characteristic.indoor_bike_data" uuid="2AD2" last-modified="2017-02-14" approved="Yes">
<InformativeText>
<Summary>The Indoor Bike Data characteristic is used to send training-related data to the Client from an indoor bike (Server).</Summary>
</InformativeText>
<Value>
<Field name="Flags">
<Requirement>Mandatory</Requirement>
<Format>16bit</Format>
<BitField>
<Bit index="0" size="1" name="More Data">
<Enumerations>
<Enumeration key="0" value="False" requires="C1"/>
<Enumeration key="1" value="True" />
</Enumerations>
</Bit>
<Bit index="1" size="1" name="Average Speed present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C2" />
</Enumerations>
</Bit>
<Bit index="2" size="1" name="Instantaneous Cadence present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C3"/>
</Enumerations>
</Bit>
<Bit index="3" size="1" name="Average Candence present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C4" />
</Enumerations>
</Bit>
<Bit index="4" size="1" name="Total Distance Present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C5" />
</Enumerations>
</Bit>
<Bit index="5" size="1" name="Resistance Level present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C6" />
</Enumerations>
</Bit>
<Bit index="6" size="1" name="Instantaneous Power present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C7" />
</Enumerations>
</Bit>
<Bit index="7" size="1" name="Average Power present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C8" />
</Enumerations>
</Bit>
<Bit index="8" size="1" name="Expended Energy present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C9" />
</Enumerations>
</Bit>
<Bit index="9" size="1" name="Heart Rate present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C10" />
</Enumerations>
</Bit>
<Bit index="10" size="1" name="Metabolic Equivalent present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C11" />
</Enumerations>
</Bit>
<Bit index="11" size="1" name="Elapsed Time present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C12" />
</Enumerations>
</Bit>
<Bit index="12" size="1" name="Remaining Time present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C13" />
</Enumerations>
</Bit>
<ReservedForFutureUse index="13" size="3" />
</BitField>
</Field>
<Field name="Instantaneous Speed">
<InformativeText>Kilometer per hour with a resolution of 0.01</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<DecimalExponent>-2</DecimalExponent>
<Unit>org.bluetooth.unit.velocity.kilometre_per_hour</Unit>
</Field>
<Field name="Average Speed">
<InformativeText>Kilometer per hour with a resolution of 0.01</InformativeText>
<Requirement>C2</Requirement>
<Format>uint16</Format>
<DecimalExponent>-2</DecimalExponent>
<Unit>org.bluetooth.unit.velocity.kilometre_per_hour</Unit>
</Field>
<Field name="Instantaneous Cadence">
<InformativeText>1/minute with a resolution of 0.5</InformativeText>
<Requirement>C3</Requirement>
<BinaryExponent>-1</BinaryExponent>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
</Field>
<Field name="Average Cadence">
<InformativeText>1/minute with a resolution of 0.5</InformativeText>
<Requirement>C4</Requirement>
<BinaryExponent>-1</BinaryExponent>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
</Field>
<Field name="Total Distance">
<InformativeText>Meters with a resolution of 1</InformativeText>
<Requirement>C5</Requirement>
<Format>uint24</Format>
<Unit>org.bluetooth.unit.length.metre</Unit>
</Field>
<Field name="Resistance Level">
<InformativeText>Unitless with a resolution of 1</InformativeText>
<Requirement>C6</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
</Field>
<Field name="Instantaneous Power">
<InformativeText>Watts with a resolution of 1</InformativeText>
<Requirement>C7</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.power.watt</Unit>
</Field>
<Field name="Average Power">
<InformativeText>Watts with a resolution of 1</InformativeText>
<Requirement>C8</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.power.watt</Unit>
</Field>
<Field name="Total Energy">
<InformativeText>Kilo Calorie with a resolution of 1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Energy Per Hour">
<InformativeText>Kilo Calorie with a resolution of 1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Energy Per Minute">
<InformativeText>Kilo Calorie with a resolution of 1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint8</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Heart Rate">
<InformativeText>Beats per minute with a resolution of 1</InformativeText>
<Requirement>C10</Requirement>
<Format>uint8</Format>
<Unit>org.bluetooth.unit.period.beats_per_minute</Unit>
</Field>
<Field name="Metabolic Equivalent">
<InformativeText>Metabolic Equivalent with a resolution of 0.1</InformativeText>
<Requirement>C11</Requirement>
<Format>uint8</Format>
<DecimalExponent>-1</DecimalExponent>
<Unit>org.bluetooth.unit.metabolic_equivalent</Unit>
</Field>
<Field name="Elapsed Time">
<InformativeText>Second with a resolution of 1</InformativeText>
<Requirement>C12</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
<Field name="Remaining Time">
<InformativeText>Second with a resolution of 1</InformativeText>
<Requirement>C13</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
</Value>
<Note>
The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.
The Least Significant Octet represents the eight bits numbered 0 to 7.
</Note>
</Characteristic>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Copyright 2017 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="Supported Resistance Level Range"
type="org.bluetooth.characteristic.supported_resistance_level_range"
uuid="2AD6" last-modified="2017-02-14" approved="Yes">
<InformativeText>
<Summary>The Supported Resistance Level Range characteristic is
used to send the supported resistance level range as well as
the minimum resistance increment supported by the
Server.</Summary>
</InformativeText>
<Value>
<Field name="Minimum Resistance Level">
<InformativeText>Unitless with a resolution of
0.1</InformativeText>
<Requirement>Mandatory</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>-1</DecimalExponent>
</Field>
<Field name="Maximum Resistance Level">
<InformativeText>Unitless with a resolution of
0.1</InformativeText>
<Requirement>Mandatory</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>-1</DecimalExponent>
</Field>
<Field name="Minimum Increment">
<InformativeText>Unitless with a resolution of
0.1</InformativeText>
<Requirement>Mandatory</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
<DecimalExponent>-1</DecimalExponent>
</Field>
</Value>
</Characteristic>

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2011 Bluetooth SIG, Inc. All rights reserved. -->
<Service xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/service.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Speed and Cadence" type="org.bluetooth.service.cycling_speed_and_cadence" uuid="1816" last-modified="2012-04-05" approved="Yes">
<InformativeText>
<Abstract>
This service exposes speed-related and cadence-related data from a Cycling Speed and Cadence sensor intended for fitness applications.
</Abstract>
<Summary>
The Cycling Speed and Cadence (CSC) Service exposes speed-related data and/or cadence-related data while using the Cycling Speed and Cadence sensor (Server).
</Summary>
</InformativeText>
<Dependencies>
<Dependency>This service is not dependent upon any other services.</Dependency>
</Dependencies>
<GATTRequirements>
<Requirement subProcedure="Write Characteristic Values">C1</Requirement>
<Requirement subProcedure="Notifications">Mandatory</Requirement>
<Requirement subProcedure="Indications">C1</Requirement>
<Requirement subProcedure="Read Characteristic Descriptors">Mandatory</Requirement>
<Requirement subProcedure="Write Characteristic Descriptors">Mandatory</Requirement>
</GATTRequirements>
<Note>C1: Mandatory if the SC Control Point characteristic is supported, otherwise excluded for this service.</Note>
<Transports>
<Classic>true</Classic>
<LowEnergy>true</LowEnergy>
</Transports>
<ErrorCodes>
<ErrorCode name="Procedure Already in Progress" code="0x80">A SC Control Point request cannot be serviced because a previously triggered SC Control Point operation is still in progress.</ErrorCode>
<ErrorCode name="Client Characteristic Configuration descriptor improperly configured" code="0x81">The Client Characteristic Configuration descriptor is not configured according to the requirements of the service.</ErrorCode>
</ErrorCodes>
<Characteristics>
<Characteristic name="CSC Measurement" type="org.bluetooth.characteristic.csc_measurement">
<InformativeText>
The CSC Measurement characteristic is used to send speed-related data and/or cadence-related data.
</InformativeText>
<Requirement>Mandatory</Requirement>
<Properties>
<Read>Excluded</Read>
<Write>Excluded</Write>
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
<SignedWrite>Excluded</SignedWrite>
<ReliableWrite>Excluded</ReliableWrite>
<Notify>Mandatory</Notify>
<Indicate>Excluded</Indicate>
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
<Broadcast>Excluded</Broadcast>
</Properties>
<Descriptors>
<Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
<Requirement>Mandatory</Requirement>
<Properties>
<Read>Mandatory</Read>
<Write>Mandatory</Write>
</Properties>
</Descriptor>
</Descriptors>
</Characteristic>
<Characteristic name="CSC Feature" type="org.bluetooth.characteristic.csc_feature">
<InformativeText>
The CSC Feature characteristic is used to describe the supported features of the Server. Reserved for Future Use (RFU) bits in the CSC Feature characteristic value are set to 0.
</InformativeText>
<Requirement>Mandatory</Requirement>
<Properties>
<Read>Mandatory</Read>
<Write>Excluded</Write>
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
<SignedWrite>Excluded</SignedWrite>
<ReliableWrite>Excluded</ReliableWrite>
<Notify>Excluded</Notify>
<Indicate>Excluded</Indicate>
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
<Broadcast>Excluded</Broadcast>
</Properties>
</Characteristic>
<Characteristic name="Sensor Location" type="org.bluetooth.characteristic.sensor_location">
<InformativeText>
<p>The Sensor Location characteristic of the device is used to describe the physical location of the Server when correctly fitted.</p>
<p><b>C1:</b> Mandatory if the Multiple Sensor Location feature is supported, otherwise optional.</p>
</InformativeText>
<Requirement>C1</Requirement>
<Properties>
<Read>Mandatory</Read>
<Write>Excluded</Write>
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
<SignedWrite>Excluded</SignedWrite>
<ReliableWrite>Excluded</ReliableWrite>
<Notify>Excluded</Notify>
<Indicate>Excluded</Indicate>
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
<Broadcast>Excluded</Broadcast>
</Properties>
</Characteristic>
<Characteristic name="SC Control Point" type="org.bluetooth.characteristic.sc_control_point">
<InformativeText>
<p>If the SC Control Point is supported, profiles utilizing this service are required to ensure that the Client configures the SC Control Point characteristic for indications (i.e. via the Client Characteristic Configuration descriptor) at the first connection.</p>
<p>Support for this characteristic is mandatory if the Server supports Wheel Revolution Data or Multiple Sensor Locations features, otherwise it is excluded.</p>
<p><b>C2:</b> Mandatory if at least one SC Control Point procedure is supported, otherwise excluded.</p>
</InformativeText>
<Requirement>C2</Requirement>
<Properties>
<Read>Excluded</Read>
<Write>Mandatory</Write>
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
<SignedWrite>Excluded</SignedWrite>
<ReliableWrite>Excluded</ReliableWrite>
<Notify>Excluded</Notify>
<Indicate>Mandatory</Indicate>
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
<Broadcast>Excluded</Broadcast>
</Properties>
<Descriptors>
<Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
<Requirement>if_characteristic_supported</Requirement>
<Properties>
<Read>Mandatory</Read>
<Write>Mandatory</Write>
</Properties>
</Descriptor>
</Descriptors>
</Characteristic>
</Characteristics>
</Service>

BIN
docs/realtime-chart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

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