vcnl40x0.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Inria
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
25 #include "saul.h"
26 #include "periph/i2c.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
35 enum {
44 };
45 
49 enum {
58 };
59 
65 enum {
74 };
75 
79 enum {
83 };
84 
88 typedef struct {
90  uint8_t i2c_addr;
91  uint8_t led_current;
92  uint8_t proximity_rate;
93  uint8_t ambient_rate;
94  uint8_t ambient_avg;
96 
100 typedef struct {
102 } vcnl40x0_t;
103 
114 int vcnl40x0_init(vcnl40x0_t *dev, const vcnl40x0_params_t *params);
115 
123 uint16_t vcnl40x0_read_proximity(const vcnl40x0_t *dev);
124 
133 
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition: i2c.h:144
int vcnl40x0_init(vcnl40x0_t *dev, const vcnl40x0_params_t *params)
Initialize the given VCNL40X0 device.
uint16_t vcnl40x0_read_proximity(const vcnl40x0_t *dev)
Read proximity value from the vcnl40X0 device.
uint16_t vcnl40x0_read_ambient_light(const vcnl40x0_t *dev)
Read ambient light value from the vcnl40X0 device.
uint16_t vcnl40x0_read_illuminance(const vcnl40x0_t *dev)
Read illuminance value from the vcnl40X0 device.
@ VCNL40X0_AMBIENT_AVERAGE_64
Decimal value 64.
Definition: vcnl40x0.h:72
@ VCNL40X0_AMBIENT_AVERAGE_1
Decimal value 1.
Definition: vcnl40x0.h:66
@ VCNL40X0_AMBIENT_AVERAGE_128
Decimal value 128.
Definition: vcnl40x0.h:73
@ VCNL40X0_AMBIENT_AVERAGE_2
Decimal value 2.
Definition: vcnl40x0.h:67
@ VCNL40X0_AMBIENT_AVERAGE_16
Decimal value 16.
Definition: vcnl40x0.h:70
@ VCNL40X0_AMBIENT_AVERAGE_8
Decimal value 8.
Definition: vcnl40x0.h:69
@ VCNL40X0_AMBIENT_AVERAGE_32
Decimal value 32 (default)
Definition: vcnl40x0.h:71
@ VCNL40X0_AMBIENT_AVERAGE_4
Decimal value 4.
Definition: vcnl40x0.h:68
@ VCNL40X0_AMBIENT_RATE_2
2 sample/s (default)
Definition: vcnl40x0.h:51
@ VCNL40X0_AMBIENT_RATE_6
6 sample/s
Definition: vcnl40x0.h:55
@ VCNL40X0_AMBIENT_RATE_3
3 sample/s
Definition: vcnl40x0.h:52
@ VCNL40X0_AMBIENT_RATE_8
8 sample/s
Definition: vcnl40x0.h:56
@ VCNL40X0_AMBIENT_RATE_10
10 sample/s
Definition: vcnl40x0.h:57
@ VCNL40X0_AMBIENT_RATE_4
4 sample/s
Definition: vcnl40x0.h:53
@ VCNL40X0_AMBIENT_RATE_5
5 sample/s
Definition: vcnl40x0.h:54
@ VCNL40X0_AMBIENT_RATE_1
1 sample/s
Definition: vcnl40x0.h:50
@ VCNL40X0_PROXIMITY_RATE_31
31.25 measurements/s
Definition: vcnl40x0.h:40
@ VCNL40X0_PROXIMITY_RATE_2
1.95 measurements/s (default)
Definition: vcnl40x0.h:36
@ VCNL40X0_PROXIMITY_RATE_8
7.8125 measurements/s
Definition: vcnl40x0.h:38
@ VCNL40X0_PROXIMITY_RATE_62
62.5 measurements/s
Definition: vcnl40x0.h:41
@ VCNL40X0_PROXIMITY_RATE_4
3.90625 measurements/s
Definition: vcnl40x0.h:37
@ VCNL40X0_PROXIMITY_RATE_16
16.625 measurements/s
Definition: vcnl40x0.h:39
@ VCNL40X0_PROXIMITY_RATE_250
250 measurements/s
Definition: vcnl40x0.h:43
@ VCNL40X0_PROXIMITY_RATE_125
125 measurements/s
Definition: vcnl40x0.h:42
@ VCNL40X0_ERR_NODEV
Error wrong device.
Definition: vcnl40x0.h:82
@ VCNL40X0_ERR_I2C
Error initializing the I2C bus.
Definition: vcnl40x0.h:81
@ VCNL40X0_OK
Everything was fine.
Definition: vcnl40x0.h:80
Low-level I2C peripheral driver interface definition.
Device initialization parameters.
Definition: vcnl40x0.h:88
uint8_t ambient_rate
Ambient light rate.
Definition: vcnl40x0.h:93
uint8_t i2c_addr
Address on I2C bus.
Definition: vcnl40x0.h:90
uint8_t led_current
LED current.
Definition: vcnl40x0.h:91
uint8_t ambient_avg
Ambient light conversion average.
Definition: vcnl40x0.h:94
uint8_t proximity_rate
Proximity rate.
Definition: vcnl40x0.h:92
i2c_t i2c_dev
I2C device which is used.
Definition: vcnl40x0.h:89
Device descriptor for the VCNL40X0 sensor.
Definition: vcnl40x0.h:100
vcnl40x0_params_t params
Device parameters.
Definition: vcnl40x0.h:101
Functionality for reading [S]ensor [A]ctuator [U]ber [L]ayer sensors as SenML.