Sun, 10 Sep 2023 17:29:15 +0200
Version 0.4.3. Attempt to fix the sunlight overflow of the APDS9930 sensor in the private part of the esp-idf-lib. Removed some error checks from functions that always return OK. Store light sensor registers in the state record and report the values in the json result string.
/** * @file task_apds9930.h * @brief The FreeRTOS task to query the APDS9930 sensor connected to * the I2C bus. * The task will update the sensor state structures. */ #ifndef _TASK_APDS9930_H #define _TASK_APDS9930_H /* * Error codes in this task */ #define APDS9930_ERR_NONE 0 ///< No errors #define APDS9930_ERR_READ 1 /** * @brief Structure containing the variables for the APDS9930 task. */ typedef struct { bool valid; ///< Valid measurement bool fake; ///< Fake measurement uint8_t address; ///< Device i2c address float ambient_light; ///< Kind of Lux. uint8_t gain; ///< APDS9930 last gain setting uint8_t aglbit; ///< APDS9930 ALS Gain Level bit uint16_t ch0; ///< APDS9930 Channel 0 uint16_t ch1; ///< APDS9930 Channel 1 int error; ///< Error result } APDS9930_State; /** * @brief Request a new measurement from the APDS9930. */ void request_apds9930(void); /** * @brief Check if results are ready * @return true of results are ready, else false. */ bool ready_apds9930(void); /** * @brief The FreeRTOS task to update the APDS9930 on request. * @param pvParameters Parameters for the task. */ void task_apds9930(void *pvParameters); #endif