public async void Connect(string deviceName, string serviceName)
        {
            // "Tacx Flux 00438"
            int errorCode = await this.BleBike.OpenDevice(deviceName);

            errorCode = await this.BleBike.SetService(serviceName);

            // "6e40fec1-b5a3-f393-e0a9-e50e24dcca9e"
            this.BleBike.SubscriptionValueChanged += (s, e) => SubscriptionValueChanged?.Invoke(e);
            errorCode = await this.BleBike.SubscribeToCharacteristic(serviceName);
        }
        public async void Connect(string deviceName, string serviceName)
        {
            // "Decathlon Dual HR"
            // "HeartRate"
            int errorCode = await this.BleHeart.OpenDevice(deviceName);

            errorCode = await this.BleHeart.SetService(serviceName);

            // "HeartRateMeasurement"
            this.BleHeart.SubscriptionValueChanged += (s, e) => SubscriptionValueChanged?.Invoke(e);
            errorCode = await this.BleHeart.SubscribeToCharacteristic(serviceName);
        }
 private void SetValueChange(StateValueKey stateValueKey, StateValue value)
 {
     SubscriptionValueChanged?.Invoke(stateValueKey, value);
     Logger.LogInformation($"Subscription value receive for {stateValueKey} with value {value.Value}, updating on {value.LastUpdate}");
 }