File syn_lux.h¶
File List > sensor > syn_lux.h
Go to the documentation of this file
#ifndef SYN_LUX_H
#define SYN_LUX_H
#include "../common/syn_defs.h"
#include "../drivers/syn_soft_i2c.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
SYN_LUX_BH1750 = 0,
SYN_LUX_TSL2561 = 1,
SYN_LUX_TCS34725 = 2
} SYN_LuxType;
typedef struct {
SYN_LuxType type;
SYN_SoftI2C i2c;
uint8_t i2c_addr;
float illuminance_lux;
uint16_t color_r;
uint16_t color_g;
uint16_t color_b;
uint16_t color_c;
uint16_t color_temp_k;
} SYN_Lux;
SYN_Status syn_lux_init(SYN_Lux *sensor, SYN_GPIO_Pin scl, SYN_GPIO_Pin sda, uint8_t i2c_addr,
SYN_LuxType type);
void syn_lux_feed_lux(SYN_Lux *sensor, float lux);
void syn_lux_feed_rgbc(SYN_Lux *sensor, uint16_t r, uint16_t g, uint16_t b, uint16_t c);
float syn_lux_get_lux(const SYN_Lux *sensor);
uint16_t syn_lux_get_color_temp_k(const SYN_Lux *sensor);
#ifdef __cplusplus
}
#endif
#endif /* SYN_LUX_H */