/*************************************************************************** BionxControl Copyright © 2025 christoph holzheuer christoph.holzheuer@gmail.com Using: BigXionFlasher USB V 0.2.4 rev. 97 © 2011-2013 by Thomas Koenig @see www.bigxionflasher.org Bionx Bike Info © 2018 Thorsten Schmidt (tschmidt@ts-soft.de) @see www.ts-soft.de mhs_can_drv.c 3.00 © 2011 - 2015 by MHS-Elektronik GmbH & Co. KG, Germany Demlehner Klaus, info@mhs-elektronik.de @see www.mhs-elektronik.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. @see https://github.com/bikemike/bionx-bikeinfo ***************************************************************************/ #include #include BCValue::BCValue(BCDevice::ID deviceID_, BC::ID targetID_) : deviceID{deviceID_}, targetID{targetID_} { } void BCValue::setLongValue( uint8_t value) { } uint8_t BCValue::getLongValue() { return 0; } BCValue BCValue::makeValue( BCDevice::ID deviceID, const BCValueParams& params ) { auto setIfExists = [&]( QStringView source, optDouble& target ) { if( !source.isEmpty() ) { bool ok; double testVal = source.toDouble(&ok); if (ok) target = testVal; } }; static QMetaEnum s_bcValueEnum{QMetaEnum::fromType()}; /* Wir brauchen: - eine gültige ID */ BCValue newValue{}; auto IDVal = s_bcValueEnum.keyToValue64( params.ID.toLatin1().constData() ); if( IDVal.has_value() ) { newValue = BCValue( deviceID, BC::ID( IDVal.value() ) ); setIfExists( params.Factor, newValue.factor ); setIfExists( params.Min, newValue.min ); setIfExists( params.Max, newValue.max ); newValue.defaultValue.setValue( params.Label ); newValue.value.setValue( params.Current ); newValue.label = params.Label; } return newValue; }