clang-format

This commit is contained in:
tyeth 2025-08-20 14:54:32 +01:00
parent 32f85f7b47
commit dc5ff4ae9f
2 changed files with 77 additions and 54 deletions

View file

@ -550,10 +550,13 @@ bool WipperSnapper_Component_I2C::initI2CDevice(
drivers.push_back(_mlx90632d); drivers.push_back(_mlx90632d);
WS_DEBUG_PRINTLN("MLX90632 Initialized Successfully!"); WS_DEBUG_PRINTLN("MLX90632 Initialized Successfully!");
} else if (strcmp("mlx90632d_ext", msgDeviceInitReq->i2c_device_name) == 0) { } else if (strcmp("mlx90632d_ext", msgDeviceInitReq->i2c_device_name) == 0) {
_mlx90632d_ext = new WipperSnapper_I2C_Driver_MLX90632D(this->_i2c, i2cAddress); _mlx90632d_ext =
new WipperSnapper_I2C_Driver_MLX90632D(this->_i2c, i2cAddress);
// set extended range // set extended range
if (!_mlx90632d_ext->begin() || !_mlx90632d_ext->ConfigureAndPrintSensorInfo(true)) { if (!_mlx90632d_ext->begin() ||
WS_DEBUG_PRINTLN("ERROR: Failed to initialize MLX90632D with extended range!"); !_mlx90632d_ext->ConfigureAndPrintSensorInfo(true)) {
WS_DEBUG_PRINTLN(
"ERROR: Failed to initialize MLX90632D with extended range!");
_busStatusResponse = _busStatusResponse =
wippersnapper_i2c_v1_BusResponse_BUS_RESPONSE_DEVICE_INIT_FAIL; wippersnapper_i2c_v1_BusResponse_BUS_RESPONSE_DEVICE_INIT_FAIL;
return false; return false;

View file

@ -26,7 +26,7 @@
*/ */
/**************************************************************************/ /**************************************************************************/
class WipperSnapper_I2C_Driver_MLX90632D : public WipperSnapper_I2C_Driver { class WipperSnapper_I2C_Driver_MLX90632D : public WipperSnapper_I2C_Driver {
public: public:
/*******************************************************************************/ /*******************************************************************************/
/*! /*!
@brief Constructor for an MLX90632 sensor. @brief Constructor for an MLX90632 sensor.
@ -71,7 +71,8 @@ public:
/*! /*!
@brief Configures the MLX90632 sensor and prints its information. @brief Configures the MLX90632 sensor and prints its information.
@param extendedInsteadOfMedicalRange @param extendedInsteadOfMedicalRange
If true, configures the sensor for extended temperature range/acc. If true, configures the sensor for extended temperature
range/acc.
@returns True if configuration fetching and setting were successful. @returns True if configuration fetching and setting were successful.
*/ */
/*******************************************************************************/ /*******************************************************************************/
@ -79,7 +80,9 @@ public:
// Reset the device // Reset the device
if (!_mlx90632->reset()) { if (!_mlx90632->reset()) {
WS_PRINTER.println(F("Device reset failed")); WS_PRINTER.println(F("Device reset failed"));
while (1) { delay(10); } while (1) {
delay(10);
}
} }
WS_PRINTER.println(F("Device reset: SUCCESS")); WS_PRINTER.println(F("Device reset: SUCCESS"));
@ -119,13 +122,17 @@ public:
// Set and get mode - choose one: // Set and get mode - choose one:
WS_PRINTER.println(F("\n--- Mode Settings ---")); WS_PRINTER.println(F("\n--- Mode Settings ---"));
if (!_mlx90632->setMode(MLX90632_MODE_CONTINUOUS)) { if (!_mlx90632->setMode(MLX90632_MODE_CONTINUOUS)) {
// if (!_mlx90632->setMode(MLX90632_MODE_STEP)) { // Uncomment for step mode testing // if (!_mlx90632->setMode(MLX90632_MODE_STEP)) { // Uncomment
// if (!_mlx90632->setMode(MLX90632_MODE_SLEEPING_STEP)) { // Uncomment for sleeping step mode testing // for step mode testing if
// (!_mlx90632->setMode(MLX90632_MODE_SLEEPING_STEP)) { // Uncomment for
// sleeping step mode testing
WS_PRINTER.println(F("Failed to set mode")); WS_PRINTER.println(F("Failed to set mode"));
while (1) { delay(10); } while (1) {
delay(10);
}
} }
//TODO: use Step mode? // TODO: use Step mode?
mlx90632_mode_t currentMode = _mlx90632->getMode(); mlx90632_mode_t currentMode = _mlx90632->getMode();
WS_PRINTER.print(F("Current mode: ")); WS_PRINTER.print(F("Current mode: "));
switch (currentMode) { switch (currentMode) {
@ -149,15 +156,24 @@ public:
if (accuracy == 1) { if (accuracy == 1) {
// Set and get measurement select (medical) // Set and get measurement select (medical)
WS_PRINTER.println(F("\n--- Measurement Select Settings ---")); WS_PRINTER.println(F("\n--- Measurement Select Settings ---"));
if (!extendedInsteadOfMedicalRange && !_mlx90632->setMeasurementSelect(MLX90632_MEAS_MEDICAL)) { if (!extendedInsteadOfMedicalRange &&
!_mlx90632->setMeasurementSelect(MLX90632_MEAS_MEDICAL)) {
WS_PRINTER.println(F("Failed to set measurement select to Medical")); WS_PRINTER.println(F("Failed to set measurement select to Medical"));
while (1) { delay(10); } while (1) {
} else if (extendedInsteadOfMedicalRange && !_mlx90632->setMeasurementSelect(MLX90632_MEAS_EXTENDED_RANGE)) { delay(10);
WS_PRINTER.println(F("Failed to set measurement select to Extended Range")); }
while (1) { delay(10); } } else if (extendedInsteadOfMedicalRange &&
!_mlx90632->setMeasurementSelect(
MLX90632_MEAS_EXTENDED_RANGE)) {
WS_PRINTER.println(
F("Failed to set measurement select to Extended Range"));
while (1) {
delay(10);
}
} }
mlx90632_meas_select_t currentMeasSelect = _mlx90632->getMeasurementSelect(); mlx90632_meas_select_t currentMeasSelect =
_mlx90632->getMeasurementSelect();
WS_PRINTER.print(F("Current measurement select: ")); WS_PRINTER.print(F("Current measurement select: "));
switch (currentMeasSelect) { switch (currentMeasSelect) {
case MLX90632_MEAS_MEDICAL: case MLX90632_MEAS_MEDICAL:
@ -175,7 +191,9 @@ public:
WS_PRINTER.println(F("\n--- Refresh Rate Settings ---")); WS_PRINTER.println(F("\n--- Refresh Rate Settings ---"));
if (!_mlx90632->setRefreshRate(MLX90632_REFRESH_2HZ)) { if (!_mlx90632->setRefreshRate(MLX90632_REFRESH_2HZ)) {
WS_PRINTER.println(F("Failed to set refresh rate to 2Hz")); WS_PRINTER.println(F("Failed to set refresh rate to 2Hz"));
while (1) { delay(10); } while (1) {
delay(10);
}
} }
mlx90632_refresh_rate_t currentRefreshRate = _mlx90632->getRefreshRate(); mlx90632_refresh_rate_t currentRefreshRate = _mlx90632->getRefreshRate();
@ -213,7 +231,9 @@ public:
WS_PRINTER.println(F("\\n--- Starting Continuous Measurements ---")); WS_PRINTER.println(F("\\n--- Starting Continuous Measurements ---"));
if (!_mlx90632->resetNewData()) { if (!_mlx90632->resetNewData()) {
WS_PRINTER.println(F("Failed to reset new data flag")); WS_PRINTER.println(F("Failed to reset new data flag"));
while (1) { delay(10); } while (1) {
delay(10);
}
} }
return true; return true;
} }
@ -235,7 +255,7 @@ public:
*/ */
/*******************************************************************************/ /*******************************************************************************/
bool ReadSensorData() { bool ReadSensorData() {
bool result=false; bool result = false;
// Only check new data flag - much more efficient for continuous mode // Only check new data flag - much more efficient for continuous mode
if (_mlx90632->isNewData()) { if (_mlx90632->isNewData()) {
@ -257,7 +277,7 @@ public:
WS_PRINTER.print(_objectTemp, 4); WS_PRINTER.print(_objectTemp, 4);
WS_PRINTER.println(F(" °C")); WS_PRINTER.println(F(" °C"));
} }
result=true; result = true;
// Reset new data flag after reading // Reset new data flag after reading
if (!_mlx90632->resetNewData()) { if (!_mlx90632->resetNewData()) {
WS_PRINTER.println(F("Failed to reset new data flag")); WS_PRINTER.println(F("Failed to reset new data flag"));
@ -266,12 +286,12 @@ public:
WS_PRINTER.println(); // Add blank line between readings WS_PRINTER.println(); // Add blank line between readings
} else { } else {
WS_PRINTER.println(F("No new data available, skipping read")); WS_PRINTER.println(F("No new data available, skipping read"));
} }
// Check if we need to trigger a new measurement for step modes // Check if we need to trigger a new measurement for step modes
mlx90632_mode_t currentMode = _mlx90632->getMode(); mlx90632_mode_t currentMode = _mlx90632->getMode();
if (currentMode == MLX90632_MODE_STEP || currentMode == MLX90632_MODE_SLEEPING_STEP) { if (currentMode == MLX90632_MODE_STEP ||
currentMode == MLX90632_MODE_SLEEPING_STEP) {
// Trigger single measurement (SOC bit) for step modes // Trigger single measurement (SOC bit) for step modes
if (!_mlx90632->startSingleMeasurement()) { if (!_mlx90632->startSingleMeasurement()) {
WS_PRINTER.println(F("Failed to start single measurement")); WS_PRINTER.println(F("Failed to start single measurement"));
@ -293,7 +313,7 @@ public:
/*******************************************************************************/ /*******************************************************************************/
bool getEventAmbientTemp(sensors_event_t *tempEvent) { bool getEventAmbientTemp(sensors_event_t *tempEvent) {
if (ReadSensorData() && _deviceTemp != NAN) { if (ReadSensorData() && _deviceTemp != NAN) {
//TODO: check max/min or error values in datasheet // TODO: check max/min or error values in datasheet
// if (_deviceTemp < -40 || _deviceTemp > 125) { // if (_deviceTemp < -40 || _deviceTemp > 125) {
// WS_PRINTER.println(F("Invalid ambient temperature")); // WS_PRINTER.println(F("Invalid ambient temperature"));
// return false; // return false;
@ -323,7 +343,7 @@ public:
return false; // sensor not read recently, return false return false; // sensor not read recently, return false
} }
protected: protected:
double _deviceTemp; ///< Device temperature in Celsius double _deviceTemp; ///< Device temperature in Celsius
double _objectTemp; ///< Object temperature in Celsius double _objectTemp; ///< Object temperature in Celsius
uint32_t _lastRead; ///< Last time the sensor was read in milliseconds uint32_t _lastRead; ///< Last time the sensor was read in milliseconds