LibDriver MAX30205
Loading...
Searching...
No Matches
driver_max30205_register_test.c
Go to the documentation of this file.
1
37
39#include <math.h>
40
41static max30205_handle_t gs_handle;
42
52{
53 uint8_t res;
54 int16_t reg;
55 int16_t threshold;
56 float s;
57 max30205_info_t info;
58 max30205_address_t addr_pin;
61 max30205_fault_queue_t fault_queue;
63 max30205_bus_timeout_t bus_timeout;
64
65 /* link interface function */
73
74 /* get information */
75 res = max30205_info(&info);
76 if (res != 0)
77 {
78 max30205_interface_debug_print("max30205: get info failed.\n");
79
80 return 1;
81 }
82 else
83 {
84 /* print chip information */
85 max30205_interface_debug_print("max30205: chip is %s.\n", info.chip_name);
86 max30205_interface_debug_print("max30205: manufacturer is %s.\n", info.manufacturer_name);
87 max30205_interface_debug_print("max30205: interface is %s.\n", info.interface);
88 max30205_interface_debug_print("max30205: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
89 max30205_interface_debug_print("max30205: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
90 max30205_interface_debug_print("max30205: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
91 max30205_interface_debug_print("max30205: max current is %0.2fmA.\n", info.max_current_ma);
92 max30205_interface_debug_print("max30205: max temperature is %0.1fC.\n", info.temperature_max);
93 max30205_interface_debug_print("max30205: min temperature is %0.1fC.\n", info.temperature_min);
94 }
95
96 /* start register test */
97 max30205_interface_debug_print("max30205: start register test.\n");
98 max30205_interface_debug_print("max30205: max30205_set_addr_pin/max30205_get_addr_pin test.\n");
99
100 /* set ADDRESS_0 */
101 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_0);
102 if (res != 0)
103 {
104 max30205_interface_debug_print("max30205: set addr pin failed.\n");
105
106 return 1;
107 }
108 max30205_interface_debug_print("max30205: set addr pin ADDRESS_0.\n");
109 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
110 if (res != 0)
111 {
112 max30205_interface_debug_print("max30205: get addr pin failed.\n");
113
114 return 1;
115 }
116 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_0?"ok":"error");
117
118 /* set ADDRESS_1 */
119 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_1);
120 if (res != 0)
121 {
122 max30205_interface_debug_print("max30205: set addr pin failed.\n");
123
124 return 1;
125 }
126 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1.\n");
127 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
128 if (res != 0)
129 {
130 max30205_interface_debug_print("max30205: get addr pin failed.\n");
131
132 return 1;
133 }
134 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1?"ok":"error");
135
136 /* set ADDRESS_2 */
137 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_2);
138 if (res != 0)
139 {
140 max30205_interface_debug_print("max30205: set addr pin failed.\n");
141
142 return 1;
143 }
144 max30205_interface_debug_print("max30205: set addr pin ADDRESS_2.\n");
145 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
146 if (res != 0)
147 {
148 max30205_interface_debug_print("max30205: get addr pin failed.\n");
149
150 return 1;
151 }
152 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_2?"ok":"error");
153
154 /* set ADDRESS_3 */
155 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_3);
156 if (res != 0)
157 {
158 max30205_interface_debug_print("max30205: set addr pin failed.\n");
159
160 return 1;
161 }
162 max30205_interface_debug_print("max30205: set addr pin ADDRESS_3.\n");
163 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
164 if (res != 0)
165 {
166 max30205_interface_debug_print("max30205: get addr pin failed.\n");
167
168 return 1;
169 }
170 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_3?"ok":"error");
171
172 /* set ADDRESS_4 */
173 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_4);
174 if (res != 0)
175 {
176 max30205_interface_debug_print("max30205: set addr pin failed.\n");
177
178 return 1;
179 }
180 max30205_interface_debug_print("max30205: set addr pin ADDRESS_4.\n");
181 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
182 if (res != 0)
183 {
184 max30205_interface_debug_print("max30205: get addr pin failed.\n");
185
186 return 1;
187 }
188 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_4?"ok":"error");
189
190 /* set ADDRESS_5 */
191 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_5);
192 if (res != 0)
193 {
194 max30205_interface_debug_print("max30205: set addr pin failed.\n");
195
196 return 1;
197 }
198 max30205_interface_debug_print("max30205: set addr pin ADDRESS_5.\n");
199 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
200 if (res != 0)
201 {
202 max30205_interface_debug_print("max30205: get addr pin failed.\n");
203
204 return 1;
205 }
206 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_5?"ok":"error");
207
208 /* set ADDRESS_6 */
209 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_6);
210 if (res != 0)
211 {
212 max30205_interface_debug_print("max30205: set addr pin failed.\n");
213
214 return 1;
215 }
216 max30205_interface_debug_print("max30205: set addr pin ADDRESS_6.\n");
217 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
218 if (res != 0)
219 {
220 max30205_interface_debug_print("max30205: get addr pin failed.\n");
221
222 return 1;
223 }
224 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_6?"ok":"error");
225
226 /* set ADDRESS_7 */
227 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_7);
228 if (res != 0)
229 {
230 max30205_interface_debug_print("max30205: set addr pin failed.\n");
231
232 return 1;
233 }
234 max30205_interface_debug_print("max30205: set addr pin ADDRESS_7.\n");
235 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
236 if (res != 0)
237 {
238 max30205_interface_debug_print("max30205: get addr pin failed.\n");
239
240 return 1;
241 }
242 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_7?"ok":"error");
243
244 /* set ADDRESS_8 */
245 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_8);
246 if (res != 0)
247 {
248 max30205_interface_debug_print("max30205: set addr pin failed.\n");
249
250 return 1;
251 }
252 max30205_interface_debug_print("max30205: set addr pin ADDRESS_8.\n");
253 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
254 if (res != 0)
255 {
256 max30205_interface_debug_print("max30205: get addr pin failed.\n");
257
258 return 1;
259 }
260 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_8?"ok":"error");
261
262 /* set ADDRESS_9 */
263 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_9);
264 if (res != 0)
265 {
266 max30205_interface_debug_print("max30205: set addr pin failed.\n");
267
268 return 1;
269 }
270 max30205_interface_debug_print("max30205: set addr pin ADDRESS_9.\n");
271 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
272 if (res != 0)
273 {
274 max30205_interface_debug_print("max30205: get addr pin failed.\n");
275
276 return 1;
277 }
278 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_9?"ok":"error");
279
280 /* set ADDRESS_A */
281 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_A);
282 if (res != 0)
283 {
284 max30205_interface_debug_print("max30205: set addr pin failed.\n");
285
286 return 1;
287 }
288 max30205_interface_debug_print("max30205: set addr pin ADDRESS_A.\n");
289 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
290 if (res != 0)
291 {
292 max30205_interface_debug_print("max30205: get addr pin failed.\n");
293
294 return 1;
295 }
296 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_A?"ok":"error");
297
298 /* set ADDRESS_B */
299 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_B);
300 if (res != 0)
301 {
302 max30205_interface_debug_print("max30205: set addr pin failed.\n");
303
304 return 1;
305 }
306 max30205_interface_debug_print("max30205: set addr pin ADDRESS_B.\n");
307 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
308 if (res != 0)
309 {
310 max30205_interface_debug_print("max30205: get addr pin failed.\n");
311
312 return 1;
313 }
314 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_B?"ok":"error");
315
316 /* set ADDRESS_C */
317 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_C);
318 if (res != 0)
319 {
320 max30205_interface_debug_print("max30205: set addr pin failed.\n");
321
322 return 1;
323 }
324 max30205_interface_debug_print("max30205: set addr pin ADDRESS_C.\n");
325 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
326 if (res != 0)
327 {
328 max30205_interface_debug_print("max30205: get addr pin failed.\n");
329
330 return 1;
331 }
332 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_C?"ok":"error");
333
334 /*set ADDRESS_D */
335 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_D);
336 if (res != 0)
337 {
338 max30205_interface_debug_print("max30205: set addr pin failed.\n");
339
340 return 1;
341 }
342 max30205_interface_debug_print("max30205: set addr pin ADDRESS_D.\n");
343 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
344 if (res != 0)
345 {
346 max30205_interface_debug_print("max30205: get addr pin failed.\n");
347
348 return 1;
349 }
350 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_D?"ok":"error");
351
352 /* set ADDRESS_E */
353 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_E);
354 if (res != 0)
355 {
356 max30205_interface_debug_print("max30205: set addr pin failed.\n");
357
358 return 1;
359 }
360 max30205_interface_debug_print("max30205: set addr pin ADDRESS_E.\n");
361 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
362 if (res != 0)
363 {
364 max30205_interface_debug_print("max30205: get addr pin failed.\n");
365
366 return 1;
367 }
368 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_E?"ok":"error");
369
370 /* set ADDRESS_F */
371 res = max30205_set_addr_pin(&gs_handle, MAX30205_ADDRESS_F);
372 if (res != 0)
373 {
374 max30205_interface_debug_print("max30205: set addr pin failed.\n");
375
376 return 1;
377 }
378 max30205_interface_debug_print("max30205: set addr pin ADDRESS_F.\n");
379 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
380 if (res != 0)
381 {
382 max30205_interface_debug_print("max30205: get addr pin failed.\n");
383
384 return 1;
385 }
386 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_F?"ok":"error");
387
388 /* set ADDRESS_10 */
390 if (res != 0)
391 {
392 max30205_interface_debug_print("max30205: set addr pin failed.\n");
393
394 return 1;
395 }
396 max30205_interface_debug_print("max30205: set addr pin ADDRESS_10.\n");
397 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
398 if (res != 0)
399 {
400 max30205_interface_debug_print("max30205: get addr pin failed.\n");
401
402 return 1;
403 }
404 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_10?"ok":"error");
405
406 /* set ADDRESS_11 */
408 if (res != 0)
409 {
410 max30205_interface_debug_print("max30205: set addr pin failed.\n");
411
412 return 1;
413 }
414 max30205_interface_debug_print("max30205: set addr pin ADDRESS_11.\n");
415 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
416 if (res != 0)
417 {
418 max30205_interface_debug_print("max30205: get addr pin failed.\n");
419
420 return 1;
421 }
422 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_11?"ok":"error");
423
424 /* set ADDRESS_12 */
426 if (res != 0)
427 {
428 max30205_interface_debug_print("max30205: set addr pin failed.\n");
429
430 return 1;
431 }
432 max30205_interface_debug_print("max30205: set addr pin ADDRESS_12.\n");
433 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
434 if (res != 0)
435 {
436 max30205_interface_debug_print("max30205: get addr pin failed.\n");
437
438 return 1;
439 }
440 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_12?"ok":"error");
441
442 /* set ADDRESS_13 */
444 if (res != 0)
445 {
446 max30205_interface_debug_print("max30205: set addr pin failed.\n");
447
448 return 1;
449 }
450 max30205_interface_debug_print("max30205: set addr pin ADDRESS_13.\n");
451 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
452 if (res != 0)
453 {
454 max30205_interface_debug_print("max30205: get addr pin failed.\n");
455
456 return 1;
457 }
458 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_13?"ok":"error");
459
460 /* set ADDRESS_14 */
462 if (res != 0)
463 {
464 max30205_interface_debug_print("max30205: set addr pin failed.\n");
465
466 return 1;
467 }
468 max30205_interface_debug_print("max30205: set addr pin ADDRESS_14.\n");
469 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
470 if (res != 0)
471 {
472 max30205_interface_debug_print("max30205: get addr pin failed.\n");
473
474 return 1;
475 }
476 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_14?"ok":"error");
477
478 /* set ADDRESS_15 */
480 if (res != 0)
481 {
482 max30205_interface_debug_print("max30205: set addr pin failed.\n");
483
484 return 1;
485 }
486 max30205_interface_debug_print("max30205: set addr pin ADDRESS_15.\n");
487 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
488 if (res != 0)
489 {
490 max30205_interface_debug_print("max30205: get addr pin failed.\n");
491
492 return 1;
493 }
494 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_15?"ok":"error");
495
496 /* set ADDRESS_16 */
498 if (res != 0)
499 {
500 max30205_interface_debug_print("max30205: set addr pin failed.\n");
501
502 return 1;
503 }
504 max30205_interface_debug_print("max30205: set addr pin ADDRESS_16.\n");
505 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
506 if (res != 0)
507 {
508 max30205_interface_debug_print("max30205: get addr pin failed.\n");
509
510 return 1;
511 }
512 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_16?"ok":"error");
513
514 /* set ADDRESS_17 */
516 if (res != 0)
517 {
518 max30205_interface_debug_print("max30205: set addr pin failed.\n");
519
520 return 1;
521 }
522 max30205_interface_debug_print("max30205: set addr pin ADDRESS_17.\n");
523 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
524 if (res != 0)
525 {
526 max30205_interface_debug_print("max30205: get addr pin failed.\n");
527
528 return 1;
529 }
530 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_17?"ok":"error");
531
532 /* set ADDRESS_18 */
534 if (res != 0)
535 {
536 max30205_interface_debug_print("max30205: set addr pin failed.\n");
537
538 return 1;
539 }
540 max30205_interface_debug_print("max30205: set addr pin ADDRESS_18.\n");
541 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
542 if (res != 0)
543 {
544 max30205_interface_debug_print("max30205: get addr pin failed.\n");
545
546 return 1;
547 }
548 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_18?"ok":"error");
549
550 /* set ADDRESS_19 */
552 if (res != 0)
553 {
554 max30205_interface_debug_print("max30205: set addr pin failed.\n");
555
556 return 1;
557 }
558 max30205_interface_debug_print("max30205: set addr pin ADDRESS_19.\n");
559 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
560 if (res != 0)
561 {
562 max30205_interface_debug_print("max30205: get addr pin failed.\n");
563
564 return 1;
565 }
566 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_19?"ok":"error");
567
568 /* set ADDRESS_1A */
570 if (res != 0)
571 {
572 max30205_interface_debug_print("max30205: set addr pin failed.\n");
573
574 return 1;
575 }
576 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1A.\n");
577 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
578 if (res != 0)
579 {
580 max30205_interface_debug_print("max30205: get addr pin failed.\n");
581
582 return 1;
583 }
584 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1A?"ok":"error");
585
586 /* set ADDRESS_1B */
588 if (res != 0)
589 {
590 max30205_interface_debug_print("max30205: set addr pin failed.\n");
591
592 return 1;
593 }
594 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1B.\n");
595 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
596 if (res != 0)
597 {
598 max30205_interface_debug_print("max30205: get addr pin failed.\n");
599
600 return 1;
601 }
602 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1B?"ok":"error");
603
604 /* set ADDRESS_1C */
606 if (res != 0)
607 {
608 max30205_interface_debug_print("max30205: set addr pin failed.\n");
609
610 return 1;
611 }
612 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1C.\n");
613 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
614 if (res != 0)
615 {
616 max30205_interface_debug_print("max30205: get addr pin failed.\n");
617
618 return 1;
619 }
620 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1C?"ok":"error");
621
622 /* set ADDRESS_1D */
624 if (res != 0)
625 {
626 max30205_interface_debug_print("max30205: set addr pin failed.\n");
627
628 return 1;
629 }
630 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1D.\n");
631 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
632 if (res != 0)
633 {
634 max30205_interface_debug_print("max30205: get addr pin failed.\n");
635
636 return 1;
637 }
638 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1D?"ok":"error");
639
640 /* set ADDRESS_1E */
642 if (res != 0)
643 {
644 max30205_interface_debug_print("max30205: set addr pin failed.\n");
645
646 return 1;
647 }
648 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1E.\n");
649 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
650 if (res != 0)
651 {
652 max30205_interface_debug_print("max30205: get addr pin failed.\n");
653
654 return 1;
655 }
656 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1E?"ok":"error");
657
658 /* set ADDRESS_1F */
660 if (res != 0)
661 {
662 max30205_interface_debug_print("max30205: set addr pin failed.\n");
663
664 return 1;
665 }
666 max30205_interface_debug_print("max30205: set addr pin ADDRESS_1F.\n");
667 res = max30205_get_addr_pin(&gs_handle, &addr_pin);
668 if (res != 0)
669 {
670 max30205_interface_debug_print("max30205: get addr pin failed.\n");
671
672 return 1;
673 }
674 max30205_interface_debug_print("max30205: check addr pin %s.\n", addr_pin==MAX30205_ADDRESS_1F?"ok":"error");
675 res = max30205_set_addr_pin(&gs_handle, addr_pin);
676 if (res != 0)
677 {
678 max30205_interface_debug_print("max30205: set addr pin failed.\n");
679
680 return 1;
681 }
682
683 /* set iic address */
684 res = max30205_set_addr_pin(&gs_handle, addr);
685 if (res != 0)
686 {
687 max30205_interface_debug_print("max30205: set addr pin failed.\n");
688
689 return 1;
690 }
691
692 /* max30205 init */
693 res = max30205_init(&gs_handle);
694 if (res != 0)
695 {
696 max30205_interface_debug_print("max30205: init failed.\n");
697
698 return 1;
699 }
700
701 /* max30205_set_data_format/max30205_get_data_format test */
702 max30205_interface_debug_print("max30205: max30205_set_data_format/max30205_get_data_format test.\n");
703
704 /* set NORMAL */
706 if (res != 0)
707 {
708 max30205_interface_debug_print("max30205: set data format failed.\n");
709 (void)max30205_deinit(&gs_handle);
710
711 return 1;
712 }
713 max30205_interface_debug_print("max30205: set data format normal.\n");
714 res = max30205_get_data_format(&gs_handle, &format);
715 if (res != 0)
716 {
717 max30205_interface_debug_print("max30205: get data format failed.\n");
718 (void)max30205_deinit(&gs_handle);
719
720 return 1;
721 }
722 max30205_interface_debug_print("max30205: check data format %s.\n", format==MAX30205_DATA_FORMAT_NORMAL?"ok":"error");
723
724 /* set EXTENDED */
726 if (res != 0)
727 {
728 max30205_interface_debug_print("max30205: set data format failed.\n");
729 (void)max30205_deinit(&gs_handle);
730
731 return 1;
732 }
733 max30205_interface_debug_print("max30205: set data format extended.\n");
734 res = max30205_get_data_format(&gs_handle, &format);
735 if (res != 0)
736 {
737 max30205_interface_debug_print("max30205: get data format failed.\n");
738 (void)max30205_deinit(&gs_handle);
739
740 return 1;
741 }
742 max30205_interface_debug_print("max30205: check data format %s.\n", format==MAX30205_DATA_FORMAT_EXTENDED?"ok":"error");
743
744 /* max30205_set_interrupt_mode/max30205_get_interrupt_mode */
745 max30205_interface_debug_print("max30205: max30205_set_interrupt_mode/max30205_get_interrupt_mode test.\n");
746
747 /* set COMPARATOR */
749 if (res != 0)
750 {
751 max30205_interface_debug_print("max30205: set interrupt mode failed.\n");
752 (void)max30205_deinit(&gs_handle);
753
754 return 1;
755 }
756 max30205_interface_debug_print("max30205: set interrupt mode comparator.\n");
757 res = max30205_get_interrupt_mode(&gs_handle, &mode);
758 if (res != 0)
759 {
760 max30205_interface_debug_print("max30205: get interrupt mode failed.\n");
761 (void)max30205_deinit(&gs_handle);
762
763 return 1;
764 }
765 max30205_interface_debug_print("max30205: check interrupt mode %s.\n", mode==MAX30205_INTERRUPT_MODE_COMPARATOR?"ok":"error");
766
767 /* set INTERRUPT */
769 if (res != 0)
770 {
771 max30205_interface_debug_print("max30205: set interrupt mode failed.\n");
772 (void)max30205_deinit(&gs_handle);
773
774 return 1;
775 }
776 max30205_interface_debug_print("max30205: set interrupt mode interrupt.\n");
777 res = max30205_get_interrupt_mode(&gs_handle, &mode);
778 if (res != 0)
779 {
780 max30205_interface_debug_print("max30205: get interrupt mode failed.\n");
781 (void)max30205_deinit(&gs_handle);
782
783 return 1;
784 }
785 max30205_interface_debug_print("max30205: check interrupt mode %s.\n", mode==MAX30205_INTERRUPT_MODE_INTERRUPT?"ok":"error");
786
787 /* max30205_set_fault_queue/max30205_get_fault_queue test */
788 max30205_interface_debug_print("max30205: max30205_set_fault_queue/max30205_get_fault_queue test.\n");
789
790 /* set FAULT_QUEUE_1 */
792 if (res != 0)
793 {
794 max30205_interface_debug_print("max30205: set fault queue failed.\n");
795 (void)max30205_deinit(&gs_handle);
796
797 return 1;
798 }
799 max30205_interface_debug_print("max30205: set fault queue 1.\n");
800 res = max30205_get_fault_queue(&gs_handle, &fault_queue);
801 if (res != 0)
802 {
803 max30205_interface_debug_print("max30205: get fault queue failed.\n");
804 (void)max30205_deinit(&gs_handle);
805
806 return 1;
807 }
808 max30205_interface_debug_print("max30205: check fault queue %s.\n", fault_queue==MAX30205_FAULT_QUEUE_1?"ok":"error");
809
810 /* set FAULT_QUEUE_2 */
812 if (res != 0)
813 {
814 max30205_interface_debug_print("max30205: set fault queue failed.\n");
815 (void)max30205_deinit(&gs_handle);
816
817 return 1;
818 }
819 max30205_interface_debug_print("max30205: set fault queue 2.\n");
820 res = max30205_get_fault_queue(&gs_handle, &fault_queue);
821 if (res != 0)
822 {
823 max30205_interface_debug_print("max30205: get fault queue failed.\n");
824 (void)max30205_deinit(&gs_handle);
825
826 return 1;
827 }
828 max30205_interface_debug_print("max30205: check fault queue %s.\n", fault_queue==MAX30205_FAULT_QUEUE_2?"ok":"error");
829
830 /* set FAULT_QUEUE_4 */
832 if (res != 0)
833 {
834 max30205_interface_debug_print("max30205: set fault queue failed.\n");
835 (void)max30205_deinit(&gs_handle);
836
837 return 1;
838 }
839 max30205_interface_debug_print("max30205: set fault queue 4.\n");
840 res = max30205_get_fault_queue(&gs_handle, &fault_queue);
841 if (res != 0)
842 {
843 max30205_interface_debug_print("max30205: get fault queue failed.\n");
844 (void)max30205_deinit(&gs_handle);
845
846 return 1;
847 }
848 max30205_interface_debug_print("max30205: check fault queue %s.\n", fault_queue==MAX30205_FAULT_QUEUE_4?"ok":"error");
849
850 /* set FAULT_QUEUE_6 */
852 if (res != 0)
853 {
854 max30205_interface_debug_print("max30205: set fault queue failed.\n");
855 (void)max30205_deinit(&gs_handle);
856
857 return 1;
858 }
859 max30205_interface_debug_print("max30205: set fault queue 6.\n");
860 res = max30205_get_fault_queue(&gs_handle, &fault_queue);
861 if (res != 0)
862 {
863 max30205_interface_debug_print("max30205: get fault queue failed.\n");
864 (void)max30205_deinit(&gs_handle);
865
866 return 1;
867 }
868 max30205_interface_debug_print("max30205: check fault queue %s.\n", fault_queue==MAX30205_FAULT_QUEUE_6?"ok":"error");
869
870 /* max30205_set_pin_polarity/max30205_get_pin_polarity */
871 max30205_interface_debug_print("max30205: max30205_set_pin_polarity/max30205_get_pin_polarity test.\n");
872
873 /* set POLARITY_LOW */
875 if (res != 0)
876 {
877 max30205_interface_debug_print("max30205: set pin polarity failed.\n");
878 (void)max30205_deinit(&gs_handle);
879
880 return 1;
881 }
882 max30205_interface_debug_print("max30205: set pin polarity low.\n");
883 res = max30205_get_pin_polarity(&gs_handle, &polarity);
884 if (res != 0)
885 {
886 max30205_interface_debug_print("max30205: get pin polarity failed.\n");
887 (void)max30205_deinit(&gs_handle);
888
889 return 1;
890 }
891 max30205_interface_debug_print("max30205: check pin polarity %s.\n", polarity==MAX30205_PIN_POLARITY_LOW?"ok":"error");
892
893 /* set POLARITY_HIGH */
895 if (res != 0)
896 {
897 max30205_interface_debug_print("max30205: set pin polarity failed.\n");
898 (void)max30205_deinit(&gs_handle);
899
900 return 1;
901 }
902 max30205_interface_debug_print("max30205: set pin polarity high.\n");
903 res = max30205_get_pin_polarity(&gs_handle, &polarity);
904 if (res != 0)
905 {
906 max30205_interface_debug_print("max30205: get pin polarity failed.\n");
907 (void)max30205_deinit(&gs_handle);
908
909 return 1;
910 }
911 max30205_interface_debug_print("max30205: check pin polarity %s.\n", polarity==MAX30205_PIN_POLARITY_HIGH?"ok":"error");
912 max30205_interface_debug_print("max30205: max30205_set_bus_timeout/max30205_get_bus_timeout test.\n");
913
914 /* set BUS_TIMEOUT_ENABLE */
916 if (res != 0)
917 {
918 max30205_interface_debug_print("max30205: set bus timeout failed.\n");
919 (void)max30205_deinit(&gs_handle);
920
921 return 1;
922 }
923 max30205_interface_debug_print("max30205: set bus timeout enable.\n");
924 res = max30205_get_bus_timeout(&gs_handle, &bus_timeout);
925 if (res != 0)
926 {
927 max30205_interface_debug_print("max30205: get bus timeout failed.\n");
928 (void)max30205_deinit(&gs_handle);
929
930 return 1;
931 }
932 max30205_interface_debug_print("max30205: check bus timeout %s.\n", bus_timeout==MAX30205_BUS_TIMEOUT_ENABLE?"ok":"error");
933
934 /* set BUS_TIMEOUT_DISABLE */
936 if (res != 0)
937 {
938 max30205_interface_debug_print("max30205: set bus timeout failed.\n");
939 (void)max30205_deinit(&gs_handle);
940
941 return 1;
942 }
943 max30205_interface_debug_print("max30205: set bus timeout disable.\n");
944 res = max30205_get_bus_timeout(&gs_handle, &bus_timeout);
945 if (res != 0)
946 {
947 max30205_interface_debug_print("max30205: get bus timeout failed.\n");
948 (void)max30205_deinit(&gs_handle);
949
950 return 1;
951 }
952 max30205_interface_debug_print("max30205: check bus timeout %s.\n", bus_timeout==MAX30205_BUS_TIMEOUT_DISABLE?"ok":"error");
953
954 /* set NORMAL CONVERT TEST */
955 max30205_interface_debug_print("max30205: max30205_convert_to_register/max30205_convert_to_data test.\n");
957 if (res != 0)
958 {
959 max30205_interface_debug_print("max30205: set data format failed.\n");
960 (void)max30205_deinit(&gs_handle);
961
962 return 1;
963 }
964 res = max30205_convert_to_register(&gs_handle, 20.0f, (int16_t *)&reg);
965 if (res != 0)
966 {
967 max30205_interface_debug_print("max30205: convert to register failed.\n");
968 (void)max30205_deinit(&gs_handle);
969
970 return 1;
971 }
972 res = max30205_convert_to_data(&gs_handle, (int16_t)reg, (float *)&s);
973 if (res != 0)
974 {
975 max30205_interface_debug_print("max30205: convert to data failed.\n");
976 (void)max30205_deinit(&gs_handle);
977
978 return 1;
979 }
980 max30205_interface_debug_print("max30205: check normal mode convert %s.\n", fabsf(s - 20.f) < 0.000001f?"ok":"error");
981
982 /* set EXTENDED CONVERT TEST */
983 max30205_interface_debug_print("max30205: max30205_convert_to_register/max30205_convert_to_data test.\n");
985 if (res != 0)
986 {
987 max30205_interface_debug_print("max30205: set data format failed.\n");
988 (void)max30205_deinit(&gs_handle);
989
990 return 1;
991 }
992 res = max30205_convert_to_register(&gs_handle, 25.0f, (int16_t *)&reg);
993 if (res != 0)
994 {
995 max30205_interface_debug_print("max30205: convert to register failed.\n");
996 (void)max30205_deinit(&gs_handle);
997
998 return 1;
999 }
1000 res = max30205_convert_to_data(&gs_handle, (int16_t)reg, (float *)&s);
1001 if (res != 0)
1002 {
1003 max30205_interface_debug_print("max30205: convert to data failed.\n");
1004 (void)max30205_deinit(&gs_handle);
1005
1006 return 1;
1007 }
1008 max30205_interface_debug_print("max30205: check extended mode convert %s.\n", fabsf(s - 25.f) < 0.000001f?"ok":"error");
1009 max30205_interface_debug_print("max30205: max30205_set_interrupt_low_threshold/max30205_get_interrupt_low_threshold test.\n");
1010
1011 /* set INTERRUPT_LOW_THRESHOLD */
1012 res = max30205_convert_to_register(&gs_handle, 35.0f, (int16_t *)&reg);
1013 if (res != 0)
1014 {
1015 max30205_interface_debug_print("max30205: convert to register failed.\n");
1016 (void)max30205_deinit(&gs_handle);
1017
1018 return 1;
1019 }
1020 res = max30205_set_interrupt_low_threshold(&gs_handle, (int16_t)reg);
1021 if (res != 0)
1022 {
1023 max30205_interface_debug_print("max30205: set interrupt low threshold failed.\n");
1024 (void)max30205_deinit(&gs_handle);
1025
1026 return 1;
1027 }
1028 max30205_interface_debug_print("max30205: set interrupt low threshold 35.0.\n");
1029 res = max30205_get_interrupt_low_threshold(&gs_handle, (int16_t *)&threshold);
1030 if (res != 0)
1031 {
1032 max30205_interface_debug_print("max30205: get interrupt low threshold failed.\n");
1033 (void)max30205_deinit(&gs_handle);
1034
1035 return 1;
1036 }
1037 max30205_interface_debug_print("max30205: check low threshold %s.\n", threshold==reg?"ok":"error");
1038
1039 /* max30205_set_interrupt_low_threshold/max30205_get_interrupt_low_threshold */
1040 max30205_interface_debug_print("max30205: max30205_set_interrupt_low_threshold/max30205_get_interrupt_low_threshold test.\n");
1041
1042 /* set INTERRUPT_HIGH_THRESHOLD */
1043 res = max30205_convert_to_register(&gs_handle, 38.0f, (int16_t *)&reg);
1044 if (res != 0)
1045 {
1046 max30205_interface_debug_print("max30205: convert to register failed.\n");
1047 (void)max30205_deinit(&gs_handle);
1048
1049 return 1;
1050 }
1051 res = max30205_set_interrupt_high_threshold(&gs_handle, (int16_t)reg);
1052 if (res != 0)
1053 {
1054 max30205_interface_debug_print("max30205: set interrupt high threshold failed.\n");
1055 (void)max30205_deinit(&gs_handle);
1056
1057 return 1;
1058 }
1059 max30205_interface_debug_print("max30205: set interrupt high threshold 38.0.\n");
1060 res = max30205_get_interrupt_high_threshold(&gs_handle, (int16_t *)&threshold);
1061 if (res != 0)
1062 {
1063 max30205_interface_debug_print("max30205: get interrupt high threshold failed.\n");
1064 (void)max30205_deinit(&gs_handle);
1065
1066 return 1;
1067 }
1068 max30205_interface_debug_print("max30205: check high threshold %s.\n", threshold==reg?"ok":"error");
1069 max30205_interface_debug_print("max30205: max30205_power_down test.\n");
1070 res = max30205_power_down(&gs_handle);
1071 if (res != 0)
1072 {
1073 max30205_interface_debug_print("max30205: power down failed.\n");
1074 (void)max30205_deinit(&gs_handle);
1075
1076 return 1;
1077 }
1078
1079 /* finish register test */
1080 max30205_interface_debug_print("max30205: finish register test.\n");
1081 (void)max30205_deinit(&gs_handle);
1082
1083 return 0;
1084}
driver max30205 register test header file
max30205_bus_timeout_t
max30205 bus timeout enumeration definition
struct max30205_handle_s max30205_handle_t
max30205 handle structure definition
uint8_t max30205_set_data_format(max30205_handle_t *handle, max30205_data_format_t format)
set the chip data format
uint8_t max30205_get_addr_pin(max30205_handle_t *handle, max30205_address_t *addr_pin)
get the iic address pin
uint8_t max30205_get_bus_timeout(max30205_handle_t *handle, max30205_bus_timeout_t *bus_timeout)
get the iic bus timeout
struct max30205_info_s max30205_info_t
max30205 information structure definition
uint8_t max30205_get_data_format(max30205_handle_t *handle, max30205_data_format_t *format)
get the chip data format
uint8_t max30205_set_addr_pin(max30205_handle_t *handle, max30205_address_t addr_pin)
set the iic address pin
uint8_t max30205_info(max30205_info_t *info)
get chip's information
max30205_address_t
max30205 address enumeration definition
max30205_data_format_t
max30205 data format enumeration definition
uint8_t max30205_deinit(max30205_handle_t *handle)
close the chip
uint8_t max30205_set_bus_timeout(max30205_handle_t *handle, max30205_bus_timeout_t bus_timeout)
set the iic bus timeout
uint8_t max30205_power_down(max30205_handle_t *handle)
chip powers down
uint8_t max30205_init(max30205_handle_t *handle)
initialize the chip
@ MAX30205_BUS_TIMEOUT_DISABLE
@ MAX30205_BUS_TIMEOUT_ENABLE
@ MAX30205_ADDRESS_18
@ MAX30205_ADDRESS_15
@ MAX30205_ADDRESS_D
@ MAX30205_ADDRESS_2
@ MAX30205_ADDRESS_A
@ MAX30205_ADDRESS_C
@ MAX30205_ADDRESS_14
@ MAX30205_ADDRESS_10
@ MAX30205_ADDRESS_F
@ MAX30205_ADDRESS_5
@ MAX30205_ADDRESS_7
@ MAX30205_ADDRESS_B
@ MAX30205_ADDRESS_1B
@ MAX30205_ADDRESS_1C
@ MAX30205_ADDRESS_3
@ MAX30205_ADDRESS_16
@ MAX30205_ADDRESS_11
@ MAX30205_ADDRESS_12
@ MAX30205_ADDRESS_1A
@ MAX30205_ADDRESS_6
@ MAX30205_ADDRESS_1
@ MAX30205_ADDRESS_1E
@ MAX30205_ADDRESS_8
@ MAX30205_ADDRESS_4
@ MAX30205_ADDRESS_9
@ MAX30205_ADDRESS_13
@ MAX30205_ADDRESS_19
@ MAX30205_ADDRESS_0
@ MAX30205_ADDRESS_1F
@ MAX30205_ADDRESS_17
@ MAX30205_ADDRESS_E
@ MAX30205_ADDRESS_1D
@ MAX30205_DATA_FORMAT_NORMAL
@ MAX30205_DATA_FORMAT_EXTENDED
void max30205_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t max30205_interface_iic_deinit(void)
interface iic bus deinit
uint8_t max30205_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t max30205_interface_iic_init(void)
interface iic bus init
uint8_t max30205_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void max30205_interface_debug_print(const char *const fmt,...)
interface print format data
max30205_interrupt_mode_t
max30205 interrupt mode enumeration definition
uint8_t max30205_set_fault_queue(max30205_handle_t *handle, max30205_fault_queue_t fault_queue)
set the chip fault queue
uint8_t max30205_get_interrupt_mode(max30205_handle_t *handle, max30205_interrupt_mode_t *mode)
get the chip interrupt mode
uint8_t max30205_set_interrupt_mode(max30205_handle_t *handle, max30205_interrupt_mode_t mode)
set the chip interrupt mode
uint8_t max30205_get_pin_polarity(max30205_handle_t *handle, max30205_pin_polarity_t *polarity)
get the interrupt pin polarity
uint8_t max30205_get_interrupt_low_threshold(max30205_handle_t *handle, int16_t *threshold)
get the chip interrupt low threshold
uint8_t max30205_set_interrupt_low_threshold(max30205_handle_t *handle, int16_t threshold)
set the chip interrupt low threshold
uint8_t max30205_convert_to_data(max30205_handle_t *handle, int16_t reg, float *s)
convert a register raw data to a converted temperature data
max30205_fault_queue_t
max30205 fault queue enumeration definition
uint8_t max30205_set_pin_polarity(max30205_handle_t *handle, max30205_pin_polarity_t polarity)
set the interrupt pin polarity
uint8_t max30205_convert_to_register(max30205_handle_t *handle, float s, int16_t *reg)
convert a temperature value to a register raw data
max30205_pin_polarity_t
max30205 pin enumeration definition
uint8_t max30205_set_interrupt_high_threshold(max30205_handle_t *handle, int16_t threshold)
set the chip interrupt high threshold
uint8_t max30205_get_interrupt_high_threshold(max30205_handle_t *handle, int16_t *threshold)
get the chip interrupt high threshold
uint8_t max30205_get_fault_queue(max30205_handle_t *handle, max30205_fault_queue_t *fault_queue)
get the chip fault queue
@ MAX30205_INTERRUPT_MODE_INTERRUPT
@ MAX30205_INTERRUPT_MODE_COMPARATOR
@ MAX30205_FAULT_QUEUE_1
@ MAX30205_FAULT_QUEUE_2
@ MAX30205_FAULT_QUEUE_6
@ MAX30205_FAULT_QUEUE_4
@ MAX30205_PIN_POLARITY_LOW
@ MAX30205_PIN_POLARITY_HIGH
uint8_t max30205_register_test(max30205_address_t addr)
register test
char manufacturer_name[32]