From 7124d7a9bbaa88f7e56b655a3234eecf064eb2bb Mon Sep 17 00:00:00 2001 From: ladyada Date: Sun, 17 Aug 2025 13:08:28 -0400 Subject: [PATCH] Apply clang-format and reorder CI workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Format all source files with clang-format - Run clang-format check before platform tests in CI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/githubci.yml | 8 +- Adafruit_VEML6046.cpp | 184 ++++++++++++++--------- Adafruit_VEML6046.h | 75 ++++----- examples/test_veml6046/test_veml6046.ino | 50 +++--- 4 files changed, 184 insertions(+), 133 deletions(-) diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index 9850f75..b09bfbf 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -20,11 +20,11 @@ jobs: - name: pre-install run: bash ci/actions_install.sh - - name: test platforms - run: python3 ci/build_platform.py main_platforms - - name: clang - run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . + run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . + + - name: test platforms + run: python3 ci/build_platform.py main_platforms - name: doxygen env: diff --git a/Adafruit_VEML6046.cpp b/Adafruit_VEML6046.cpp index 611383e..79916aa 100644 --- a/Adafruit_VEML6046.cpp +++ b/Adafruit_VEML6046.cpp @@ -31,7 +31,9 @@ /*! * @brief Instantiates a new VEML6046 class */ -Adafruit_VEML6046::Adafruit_VEML6046() { i2c_dev = nullptr; } +Adafruit_VEML6046::Adafruit_VEML6046() { + i2c_dev = nullptr; +} /*! * @brief Cleans up the VEML6046 @@ -50,7 +52,7 @@ Adafruit_VEML6046::~Adafruit_VEML6046() { * The Wire object to be used for I2C connections. * @return True if initialization was successful, otherwise false. */ -bool Adafruit_VEML6046::begin(uint8_t i2c_addr, TwoWire *wire) { +bool Adafruit_VEML6046::begin(uint8_t i2c_addr, TwoWire* wire) { if (i2c_dev) { delete i2c_dev; } @@ -62,9 +64,10 @@ bool Adafruit_VEML6046::begin(uint8_t i2c_addr, TwoWire *wire) { } // Check device ID - Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_ID_L, 2, LSBFIRST); + Adafruit_BusIO_Register id_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_ID_L, 2, LSBFIRST); uint16_t chip_id = id_reg.read(); - + if (chip_id != 0x0001) { return false; } @@ -88,9 +91,11 @@ bool Adafruit_VEML6046::begin(uint8_t i2c_addr, TwoWire *wire) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setIntegrationTime(veml6046_integration_time_t it) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_it_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 3, 4); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_it_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 3, 4); + return rgb_it_bits.write(it); } @@ -99,9 +104,11 @@ bool Adafruit_VEML6046::setIntegrationTime(veml6046_integration_time_t it) { * @return Current integration time setting */ veml6046_integration_time_t Adafruit_VEML6046::getIntegrationTime(void) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_it_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 3, 4); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_it_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 3, 4); + return (veml6046_integration_time_t)rgb_it_bits.read(); } @@ -111,9 +118,11 @@ veml6046_integration_time_t Adafruit_VEML6046::getIntegrationTime(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setRGBModeForced(bool forced) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_mode_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 3); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_mode_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 3); + return rgb_mode_bits.write(forced ? 1 : 0); } @@ -122,9 +131,11 @@ bool Adafruit_VEML6046::setRGBModeForced(bool forced) { * @return True if in active force mode, false if in auto mode */ bool Adafruit_VEML6046::getRGBModeForced(void) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_mode_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 3); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_mode_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 3); + return rgb_mode_bits.read() == 1; } @@ -133,9 +144,11 @@ bool Adafruit_VEML6046::getRGBModeForced(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::RGBTrigger(void) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_trig_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 2); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_trig_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 2); + return rgb_trig_bits.write(1); } @@ -144,9 +157,11 @@ bool Adafruit_VEML6046::RGBTrigger(void) { * @return True if measurement in progress, false if complete */ bool Adafruit_VEML6046::isTriggered(void) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits rgb_trig_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 2); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits rgb_trig_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 2); + return rgb_trig_bits.read() == 1; } @@ -156,9 +171,11 @@ bool Adafruit_VEML6046::isTriggered(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setGreenIntEnabled(bool enabled) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits g_int_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 1); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits g_int_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 1); + return g_int_bits.write(enabled ? 1 : 0); } @@ -167,9 +184,11 @@ bool Adafruit_VEML6046::setGreenIntEnabled(bool enabled) { * @return True if interrupt enabled, false if disabled */ bool Adafruit_VEML6046::getGreenIntEnabled(void) { - Adafruit_BusIO_Register rgb_conf0_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); - Adafruit_BusIO_RegisterBits g_int_bits = Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 1); - + Adafruit_BusIO_Register rgb_conf0_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 1); + Adafruit_BusIO_RegisterBits g_int_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf0_reg, 1, 1); + return g_int_bits.read() == 1; } @@ -178,9 +197,11 @@ bool Adafruit_VEML6046::getGreenIntEnabled(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::enable(void) { - Adafruit_BusIO_Register rgb_conf_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 2, MSBFIRST); - Adafruit_BusIO_RegisterBits rgb_on_bits = Adafruit_BusIO_RegisterBits(&rgb_conf_reg, 2, 7); - + Adafruit_BusIO_Register rgb_conf_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 2, MSBFIRST); + Adafruit_BusIO_RegisterBits rgb_on_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf_reg, 2, 7); + return rgb_on_bits.write(0x00); } @@ -189,9 +210,11 @@ bool Adafruit_VEML6046::enable(void) { * @return True if enabled, false if in shutdown */ bool Adafruit_VEML6046::isEnabled(void) { - Adafruit_BusIO_Register rgb_conf_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 2, MSBFIRST); - Adafruit_BusIO_RegisterBits rgb_on_bits = Adafruit_BusIO_RegisterBits(&rgb_conf_reg, 2, 7); - + Adafruit_BusIO_Register rgb_conf_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_0, 2, MSBFIRST); + Adafruit_BusIO_RegisterBits rgb_on_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf_reg, 2, 7); + return rgb_on_bits.read() == 0x00; } @@ -201,9 +224,11 @@ bool Adafruit_VEML6046::isEnabled(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setPhotoDiodeHalfSize(bool half_size) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits pddiv_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 6); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits pddiv_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 6); + return pddiv_bits.write(half_size ? 1 : 0); } @@ -212,9 +237,11 @@ bool Adafruit_VEML6046::setPhotoDiodeHalfSize(bool half_size) { * @return True if 1/2 PD, false if 2/2 PD */ bool Adafruit_VEML6046::getPhotoDiodeHalfSize(void) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits pddiv_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 6); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits pddiv_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 6); + return pddiv_bits.read() == 1; } @@ -224,9 +251,11 @@ bool Adafruit_VEML6046::getPhotoDiodeHalfSize(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setRGBGain(veml6046_gain_t gain) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 3); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits gain_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 3); + return gain_bits.write(gain); } @@ -235,9 +264,11 @@ bool Adafruit_VEML6046::setRGBGain(veml6046_gain_t gain) { * @return Current RGB gain setting */ veml6046_gain_t Adafruit_VEML6046::getRGBGain(void) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 3); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits gain_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 3); + return (veml6046_gain_t)gain_bits.read(); } @@ -247,9 +278,11 @@ veml6046_gain_t Adafruit_VEML6046::getRGBGain(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setIntPersistence(veml6046_persistence_t pers) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits pers_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 1); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits pers_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 1); + return pers_bits.write(pers); } @@ -258,9 +291,11 @@ bool Adafruit_VEML6046::setIntPersistence(veml6046_persistence_t pers) { * @return Current persistence setting */ veml6046_persistence_t Adafruit_VEML6046::getIntPersistence(void) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits pers_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 1); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits pers_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 2, 1); + return (veml6046_persistence_t)pers_bits.read(); } @@ -270,9 +305,11 @@ veml6046_persistence_t Adafruit_VEML6046::getIntPersistence(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setRGBCalibration(bool enabled) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits cal_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 0); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits cal_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 0); + return cal_bits.write(enabled ? 1 : 0); } @@ -281,9 +318,11 @@ bool Adafruit_VEML6046::setRGBCalibration(bool enabled) { * @return True if calibration enabled, false if disabled */ bool Adafruit_VEML6046::getRGBCalibration(void) { - Adafruit_BusIO_Register rgb_conf1_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); - Adafruit_BusIO_RegisterBits cal_bits = Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 0); - + Adafruit_BusIO_Register rgb_conf1_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_RGB_CONF_1, 1); + Adafruit_BusIO_RegisterBits cal_bits = + Adafruit_BusIO_RegisterBits(&rgb_conf1_reg, 1, 0); + return cal_bits.read() == 1; } @@ -293,8 +332,9 @@ bool Adafruit_VEML6046::getRGBCalibration(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setGreenThresholdHigh(uint16_t threshold) { - Adafruit_BusIO_Register thdh_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDH_L, 2, LSBFIRST); - + Adafruit_BusIO_Register thdh_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDH_L, 2, LSBFIRST); + return thdh_reg.write(threshold); } @@ -303,8 +343,9 @@ bool Adafruit_VEML6046::setGreenThresholdHigh(uint16_t threshold) { * @return Current high threshold value */ uint16_t Adafruit_VEML6046::getGreenThresholdHigh(void) { - Adafruit_BusIO_Register thdh_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDH_L, 2, LSBFIRST); - + Adafruit_BusIO_Register thdh_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDH_L, 2, LSBFIRST); + return thdh_reg.read(); } @@ -314,8 +355,9 @@ uint16_t Adafruit_VEML6046::getGreenThresholdHigh(void) { * @return True if successful, false if I2C write failed */ bool Adafruit_VEML6046::setGreenThresholdLow(uint16_t threshold) { - Adafruit_BusIO_Register thdl_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDL_L, 2, LSBFIRST); - + Adafruit_BusIO_Register thdl_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDL_L, 2, LSBFIRST); + return thdl_reg.write(threshold); } @@ -324,8 +366,9 @@ bool Adafruit_VEML6046::setGreenThresholdLow(uint16_t threshold) { * @return Current low threshold value */ uint16_t Adafruit_VEML6046::getGreenThresholdLow(void) { - Adafruit_BusIO_Register thdl_reg = Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDL_L, 2, LSBFIRST); - + Adafruit_BusIO_Register thdl_reg = + Adafruit_BusIO_Register(i2c_dev, VEML6046_REG_G_THDL_L, 2, LSBFIRST); + return thdl_reg.read(); } @@ -337,21 +380,22 @@ uint16_t Adafruit_VEML6046::getGreenThresholdLow(void) { * @param ir Pointer to store IR channel data * @return True if successful, false if I2C read failed */ -bool Adafruit_VEML6046::getData(uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *ir) { +bool Adafruit_VEML6046::getData(uint16_t* r, uint16_t* g, uint16_t* b, + uint16_t* ir) { if (!r || !g || !b || !ir) { return false; } - + uint8_t buffer[8]; uint8_t reg_addr = VEML6046_REG_R_DATA_L; if (!i2c_dev->write_then_read(®_addr, 1, buffer, 8)) { return false; } - + *r = buffer[0] | (buffer[1] << 8); *g = buffer[2] | (buffer[3] << 8); *b = buffer[4] | (buffer[5] << 8); *ir = buffer[6] | (buffer[7] << 8); - + return true; } \ No newline at end of file diff --git a/Adafruit_VEML6046.h b/Adafruit_VEML6046.h index 8848426..a29d7a7 100644 --- a/Adafruit_VEML6046.h +++ b/Adafruit_VEML6046.h @@ -20,31 +20,32 @@ #ifndef _ADAFRUIT_VEML6046_H #define _ADAFRUIT_VEML6046_H -#include "Arduino.h" #include #include +#include "Arduino.h" + /*! Default I2C address for VEML6046 */ #define VEML6046_DEFAULT_ADDR 0x29 /*! VEML6046 register addresses */ -#define VEML6046_REG_RGB_CONF_0 0x00 ///< RGB configuration register 0 -#define VEML6046_REG_RGB_CONF_1 0x01 ///< RGB configuration register 1 -#define VEML6046_REG_G_THDH_L 0x04 ///< Green high threshold low byte -#define VEML6046_REG_G_THDH_H 0x05 ///< Green high threshold high byte -#define VEML6046_REG_G_THDL_L 0x06 ///< Green low threshold low byte -#define VEML6046_REG_G_THDL_H 0x07 ///< Green low threshold high byte -#define VEML6046_REG_R_DATA_L 0x10 ///< Red data low byte -#define VEML6046_REG_R_DATA_H 0x11 ///< Red data high byte -#define VEML6046_REG_G_DATA_L 0x12 ///< Green data low byte -#define VEML6046_REG_G_DATA_H 0x13 ///< Green data high byte -#define VEML6046_REG_B_DATA_L 0x14 ///< Blue data low byte -#define VEML6046_REG_B_DATA_H 0x15 ///< Blue data high byte -#define VEML6046_REG_IR_DATA_L 0x16 ///< IR data low byte -#define VEML6046_REG_IR_DATA_H 0x17 ///< IR data high byte -#define VEML6046_REG_ID_L 0x18 ///< Device ID low byte -#define VEML6046_REG_ID_H 0x19 ///< Device ID high byte -#define VEML6046_REG_INT_FLAG 0x1A ///< Interrupt flag register +#define VEML6046_REG_RGB_CONF_0 0x00 ///< RGB configuration register 0 +#define VEML6046_REG_RGB_CONF_1 0x01 ///< RGB configuration register 1 +#define VEML6046_REG_G_THDH_L 0x04 ///< Green high threshold low byte +#define VEML6046_REG_G_THDH_H 0x05 ///< Green high threshold high byte +#define VEML6046_REG_G_THDL_L 0x06 ///< Green low threshold low byte +#define VEML6046_REG_G_THDL_H 0x07 ///< Green low threshold high byte +#define VEML6046_REG_R_DATA_L 0x10 ///< Red data low byte +#define VEML6046_REG_R_DATA_H 0x11 ///< Red data high byte +#define VEML6046_REG_G_DATA_L 0x12 ///< Green data low byte +#define VEML6046_REG_G_DATA_H 0x13 ///< Green data high byte +#define VEML6046_REG_B_DATA_L 0x14 ///< Blue data low byte +#define VEML6046_REG_B_DATA_H 0x15 ///< Blue data high byte +#define VEML6046_REG_IR_DATA_L 0x16 ///< IR data low byte +#define VEML6046_REG_IR_DATA_H 0x17 ///< IR data high byte +#define VEML6046_REG_ID_L 0x18 ///< Device ID low byte +#define VEML6046_REG_ID_H 0x19 ///< Device ID high byte +#define VEML6046_REG_INT_FLAG 0x1A ///< Interrupt flag register /*! * @brief Integration time settings for VEML6046 @@ -64,8 +65,8 @@ typedef enum { * @brief RGB gain settings for VEML6046 */ typedef enum { - VEML6046_GAIN_1X = 0x00, ///< Gain x1 (default) - VEML6046_GAIN_2X = 0x01, ///< Gain x2 + VEML6046_GAIN_1X = 0x00, ///< Gain x1 (default) + VEML6046_GAIN_2X = 0x01, ///< Gain x2 VEML6046_GAIN_0_66X = 0x02, ///< Gain x0.66 VEML6046_GAIN_0_5X = 0x03 ///< Gain x0.5 } veml6046_gain_t; @@ -84,48 +85,48 @@ typedef enum { * @brief Main VEML6046 class for RGBIR color sensor */ class Adafruit_VEML6046 { -public: + public: Adafruit_VEML6046(); ~Adafruit_VEML6046(); - bool begin(uint8_t i2c_addr = VEML6046_DEFAULT_ADDR, TwoWire *wire = &Wire); - + bool begin(uint8_t i2c_addr = VEML6046_DEFAULT_ADDR, TwoWire* wire = &Wire); + bool setIntegrationTime(veml6046_integration_time_t it); veml6046_integration_time_t getIntegrationTime(void); - + bool setRGBModeForced(bool forced); bool getRGBModeForced(void); - + bool RGBTrigger(void); bool isTriggered(void); - + bool setGreenIntEnabled(bool enabled); bool getGreenIntEnabled(void); - + bool enable(void); bool isEnabled(void); - + bool setPhotoDiodeHalfSize(bool half_size); bool getPhotoDiodeHalfSize(void); - + bool setRGBGain(veml6046_gain_t gain); veml6046_gain_t getRGBGain(void); - + bool setIntPersistence(veml6046_persistence_t pers); veml6046_persistence_t getIntPersistence(void); - + bool setRGBCalibration(bool enabled); bool getRGBCalibration(void); - + bool setGreenThresholdHigh(uint16_t threshold); uint16_t getGreenThresholdHigh(void); - + bool setGreenThresholdLow(uint16_t threshold); uint16_t getGreenThresholdLow(void); - - bool getData(uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *ir); -private: - Adafruit_I2CDevice *i2c_dev; ///< Pointer to I2C bus interface + bool getData(uint16_t* r, uint16_t* g, uint16_t* b, uint16_t* ir); + + private: + Adafruit_I2CDevice* i2c_dev; ///< Pointer to I2C bus interface }; #endif \ No newline at end of file diff --git a/examples/test_veml6046/test_veml6046.ino b/examples/test_veml6046/test_veml6046.ino index 4b8578d..b0cab97 100644 --- a/examples/test_veml6046/test_veml6046.ino +++ b/examples/test_veml6046/test_veml6046.ino @@ -1,8 +1,8 @@ /* * Test sketch for VEML6046 RGBIR color sensor - * - * Written by Limor 'ladyada' Fried with assistance from Claude Code for Adafruit Industries. - * MIT license, check license.txt for more information + * + * Written by Limor 'ladyada' Fried with assistance from Claude Code for + * Adafruit Industries. MIT license, check license.txt for more information */ #include "Adafruit_VEML6046.h" @@ -11,25 +11,27 @@ Adafruit_VEML6046 veml = Adafruit_VEML6046(); void setup() { Serial.begin(115200); - while (!Serial) delay(10); - + while (!Serial) + delay(10); + Serial.println(F("VEML6046 test")); - + if (!veml.begin()) { Serial.println(F("Couldn't find VEML6046 chip")); - while (1) delay(10); + while (1) + delay(10); } Serial.println(F("Found VEML6046 chip")); - + // Print current status (set by begin()) bool is_enabled = veml.isEnabled(); Serial.print(F("Sensor enabled: ")); Serial.println(is_enabled ? F("Yes") : F("No")); - + bool cal_enabled = veml.getRGBCalibration(); Serial.print(F("RGB calibration enabled: ")); Serial.println(cal_enabled ? F("Yes") : F("No")); - + // Test photodiode size Serial.println(F("Setting photodiode to full size")); if (veml.setPhotoDiodeHalfSize(false)) { @@ -37,12 +39,12 @@ void setup() { } else { Serial.println(F("Failed to set photodiode full size")); } - + // Read back photodiode size bool is_half_size = veml.getPhotoDiodeHalfSize(); Serial.print(F("Photodiode half size: ")); Serial.println(is_half_size ? F("Yes") : F("No")); - + // Test integration time setter/getter Serial.println(F("Setting integration time to 25ms")); if (veml.setIntegrationTime(VEML6046_IT_25MS)) { @@ -50,7 +52,7 @@ void setup() { } else { Serial.println(F("Failed to set integration time")); } - + // Read back and display current integration time veml6046_integration_time_t current_it = veml.getIntegrationTime(); Serial.print(F("Current integration time: ")); @@ -83,7 +85,7 @@ void setup() { Serial.println(F("Unknown")); break; } - + // Test RGB mode setter/getter Serial.println(F("Setting RGB mode to auto")); if (veml.setRGBModeForced(false)) { @@ -91,12 +93,12 @@ void setup() { } else { Serial.println(F("Failed to set RGB mode")); } - + // Read back and display current RGB mode bool is_forced = veml.getRGBModeForced(); Serial.print(F("Current RGB mode: ")); Serial.println(is_forced ? F("Forced") : F("Auto")); - + // Test green interrupt enable Serial.println(F("Enabling green interrupt")); if (veml.setGreenIntEnabled(true)) { @@ -104,7 +106,7 @@ void setup() { } else { Serial.println(F("Failed to enable green interrupt")); } - + // Read back green interrupt status bool green_int_enabled = veml.getGreenIntEnabled(); Serial.print(F("Green interrupt enabled: ")); @@ -115,13 +117,17 @@ void loop() { // Read RGBIR data in continuous mode uint16_t r, g, b, ir; if (veml.getData(&r, &g, &b, &ir)) { - Serial.print(F("R: ")); Serial.print(r); - Serial.print(F(" G: ")); Serial.print(g); - Serial.print(F(" B: ")); Serial.print(b); - Serial.print(F(" IR: ")); Serial.println(ir); + Serial.print(F("R: ")); + Serial.print(r); + Serial.print(F(" G: ")); + Serial.print(g); + Serial.print(F(" B: ")); + Serial.print(b); + Serial.print(F(" IR: ")); + Serial.println(ir); } else { Serial.println(F("Failed to read data")); } - + delay(1000); } \ No newline at end of file