LibDriver CCS811
Loading...
Searching...
No Matches
driver_ccs811_basic.c
Go to the documentation of this file.
1
36
37#include "driver_ccs811_basic.h"
38
39static ccs811_handle_t gs_handle;
40
50{
51 uint8_t res;
52
53 /* link functions */
70
71 /* set addr pin */
72 res = ccs811_set_addr_pin(&gs_handle, addr_pin);
73 if (res != 0)
74 {
75 ccs811_interface_debug_print("ccs811: set addr pin failed.\n");
76
77 return 1;
78 }
79
80 /* ccs811 init */
81 res = ccs811_init(&gs_handle);
82 if (res != 0)
83 {
84 ccs811_interface_debug_print("ccs811: init failed.\n");
85
86 return 1;
87 }
88
89 /* app start */
90 res = ccs811_app_start(&gs_handle);
91 if (res != 0)
92 {
93 ccs811_interface_debug_print("ccs811: start failed.\n");
94 (void)ccs811_deinit(&gs_handle);
95
96 return 1;
97 }
98
99 /* set default mode */
101 if (res != 0)
102 {
103 ccs811_interface_debug_print("ccs811: set mode failed.\n");
104 (void)ccs811_deinit(&gs_handle);
105
106 return 1;
107 }
108
109 /* disable interrupt data ready */
111 if (res != 0)
112 {
113 ccs811_interface_debug_print("ccs811: set interrupt data ready failed.\n");
114 (void)ccs811_deinit(&gs_handle);
115
116 return 1;
117 }
118
119 /* disable interrupt threshold */
121 if (res != 0)
122 {
123 ccs811_interface_debug_print("ccs811: set interrupt threshold failed.\n");
124 (void)ccs811_deinit(&gs_handle);
125
126 return 1;
127 }
128
129 return 0;
130}
131
140{
141 /* close ccs811 */
142 if (ccs811_deinit(&gs_handle) != 0)
143 {
144 return 1;
145 }
146
147 return 0;
148}
149
159uint8_t ccs811_basic_read(uint16_t *eco2_ppm, uint16_t *tvoc_ppb)
160{
161 uint16_t raw;
162
163 /* read data */
164 if (ccs811_read(&gs_handle, eco2_ppm, tvoc_ppb, &raw) != 0)
165 {
166 return 1;
167 }
168
169 return 0;
170}
171
180uint8_t ccs811_basic_get_status(uint8_t *status)
181{
182 if (ccs811_get_status(&gs_handle, status) != 0)
183 {
184 return 1;
185 }
186
187 return 0;
188}
189
199uint8_t ccs811_basic_get_raw_data(uint8_t *ua, float *adc_v)
200{
201 uint16_t raw;
202 uint16_t adc_raw;
203
204 /* get raw data */
205 if (ccs811_get_raw_data(&gs_handle, &raw, ua, &adc_raw, adc_v) != 0)
206 {
207 return 1;
208 }
209
210 return 0;
211}
212
222uint8_t ccs811_basic_set_environment_data(float humidity, float temperature)
223{
224 uint16_t humidity_raw;
225 uint16_t temperature_raw;
226
227 /* humidity convert */
228 if (ccs811_environment_humidity_convert_to_register(&gs_handle, humidity, &humidity_raw) != 0)
229 {
230 return 1;
231 }
232
233 /* temperature convert */
234 if (ccs811_environment_temperature_convert_to_register(&gs_handle, temperature, &temperature_raw) != 0)
235 {
236 return 1;
237 }
238
239 /* set environment data */
240 if (ccs811_set_environment_data(&gs_handle, humidity_raw, temperature_raw) != 0)
241 {
242 return 1;
243 }
244
245 return 0;
246}
247
256uint8_t ccs811_basic_set_baseline(uint16_t baseline)
257{
258 if (ccs811_set_baseline(&gs_handle, baseline) != 0)
259 {
260 return 1;
261 }
262
263 return 0;
264}
265
275{
276 if (ccs811_get_hardware_id(&gs_handle, id) != 0)
277 {
278 return 1;
279 }
280
281 return 0;
282}
283
292uint8_t ccs811_basic_get_hardware_version(uint8_t *version)
293{
294 if (ccs811_get_hardware_version(&gs_handle, version) != 0)
295 {
296 return 1;
297 }
298
299 return 0;
300}
301
312uint8_t ccs811_basic_get_firmware_bootloader_version(uint8_t *major, uint8_t *minor, uint8_t *trivial)
313{
314 if (ccs811_get_firmware_bootloader_version(&gs_handle, major, minor, trivial) != 0)
315 {
316 return 1;
317 }
318
319 return 0;
320}
321
332uint8_t ccs811_basic_get_firmware_application_version(uint8_t *major, uint8_t *minor, uint8_t *trivial)
333{
334 if (ccs811_get_firmware_application_version(&gs_handle, major, minor, trivial) != 0)
335 {
336 return 1;
337 }
338
339 return 0;
340}
341
350{
351 if (ccs811_soft_reset(&gs_handle) != 0)
352 {
353 return 1;
354 }
355
356 return 0;
357}
358
367{
368 if (ccs811_hard_reset(&gs_handle) != 0)
369 {
370 return 1;
371 }
372
373 return 0;
374}
375
384{
385 if (ccs811_wake_up(&gs_handle, CCS811_BOOL_TRUE) != 0)
386 {
387 return 1;
388 }
389
390 return 0;
391}
392
401{
402 if (ccs811_wake_up(&gs_handle, CCS811_BOOL_FALSE) != 0)
403 {
404 return 1;
405 }
406
407 return 0;
408}
driver ccs811 basic header file
uint8_t ccs811_app_start(ccs811_handle_t *handle)
app start
uint8_t ccs811_set_addr_pin(ccs811_handle_t *handle, ccs811_address_t addr_pin)
set address pin
struct ccs811_handle_s ccs811_handle_t
ccs811 handle structure definition
ccs811_address_t
ccs811 address enumeration definition
uint8_t ccs811_hard_reset(ccs811_handle_t *handle)
hard reset
uint8_t ccs811_environment_temperature_convert_to_register(ccs811_handle_t *handle, float temperature, uint16_t *reg)
convert real data format to register data format
uint8_t ccs811_get_hardware_version(ccs811_handle_t *handle, uint8_t *version)
get hardware version
uint8_t ccs811_set_baseline(ccs811_handle_t *handle, uint16_t baseline)
set baseline
uint8_t ccs811_environment_humidity_convert_to_register(ccs811_handle_t *handle, float humidity, uint16_t *reg)
convert real data format to register data format
uint8_t ccs811_set_mode(ccs811_handle_t *handle, ccs811_mode_t mode)
set mode
uint8_t ccs811_get_firmware_bootloader_version(ccs811_handle_t *handle, uint8_t *major, uint8_t *minor, uint8_t *trivial)
get firmware bootloader version
uint8_t ccs811_soft_reset(ccs811_handle_t *handle)
soft reset
uint8_t ccs811_set_environment_data(ccs811_handle_t *handle, uint16_t humidity_raw, uint16_t temperature_raw)
set environment data
uint8_t ccs811_set_interrupt_data_ready(ccs811_handle_t *handle, ccs811_bool_t enable)
enable or disable interrupt data ready
uint8_t ccs811_read(ccs811_handle_t *handle, uint16_t *eco2_ppm, uint16_t *tvoc_ppb, uint16_t *raw)
read data
uint8_t ccs811_get_firmware_application_version(ccs811_handle_t *handle, uint8_t *major, uint8_t *minor, uint8_t *trivial)
get firmware application version
uint8_t ccs811_set_interrupt_threshold(ccs811_handle_t *handle, ccs811_bool_t enable)
enable or disable interrupt threshold
uint8_t ccs811_get_hardware_id(ccs811_handle_t *handle, uint8_t *id)
get hardware id
uint8_t ccs811_init(ccs811_handle_t *handle)
initialize the chip
uint8_t ccs811_deinit(ccs811_handle_t *handle)
close the chip
uint8_t ccs811_get_status(ccs811_handle_t *handle, uint8_t *status)
get status
uint8_t ccs811_get_raw_data(ccs811_handle_t *handle, uint16_t *raw, uint8_t *ua, uint16_t *adc_raw, float *adc_v)
get raw data
uint8_t ccs811_wake_up(ccs811_handle_t *handle, ccs811_bool_t enable)
wake up
@ CCS811_BOOL_TRUE
@ CCS811_BOOL_FALSE
uint8_t ccs811_basic_hard_reset(void)
basic example hard reset
uint8_t ccs811_basic_soft_reset(void)
basic example soft reset
uint8_t ccs811_basic_deinit(void)
basic example deinit
uint8_t ccs811_basic_get_hardware_id(uint8_t *id)
basic example get hardware id
uint8_t ccs811_basic_get_raw_data(uint8_t *ua, float *adc_v)
basic example get raw data
uint8_t ccs811_basic_get_hardware_version(uint8_t *version)
basic example get hardware version
uint8_t ccs811_basic_set_baseline(uint16_t baseline)
basic example set baseline
uint8_t ccs811_basic_get_firmware_application_version(uint8_t *major, uint8_t *minor, uint8_t *trivial)
basic example get firmware application version
uint8_t ccs811_basic_get_firmware_bootloader_version(uint8_t *major, uint8_t *minor, uint8_t *trivial)
basic example get firmware bootloader version
uint8_t ccs811_basic_power_down(void)
basic example power down
uint8_t ccs811_basic_init(ccs811_address_t addr_pin)
basic example init
uint8_t ccs811_basic_get_status(uint8_t *status)
basic example get status
uint8_t ccs811_basic_wake_up(void)
basic example wake up
uint8_t ccs811_basic_set_environment_data(float humidity, float temperature)
basic example set environment data
#define CCS811_BASIC_DEFAULT_MODE
ccs811 basic example default definition
uint8_t ccs811_basic_read(uint16_t *eco2_ppm, uint16_t *tvoc_ppb)
basic example read
uint8_t ccs811_interface_gpio_reset_init(void)
interface gpio reset init
void ccs811_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ccs811_interface_gpio_reset_deinit(void)
interface gpio reset deinit
uint8_t ccs811_interface_gpio_reset_write(uint8_t level)
interface gpio reset write
uint8_t ccs811_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t ccs811_interface_iic_deinit(void)
interface iic bus deinit
uint8_t ccs811_interface_gpio_wake_init(void)
interface gpio wake init
uint8_t ccs811_interface_gpio_wake_write(uint8_t level)
interface gpio wake write
uint8_t ccs811_interface_bin_read_deinit(void)
interface bin read deinit
uint8_t ccs811_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t ccs811_interface_bin_read(uint32_t addr, uint16_t size, uint8_t *buffer)
interface bin read
uint8_t ccs811_interface_bin_read_init(char *name, uint32_t *size)
interface bin read init
uint8_t ccs811_interface_gpio_wake_deinit(void)
interface gpio wake deinit
uint8_t ccs811_interface_iic_init(void)
interface iic bus init
void ccs811_interface_delay_ms(uint32_t ms)
interface delay ms