diff --git a/bcdatamanager.cpp b/bcdatamanager.cpp index a01f4ba..5e7ec5c 100644 --- a/bcdatamanager.cpp +++ b/bcdatamanager.cpp @@ -107,7 +107,8 @@ void BCDataManager::loadXmlBikeData( const QString& fileName ) printAttrs (_xml); // Wir wollen die Device-ID aus dem XML Tag ermitteln const char* deviceKey = _xml.attributes().value("Type"_L1).toLatin1().constData(); - auto optDeviceID = _bcDeviceEnum.keysToValue64(deviceKey); + /* + auto optDeviceID = _bcDeviceEnum.keyToValue64(deviceKey); //_currentDeviceID = BCDevice::ID( deviceID.value_or( BCDevice::ID::Invalid ) ); if( optDeviceID.has_value()) { @@ -115,6 +116,19 @@ void BCDataManager::loadXmlBikeData( const QString& fileName ) BCDevice::ID currentDeviceID = BCDevice::ID( optDeviceID.value() ); loadXmlBikeDeviceData(currentDeviceID); } + */ + bool ok; + auto optDeviceID = _bcDeviceEnum.keyToValue(deviceKey,&ok); + //_currentDeviceID = BCDevice::ID( deviceID.value_or( BCDevice::ID::Invalid ) ); + //if( optDeviceID.has_value()) + if(ok) + { + qDebug() << " --- Device: " << _xml.name() << ": " << deviceType << " : " << optDeviceID; + //BCDevice::ID currentDeviceID = BCDevice::ID( optDeviceID.value() ); + BCDevice::ID currentDeviceID = BCDevice::ID( optDeviceID ); + loadXmlBikeDeviceData(currentDeviceID); + } + } } @@ -214,14 +228,17 @@ std::optional BCDataManager::makeDataValue( BCDevice::ID deviceID, cons std::optional newValue; - std::optional IDVal = s_bcValueEnum.keysToValue64( params.ID.toLatin1().constData() ); + bool ok; + //std::optional IDVal = s_bcValueEnum.keyToValue64( params.ID.toLatin1().constData() ); + int IDVal = s_bcValueEnum.keyToValue( params.ID.toLatin1().constData(), &ok ); qDebug() << " --- should create: " << params.Label << ": " << params.UnitType; - if( IDVal.has_value() ) + //if( IDVal.has_value() ) + if( IDVal ) { auto valueType = BCValueType::fetchValueType(params.UnitType); if( valueType.has_value() ) { - newValue = BCValue( *valueType, deviceID, static_cast(IDVal.value()) ); + newValue = BCValue( *valueType, deviceID, static_cast(IDVal) ); /* setIfExists( params.Factor, newValue.factor ); diff --git a/resources/bikeinfo.xml b/resources/bikeinfo.xml index e43fdac..5f5a8d3 100644 --- a/resources/bikeinfo.xml +++ b/resources/bikeinfo.xml @@ -41,11 +41,14 @@ - + + + + - - + +