main/task_apds9930.h

Sun, 10 Sep 2023 17:29:15 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 10 Sep 2023 17:29:15 +0200
changeset 37
50dbb626fbab
parent 12
bb72d448e282
permissions
-rw-r--r--

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

mercurial