Compare commits

...

1 Commits

Author SHA1 Message Date
Roberto Viola
aa2c9ef123 wahoo virtual serial number 2025-02-07 13:41:34 +01:00
2 changed files with 37 additions and 0 deletions

View File

@@ -116,6 +116,34 @@ virtualbike::virtualbike(bluetoothdevice *t, bool noWriteResistance, bool noHear
advertisingData.setServices(services);
//! [Advertising Data]
QLowEnergyCharacteristicData manufacturerNameChar;
manufacturerNameChar.setUuid(QBluetoothUuid::CharacteristicType::ManufacturerNameString);
manufacturerNameChar.setProperties(QLowEnergyCharacteristic::Read);
manufacturerNameChar.setValue(QByteArray("Wahoo Fitness"));
QLowEnergyCharacteristicData firmwareRevChar;
firmwareRevChar.setUuid(QBluetoothUuid::CharacteristicType::FirmwareRevisionString);
firmwareRevChar.setProperties(QLowEnergyCharacteristic::Read);
firmwareRevChar.setValue(QByteArray("5.4.29"));
QLowEnergyCharacteristicData hardwareRevChar;
hardwareRevChar.setUuid(QBluetoothUuid::CharacteristicType::HardwareRevisionString);
hardwareRevChar.setProperties(QLowEnergyCharacteristic::Read);
hardwareRevChar.setValue(QByteArray("7"));
QLowEnergyCharacteristicData serialNumberChar;
serialNumberChar.setUuid(QBluetoothUuid::CharacteristicType::SerialNumberString);
serialNumberChar.setProperties(QLowEnergyCharacteristic::Read);
serialNumberChar.setValue(QByteArray("223002139"));
// Create Device Information Service
serviceDataDIS.setType(QLowEnergyServiceData::ServiceTypePrimary);
serviceDataDIS.setUuid(QBluetoothUuid::DeviceInformation);
serviceDataDIS.addCharacteristic(manufacturerNameChar);
serviceDataDIS.addCharacteristic(firmwareRevChar);
serviceDataDIS.addCharacteristic(serialNumberChar);
serviceDataDIS.addCharacteristic(hardwareRevChar);
if (!echelon && !ifit) {
if (!heart_only) {
if (!cadence && !power) {
@@ -465,6 +493,9 @@ virtualbike::virtualbike(bluetoothdevice *t, bool noWriteResistance, bool noHear
}
QThread::msleep(100); // give time to Android to add the service async.ly
serviceDIS = leController->addService(serviceDataDIS);
QThread::msleep(100);
if (battery) {
serviceBattery = leController->addService(serviceDataBattery);
}
@@ -1340,6 +1371,9 @@ void virtualbike::reconnect() {
}
QThread::msleep(100); // give time to Android to add the service async.ly
serviceDIS = leController->addService(serviceDataDIS);
QThread::msleep(100);
if (battery)
serviceBattery = leController->addService(serviceDataBattery);

View File

@@ -52,6 +52,7 @@ class virtualbike : public virtualdevice {
QLowEnergyService *serviceChanged = nullptr;
QLowEnergyService *serviceWattAtomBike = nullptr;
QLowEnergyService *serviceZwiftPlayBike = nullptr;
QLowEnergyService *serviceDIS = nullptr;
QLowEnergyAdvertisingData advertisingData;
QLowEnergyServiceData serviceDataHR;
QLowEnergyServiceData serviceDataBattery;
@@ -61,6 +62,8 @@ class virtualbike : public virtualdevice {
QLowEnergyServiceData serviceEchelon;
QLowEnergyServiceData serviceDataWattAtomBike;
QLowEnergyServiceData serviceDataZwiftPlayBike;
QLowEnergyServiceData serviceDataDIS;
QTimer bikeTimer;
bluetoothdevice *Bike;
CharacteristicWriteProcessor2AD9 *writeP2AD9 = 0;