@@ -165,24 +165,27 @@ int16_t SensirionI2cScd4x::getDataReadyStatus(bool& arg0) {
165165
166166int16_t
167167SensirionI2cScd4x::getSensorVariant (SCD4xSensorVariant& aSensorVariant) {
168+ SCD4xSensorVariant retVal = SCD4X_SENSOR_VARIANT_MASK;
168169 uint16_t rawSensorVariant = 0 ;
170+ uint16_t mySensorVariant = 0 ;
169171 int16_t localError = 0 ;
172+ retVal = SCD4X_SENSOR_VARIANT_MASK;
173+ uint16_t mask = (uint16_t )(retVal);
170174 localError = getSensorVariantRaw (rawSensorVariant);
171175 if (localError != NO_ERROR) {
172176 return localError;
173177 }
174- uint16_t variant = (uint16_t )(rawSensorVariant & 4 );
175- if (variant == 0 ) {
176- aSensorVariant = SCD4X_SENSOR_VARIANT_SCD40;
177- ;
178- return localError ;
179- } else if (variant == 1 ) {
180- aSensorVariant = SCD4X_SENSOR_VARIANT_SCD41 ;
181- ;
182- return localError ;
178+ mySensorVariant = (uint16_t )(rawSensorVariant & mask );
179+ if (mySensorVariant == ( uint16_t )(SCD4X_SENSOR_VARIANT_SCD40) ) {
180+ retVal = SCD4X_SENSOR_VARIANT_SCD40;
181+ } else if (mySensorVariant == ( uint16_t )(SCD4X_SENSOR_VARIANT_SCD41)) {
182+ retVal = SCD4X_SENSOR_VARIANT_SCD41 ;
183+ } else if (mySensorVariant == ( uint16_t )(SCD4X_SENSOR_VARIANT_SCD42) ) {
184+ retVal = SCD4X_SENSOR_VARIANT_SCD42 ;
185+ } else if (mySensorVariant == ( uint16_t )(SCD4X_SENSOR_VARIANT_SCD43)) {
186+ retVal = SCD4X_SENSOR_VARIANT_SCD43 ;
183187 }
184- aSensorVariant = SCD4X_SENSOR_VARIANT_UNKNOWN;
185- ;
188+ aSensorVariant = retVal;
186189 return localError;
187190}
188191
@@ -555,7 +558,8 @@ int16_t SensirionI2cScd4x::getSerialNumber(uint64_t& serialNumber) {
555558 if (localError != NO_ERROR) {
556559 return localError;
557560 }
558- localError |= rxFrame.getInteger (reinterpret_cast <uint8_t *>(&serialNumber), LongInteger, 6 );
561+ localError |= rxFrame.getInteger (reinterpret_cast <uint8_t *>(&serialNumber),
562+ LongInteger, 6 );
559563 return localError;
560564}
561565
0 commit comments