Skip to content

Commit f007fe8

Browse files
committed
refactor(mlx90632d): support extended range at init
1 parent 54ee1a6 commit f007fe8

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

src/components/i2c/WipperSnapper_I2C.cpp

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -537,18 +537,29 @@ bool WipperSnapper_Component_I2C::initI2CDevice(
537537
_mcp9808->configureDriver(msgDeviceInitReq);
538538
drivers.push_back(_mcp9808);
539539
WS_DEBUG_PRINTLN("MCP9808 Initialized Successfully!");
540-
} else if (strcmp("mlx90632d_med", msgDeviceInitReq->i2c_device_name) == 0 ||
541-
strcmp("mlx90632d_ext", msgDeviceInitReq->i2c_device_name) == 0) {
542-
_mlx90632 = new WipperSnapper_I2C_Driver_MLX90632D(this->_i2c, i2cAddress);
543-
if (!_mlx90632->begin()) {
540+
} else if (strcmp("mlx90632d_med", msgDeviceInitReq->i2c_device_name) == 0) {
541+
_mlx90632d = new WipperSnapper_I2C_Driver_MLX90632D(this->_i2c, i2cAddress);
542+
if (!_mlx90632d->begin()) {
544543
WS_DEBUG_PRINTLN("ERROR: Failed to initialize MLX90632!");
545544
_busStatusResponse =
546545
wippersnapper_i2c_v1_BusResponse_BUS_RESPONSE_DEVICE_INIT_FAIL;
547546
return false;
548547
}
549-
_mlx90632->configureDriver(msgDeviceInitReq);
550-
drivers.push_back(_mlx90632);
548+
_mlx90632d->configureDriver(msgDeviceInitReq);
549+
drivers.push_back(_mlx90632d);
551550
WS_DEBUG_PRINTLN("MLX90632 Initialized Successfully!");
551+
} else if (strcmp("mlx90632d_ext", msgDeviceInitReq->i2c_device_name) == 0) {
552+
_mlx90632d_ext = new WipperSnapper_I2C_Driver_MLX90632D(this->_i2c, i2cAddress);
553+
// set extended range
554+
if (!_mlx90632d_ext->begin() || !_mlx90632d_ext->ConfigureAndPrintSensorInfo(true)) {
555+
WS_DEBUG_PRINTLN("ERROR: Failed to initialize MLX90632D with extended range!");
556+
_busStatusResponse =
557+
wippersnapper_i2c_v1_BusResponse_BUS_RESPONSE_DEVICE_INIT_FAIL;
558+
return false;
559+
}
560+
_mlx90632d_ext->configureDriver(msgDeviceInitReq);
561+
drivers.push_back(_mlx90632d_ext);
562+
WS_DEBUG_PRINTLN("MLX90632D_EXT Initialized Successfully!");
552563
} else if (strcmp("mpl115a2", msgDeviceInitReq->i2c_device_name) == 0) {
553564
_mpl115a2 = new WipperSnapper_I2C_Driver_MPL115A2(this->_i2c, i2cAddress);
554565
if (!_mpl115a2->begin()) {

src/components/i2c/WipperSnapper_I2C.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
#include "drivers/WipperSnapper_I2C_Driver_MAX17048.h"
5151
#include "drivers/WipperSnapper_I2C_Driver_MCP3421.h"
5252
#include "drivers/WipperSnapper_I2C_Driver_MCP9808.h"
53-
#include "drivers/WipperSnapper_I2C_Driver_MLX90632.h"
53+
#include "drivers/WipperSnapper_I2C_Driver_MLX90632D.h"
5454
#include "drivers/WipperSnapper_I2C_Driver_MPL115A2.h"
5555
#include "drivers/WipperSnapper_I2C_Driver_MPRLS.h"
5656
#include "drivers/WipperSnapper_I2C_Driver_MS8607.h"
@@ -181,7 +181,8 @@ class WipperSnapper_Component_I2C {
181181
WipperSnapper_I2C_Driver_LTR390 *_ltr390 = nullptr;
182182
WipperSnapper_I2C_Driver_MCP3421 *_mcp3421 = nullptr;
183183
WipperSnapper_I2C_Driver_MCP9808 *_mcp9808 = nullptr;
184-
WipperSnapper_I2C_Driver_MLX90632D *_mlx90632 = nullptr;
184+
WipperSnapper_I2C_Driver_MLX90632D *_mlx90632d = nullptr;
185+
WipperSnapper_I2C_Driver_MLX90632D *_mlx90632d_ext = nullptr;
185186
WipperSnapper_I2C_Driver_MPL115A2 *_mpl115a2 = nullptr;
186187
WipperSnapper_I2C_Driver_MPRLS *_mprls = nullptr;
187188
WipperSnapper_I2C_Driver_MS8607 *_ms8607 = nullptr;
File renamed without changes.

0 commit comments

Comments
 (0)