setChannelID() could be called with a null device_id. This may
result in pairing with an unexpected channel type if more than
one channel is available from that device_number.
.. Wahoo don't do that anymore.
.. now use the same channel as the device and just send plain old
ANT+ messages to set slope etc (why they didn't do that in the
first place is absolutely beyond me)
.. getting ready to implement Kickr for the THIRD time !!!
.. added config and page decoding for Moxy
Next steps are (2) add telemetry to realtime data structure
and display on the realtime chart and telemetry
(3) add SmO2 and tHb to file format which means moving
away from powertap csv format (!)
.. the Moxy can be configured as a SandC sensor, so in
readiness for ANT+ support in GC just adding code to
spot it.
.. will also need to update this for when it is paired
as a muscle oxygen monitor
.. will need to add SmO2 and tHb realtime data telemetry
.. will also need to add code to device config to notify
when SandC is spotted as a moxy
.. it seems to be working ok
.. it provides too much output, even for debugging purposes
.. it isn't relavent for 99% of users now its in the master
repository and being compiled up and used
.. the code has been updated to support the Wahoo Kickr
via an ANT+ USB stick.
.. this requires the Kickr to be running a beta firmware
of version v1.3.15. This can only be loaded via the
Wahoo utility.
.. for those that have access to the beta firmware this
patch will work, for all others they will need to wait
for the formal release by Wahoo.
.. the code contains *lots* of debug and does not yet support
calibration and slope mode is largely untested.
As a personal habit I tend to use the C pre-processor to
comment out code blocks I don't want to remove. This is in
case the code will be required in the future.
I think it is now safe to say the code commented out is not
required -- most of it is legacy and marks the transition from
earlier designs or legacy code.
I've done this in one big commit since in theory it has no
functional change, and in future can look in this commit for any
code we may want to reinstate.
Removing and fixing 'XXX' code markers across the ANT+
code. Largely this was to confirm against specs and mark
for future support (e.g. burst data, further refactoring
of the quarqd sources).
All are harmless but for the sake of clarity have
fixed them all bar a couple;
- Lucene grumbles about signed/unsigned conversion which
is/isn't valid depending upon the version of CLucene you
compile with. Either way it is harmless.
- QxtScheduleView has a bunch of issues, but since it is a
third party widget its better to leave it unchanged.
Andy Bryson's fixes for quarq power spikes removed
processing of standard power messages (see commit
cc0bd29).
This was because a check was performed on ANTMessage::period
which is not set for Standard power messages and will always
be zero.
This may fix processing of power2max power telemetry.
ANT+ telemetry data processing in ANTChannel now
checks for previous message period values.
Fixes#607.
[Tested by author on Quarq cranks, error not recreated
on SRM or Powertap devices, but may be Quarq specific]
Introduce a wizard for adding realtime devices since it
is prone to user error, is relatively complicated and is
something most users will only ever do once or twice.
There are several logical updates within this patch:
First; Fix intermittent ANT+ not working
* LibUsb - check bufRemaining is > 0 not non-zero
* LibUsb - Always reset the USB stick on open
* ANT.cpp - Support > 4 channels on USB2
* ANTChannel - Do not use pairing, but always
* unassign, assign and set channel id.
Second; Fix device discovery
* Find and discover support in realtime controllers
* Extend Serial.cpp to cover more Serial devices
* Support for 4 or 8 ANT channels for USB1/USB2
Third; Introduce Add Device Wizard with
* General and Specific wizard pages for each device type
* Device pairing with telemetry display
* fixed compile time warnings
Fourth; Update Device Config Page
* use wizard to add new device
* remove edit fields, replaced by wizard
* remove pair, firmware buttons replaced by wizard
Fifth; Deprecate/Remove Device Types
* Null Device - used by developers only
* Quarqd client - replaced by Native ANT+
* GC Server - not implemented yet
I have also introduced a device specific wheel size
and flags for controlling the default selection and
sources for sensor data when in multi-device mode. These
are not yet supported in the code.
Fixes#611.
Fixes#497.
Standard power messages include an instant cadence
value which we ignored. We should use this if it is
available.
Fixes previous attempt by setting Cadence rather than
wheelRPM with the instant cadence value (!)
Fixes#556.