LibDriver CCS811
Loading...
Searching...
No Matches
driver_ccs811_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static ccs811_handle_t gs_handle;
41
51{
52 uint8_t res;
53 uint8_t status;
54 uint8_t raw8;
55 uint8_t id;
56 uint8_t version;
57 uint8_t major;
58 uint8_t minor;
59 uint8_t trivial;
60 uint16_t raw;
61 uint16_t raw_check;
62 float f;
63 float f_check;
64 ccs811_mode_t mode;
65 ccs811_address_t addr_pin_check;
66 ccs811_bool_t enable;
67 ccs811_info_t info;
68
69 /* link functions */
86
87 /* ccs811 info */
88 res = ccs811_info(&info);
89 if (res != 0)
90 {
91 ccs811_interface_debug_print("ccs811: get info failed.\n");
92
93 return 1;
94 }
95 else
96 {
97 /* print chip information */
98 ccs811_interface_debug_print("ccs811: chip is %s.\n", info.chip_name);
99 ccs811_interface_debug_print("ccs811: manufacturer is %s.\n", info.manufacturer_name);
100 ccs811_interface_debug_print("ccs811: interface is %s.\n", info.interface);
101 ccs811_interface_debug_print("ccs811: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
102 ccs811_interface_debug_print("ccs811: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
103 ccs811_interface_debug_print("ccs811: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
104 ccs811_interface_debug_print("ccs811: max current is %0.2fmA.\n", info.max_current_ma);
105 ccs811_interface_debug_print("ccs811: max temperature is %0.1fC.\n", info.temperature_max);
106 ccs811_interface_debug_print("ccs811: min temperature is %0.1fC.\n", info.temperature_min);
107 }
108
109 /* start register test */
110 ccs811_interface_debug_print("ccs811: start register test.\n");
111
112 /* ccs811_set_addr_pin/ccs811_get_addr_pin test */
113 ccs811_interface_debug_print("ccs811: ccs811_set_addr_pin/ccs811_get_addr_pin test.\n");
114
115 /* set addr pin gnd */
116 res = ccs811_set_addr_pin(&gs_handle, CCS811_ADDRESS_GND);
117 if (res != 0)
118 {
119 ccs811_interface_debug_print("ccs811: set addr pin failed.\n");
120
121 return 1;
122 }
123 ccs811_interface_debug_print("ccs811: set addr pin gnd.\n");
124 res = ccs811_get_addr_pin(&gs_handle, &addr_pin_check);
125 if (res != 0)
126 {
127 ccs811_interface_debug_print("ccs811: get addr pin failed.\n");
128
129 return 1;
130 }
131 ccs811_interface_debug_print("ccs811: check addr pin %s.\n", (addr_pin_check == CCS811_ADDRESS_GND) ? "ok" : "error");
132
133 /* set addr pin vcc */
134 res = ccs811_set_addr_pin(&gs_handle, CCS811_ADDRESS_VCC);
135 if (res != 0)
136 {
137 ccs811_interface_debug_print("ccs811: set addr pin failed.\n");
138
139 return 1;
140 }
141 ccs811_interface_debug_print("ccs811: set addr pin vcc.\n");
142 res = ccs811_get_addr_pin(&gs_handle, &addr_pin_check);
143 if (res != 0)
144 {
145 ccs811_interface_debug_print("ccs811: get addr pin failed.\n");
146
147 return 1;
148 }
149 ccs811_interface_debug_print("ccs811: check addr pin %s.\n", (addr_pin_check == CCS811_ADDRESS_VCC) ? "ok" : "error");
150
151 /* set addr pin */
152 res = ccs811_set_addr_pin(&gs_handle, addr_pin);
153 if (res != 0)
154 {
155 ccs811_interface_debug_print("ccs811: set addr pin failed.\n");
156
157 return 1;
158 }
159
160 /* ccs811 init */
161 res = ccs811_init(&gs_handle);
162 if (res != 0)
163 {
164 ccs811_interface_debug_print("ccs811: init failed.\n");
165
166 return 1;
167 }
168
169 /* app start */
170 res = ccs811_app_start(&gs_handle);
171 if (res != 0)
172 {
173 ccs811_interface_debug_print("ccs811: start failed.\n");
174 (void)ccs811_deinit(&gs_handle);
175
176 return 1;
177 }
178
179 /* ccs811_get_status test */
180 ccs811_interface_debug_print("ccs811: ccs811_get_status test.\n");
181
182 /* get status */
183 res = ccs811_get_status(&gs_handle, &status);
184 if (res != 0)
185 {
186 ccs811_interface_debug_print("ccs811: get status failed.\n");
187 (void)ccs811_deinit(&gs_handle);
188
189 return 1;
190 }
191 ccs811_interface_debug_print("ccs811: status is 0x%02X.\n", status);
192
193 /* ccs811_set_mode/ccs811_get_mode test */
194 ccs811_interface_debug_print("ccs811: ccs811_set_mode/ccs811_get_mode test.\n");
195
196 /* set high constant power */
198 if (res != 0)
199 {
200 ccs811_interface_debug_print("ccs811: set mode failed.\n");
201 (void)ccs811_deinit(&gs_handle);
202
203 return 1;
204 }
205 ccs811_interface_debug_print("ccs811: set high constant power.\n");
206 res = ccs811_get_mode(&gs_handle, &mode);
207 if (res != 0)
208 {
209 ccs811_interface_debug_print("ccs811: get mode failed.\n");
210 (void)ccs811_deinit(&gs_handle);
211
212 return 1;
213 }
214 ccs811_interface_debug_print("ccs811: check mode %s.\n", (mode == CCS811_MODE_HIGH_CONSTANT_POWER) ? "ok" : "error");
215
216 /* set low power pulse heating */
218 if (res != 0)
219 {
220 ccs811_interface_debug_print("ccs811: set mode failed.\n");
221 (void)ccs811_deinit(&gs_handle);
222
223 return 1;
224 }
225 ccs811_interface_debug_print("ccs811: set low power pulse heating.\n");
226 res = ccs811_get_mode(&gs_handle, &mode);
227 if (res != 0)
228 {
229 ccs811_interface_debug_print("ccs811: get mode failed.\n");
230 (void)ccs811_deinit(&gs_handle);
231
232 return 1;
233 }
234 ccs811_interface_debug_print("ccs811: check mode %s.\n", (mode == CCS811_MODE_LOW_POWER_PULSE_HEATING) ? "ok" : "error");
235
236 /* set pulse heating */
238 if (res != 0)
239 {
240 ccs811_interface_debug_print("ccs811: set mode failed.\n");
241 (void)ccs811_deinit(&gs_handle);
242
243 return 1;
244 }
245 ccs811_interface_debug_print("ccs811: set pulse heating.\n");
246 res = ccs811_get_mode(&gs_handle, &mode);
247 if (res != 0)
248 {
249 ccs811_interface_debug_print("ccs811: get mode failed.\n");
250 (void)ccs811_deinit(&gs_handle);
251
252 return 1;
253 }
254 ccs811_interface_debug_print("ccs811: check mode %s.\n", (mode == CCS811_MODE_PULSE_HEATING) ? "ok" : "error");
255
256 /* set constant power */
258 if (res != 0)
259 {
260 ccs811_interface_debug_print("ccs811: set mode failed.\n");
261 (void)ccs811_deinit(&gs_handle);
262
263 return 1;
264 }
265 ccs811_interface_debug_print("ccs811: set constant power.\n");
266 res = ccs811_get_mode(&gs_handle, &mode);
267 if (res != 0)
268 {
269 ccs811_interface_debug_print("ccs811: get mode failed.\n");
270 (void)ccs811_deinit(&gs_handle);
271
272 return 1;
273 }
274 ccs811_interface_debug_print("ccs811: check mode %s.\n", (mode == CCS811_MODE_CONSTANT_POWER) ? "ok" : "error");
275
276 /* set idle */
277 res = ccs811_set_mode(&gs_handle, CCS811_MODE_IDLE);
278 if (res != 0)
279 {
280 ccs811_interface_debug_print("ccs811: set mode failed.\n");
281 (void)ccs811_deinit(&gs_handle);
282
283 return 1;
284 }
285 ccs811_interface_debug_print("ccs811: set idle.\n");
286 res = ccs811_get_mode(&gs_handle, &mode);
287 if (res != 0)
288 {
289 ccs811_interface_debug_print("ccs811: get mode failed.\n");
290 (void)ccs811_deinit(&gs_handle);
291
292 return 1;
293 }
294 ccs811_interface_debug_print("ccs811: check mode %s.\n", (mode == CCS811_MODE_IDLE) ? "ok" : "error");
295
296 /* ccs811_set_interrupt_data_ready/ccs811_get_interrupt_data_ready test */
297 ccs811_interface_debug_print("ccs811: ccs811_set_interrupt_data_ready/ccs811_get_interrupt_data_ready test.\n");
298
299 /* enable interrupt data ready */
301 if (res != 0)
302 {
303 ccs811_interface_debug_print("ccs811: set interrupt data ready failed.\n");
304 (void)ccs811_deinit(&gs_handle);
305
306 return 1;
307 }
308 ccs811_interface_debug_print("ccs811: enable interrupt data ready.\n");
309 res = ccs811_get_interrupt_data_ready(&gs_handle, &enable);
310 if (res != 0)
311 {
312 ccs811_interface_debug_print("ccs811: get interrupt data ready failed.\n");
313 (void)ccs811_deinit(&gs_handle);
314
315 return 1;
316 }
317 ccs811_interface_debug_print("ccs811: check interrupt data ready %s.\n", (enable == CCS811_BOOL_TRUE) ? "ok" : "error");
318
319 /* disable interrupt data ready */
321 if (res != 0)
322 {
323 ccs811_interface_debug_print("ccs811: set interrupt data ready failed.\n");
324 (void)ccs811_deinit(&gs_handle);
325
326 return 1;
327 }
328 ccs811_interface_debug_print("ccs811: disable interrupt data ready.\n");
329 res = ccs811_get_interrupt_data_ready(&gs_handle, &enable);
330 if (res != 0)
331 {
332 ccs811_interface_debug_print("ccs811: get interrupt data ready failed.\n");
333 (void)ccs811_deinit(&gs_handle);
334
335 return 1;
336 }
337 ccs811_interface_debug_print("ccs811: check interrupt data ready %s.\n", (enable == CCS811_BOOL_FALSE) ? "ok" : "error");
338
339 /* ccs811_set_interrupt_threshold/ccs811_get_interrupt_threshold test */
340 ccs811_interface_debug_print("ccs811: ccs811_set_interrupt_threshold/ccs811_get_interrupt_threshold test.\n");
341
342 /* enable interrupt threshold */
344 if (res != 0)
345 {
346 ccs811_interface_debug_print("ccs811: set interrupt threshold failed.\n");
347 (void)ccs811_deinit(&gs_handle);
348
349 return 1;
350 }
351 ccs811_interface_debug_print("ccs811: enable interrupt threshold.\n");
352 res = ccs811_get_interrupt_threshold(&gs_handle, &enable);
353 if (res != 0)
354 {
355 ccs811_interface_debug_print("ccs811: get interrupt threshold failed.\n");
356 (void)ccs811_deinit(&gs_handle);
357
358 return 1;
359 }
360 ccs811_interface_debug_print("ccs811: check interrupt threshold %s.\n", (enable == CCS811_BOOL_TRUE) ? "ok" : "error");
361
362 /* disable interrupt threshold */
364 if (res != 0)
365 {
366 ccs811_interface_debug_print("ccs811: set interrupt threshold failed.\n");
367 (void)ccs811_deinit(&gs_handle);
368
369 return 1;
370 }
371 ccs811_interface_debug_print("ccs811: disable interrupt threshold.\n");
372 res = ccs811_get_interrupt_threshold(&gs_handle, &enable);
373 if (res != 0)
374 {
375 ccs811_interface_debug_print("ccs811: get interrupt threshold failed.\n");
376 (void)ccs811_deinit(&gs_handle);
377
378 return 1;
379 }
380 ccs811_interface_debug_print("ccs811: check interrupt threshold %s.\n", (enable == CCS811_BOOL_FALSE) ? "ok" : "error");
381
382 /* ccs811_set_environment_data test */
383 ccs811_interface_debug_print("ccs811: ccs811_set_environment_data test.\n");
384
385 raw = rand() % 0xFFFFU;
386 res = ccs811_set_environment_data(&gs_handle, raw, raw);
387 if (res != 0)
388 {
389 ccs811_interface_debug_print("ccs811: set environment data failed.\n");
390 (void)ccs811_deinit(&gs_handle);
391
392 return 1;
393 }
394 ccs811_interface_debug_print("ccs811: set raw data 0x%04X.\n", raw);
395 ccs811_interface_debug_print("ccs811: check environment data %s.\n", (res == 0) ? "ok" : "error");
396
397 /* ccs811_set_eco2_threshold test */
398 ccs811_interface_debug_print("ccs811: ccs811_set_eco2_threshold test.\n");
399
400 raw = rand() % 0xFFFFU;
401 raw8 = rand() % 0xFF;
402 res = ccs811_set_eco2_threshold(&gs_handle, raw, raw, raw8);
403 if (res != 0)
404 {
405 ccs811_interface_debug_print("ccs811: set eco2 threshold failed.\n");
406 (void)ccs811_deinit(&gs_handle);
407
408 return 1;
409 }
410 ccs811_interface_debug_print("ccs811: set raw data 0x%04X.\n", raw);
411 ccs811_interface_debug_print("ccs811: set hysteresis 0x%02X.\n", raw8);
412 ccs811_interface_debug_print("ccs811: check eco2 threshold %s.\n", (res == 0) ? "ok" : "error");
413
414 /* ccs811_set_baseline/ccs811_get_baseline test */
415 ccs811_interface_debug_print("ccs811: ccs811_set_baseline/ccs811_get_baseline test.\n");
416
417 raw = 0xFFFFU;
418 res = ccs811_set_baseline(&gs_handle, raw);
419 if (res != 0)
420 {
421 ccs811_interface_debug_print("ccs811: set baseline failed.\n");
422 (void)ccs811_deinit(&gs_handle);
423
424 return 1;
425 }
426 ccs811_interface_debug_print("ccs811: set baseline 0x%04X.\n", raw);
427 res = ccs811_get_baseline(&gs_handle, &raw_check);
428 if (res != 0)
429 {
430 ccs811_interface_debug_print("ccs811: get baseline failed.\n");
431 (void)ccs811_deinit(&gs_handle);
432
433 return 1;
434 }
435 ccs811_interface_debug_print("ccs811: check baseline %s.\n", (raw == raw_check) ? "ok" : "error");
436
437 /* ccs811_get_hardware_id test */
438 ccs811_interface_debug_print("ccs811: ccs811_get_hardware_id test.\n");
439
440 /* get hardware id */
441 res = ccs811_get_hardware_id(&gs_handle, &id);
442 if (res != 0)
443 {
444 ccs811_interface_debug_print("ccs811: get hardware id failed.\n");
445 (void)ccs811_deinit(&gs_handle);
446
447 return 1;
448 }
449 ccs811_interface_debug_print("ccs811: hardware id is 0x%02X.\n", id);
450
451 /* ccs811_get_hardware_version test */
452 ccs811_interface_debug_print("ccs811: ccs811_get_hardware_version test.\n");
453
454 /* get hardware version */
455 res = ccs811_get_hardware_version(&gs_handle, &version);
456 if (res != 0)
457 {
458 ccs811_interface_debug_print("ccs811: get hardware version failed.\n");
459 (void)ccs811_deinit(&gs_handle);
460
461 return 1;
462 }
463 ccs811_interface_debug_print("ccs811: hardware version is 0x%02X.\n", version);
464
465 /* ccs811_get_firmware_bootloader_version test */
466 ccs811_interface_debug_print("ccs811: ccs811_get_firmware_bootloader_version test.\n");
467
468 /* get firmware bootloader version */
469 res = ccs811_get_firmware_bootloader_version(&gs_handle, &major, &minor, &trivial);
470 if (res != 0)
471 {
472 ccs811_interface_debug_print("ccs811: get firmware bootloader version failed.\n");
473 (void)ccs811_deinit(&gs_handle);
474
475 return 1;
476 }
477 ccs811_interface_debug_print("ccs811: firmware bootloader version major is 0x%02X.\n", major);
478 ccs811_interface_debug_print("ccs811: firmware bootloader version minor is 0x%02X.\n", minor);
479 ccs811_interface_debug_print("ccs811: firmware bootloader version trivial is 0x%02X.\n", trivial);
480
481 /* ccs811_get_firmware_application_version test */
482 ccs811_interface_debug_print("ccs811: ccs811_get_firmware_application_version test.\n");
483
484 /* get firmware application version */
485 res = ccs811_get_firmware_application_version(&gs_handle, &major, &minor, &trivial);
486 if (res != 0)
487 {
488 ccs811_interface_debug_print("ccs811: get firmware application version failed.\n");
489 (void)ccs811_deinit(&gs_handle);
490
491 return 1;
492 }
493 ccs811_interface_debug_print("ccs811: firmware application version major is 0x%02X.\n", major);
494 ccs811_interface_debug_print("ccs811: firmware application version minor is 0x%02X.\n", minor);
495 ccs811_interface_debug_print("ccs811: firmware application version trivial is 0x%02X.\n", trivial);
496
497 /* ccs811_soft_reset test */
498 ccs811_interface_debug_print("ccs811: ccs811_soft_reset test.\n");
499
500 /* soft reset */
501 res = ccs811_soft_reset(&gs_handle);
502 if (res != 0)
503 {
504 ccs811_interface_debug_print("ccs811: soft reset failed.\n");
505 (void)ccs811_deinit(&gs_handle);
506
507 return 1;
508 }
509 ccs811_interface_debug_print("ccs811: check soft reset %s.\n", (res == 0) ? "ok" : "error");
510
511 /* ccs811_wake_up test */
512 ccs811_interface_debug_print("ccs811: ccs811_wake_up test.\n");
513
514 /* disable wake up */
515 res = ccs811_wake_up(&gs_handle, CCS811_BOOL_FALSE);
516 if (res != 0)
517 {
518 ccs811_interface_debug_print("ccs811: wake up failed.\n");
519 (void)ccs811_deinit(&gs_handle);
520
521 return 1;
522 }
523 ccs811_interface_debug_print("ccs811: disable wake up.\n");
524 ccs811_interface_debug_print("ccs811: check wake up %s.\n", (res == 0) ? "ok" : "error");
525
526 /* enable wake up */
527 res = ccs811_wake_up(&gs_handle, CCS811_BOOL_TRUE);
528 if (res != 0)
529 {
530 ccs811_interface_debug_print("ccs811: wake up failed.\n");
531 (void)ccs811_deinit(&gs_handle);
532
533 return 1;
534 }
535 ccs811_interface_debug_print("ccs811: enable wake up.\n");
536 ccs811_interface_debug_print("ccs811: check wake up %s.\n", (res == 0) ? "ok" : "error");
537
538 /* ccs811_hard_reset test */
539 ccs811_interface_debug_print("ccs811: ccs811_hard_reset test.\n");
540
541 /* hard reset */
542 res = ccs811_hard_reset(&gs_handle);
543 if (res != 0)
544 {
545 ccs811_interface_debug_print("ccs811: hard reset failed.\n");
546 (void)ccs811_deinit(&gs_handle);
547
548 return 1;
549 }
550 ccs811_interface_debug_print("ccs811: check hard reset %s.\n", (res == 0) ? "ok" : "error");
551
552 /* ccs811_environment_humidity_convert_to_register/ccs811_environment_humidity_convert_to_data test */
553 ccs811_interface_debug_print("ccs811: ccs811_environment_humidity_convert_to_register/ccs811_environment_humidity_convert_to_data test.\n");
554
555 f = (float)(rand() % 1000) / 10.0f;
556 res = ccs811_environment_humidity_convert_to_register(&gs_handle, f, &raw);
557 if (res != 0)
558 {
559 ccs811_interface_debug_print("ccs811: environment humidity convert to register failed.\n");
560 (void)ccs811_deinit(&gs_handle);
561
562 return 1;
563 }
564 ccs811_interface_debug_print("ccs811: set environment humidity %.02f%%.\n", f);
565 res = ccs811_environment_humidity_convert_to_data(&gs_handle, raw, &f_check);
566 if (res != 0)
567 {
568 ccs811_interface_debug_print("ccs811: environment humidity convert to data failed.\n");
569 (void)ccs811_deinit(&gs_handle);
570
571 return 1;
572 }
573 ccs811_interface_debug_print("ccs811: check environment humidity %.02f%%.\n", f_check);
574
575 /* ccs811_environment_temperature_convert_to_register/ccs811_environment_temperature_convert_to_data test */
576 ccs811_interface_debug_print("ccs811: ccs811_environment_temperature_convert_to_register/ccs811_environment_temperature_convert_to_data test.\n");
577
578 f = (float)(rand() % 500) / 10.0f;
580 if (res != 0)
581 {
582 ccs811_interface_debug_print("ccs811: environment temperature convert to register failed.\n");
583 (void)ccs811_deinit(&gs_handle);
584
585 return 1;
586 }
587 ccs811_interface_debug_print("ccs811: set environment temperature %.02fC.\n", f);
588 res = ccs811_environment_temperature_convert_to_data(&gs_handle, raw, &f_check);
589 if (res != 0)
590 {
591 ccs811_interface_debug_print("ccs811: environment temperature convert to data failed.\n");
592 (void)ccs811_deinit(&gs_handle);
593
594 return 1;
595 }
596 ccs811_interface_debug_print("ccs811: check environment temperature %.02fC.\n", f_check);
597
598 /* finish register test */
599 ccs811_interface_debug_print("ccs811: finish register test.\n");
600 (void)ccs811_deinit(&gs_handle);
601
602 return 0;
603}
driver ccs811 register test header file
uint8_t ccs811_app_start(ccs811_handle_t *handle)
app start
struct ccs811_info_s ccs811_info_t
ccs811 information structure definition
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
uint8_t ccs811_get_addr_pin(ccs811_handle_t *handle, ccs811_address_t *addr_pin)
get address pin
uint8_t ccs811_set_eco2_threshold(ccs811_handle_t *handle, uint16_t low_medium_ppm, uint16_t medium_high_ppm, uint8_t hysteresis)
set eco2 threshold
ccs811_address_t
ccs811 address enumeration definition
uint8_t ccs811_get_interrupt_threshold(ccs811_handle_t *handle, ccs811_bool_t *enable)
get interrupt threshold status
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_environment_humidity_convert_to_data(ccs811_handle_t *handle, uint16_t reg, float *humidity)
convert register data to real data format
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
ccs811_bool_t
ccs811 bool enumeration definition
uint8_t ccs811_get_interrupt_data_ready(ccs811_handle_t *handle, ccs811_bool_t *enable)
get interrupt data ready status
uint8_t ccs811_get_baseline(ccs811_handle_t *handle, uint16_t *baseline)
get baseline
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_get_firmware_application_version(ccs811_handle_t *handle, uint8_t *major, uint8_t *minor, uint8_t *trivial)
get firmware application version
uint8_t ccs811_environment_temperature_convert_to_data(ccs811_handle_t *handle, uint16_t reg, float *temperature)
convert register data to real data format
uint8_t ccs811_set_interrupt_threshold(ccs811_handle_t *handle, ccs811_bool_t enable)
enable or disable interrupt threshold
uint8_t ccs811_info(ccs811_info_t *info)
get chip information
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_mode(ccs811_handle_t *handle, ccs811_mode_t *mode)
get mode
ccs811_mode_t
ccs811 mode enumeration definition
uint8_t ccs811_get_status(ccs811_handle_t *handle, uint8_t *status)
get status
uint8_t ccs811_wake_up(ccs811_handle_t *handle, ccs811_bool_t enable)
wake up
@ CCS811_ADDRESS_VCC
@ CCS811_ADDRESS_GND
@ CCS811_BOOL_TRUE
@ CCS811_BOOL_FALSE
@ CCS811_MODE_LOW_POWER_PULSE_HEATING
@ CCS811_MODE_IDLE
@ CCS811_MODE_CONSTANT_POWER
@ CCS811_MODE_PULSE_HEATING
@ CCS811_MODE_HIGH_CONSTANT_POWER
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
uint8_t ccs811_register_test(ccs811_address_t addr_pin)
register test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]