LibDriver UVIS25
Loading...
Searching...
No Matches
driver_uvis25_register_test.c
Go to the documentation of this file.
1
37
39#include <stdlib.h>
40
41static uvis25_handle_t gs_handle;
42
52{
53 uint8_t res, in, in_check, reg;
54 float uv, uv_check;
55 uvis25_bool_t bool_check;
56 uvis25_interface_t interface_test;
62 uvis25_info_t info;
63
64 /* link functions */
77
78 /* get information */
79 res = uvis25_info(&info);
80 if (res != 0)
81 {
82 uvis25_interface_debug_print("uvis25: get info failed.\n");
83
84 return 1;
85 }
86 else
87 {
88 /* print chip information */
89 uvis25_interface_debug_print("uvis25: chip is %s.\n", info.chip_name);
90 uvis25_interface_debug_print("uvis25: manufacturer is %s.\n", info.manufacturer_name);
91 uvis25_interface_debug_print("uvis25: interface is %s.\n", info.interface);
92 uvis25_interface_debug_print("uvis25: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
93 uvis25_interface_debug_print("uvis25: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
94 uvis25_interface_debug_print("uvis25: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
95 uvis25_interface_debug_print("uvis25: max current is %0.2fmA.\n", info.max_current_ma);
96 uvis25_interface_debug_print("uvis25: max temperature is %0.1fC.\n", info.temperature_max);
97 uvis25_interface_debug_print("uvis25: min temperature is %0.1fC.\n", info.temperature_min);
98 }
99
100 /* start register test */
101 uvis25_interface_debug_print("uvis25: start register test.\n");
102
103 /* uvis25_set_interface/uvis25_get_interface test */
104 uvis25_interface_debug_print("uvis25: uvis25_set_interface/uvis25_get_interface test.\n");
105
106 /* set iic */
108 if (res != 0)
109 {
110 uvis25_interface_debug_print("uvis25: set interface failed.\n");
111
112 return 1;
113 }
114 uvis25_interface_debug_print("uvis25: set interface iic.\n");
115 res = uvis25_get_interface(&gs_handle, &interface_test);
116 if (res != 0)
117 {
118 uvis25_interface_debug_print("uvis25: get interface failed.\n");
119
120 return 1;
121 }
122 uvis25_interface_debug_print("uvis25: check interface %s.\n", interface_test==UVIS25_INTERFACE_IIC?"ok":"error");
123
124 /* set spi */
126 if (res != 0)
127 {
128 uvis25_interface_debug_print("uvis25: set interface failed.\n");
129
130 return 1;
131 }
132 uvis25_interface_debug_print("uvis25: set interface spi.\n");
133 res = uvis25_get_interface(&gs_handle, &interface_test);
134 if (res != 0)
135 {
136 uvis25_interface_debug_print("uvis25: get interface failed.\n");
137
138 return 1;
139 }
140 uvis25_interface_debug_print("uvis25: check interface %s.\n", interface_test==UVIS25_INTERFACE_SPI?"ok":"error");
141
142 /* set interface */
143 res = uvis25_set_interface(&gs_handle, interface);
144 if (res != 0)
145 {
146 uvis25_interface_debug_print("uvis25: set interface failed.\n");
147
148 return 1;
149 }
150
151 /* uvis25 init */
152 res = uvis25_init(&gs_handle);
153 if (res != 0)
154 {
155 uvis25_interface_debug_print("uvis25: init failed.\n");
156
157 return 1;
158 }
159
160 /* uvis25_set_block_data_update/uvis25_get_block_data_update test */
161 uvis25_interface_debug_print("uvis25: uvis25_set_block_data_update/uvis25_get_block_data_update test.\n");
162
163 /* set true */
165 if (res != 0)
166 {
167 uvis25_interface_debug_print("uvis25: set block data update failed.\n");
168 (void)uvis25_deinit(&gs_handle);
169
170 return 1;
171 }
172 uvis25_interface_debug_print("uvis25: set block data update true.\n");
173 res = uvis25_get_block_data_update(&gs_handle, &bool_check);
174 if (res != 0)
175 {
176 uvis25_interface_debug_print("uvis25: get block data update failed.\n");
177 (void)uvis25_deinit(&gs_handle);
178
179 return 1;
180 }
181 uvis25_interface_debug_print("uvis25: check block data update %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
182
183 /* set false */
185 if (res != 0)
186 {
187 uvis25_interface_debug_print("uvis25: set block data update failed.\n");
188 (void)uvis25_deinit(&gs_handle);
189
190 return 1;
191 }
192 uvis25_interface_debug_print("uvis25: set block data update false.\n");
193 res = uvis25_get_block_data_update(&gs_handle, &bool_check);
194 if (res != 0)
195 {
196 uvis25_interface_debug_print("uvis25: get block data update failed.\n");
197 (void)uvis25_deinit(&gs_handle);
198
199 return 1;
200 }
201 uvis25_interface_debug_print("uvis25: check block data update %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
202
203 /* if spi interface */
204 if (interface == UVIS25_INTERFACE_SPI)
205 {
206 /* uvis25_set_iic/uvis25_get_iic test */
207 uvis25_interface_debug_print("uvis25: uvis25_set_iic/uvis25_get_iic test.\n");
208
209 /* set true */
210 res = uvis25_set_iic(&gs_handle, UVIS25_BOOL_TRUE);
211 if (res != 0)
212 {
213 uvis25_interface_debug_print("uvis25: set iic failed.\n");
214 (void)uvis25_deinit(&gs_handle);
215
216 return 1;
217 }
218 uvis25_interface_debug_print("uvis25: set iic true.\n");
219 res = uvis25_get_iic(&gs_handle, &bool_check);
220 if (res != 0)
221 {
222 uvis25_interface_debug_print("uvis25: get iic failed.\n");
223 (void)uvis25_deinit(&gs_handle);
224
225 return 1;
226 }
227 uvis25_interface_debug_print("uvis25: check iic %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
228
229 /* set false */
230 res = uvis25_set_iic(&gs_handle, UVIS25_BOOL_FALSE);
231 if (res != 0)
232 {
233 uvis25_interface_debug_print("uvis25: set iic failed.\n");
234 (void)uvis25_deinit(&gs_handle);
235
236 return 1;
237 }
238 uvis25_interface_debug_print("uvis25: set iic false.\n");
239 res = uvis25_get_iic(&gs_handle, &bool_check);
240 if (res != 0)
241 {
242 uvis25_interface_debug_print("uvis25: get iic failed.\n");
243 (void)uvis25_deinit(&gs_handle);
244
245 return 1;
246 }
247 uvis25_interface_debug_print("uvis25: check iic %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
248 }
249 else
250 {
251 /* uvis25_set_spi_wire/uvis25_get_spi_wire test */
252 uvis25_interface_debug_print("uvis25: uvis25_set_spi_wire/uvis25_get_spi_wire test.\n");
253
254 /* set true */
255 res = uvis25_set_spi_wire(&gs_handle, UVIS25_SPI_WIRE_4);
256 if (res != 0)
257 {
258 uvis25_interface_debug_print("uvis25: set spi wire failed.\n");
259 (void)uvis25_deinit(&gs_handle);
260
261 return 1;
262 }
263 uvis25_interface_debug_print("uvis25: set spi wire 4.\n");
264 res = uvis25_get_spi_wire(&gs_handle, &wire);
265 if (res != 0)
266 {
267 uvis25_interface_debug_print("uvis25: get spi wire 4 failed.\n");
268 (void)uvis25_deinit(&gs_handle);
269
270 return 1;
271 }
272 uvis25_interface_debug_print("uvis25: check spi wire %s.\n", wire==UVIS25_SPI_WIRE_4?"ok":"error");
273
274 /* set false */
275 res = uvis25_set_spi_wire(&gs_handle, UVIS25_SPI_WIRE_3);
276 if (res != 0)
277 {
278 uvis25_interface_debug_print("uvis25: set spi wire failed.\n");
279 (void)uvis25_deinit(&gs_handle);
280
281 return 1;
282 }
283 uvis25_interface_debug_print("uvis25: set spi wire 3.\n");
284 res = uvis25_get_spi_wire(&gs_handle, &wire);
285 if (res != 0)
286 {
287 uvis25_interface_debug_print("uvis25: get spi wire 3 failed.\n");
288 (void)uvis25_deinit(&gs_handle);
289
290 return 1;
291 }
292 uvis25_interface_debug_print("uvis25: check spi wire %s.\n", wire==UVIS25_SPI_WIRE_3?"ok":"error");
293 }
294
295 /* uvis25_set_interrupt_active_level/uvis25_get_interrupt_active_level test */
296 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt_active_level/uvis25_get_interrupt_active_level test.\n");
297
298 /* set high */
300 if (res != 0)
301 {
302 uvis25_interface_debug_print("uvis25: set interrupt active level failed.\n");
303 (void)uvis25_deinit(&gs_handle);
304
305 return 1;
306 }
307 uvis25_interface_debug_print("uvis25: set interrupt active level high.\n");
308 res = uvis25_get_interrupt_active_level(&gs_handle, &level);
309 if (res != 0)
310 {
311 uvis25_interface_debug_print("uvis25: get interrupt active level failed.\n");
312 (void)uvis25_deinit(&gs_handle);
313
314 return 1;
315 }
316 uvis25_interface_debug_print("uvis25: check interrupt active level %s.\n", level==UVIS25_INTERRUPT_ACTIVE_LEVEL_HIGHER?"ok":"error");
317
318 /* set low */
320 if (res != 0)
321 {
322 uvis25_interface_debug_print("uvis25: set interrupt active level failed.\n");
323 (void)uvis25_deinit(&gs_handle);
324
325 return 1;
326 }
327 uvis25_interface_debug_print("uvis25: set interrupt active level lower.\n");
328 res = uvis25_get_interrupt_active_level(&gs_handle, &level);
329 if (res != 0)
330 {
331 uvis25_interface_debug_print("uvis25: get interrupt active level failed.\n");
332 (void)uvis25_deinit(&gs_handle);
333
334 return 1;
335 }
336 uvis25_interface_debug_print("uvis25: check interrupt active level %s.\n", level==UVIS25_INTERRUPT_ACTIVE_LEVEL_LOWER?"ok":"error");
337
338 /* uvis25_set_interrupt_pin_type/uvis25_get_interrupt_pin_type test */
339 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt_pin_type/uvis25_get_interrupt_pin_type test.\n");
340
341 /* set push-pull */
343 if (res != 0)
344 {
345 uvis25_interface_debug_print("uvis25: set interrupt pin type failed.\n");
346 (void)uvis25_deinit(&gs_handle);
347
348 return 1;
349 }
350 uvis25_interface_debug_print("uvis25: set interrupt pin type push pull.\n");
351 res = uvis25_get_interrupt_pin_type(&gs_handle, &pin);
352 if (res != 0)
353 {
354 uvis25_interface_debug_print("uvis25: get interrupt pin type.\n");
355 (void)uvis25_deinit(&gs_handle);
356
357 return 1;
358 }
359 uvis25_interface_debug_print("uvis25: check interrupt pin type %s.\n", pin==UVIS25_INTERRUPT_PIN_TYPE_PUSH_PULL?"ok":"error");
360
361 /* set open drain */
363 if (res != 0)
364 {
365 uvis25_interface_debug_print("uvis25: set interrupt pin type failed.\n");
366 (void)uvis25_deinit(&gs_handle);
367
368 return 1;
369 }
370 uvis25_interface_debug_print("uvis25: set interrupt pin type open drain.\n");
371 res = uvis25_get_interrupt_pin_type(&gs_handle, &pin);
372 if (res != 0)
373 {
374 uvis25_interface_debug_print("uvis25: get interrupt pin type.\n");
375 (void)uvis25_deinit(&gs_handle);
376
377 return 1;
378 }
379 uvis25_interface_debug_print("uvis25: check interrupt pin type %s.\n", pin==UVIS25_INTERRUPT_PIN_TYPE_OPEN_DRAIN?"ok":"error");
380
381 /* uvis25_set_interrupt_type/uvis25_get_interrupt_type test */
382 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt_type/uvis25_get_interrupt_type test.\n");
383
384 /* set data ready */
386 if (res != 0)
387 {
388 uvis25_interface_debug_print("uvis25: set interrupt type failed.\n");
389 (void)uvis25_deinit(&gs_handle);
390
391 return 1;
392 }
393 uvis25_interface_debug_print("uvis25: set interrupt type data ready.\n");
394 res = uvis25_get_interrupt_type(&gs_handle, &type);
395 if (res != 0)
396 {
397 uvis25_interface_debug_print("uvis25: get interrupt type.\n");
398 (void)uvis25_deinit(&gs_handle);
399
400 return 1;
401 }
402 uvis25_interface_debug_print("uvis25: check interrupt type %s.\n", type==UVIS25_INTERRUPT_TYPE_DATA_READY?"ok":"error");
403
404 /* set uv index high */
406 if (res != 0)
407 {
408 uvis25_interface_debug_print("uvis25: set interrupt type failed.\n");
409 (void)uvis25_deinit(&gs_handle);
410
411 return 1;
412 }
413 uvis25_interface_debug_print("uvis25: set interrupt type uv index high.\n");
414 res = uvis25_get_interrupt_type(&gs_handle, &type);
415 if (res != 0)
416 {
417 uvis25_interface_debug_print("uvis25: get interrupt type.\n");
418 (void)uvis25_deinit(&gs_handle);
419
420 return 1;
421 }
422 uvis25_interface_debug_print("uvis25: check interrupt type %s.\n", type==UVIS25_INTERRUPT_TYPE_UV_INDEX_HIGH?"ok":"error");
423
424 /* set uv index low */
426 if (res != 0)
427 {
428 uvis25_interface_debug_print("uvis25: set interrupt type failed.\n");
429 (void)uvis25_deinit(&gs_handle);
430
431 return 1;
432 }
433 uvis25_interface_debug_print("uvis25: set interrupt type uv index low.\n");
434 res = uvis25_get_interrupt_type(&gs_handle, &type);
435 if (res != 0)
436 {
437 uvis25_interface_debug_print("uvis25: get interrupt type failed.\n");
438 (void)uvis25_deinit(&gs_handle);
439
440 return 1;
441 }
442 uvis25_interface_debug_print("uvis25: check interrupt type %s.\n", type==UVIS25_INTERRUPT_TYPE_UV_INDEX_LOW?"ok":"error");
443
444 /* set uv index high or low */
446 if (res != 0)
447 {
448 uvis25_interface_debug_print("uvis25: set interrupt type failed.\n");
449 (void)uvis25_deinit(&gs_handle);
450
451 return 1;
452 }
453 uvis25_interface_debug_print("uvis25: set interrupt type uv index high or low.\n");
454 res = uvis25_get_interrupt_type(&gs_handle, &type);
455 if (res != 0)
456 {
457 uvis25_interface_debug_print("uvis25: get interrupt type failed.\n");
458 (void)uvis25_deinit(&gs_handle);
459
460 return 1;
461 }
462 uvis25_interface_debug_print("uvis25: check interrupt type %s.\n", type==UVIS25_INTERRUPT_TYPE_UV_INDEX_HIGH_LOW?"ok":"error");
463
464 /* uvis25_set_interrupt/uvis25_get_interrupt test */
465 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt/uvis25_get_interrupt test.\n");
466
467 /* set ture */
468 res = uvis25_set_interrupt(&gs_handle, UVIS25_BOOL_TRUE);
469 if (res != 0)
470 {
471 uvis25_interface_debug_print("uvis25: set interrupt failed.\n");
472 (void)uvis25_deinit(&gs_handle);
473
474 return 1;
475 }
476 uvis25_interface_debug_print("uvis25: set interrupt true.\n");
477 res = uvis25_get_interrupt(&gs_handle, &bool_check);
478 if (res != 0)
479 {
480 uvis25_interface_debug_print("uvis25: get interrupt failed.\n");
481 (void)uvis25_deinit(&gs_handle);
482
483 return 1;
484 }
485 uvis25_interface_debug_print("uvis25: check interrupt %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
486
487 /* set false */
488 res = uvis25_set_interrupt(&gs_handle, UVIS25_BOOL_FALSE);
489 if (res != 0)
490 {
491 uvis25_interface_debug_print("uvis25: set interrupt failed.\n");
492 (void)uvis25_deinit(&gs_handle);
493
494 return 1;
495 }
496 uvis25_interface_debug_print("uvis25: set interrupt false.\n");
497 res = uvis25_get_interrupt(&gs_handle, &bool_check);
498 if (res != 0)
499 {
500 uvis25_interface_debug_print("uvis25: get interrupt failed.\n");
501 (void)uvis25_deinit(&gs_handle);
502
503 return 1;
504 }
505 uvis25_interface_debug_print("uvis25: check interrupt %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
506
507 /* uvis25_set_latch_interrupt/uvis25_get_latch_interrupt test */
508 uvis25_interface_debug_print("uvis25: uvis25_set_latch_interrupt/uvis25_get_latch_interrupt test.\n");
509
510 /* set ture */
512 if (res != 0)
513 {
514 uvis25_interface_debug_print("uvis25: set latch interrupt failed.\n");
515 (void)uvis25_deinit(&gs_handle);
516
517 return 1;
518 }
519 uvis25_interface_debug_print("uvis25: set latch interrupt true.\n");
520 res = uvis25_get_latch_interrupt(&gs_handle, &bool_check);
521 if (res != 0)
522 {
523 uvis25_interface_debug_print("uvis25: get latch interrupt failed.\n");
524 (void)uvis25_deinit(&gs_handle);
525
526 return 1;
527 }
528 uvis25_interface_debug_print("uvis25: check latch interrupt %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
529
530 /* set false */
532 if (res != 0)
533 {
534 uvis25_interface_debug_print("uvis25: set latch interrupt failed.\n");
535 (void)uvis25_deinit(&gs_handle);
536
537 return 1;
538 }
539 uvis25_interface_debug_print("uvis25: set latch interrupt false.\n");
540 res = uvis25_get_latch_interrupt(&gs_handle, &bool_check);
541 if (res != 0)
542 {
543 uvis25_interface_debug_print("uvis25: get latch interrupt failed.\n");
544 (void)uvis25_deinit(&gs_handle);
545
546 return 1;
547 }
548 uvis25_interface_debug_print("uvis25: check latch interrupt %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
549
550 /* uvis25_set_interrupt_low_threshold/uvis25_get_interrupt_low_threshold test */
551 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt_low_threshold/uvis25_get_interrupt_low_threshold test.\n");
552
553 /* set ture */
555 if (res != 0)
556 {
557 uvis25_interface_debug_print("uvis25: set interrupt low threshold failed.\n");
558 (void)uvis25_deinit(&gs_handle);
559
560 return 1;
561 }
562 uvis25_interface_debug_print("uvis25: set interrupt low threshold true.\n");
563 res = uvis25_get_interrupt_low_threshold(&gs_handle, &bool_check);
564 if (res != 0)
565 {
566 uvis25_interface_debug_print("uvis25: get interrupt low threshold failed.\n");
567 (void)uvis25_deinit(&gs_handle);
568
569 return 1;
570 }
571 uvis25_interface_debug_print("uvis25: check interrupt low threshold %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
572
573 /* set false */
575 if (res != 0)
576 {
577 uvis25_interface_debug_print("uvis25: set interrupt low threshold failed.\n");
578 (void)uvis25_deinit(&gs_handle);
579
580 return 1;
581 }
582 uvis25_interface_debug_print("uvis25: set interrupt low threshold false.\n");
583 res = uvis25_get_interrupt_low_threshold(&gs_handle, &bool_check);
584 if (res != 0)
585 {
586 uvis25_interface_debug_print("uvis25: get interrupt low threshold failed.\n");
587 (void)uvis25_deinit(&gs_handle);
588
589 return 1;
590 }
591 uvis25_interface_debug_print("uvis25: check interrupt low threshold %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
592
593 /* uvis25_set_interrupt_high_threshold/uvis25_get_interrupt_high_threshold test */
594 uvis25_interface_debug_print("uvis25: uvis25_set_interrupt_high_threshold/uvis25_get_interrupt_high_threshold test.\n");
595
596 /* set ture */
598 if (res != 0)
599 {
600 uvis25_interface_debug_print("uvis25: set interrupt high threshold failed.\n");
601 (void)uvis25_deinit(&gs_handle);
602
603 return 1;
604 }
605 uvis25_interface_debug_print("uvis25: set interrupt high threshold true.\n");
606 res = uvis25_get_interrupt_high_threshold(&gs_handle, &bool_check);
607 if (res != 0)
608 {
609 uvis25_interface_debug_print("uvis25: get interrupt high threshold failed.\n");
610 (void)uvis25_deinit(&gs_handle);
611
612 return 1;
613 }
614 uvis25_interface_debug_print("uvis25: check interrupt high threshold %s.\n", bool_check==UVIS25_BOOL_TRUE?"ok":"error");
615
616 /* set false */
618 if (res != 0)
619 {
620 uvis25_interface_debug_print("uvis25: set interrupt high threshold failed.\n");
621 (void)uvis25_deinit(&gs_handle);
622
623 return 1;
624 }
625 uvis25_interface_debug_print("uvis25: set interrupt high threshold false.\n");
626 res = uvis25_get_interrupt_high_threshold(&gs_handle, &bool_check);
627 if (res != 0)
628 {
629 uvis25_interface_debug_print("uvis25: get interrupt high threshold failed.\n");
630 (void)uvis25_deinit(&gs_handle);
631
632 return 1;
633 }
634 uvis25_interface_debug_print("uvis25: check interrupt high threshold %s.\n", bool_check==UVIS25_BOOL_FALSE?"ok":"error");
635
636 /* uvis25_set_threshold/uvis25_get_threshold test */
637 uvis25_interface_debug_print("uvis25: uvis25_set_threshold/uvis25_get_threshold test.\n");
638 in = rand()%256;
639 res = uvis25_set_threshold(&gs_handle, in);
640 if (res != 0)
641 {
642 uvis25_interface_debug_print("uvis25: set threshold failed.\n");
643 (void)uvis25_deinit(&gs_handle);
644
645 return 1;
646 }
647 uvis25_interface_debug_print("uvis25: set threshold %d.\n", in);
648 res = uvis25_get_threshold(&gs_handle, (uint8_t *)&in_check);
649 if (res != 0)
650 {
651 uvis25_interface_debug_print("uvis25: get threshold failed.\n");
652 (void)uvis25_deinit(&gs_handle);
653
654 return 1;
655 }
656 uvis25_interface_debug_print("uvis25: check threshold %s.\n", in==in_check?"ok":"error");
657
658 /* uvis25_set_boot/uvis25_get_boot test */
659 uvis25_interface_debug_print("uvis25: uvis25_set_boot/uvis25_get_boot test.\n");
660
661 /* set normal */
662 res = uvis25_set_boot(&gs_handle, UVIS25_BOOT_NORMAL_MODE);
663 if (res != 0)
664 {
665 uvis25_interface_debug_print("uvis25: set boot failed.\n");
666 (void)uvis25_deinit(&gs_handle);
667
668 return 1;
669 }
670 uvis25_interface_debug_print("uvis25: set boot mode normal.\n");
671 res = uvis25_get_boot(&gs_handle, &mode);
672 if (res != 0)
673 {
674 uvis25_interface_debug_print("uvis25: get boot mode failed.\n");
675 (void)uvis25_deinit(&gs_handle);
676
677 return 1;
678 }
679 uvis25_interface_debug_print("uvis25: check boot mode %s.\n", mode==UVIS25_BOOT_NORMAL_MODE?"ok":"error");
680
681 /* uvis25_threshold_convert_to_register/uvis25_threshold_convert_to_data test */
682 uvis25_interface_debug_print("uvis25: uvis25_threshold_convert_to_register/uvis25_threshold_convert_to_data test.\n");
683 uv = (float)(rand()%1000)/100.0f + 6.0f;
684 res = uvis25_threshold_convert_to_register(&gs_handle, uv, (uint8_t *)&reg);
685 if (res != 0)
686 {
687 uvis25_interface_debug_print("uvis25: threshold convert to register failed.\n");
688 (void)uvis25_deinit(&gs_handle);
689
690 return 1;
691 }
692 uvis25_interface_debug_print("uvis25: threshold convert to register.\n");
693 uvis25_interface_debug_print("uvis25: uv is %.04f.\n", uv);
694 uvis25_interface_debug_print("uvis25: register is 0x%02X.\n", reg);
695 res = uvis25_threshold_convert_to_data(&gs_handle, reg, (float *)&uv_check);
696 if (res != 0)
697 {
698 uvis25_interface_debug_print("uvis25: threshold convert to data failed.\n");
699 (void)uvis25_deinit(&gs_handle);
700
701 return 1;
702 }
703 uvis25_interface_debug_print("uvis25: threshold convert to data.\n");
704 uvis25_interface_debug_print("uvis25: register is 0x%02X.\n", reg);
705 uvis25_interface_debug_print("uvis25: uv is %.04f.\n", uv_check);
706
707 /* finish register test */
708 uvis25_interface_debug_print("uvis25: finish register test.\n");
709 (void)uvis25_deinit(&gs_handle);
710
711 return 0;
712}
driver uvis25 register test header file
uvis25_interface_t
uvis25 interface enumeration definition
uint8_t uvis25_get_iic(uvis25_handle_t *handle, uvis25_bool_t *enable)
get the chip iic status
uint8_t uvis25_set_boot(uvis25_handle_t *handle, uvis25_boot_mode_t mode)
set the boot mode
uint8_t uvis25_set_spi_wire(uvis25_handle_t *handle, uvis25_spi_wire_t wire)
set the spi wire
uint8_t uvis25_init(uvis25_handle_t *handle)
initialize the chip
uint8_t uvis25_set_iic(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable the chip iic
uint8_t uvis25_deinit(uvis25_handle_t *handle)
close the chip
uint8_t uvis25_set_interface(uvis25_handle_t *handle, uvis25_interface_t interface)
set the chip interface
uint8_t uvis25_get_boot(uvis25_handle_t *handle, uvis25_boot_mode_t *mode)
get the boot mode
uvis25_boot_mode_t
uvis25 boot enumeration definition
uint8_t uvis25_get_interface(uvis25_handle_t *handle, uvis25_interface_t *interface)
get the chip interface
struct uvis25_info_s uvis25_info_t
uvis25 information structure definition
struct uvis25_handle_s uvis25_handle_t
uvis25 handle structure definition
uint8_t uvis25_info(uvis25_info_t *info)
get chip's information
uvis25_spi_wire_t
uvis25 spi wire enumeration definition
uint8_t uvis25_get_block_data_update(uvis25_handle_t *handle, uvis25_bool_t *enable)
get blocking data update status
uint8_t uvis25_set_block_data_update(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable blocking data update
uvis25_bool_t
uvis25 bool enumeration definition
uint8_t uvis25_get_spi_wire(uvis25_handle_t *handle, uvis25_spi_wire_t *wire)
get the spi wire
@ UVIS25_INTERFACE_SPI
@ UVIS25_INTERFACE_IIC
@ UVIS25_BOOT_NORMAL_MODE
@ UVIS25_SPI_WIRE_3
@ UVIS25_SPI_WIRE_4
@ UVIS25_BOOL_TRUE
@ UVIS25_BOOL_FALSE
uint8_t uvis25_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void uvis25_interface_debug_print(const char *const fmt,...)
interface print format data
void uvis25_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t uvis25_interface_iic_init(void)
interface iic bus init
uint8_t uvis25_interface_iic_deinit(void)
interface iic bus deinit
uint8_t uvis25_interface_spi_init(void)
interface spi bus init
uint8_t uvis25_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t uvis25_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t uvis25_interface_spi_deinit(void)
interface spi bus deinit
uint8_t uvis25_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void uvis25_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t uvis25_get_threshold(uvis25_handle_t *handle, uint8_t *threshold)
get the interrupt threshold
uint8_t uvis25_set_interrupt_low_threshold(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable the low threshold interrupt
uvis25_interrupt_pin_type_t
uvis25 interrupt pin type enumeration definition
uint8_t uvis25_set_interrupt_high_threshold(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable the high threshold interrupt
uint8_t uvis25_get_interrupt_type(uvis25_handle_t *handle, uvis25_interrupt_type_t *type)
get the interrupt type
uint8_t uvis25_get_interrupt_low_threshold(uvis25_handle_t *handle, uvis25_bool_t *enable)
get the low threshold interrupt status
uint8_t uvis25_set_interrupt_pin_type(uvis25_handle_t *handle, uvis25_interrupt_pin_type_t pin_type)
set the interrupt pin type
uint8_t uvis25_set_threshold(uvis25_handle_t *handle, uint8_t threshold)
set the interrupt threshold
uvis25_interrupt_active_level_t
uvis25 interrupt active level enumeration definition
uint8_t uvis25_set_interrupt_active_level(uvis25_handle_t *handle, uvis25_interrupt_active_level_t level)
set the interrupt active level
uint8_t uvis25_get_latch_interrupt(uvis25_handle_t *handle, uvis25_bool_t *enable)
get the latching interrupt status
uint8_t uvis25_threshold_convert_to_register(uvis25_handle_t *handle, float uv, uint8_t *reg)
convert a uv index to a raw register data
uint8_t uvis25_get_interrupt_pin_type(uvis25_handle_t *handle, uvis25_interrupt_pin_type_t *pin_type)
get the interrupt pin type
uint8_t uvis25_get_interrupt_high_threshold(uvis25_handle_t *handle, uvis25_bool_t *enable)
get the high threshold interrupt status
uint8_t uvis25_set_latch_interrupt(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable latching interrupt
uint8_t uvis25_get_interrupt(uvis25_handle_t *handle, uvis25_bool_t *enable)
get the chip interrupt status
uint8_t uvis25_set_interrupt_type(uvis25_handle_t *handle, uvis25_interrupt_type_t type)
set the interrupt type
uint8_t uvis25_threshold_convert_to_data(uvis25_handle_t *handle, uint8_t reg, float *uv)
convert a raw register data to a converted uv index
uint8_t uvis25_set_interrupt(uvis25_handle_t *handle, uvis25_bool_t enable)
enable or disable the chip interrupt
uvis25_interrupt_type_t
uvis25 interrupt type enumeration definition
uint8_t uvis25_get_interrupt_active_level(uvis25_handle_t *handle, uvis25_interrupt_active_level_t *level)
get the interrupt active level
@ UVIS25_INTERRUPT_PIN_TYPE_OPEN_DRAIN
@ UVIS25_INTERRUPT_PIN_TYPE_PUSH_PULL
@ UVIS25_INTERRUPT_ACTIVE_LEVEL_LOWER
@ UVIS25_INTERRUPT_ACTIVE_LEVEL_HIGHER
@ UVIS25_INTERRUPT_TYPE_UV_INDEX_HIGH_LOW
@ UVIS25_INTERRUPT_TYPE_UV_INDEX_HIGH
@ UVIS25_INTERRUPT_TYPE_DATA_READY
@ UVIS25_INTERRUPT_TYPE_UV_INDEX_LOW
uint8_t uvis25_register_test(uvis25_interface_t interface)
register test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]