LibDriver MFRC522  1.0.0
MFRC522 full-featured driver
driver_mfrc522_register_test.c
Go to the documentation of this file.
1 
38 #include <stdlib.h>
39 
40 static mfrc522_handle_t gs_handle;
51 uint8_t mfrc522_register_test(mfrc522_interface_t interface, uint8_t addr)
52 {
53  uint8_t res;
54  uint8_t i;
55  uint8_t reg;
56  uint8_t level, level_check;
57  uint8_t addr_pin, addr_pin_check;
58  uint8_t t0, t0_check;
59  uint8_t t1, t1_check;
60  uint8_t id, version;
61  uint8_t adc_i;
62  uint8_t adc_q;
63  uint8_t buf[64];
64  uint8_t buf_check[64];
65  uint16_t crc;
66  uint16_t t, t_check;
67  mfrc522_interface_t interface_check;
68  mfrc522_bool_t enable;
69  mfrc522_info_t info;
71  mfrc522_modem_state_t modem_state;
72  mfrc522_rx_align_t align;
73  mfrc522_mfin_polarity_t polarity;
74  mfrc522_crc_preset_t preset;
75  mfrc522_speed_t speed;
76  mfrc522_tx_input_t tx_input;
77  mfrc522_mfout_input_t mfout_input;
80  mfrc522_rx_gain_t gain;
81  mfrc522_timer_gated_mode_t gated_mode;
83 
84  /* link interface function */
105 
106  /* get information */
107  res = mfrc522_info(&info);
108  if (res != 0)
109  {
110  mfrc522_interface_debug_print("mfrc522: get info failed.\n");
111 
112  return 1;
113  }
114  else
115  {
116  /* print chip info */
117  mfrc522_interface_debug_print("mfrc522: chip is %s.\n", info.chip_name);
118  mfrc522_interface_debug_print("mfrc522: manufacturer is %s.\n", info.manufacturer_name);
119  mfrc522_interface_debug_print("mfrc522: interface is %s.\n", info.interface);
120  mfrc522_interface_debug_print("mfrc522: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
121  mfrc522_interface_debug_print("mfrc522: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
122  mfrc522_interface_debug_print("mfrc522: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
123  mfrc522_interface_debug_print("mfrc522: max current is %0.2fmA.\n", info.max_current_ma);
124  mfrc522_interface_debug_print("mfrc522: max temperature is %0.1fC.\n", info.temperature_max);
125  mfrc522_interface_debug_print("mfrc522: min temperature is %0.1fC.\n", info.temperature_min);
126  }
127 
128  /* start register test */
129  mfrc522_interface_debug_print("mfrc522: start register test.\n");
130 
131  /* mfrc522_set_addr_pin/mfrc522_get_addr_pin test */
132  mfrc522_interface_debug_print("mfrc522: mfrc522_set_addr_pin/mfrc522_get_addr_pin test.\n");
133 
134  addr_pin = rand() % 256;
135  res = mfrc522_set_addr_pin(&gs_handle, addr_pin);
136  if (res != 0)
137  {
138  mfrc522_interface_debug_print("mfrc522: set addr pin failed.\n");
139 
140  return 1;
141  }
142  mfrc522_interface_debug_print("mfrc522: set addr 0x%02X.\n", addr_pin);
143  res = mfrc522_get_addr_pin(&gs_handle, &addr_pin_check);
144  if (res != 0)
145  {
146  mfrc522_interface_debug_print("mfrc522: get addr pin failed.\n");
147 
148  return 1;
149  }
150  mfrc522_interface_debug_print("mfrc522: check addr pin %s.\n", addr_pin_check == addr_pin ? "ok" : "error");
151 
152  /* mfrc522_set_interface/mfrc522_get_interface test */
153  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interface/mfrc522_get_interface test.\n");
154 
155  /* iic interface */
156  res = mfrc522_set_interface(&gs_handle, MFRC522_INTERFACE_IIC);
157  if (res != 0)
158  {
159  mfrc522_interface_debug_print("mfrc522: set interface failed.\n");
160 
161  return 1;
162  }
163  mfrc522_interface_debug_print("mfrc522: set interface iic.\n");
164  res = mfrc522_get_interface(&gs_handle, &interface_check);
165  if (res != 0)
166  {
167  mfrc522_interface_debug_print("mfrc522: get interface failed.\n");
168 
169  return 1;
170  }
171  mfrc522_interface_debug_print("mfrc522: check interface %s.\n", interface_check == MFRC522_INTERFACE_IIC ? "ok" : "error");
172 
173  /* spi interface */
174  res = mfrc522_set_interface(&gs_handle, MFRC522_INTERFACE_SPI);
175  if (res != 0)
176  {
177  mfrc522_interface_debug_print("mfrc522: set interface failed.\n");
178 
179  return 1;
180  }
181  mfrc522_interface_debug_print("mfrc522: set interface spi.\n");
182  res = mfrc522_get_interface(&gs_handle, &interface_check);
183  if (res != 0)
184  {
185  mfrc522_interface_debug_print("mfrc522: get interface failed.\n");
186 
187  return 1;
188  }
189  mfrc522_interface_debug_print("mfrc522: check interface %s.\n", interface_check == MFRC522_INTERFACE_SPI ? "ok" : "error");
190 
191  /* uart interface */
193  if (res != 0)
194  {
195  mfrc522_interface_debug_print("mfrc522: set interface failed.\n");
196 
197  return 1;
198  }
199  mfrc522_interface_debug_print("mfrc522: set interface uart.\n");
200  res = mfrc522_get_interface(&gs_handle, &interface_check);
201  if (res != 0)
202  {
203  mfrc522_interface_debug_print("mfrc522: get interface failed.\n");
204 
205  return 1;
206  }
207  mfrc522_interface_debug_print("mfrc522: check interface %s.\n", interface_check == MFRC522_INTERFACE_UART ? "ok" : "error");
208 
209  /* set the interface */
210  res = mfrc522_set_interface(&gs_handle, interface);
211  if (res != 0)
212  {
213  mfrc522_interface_debug_print("mfrc522: set interface failed.\n");
214 
215  return 1;
216  }
217 
218  /* set the addr pin */
219  res = mfrc522_set_addr_pin(&gs_handle, addr);
220  if (res != 0)
221  {
222  mfrc522_interface_debug_print("mfrc522: set addr pin failed.\n");
223 
224  return 1;
225  }
226 
227  /* init failed */
228  res = mfrc522_init(&gs_handle);
229  if (res != 0)
230  {
231  mfrc522_interface_debug_print("mfrc522: init failed.\n");
232 
233  return 1;
234  }
235 
236  /* mfrc522_set_receiver_analog/mfrc522_get_receiver_analog test */
237  mfrc522_interface_debug_print("mfrc522: mfrc522_set_receiver_analog/mfrc522_get_receiver_analog test.\n");
238 
239  /* enable */
241  if (res != 0)
242  {
243  mfrc522_interface_debug_print("mfrc522: set receiver analog failed.\n");
244  (void)mfrc522_deinit(&gs_handle);
245 
246  return 1;
247  }
248  mfrc522_interface_debug_print("mfrc522: set receiver analog enable.\n");
249  res = mfrc522_get_receiver_analog(&gs_handle, &enable);
250  if (res != 0)
251  {
252  mfrc522_interface_debug_print("mfrc522: get receiver analog failed.\n");
253  (void)mfrc522_deinit(&gs_handle);
254 
255  return 1;
256  }
257  mfrc522_interface_debug_print("mfrc522: check receiver analog %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
258 
259  /* disable */
261  if (res != 0)
262  {
263  mfrc522_interface_debug_print("mfrc522: set receiver analog failed.\n");
264  (void)mfrc522_deinit(&gs_handle);
265 
266  return 1;
267  }
268  mfrc522_interface_debug_print("mfrc522: set receiver analog disable.\n");
269  res = mfrc522_get_receiver_analog(&gs_handle, &enable);
270  if (res != 0)
271  {
272  mfrc522_interface_debug_print("mfrc522: get receiver analog failed.\n");
273  (void)mfrc522_deinit(&gs_handle);
274 
275  return 1;
276  }
277  mfrc522_interface_debug_print("mfrc522: check receiver analog %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
278 
279  /* mfrc522_set_power_down/mfrc522_get_power_down test */
280  mfrc522_interface_debug_print("mfrc522: mfrc522_set_power_down/mfrc522_get_power_down test.\n");
281 
282  /* if not uart interface */
283  if (interface != MFRC522_INTERFACE_UART)
284  {
285  /* enable */
286  res = mfrc522_set_power_down(&gs_handle, MFRC522_BOOL_TRUE);
287  if (res != 0)
288  {
289  mfrc522_interface_debug_print("mfrc522: set power down failed.\n");
290  (void)mfrc522_deinit(&gs_handle);
291 
292  return 1;
293  }
294  mfrc522_interface_debug_print("mfrc522: set power down enable.\n");
295  res = mfrc522_get_power_down(&gs_handle, &enable);
296  if (res != 0)
297  {
298  mfrc522_interface_debug_print("mfrc522: get power down failed.\n");
299  (void)mfrc522_deinit(&gs_handle);
300 
301  return 1;
302  }
303  mfrc522_interface_debug_print("mfrc522: check power down %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
304  }
305 
306  /* disable */
307  res = mfrc522_set_power_down(&gs_handle, MFRC522_BOOL_FALSE);
308  if (res != 0)
309  {
310  mfrc522_interface_debug_print("mfrc522: set power down failed.\n");
311  (void)mfrc522_deinit(&gs_handle);
312 
313  return 1;
314  }
315  mfrc522_interface_debug_print("mfrc522: set power down disable.\n");
316  res = mfrc522_get_power_down(&gs_handle, &enable);
317  if (res != 0)
318  {
319  mfrc522_interface_debug_print("mfrc522: get power down failed.\n");
320  (void)mfrc522_deinit(&gs_handle);
321 
322  return 1;
323  }
324  mfrc522_interface_debug_print("mfrc522: check power down %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
325 
326  /* mfrc522_set_interrupt1/mfrc522_get_interrupt1 test */
327  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt1/mfrc522_get_interrupt1 test.\n");
328 
329  /* enable tx interrupt1 */
331  if (res != 0)
332  {
333  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
334  (void)mfrc522_deinit(&gs_handle);
335 
336  return 1;
337  }
338  mfrc522_interface_debug_print("mfrc522: set tx interrupt1 enable.\n");
339  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_TX, &enable);
340  if (res != 0)
341  {
342  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
343  (void)mfrc522_deinit(&gs_handle);
344 
345  return 1;
346  }
347  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
348 
349  /* disable tx interrupt1 */
351  if (res != 0)
352  {
353  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
354  (void)mfrc522_deinit(&gs_handle);
355 
356  return 1;
357  }
358  mfrc522_interface_debug_print("mfrc522: set tx interrupt1 disable.\n");
359  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_TX, &enable);
360  if (res != 0)
361  {
362  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
363  (void)mfrc522_deinit(&gs_handle);
364 
365  return 1;
366  }
367  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
368 
369  /* enable rx interrupt1 */
371  if (res != 0)
372  {
373  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
374  (void)mfrc522_deinit(&gs_handle);
375 
376  return 1;
377  }
378  mfrc522_interface_debug_print("mfrc522: set rx interrupt1 enable.\n");
379  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_RX, &enable);
380  if (res != 0)
381  {
382  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
383  (void)mfrc522_deinit(&gs_handle);
384 
385  return 1;
386  }
387  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
388 
389  /* disable rx interrupt1 */
391  if (res != 0)
392  {
393  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
394  (void)mfrc522_deinit(&gs_handle);
395 
396  return 1;
397  }
398  mfrc522_interface_debug_print("mfrc522: set rx interrupt1 disable.\n");
399  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_RX, &enable);
400  if (res != 0)
401  {
402  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
403  (void)mfrc522_deinit(&gs_handle);
404 
405  return 1;
406  }
407  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
408 
409  /* enable idle interrupt1 */
411  if (res != 0)
412  {
413  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
414  (void)mfrc522_deinit(&gs_handle);
415 
416  return 1;
417  }
418  mfrc522_interface_debug_print("mfrc522: set idle interrupt1 enable.\n");
419  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_IDLE, &enable);
420  if (res != 0)
421  {
422  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
423  (void)mfrc522_deinit(&gs_handle);
424 
425  return 1;
426  }
427  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
428 
429  /* disable idle interrupt1 */
431  if (res != 0)
432  {
433  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
434  (void)mfrc522_deinit(&gs_handle);
435 
436  return 1;
437  }
438  mfrc522_interface_debug_print("mfrc522: set idle interrupt1 disable.\n");
439  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_IDLE, &enable);
440  if (res != 0)
441  {
442  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
443  (void)mfrc522_deinit(&gs_handle);
444 
445  return 1;
446  }
447  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
448 
449  /* enable hi alert interrupt1 */
451  if (res != 0)
452  {
453  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
454  (void)mfrc522_deinit(&gs_handle);
455 
456  return 1;
457  }
458  mfrc522_interface_debug_print("mfrc522: set hi alert interrupt1 enable.\n");
459  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_HI_ALERT, &enable);
460  if (res != 0)
461  {
462  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
463  (void)mfrc522_deinit(&gs_handle);
464 
465  return 1;
466  }
467  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
468 
469  /* disable hi alert interrupt1 */
471  if (res != 0)
472  {
473  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
474  (void)mfrc522_deinit(&gs_handle);
475 
476  return 1;
477  }
478  mfrc522_interface_debug_print("mfrc522: set hi alert interrupt1 disable.\n");
479  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_HI_ALERT, &enable);
480  if (res != 0)
481  {
482  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
483  (void)mfrc522_deinit(&gs_handle);
484 
485  return 1;
486  }
487  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
488 
489  /* enable lo alert interrupt1 */
491  if (res != 0)
492  {
493  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
494  (void)mfrc522_deinit(&gs_handle);
495 
496  return 1;
497  }
498  mfrc522_interface_debug_print("mfrc522: set lo alert interrupt1 enable.\n");
499  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_LO_ALERT, &enable);
500  if (res != 0)
501  {
502  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
503  (void)mfrc522_deinit(&gs_handle);
504 
505  return 1;
506  }
507  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
508 
509  /* disable lo alert interrupt1 */
511  if (res != 0)
512  {
513  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
514  (void)mfrc522_deinit(&gs_handle);
515 
516  return 1;
517  }
518  mfrc522_interface_debug_print("mfrc522: set lo alert interrupt1 disable.\n");
519  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_LO_ALERT, &enable);
520  if (res != 0)
521  {
522  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
523  (void)mfrc522_deinit(&gs_handle);
524 
525  return 1;
526  }
527  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
528 
529  /* enable err interrupt1 */
531  if (res != 0)
532  {
533  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
534  (void)mfrc522_deinit(&gs_handle);
535 
536  return 1;
537  }
538  mfrc522_interface_debug_print("mfrc522: set err interrupt1 enable.\n");
539  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_ERR, &enable);
540  if (res != 0)
541  {
542  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
543  (void)mfrc522_deinit(&gs_handle);
544 
545  return 1;
546  }
547  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
548 
549  /* disable err interrupt1 */
551  if (res != 0)
552  {
553  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
554  (void)mfrc522_deinit(&gs_handle);
555 
556  return 1;
557  }
558  mfrc522_interface_debug_print("mfrc522: set err interrupt1 disable.\n");
559  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_ERR, &enable);
560  if (res != 0)
561  {
562  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
563  (void)mfrc522_deinit(&gs_handle);
564 
565  return 1;
566  }
567  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
568 
569  /* enable timer interrupt1 */
571  if (res != 0)
572  {
573  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
574  (void)mfrc522_deinit(&gs_handle);
575 
576  return 1;
577  }
578  mfrc522_interface_debug_print("mfrc522: set timer interrupt1 enable.\n");
579  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_TIMER, &enable);
580  if (res != 0)
581  {
582  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
583  (void)mfrc522_deinit(&gs_handle);
584 
585  return 1;
586  }
587  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
588 
589  /* disable err interrupt1 */
591  if (res != 0)
592  {
593  mfrc522_interface_debug_print("mfrc522: set interrupt1 failed.\n");
594  (void)mfrc522_deinit(&gs_handle);
595 
596  return 1;
597  }
598  mfrc522_interface_debug_print("mfrc522: set timer interrupt1 disable.\n");
599  res = mfrc522_get_interrupt1(&gs_handle, MFRC522_INTERRUPT1_TIMER, &enable);
600  if (res != 0)
601  {
602  mfrc522_interface_debug_print("mfrc522: get interrupt1 failed.\n");
603  (void)mfrc522_deinit(&gs_handle);
604 
605  return 1;
606  }
607  mfrc522_interface_debug_print("mfrc522: check interrupt1 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
608 
609  /* mfrc522_set_interrupt1_pin_invert/mfrc522_get_interrupt1_pin_invert test */
610  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt1_pin_invert/mfrc522_get_interrupt1_pin_invert test.\n");
611 
612  /* enable */
614  if (res != 0)
615  {
616  mfrc522_interface_debug_print("mfrc522: set interrupt1 pin invert failed.\n");
617  (void)mfrc522_deinit(&gs_handle);
618 
619  return 1;
620  }
621  mfrc522_interface_debug_print("mfrc522: set interrupt1 pin invert enable.\n");
622  res = mfrc522_get_interrupt1_pin_invert(&gs_handle, &enable);
623  if (res != 0)
624  {
625  mfrc522_interface_debug_print("mfrc522: get interrupt1 pin invert failed.\n");
626  (void)mfrc522_deinit(&gs_handle);
627 
628  return 1;
629  }
630  mfrc522_interface_debug_print("mfrc522: check invert %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
631 
632  /* disable */
634  if (res != 0)
635  {
636  mfrc522_interface_debug_print("mfrc522: set interrupt1 pin invert failed.\n");
637  (void)mfrc522_deinit(&gs_handle);
638 
639  return 1;
640  }
641  mfrc522_interface_debug_print("mfrc522: set interrupt1 pin invert disable.\n");
642  res = mfrc522_get_interrupt1_pin_invert(&gs_handle, &enable);
643  if (res != 0)
644  {
645  mfrc522_interface_debug_print("mfrc522: get interrupt1 pin invert failed.\n");
646  (void)mfrc522_deinit(&gs_handle);
647 
648  return 1;
649  }
650  mfrc522_interface_debug_print("mfrc522: check invert %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
651 
652  /* mfrc522_set_interrupt1_trigger test */
653  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt1_trigger test.\n");
654 
655  /* set */
657  if (res != 0)
658  {
659  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark failed.\n");
660  (void)mfrc522_deinit(&gs_handle);
661 
662  return 1;
663  }
664  mfrc522_interface_debug_print("mfrc522: set interrupt1 trigger set.\n");
665  mfrc522_interface_debug_print("mfrc522: check interrupt1 trigger %s.\n", res == 0 ? "ok" : "error");
666 
667  /* cleared */
669  if (res != 0)
670  {
671  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark failed.\n");
672  (void)mfrc522_deinit(&gs_handle);
673 
674  return 1;
675  }
676  mfrc522_interface_debug_print("mfrc522: set interrupt1 trigger cleared.\n");
677  mfrc522_interface_debug_print("mfrc522: check interrupt1 trigger %s.\n", res == 0 ? "ok" : "error");
678 
679  /* mfrc522_set_interrupt2/mfrc522_get_interrupt2 test */
680  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt2/mfrc522_get_interrupt2 test.\n");
681 
682  /* mafin act enable */
684  if (res != 0)
685  {
686  mfrc522_interface_debug_print("mfrc522: set interrupt2 failed.\n");
687  (void)mfrc522_deinit(&gs_handle);
688 
689  return 1;
690  }
691  mfrc522_interface_debug_print("mfrc522: set mafin act interrupt2 enable.\n");
692  res = mfrc522_get_interrupt2(&gs_handle, MFRC522_INTERRUPT2_MFIN_ACT, &enable);
693  if (res != 0)
694  {
695  mfrc522_interface_debug_print("mfrc522: get interrupt2 failed.\n");
696  (void)mfrc522_deinit(&gs_handle);
697 
698  return 1;
699  }
700  mfrc522_interface_debug_print("mfrc522: check interrupt2 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
701 
702  /* mafin act disable */
704  if (res != 0)
705  {
706  mfrc522_interface_debug_print("mfrc522: set interrupt2 failed.\n");
707  (void)mfrc522_deinit(&gs_handle);
708 
709  return 1;
710  }
711  mfrc522_interface_debug_print("mfrc522: set mafin act interrupt2 disable.\n");
712  res = mfrc522_get_interrupt2(&gs_handle, MFRC522_INTERRUPT2_MFIN_ACT, &enable);
713  if (res != 0)
714  {
715  mfrc522_interface_debug_print("mfrc522: get interrupt2 failed.\n");
716  (void)mfrc522_deinit(&gs_handle);
717 
718  return 1;
719  }
720  mfrc522_interface_debug_print("mfrc522: check interrupt2 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
721 
722  /* crc enable */
724  if (res != 0)
725  {
726  mfrc522_interface_debug_print("mfrc522: set interrupt2 failed.\n");
727  (void)mfrc522_deinit(&gs_handle);
728 
729  return 1;
730  }
731  mfrc522_interface_debug_print("mfrc522: set crc interrupt2 enable.\n");
732  res = mfrc522_get_interrupt2(&gs_handle, MFRC522_INTERRUPT2_CRC, &enable);
733  if (res != 0)
734  {
735  mfrc522_interface_debug_print("mfrc522: get interrupt2 failed.\n");
736  (void)mfrc522_deinit(&gs_handle);
737 
738  return 1;
739  }
740  mfrc522_interface_debug_print("mfrc522: check interrupt2 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
741 
742  /* crc disable */
744  if (res != 0)
745  {
746  mfrc522_interface_debug_print("mfrc522: set interrupt2 failed.\n");
747  (void)mfrc522_deinit(&gs_handle);
748 
749  return 1;
750  }
751  mfrc522_interface_debug_print("mfrc522: set crc interrupt2 disable.\n");
752  res = mfrc522_get_interrupt2(&gs_handle, MFRC522_INTERRUPT2_CRC, &enable);
753  if (res != 0)
754  {
755  mfrc522_interface_debug_print("mfrc522: get interrupt2 failed.\n");
756  (void)mfrc522_deinit(&gs_handle);
757 
758  return 1;
759  }
760  mfrc522_interface_debug_print("mfrc522: check interrupt2 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
761 
762  /* mfrc522_set_interrupt_pin_type/mfrc522_get_interrupt_pin_type test */
763  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt_pin_type/mfrc522_get_interrupt_pin_type test.\n");
764 
765  /* set standard cmos */
767  if (res != 0)
768  {
769  mfrc522_interface_debug_print("mfrc522: set interrupt pin type failed.\n");
770  (void)mfrc522_deinit(&gs_handle);
771 
772  return 1;
773  }
774  mfrc522_interface_debug_print("mfrc522: set interrupt pin type standard cmos.\n");
775  res = mfrc522_get_interrupt_pin_type(&gs_handle, &pin_type);
776  if (res != 0)
777  {
778  mfrc522_interface_debug_print("mfrc522: get interrupt pin type failed.\n");
779  (void)mfrc522_deinit(&gs_handle);
780 
781  return 1;
782  }
783  mfrc522_interface_debug_print("mfrc522: check interrupt pin type %s.\n", pin_type == MFRC522_INTERRUPT_PIN_TYPE_STANDARD_CMOS ? "ok" : "error");
784 
785  /* set open drain */
787  if (res != 0)
788  {
789  mfrc522_interface_debug_print("mfrc522: set interrupt pin type failed.\n");
790  (void)mfrc522_deinit(&gs_handle);
791 
792  return 1;
793  }
794  mfrc522_interface_debug_print("mfrc522: set interrupt pin type open drain.\n");
795  res = mfrc522_get_interrupt_pin_type(&gs_handle, &pin_type);
796  if (res != 0)
797  {
798  mfrc522_interface_debug_print("mfrc522: get interrupt pin type failed.\n");
799  (void)mfrc522_deinit(&gs_handle);
800 
801  return 1;
802  }
803  mfrc522_interface_debug_print("mfrc522: check interrupt pin type %s.\n", pin_type == MFRC522_INTERRUPT_PIN_TYPE_OPEN_DRAIN ? "ok" : "error");
804 
805  /* mfrc522_set_interrupt1_mark test */
806  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt1_mark test.\n");
807 
808  /* set */
810  if (res != 0)
811  {
812  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark failed.\n");
813  (void)mfrc522_deinit(&gs_handle);
814 
815  return 1;
816  }
817  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark set.\n");
818  mfrc522_interface_debug_print("mfrc522: check interrupt1 mark %s.\n", res == 0 ? "ok" : "error");
819 
820  /* cleared */
822  if (res != 0)
823  {
824  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark failed.\n");
825  (void)mfrc522_deinit(&gs_handle);
826 
827  return 1;
828  }
829  mfrc522_interface_debug_print("mfrc522: set interrupt1 mark cleared.\n");
830  mfrc522_interface_debug_print("mfrc522: check interrupt1 mark %s.\n", res == 0 ? "ok" : "error");
831 
832  /* mfrc522_set_interrupt2_mark test */
833  mfrc522_interface_debug_print("mfrc522: mfrc522_set_interrupt2_mark test.\n");
834 
835  /* set */
837  if (res != 0)
838  {
839  mfrc522_interface_debug_print("mfrc522: set interrupt2 mark failed.\n");
840  (void)mfrc522_deinit(&gs_handle);
841 
842  return 1;
843  }
844  mfrc522_interface_debug_print("mfrc522: set interrupt2 mark set.\n");
845  mfrc522_interface_debug_print("mfrc522: check interrupt2 mark %s.\n", res == 0 ? "ok" : "error");
846 
847  /* cleared */
849  if (res != 0)
850  {
851  mfrc522_interface_debug_print("mfrc522: set interrupt2 mark failed.\n");
852  (void)mfrc522_deinit(&gs_handle);
853 
854  return 1;
855  }
856  mfrc522_interface_debug_print("mfrc522: set interrupt2 mark cleared.\n");
857  mfrc522_interface_debug_print("mfrc522: check interrupt2 mark %s.\n", res == 0 ? "ok" : "error");
858 
859  /* mfrc522_get_interrupt1_status */
860  mfrc522_interface_debug_print("mfrc522: mfrc522_get_interrupt1_status test.\n");
861 
862  /* get the interrupt1 status */
863  res = mfrc522_get_interrupt1_status(&gs_handle, &reg);
864  if (res != 0)
865  {
866  mfrc522_interface_debug_print("mfrc522: get interrupt1 status failed.\n");
867  (void)mfrc522_deinit(&gs_handle);
868 
869  return 1;
870  }
871  mfrc522_interface_debug_print("mfrc522: interrupt1 status is 0x%02X.\n", reg);
872 
873  /* mfrc522_get_interrupt2_status */
874  mfrc522_interface_debug_print("mfrc522: mfrc522_get_interrupt2_status test.\n");
875 
876  /* get the interrupt2 status */
877  res = mfrc522_get_interrupt2_status(&gs_handle, &reg);
878  if (res != 0)
879  {
880  mfrc522_interface_debug_print("mfrc522: get interrupt2 status failed.\n");
881  (void)mfrc522_deinit(&gs_handle);
882 
883  return 1;
884  }
885  mfrc522_interface_debug_print("mfrc522: interrupt2 status is 0x%02X.\n", reg);
886 
887  /* mfrc522_get_error */
888  mfrc522_interface_debug_print("mfrc522: mfrc522_get_error test.\n");
889 
890  /* get the error */
891  res = mfrc522_get_error(&gs_handle, &reg);
892  if (res != 0)
893  {
894  mfrc522_interface_debug_print("mfrc522: get error failed.\n");
895  (void)mfrc522_deinit(&gs_handle);
896 
897  return 1;
898  }
899  mfrc522_interface_debug_print("mfrc522: error is 0x%02X.\n", reg);
900 
901  /* mfrc522_get_status1 */
902  mfrc522_interface_debug_print("mfrc522: mfrc522_get_status1 test.\n");
903 
904  /* get the status1 */
905  res = mfrc522_get_status1(&gs_handle, &reg);
906  if (res != 0)
907  {
908  mfrc522_interface_debug_print("mfrc522: get status1 failed.\n");
909  (void)mfrc522_deinit(&gs_handle);
910 
911  return 1;
912  }
913  mfrc522_interface_debug_print("mfrc522: status1 is 0x%02X.\n", reg);
914 
915  /* mfrc522_get_status2 */
916  mfrc522_interface_debug_print("mfrc522: mfrc522_get_status2 test.\n");
917 
918  /* get the status2 */
919  res = mfrc522_get_status2(&gs_handle, &reg);
920  if (res != 0)
921  {
922  mfrc522_interface_debug_print("mfrc522: get status2 failed.\n");
923  (void)mfrc522_deinit(&gs_handle);
924 
925  return 1;
926  }
927  mfrc522_interface_debug_print("mfrc522: status2 is 0x%02X.\n", reg);
928 
929  /* mfrc522_get_modem_state */
930  mfrc522_interface_debug_print("mfrc522: mfrc522_get_modem_state test.\n");
931 
932  /* get modem state */
933  res = mfrc522_get_modem_state(&gs_handle, &modem_state);
934  if (res != 0)
935  {
936  mfrc522_interface_debug_print("mfrc522: get modem state failed.\n");
937  (void)mfrc522_deinit(&gs_handle);
938 
939  return 1;
940  }
941  mfrc522_interface_debug_print("mfrc522: modem state is 0x%02X.\n", modem_state);
942 
943  /* mfrc522_set_mifare_crypto1_on/mfrc522_get_mifare_crypto1_on test */
944  mfrc522_interface_debug_print("mfrc522: mfrc522_set_mifare_crypto1_on/mfrc522_get_mifare_crypto1_on test.\n");
945 
946  /* enable */
948  if (res != 0)
949  {
950  mfrc522_interface_debug_print("mfrc522: set mifare crypto1 on failed.\n");
951  (void)mfrc522_deinit(&gs_handle);
952 
953  return 1;
954  }
955  mfrc522_interface_debug_print("mfrc522: set mifare crypto1 on enable.\n");
956  mfrc522_interface_debug_print("mfrc522: check mifare crypto1 on %s.\n", res == 0 ? "ok" : "error");
957 
958  /* disable */
960  if (res != 0)
961  {
962  mfrc522_interface_debug_print("mfrc522: set mifare crypto1 on failed.\n");
963  (void)mfrc522_deinit(&gs_handle);
964 
965  return 1;
966  }
967  mfrc522_interface_debug_print("mfrc522: set mifare crypto1 on disable.\n");
968  mfrc522_interface_debug_print("mfrc522: check mifare crypto1 on %s.\n", res == 0 ? "ok" : "error");
969 
970  /* mfrc522_set_force_iic_high_speed/mfrc522_get_force_iic_high_speed test */
971  mfrc522_interface_debug_print("mfrc522: mfrc522_set_force_iic_high_speed/mfrc522_get_force_iic_high_speed test.\n");
972 
973  /* enable */
975  if (res != 0)
976  {
977  mfrc522_interface_debug_print("mfrc522: set force iic high speed failed.\n");
978  (void)mfrc522_deinit(&gs_handle);
979 
980  return 1;
981  }
982  mfrc522_interface_debug_print("mfrc522: set force iic high speed enable.\n");
983  res = mfrc522_get_force_iic_high_speed(&gs_handle, &enable);
984  if (res != 0)
985  {
986  mfrc522_interface_debug_print("mfrc522: get force iic high speed failed.\n");
987  (void)mfrc522_deinit(&gs_handle);
988 
989  return 1;
990  }
991  mfrc522_interface_debug_print("mfrc522: check force iic high speed %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
992 
993  /* disable */
995  if (res != 0)
996  {
997  mfrc522_interface_debug_print("mfrc522: set force iic high speed failed.\n");
998  (void)mfrc522_deinit(&gs_handle);
999 
1000  return 1;
1001  }
1002  mfrc522_interface_debug_print("mfrc522: set force iic high speed disable.\n");
1003  res = mfrc522_get_force_iic_high_speed(&gs_handle, &enable);
1004  if (res != 0)
1005  {
1006  mfrc522_interface_debug_print("mfrc522: get force iic high speed failed.\n");
1007  (void)mfrc522_deinit(&gs_handle);
1008 
1009  return 1;
1010  }
1011  mfrc522_interface_debug_print("mfrc522: check force iic high speed %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1012 
1013  /* mfrc522_set_clear_temperature_error/mfrc522_get_clear_temperature_error test */
1014  mfrc522_interface_debug_print("mfrc522: mfrc522_set_clear_temperature_error/mfrc522_get_clear_temperature_error test.\n");
1015 
1016  /* enable */
1018  if (res != 0)
1019  {
1020  mfrc522_interface_debug_print("mfrc522: set clear temperature error failed.\n");
1021  (void)mfrc522_deinit(&gs_handle);
1022 
1023  return 1;
1024  }
1025  mfrc522_interface_debug_print("mfrc522: set clear temperature error enable.\n");
1026  res = mfrc522_get_clear_temperature_error(&gs_handle, &enable);
1027  if (res != 0)
1028  {
1029  mfrc522_interface_debug_print("mfrc522: get clear temperature error failed.\n");
1030  (void)mfrc522_deinit(&gs_handle);
1031 
1032  return 1;
1033  }
1034  mfrc522_interface_debug_print("mfrc522: check clear temperature error enable %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1035 
1036  /* disable */
1038  if (res != 0)
1039  {
1040  mfrc522_interface_debug_print("mfrc522: set clear temperature error failed.\n");
1041  (void)mfrc522_deinit(&gs_handle);
1042 
1043  return 1;
1044  }
1045  mfrc522_interface_debug_print("mfrc522: set clear temperature error disable.\n");
1046  res = mfrc522_get_clear_temperature_error(&gs_handle, &enable);
1047  if (res != 0)
1048  {
1049  mfrc522_interface_debug_print("mfrc522: get clear temperature error failed.\n");
1050  (void)mfrc522_deinit(&gs_handle);
1051 
1052  return 1;
1053  }
1054  mfrc522_interface_debug_print("mfrc522: check clear temperature error enable %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1055 
1056  /* mfrc522_get_fifo_level test */
1057  mfrc522_interface_debug_print("mfrc522: mfrc522_get_fifo_level test.\n");
1058 
1059  /* get fifo level */
1060  res = mfrc522_get_fifo_level(&gs_handle, &level);
1061  if (res != 0)
1062  {
1063  mfrc522_interface_debug_print("mfrc522: get fifo level failed.\n");
1064  (void)mfrc522_deinit(&gs_handle);
1065 
1066  return 1;
1067  }
1068  mfrc522_interface_debug_print("mfrc522: fifo level is 0x%02X.\n", level);
1069 
1070  /* mfrc522_flush_fifo test */
1071  mfrc522_interface_debug_print("mfrc522: mfrc522_flush_fifo test.\n");
1072 
1073  /* flush fifo */
1074  res = mfrc522_flush_fifo(&gs_handle);
1075  if (res != 0)
1076  {
1077  mfrc522_interface_debug_print("mfrc522: flush fifo failed.\n");
1078  (void)mfrc522_deinit(&gs_handle);
1079 
1080  return 1;
1081  }
1082  mfrc522_interface_debug_print("mfrc522: check flush fifo %s.\n", res == 0 ? "ok" : "error");
1083 
1084  /* mfrc522_set_water_level/mfrc522_get_water_level test */
1085  mfrc522_interface_debug_print("mfrc522: mfrc522_set_water_level/mfrc522_get_water_level test.\n");
1086 
1087  level = rand() % 0x40;
1088  res = mfrc522_set_water_level(&gs_handle, level);
1089  if (res != 0)
1090  {
1091  mfrc522_interface_debug_print("mfrc522: set water level failed.\n");
1092  (void)mfrc522_deinit(&gs_handle);
1093 
1094  return 1;
1095  }
1096  mfrc522_interface_debug_print("mfrc522: set water level 0x%02X.\n", level);
1097  res = mfrc522_get_water_level(&gs_handle, &level_check);
1098  if (res != 0)
1099  {
1100  mfrc522_interface_debug_print("mfrc522: get water level failed.\n");
1101  (void)mfrc522_deinit(&gs_handle);
1102 
1103  return 1;
1104  }
1105  mfrc522_interface_debug_print("mfrc522: check water level %s.\n", level == level_check ? "ok" : "error");
1106 
1107  /* mfrc522_start_timer test */
1108  mfrc522_interface_debug_print("mfrc522: mfrc522_start_timer test.\n");
1109 
1110  /* start the timer */
1111  res = mfrc522_start_timer(&gs_handle);
1112  if (res != 0)
1113  {
1114  mfrc522_interface_debug_print("mfrc522: start timer failed.\n");
1115  (void)mfrc522_deinit(&gs_handle);
1116 
1117  return 1;
1118  }
1119  mfrc522_interface_debug_print("mfrc522: check start timer %s.\n", res == 0 ? "ok" : "error");
1120 
1121  /* mfrc522_stop_timer test */
1122  mfrc522_interface_debug_print("mfrc522: mfrc522_stop_timer test.\n");
1123 
1124  /* stop the timer */
1125  res = mfrc522_start_timer(&gs_handle);
1126  if (res != 0)
1127  {
1128  mfrc522_interface_debug_print("mfrc522: stop timer failed.\n");
1129  (void)mfrc522_deinit(&gs_handle);
1130 
1131  return 1;
1132  }
1133  mfrc522_interface_debug_print("mfrc522: check stop timer %s.\n", res == 0 ? "ok" : "error");
1134 
1135  /* mfrc522_get_rx_last_bits test */
1136  mfrc522_interface_debug_print("mfrc522: mfrc522_get_rx_last_bits test.\n");
1137 
1138  /* get rx last bits */
1139  res = mfrc522_get_rx_last_bits(&gs_handle, &reg);
1140  if (res != 0)
1141  {
1142  mfrc522_interface_debug_print("mfrc522: get rx last bits failed.\n");
1143  (void)mfrc522_deinit(&gs_handle);
1144 
1145  return 1;
1146  }
1147  mfrc522_interface_debug_print("mfrc522: rx last bits is 0x%02X.\n", reg);
1148 
1149  /* mfrc522_start_send test */
1150  mfrc522_interface_debug_print("mfrc522: mfrc522_start_send test.\n");
1151 
1152  /* start send */
1153  res = mfrc522_start_send(&gs_handle);
1154  if (res != 0)
1155  {
1156  mfrc522_interface_debug_print("mfrc522: start send failed.\n");
1157  (void)mfrc522_deinit(&gs_handle);
1158 
1159  return 1;
1160  }
1161  mfrc522_interface_debug_print("mfrc522: check start send %s.\n", res == 0 ? "ok" : "error");
1162 
1163  /* mfrc522_stop_send test */
1164  mfrc522_interface_debug_print("mfrc522: mfrc522_stop_send test.\n");
1165 
1166  /* stop send */
1167  res = mfrc522_stop_send(&gs_handle);
1168  if (res != 0)
1169  {
1170  mfrc522_interface_debug_print("mfrc522: stop send failed.\n");
1171  (void)mfrc522_deinit(&gs_handle);
1172 
1173  return 1;
1174  }
1175  mfrc522_interface_debug_print("mfrc522: check stop send %s.\n", res == 0 ? "ok" : "error");
1176 
1177  /* mfrc522_set_tx_last_bits/mfrc522_get_tx_last_bits test */
1178  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_last_bits/mfrc522_get_tx_last_bits test.\n");
1179 
1180  level = rand() % 8;
1181  res = mfrc522_set_tx_last_bits(&gs_handle, level);
1182  if (res != 0)
1183  {
1184  mfrc522_interface_debug_print("mfrc522: set tx last bits failed.\n");
1185  (void)mfrc522_deinit(&gs_handle);
1186 
1187  return 1;
1188  }
1189  mfrc522_interface_debug_print("mfrc522: set tx last bits 0x%02X.\n", level);
1190  res = mfrc522_get_tx_last_bits(&gs_handle, &level_check);
1191  if (res != 0)
1192  {
1193  mfrc522_interface_debug_print("mfrc522: get tx last bits failed.\n");
1194  (void)mfrc522_deinit(&gs_handle);
1195 
1196  return 1;
1197  }
1198  mfrc522_interface_debug_print("mfrc522: check tx last bits %s.\n", level == level_check ? "ok" : "error");
1199 
1200  /* mfrc522_set_rx_align/mfrc522_get_rx_align test */
1201  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_align/mfrc522_get_rx_align test.\n");
1202 
1203  /* set rx align 0 */
1204  res = mfrc522_set_rx_align(&gs_handle, MFRC522_RX_ALIGN_0);
1205  if (res != 0)
1206  {
1207  mfrc522_interface_debug_print("mfrc522: set rx align failed.\n");
1208  (void)mfrc522_deinit(&gs_handle);
1209 
1210  return 1;
1211  }
1212  mfrc522_interface_debug_print("mfrc522: set rx align 0.\n");
1213  res = mfrc522_get_rx_align(&gs_handle, &align);
1214  if (res != 0)
1215  {
1216  mfrc522_interface_debug_print("mfrc522: get rx align failed.\n");
1217  (void)mfrc522_deinit(&gs_handle);
1218 
1219  return 1;
1220  }
1221  mfrc522_interface_debug_print("mfrc522: check rx align %s.\n", align == MFRC522_RX_ALIGN_0 ? "ok" : "error");
1222 
1223  /* set rx align 1 */
1224  res = mfrc522_set_rx_align(&gs_handle, MFRC522_RX_ALIGN_1);
1225  if (res != 0)
1226  {
1227  mfrc522_interface_debug_print("mfrc522: set rx align failed.\n");
1228  (void)mfrc522_deinit(&gs_handle);
1229 
1230  return 1;
1231  }
1232  mfrc522_interface_debug_print("mfrc522: set rx align 1.\n");
1233  res = mfrc522_get_rx_align(&gs_handle, &align);
1234  if (res != 0)
1235  {
1236  mfrc522_interface_debug_print("mfrc522: get rx align failed.\n");
1237  (void)mfrc522_deinit(&gs_handle);
1238 
1239  return 1;
1240  }
1241  mfrc522_interface_debug_print("mfrc522: check rx align %s.\n", align == MFRC522_RX_ALIGN_1 ? "ok" : "error");
1242 
1243  /* set rx align 7 */
1244  res = mfrc522_set_rx_align(&gs_handle, MFRC522_RX_ALIGN_7);
1245  if (res != 0)
1246  {
1247  mfrc522_interface_debug_print("mfrc522: set rx align failed.\n");
1248  (void)mfrc522_deinit(&gs_handle);
1249 
1250  return 1;
1251  }
1252  mfrc522_interface_debug_print("mfrc522: set rx align 7.\n");
1253  res = mfrc522_get_rx_align(&gs_handle, &align);
1254  if (res != 0)
1255  {
1256  mfrc522_interface_debug_print("mfrc522: get rx align failed.\n");
1257  (void)mfrc522_deinit(&gs_handle);
1258 
1259  return 1;
1260  }
1261  mfrc522_interface_debug_print("mfrc522: check rx align %s.\n", align == MFRC522_RX_ALIGN_7 ? "ok" : "error");
1262 
1263  /* mfrc522_set_value_clear_after_coll/mfrc522_get_value_clear_after_coll test */
1264  mfrc522_interface_debug_print("mfrc522: mfrc522_set_value_clear_after_coll/mfrc522_get_value_clear_after_coll test.\n");
1265 
1266  /* enable */
1268  if (res != 0)
1269  {
1270  mfrc522_interface_debug_print("mfrc522: set value clear after coll failed.\n");
1271  (void)mfrc522_deinit(&gs_handle);
1272 
1273  return 1;
1274  }
1275  mfrc522_interface_debug_print("mfrc522: set value clear after coll enable.\n");
1276  res = mfrc522_get_value_clear_after_coll(&gs_handle, &enable);
1277  if (res != 0)
1278  {
1279  mfrc522_interface_debug_print("mfrc522: get value clear after coll failed.\n");
1280  (void)mfrc522_deinit(&gs_handle);
1281 
1282  return 1;
1283  }
1284  mfrc522_interface_debug_print("mfrc522: check value clear after coll %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1285 
1286  /* disable */
1288  if (res != 0)
1289  {
1290  mfrc522_interface_debug_print("mfrc522: set value clear after coll failed.\n");
1291  (void)mfrc522_deinit(&gs_handle);
1292 
1293  return 1;
1294  }
1295  mfrc522_interface_debug_print("mfrc522: set value clear after coll disable.\n");
1296  res = mfrc522_get_value_clear_after_coll(&gs_handle, &enable);
1297  if (res != 0)
1298  {
1299  mfrc522_interface_debug_print("mfrc522: get value clear after coll failed.\n");
1300  (void)mfrc522_deinit(&gs_handle);
1301 
1302  return 1;
1303  }
1304  mfrc522_interface_debug_print("mfrc522: check value clear after coll %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1305 
1306  /* mfrc522_get_collision_position_not_valid test */
1307  mfrc522_interface_debug_print("mfrc522: mfrc522_get_collision_position_not_valid test.\n");
1308 
1309  /* get the bool */
1310  res = mfrc522_get_collision_position_not_valid(&gs_handle, &enable);
1311  if (res != 0)
1312  {
1313  mfrc522_interface_debug_print("mfrc522: get collision position not valid failed.\n");
1314  (void)mfrc522_deinit(&gs_handle);
1315 
1316  return 1;
1317  }
1318  mfrc522_interface_debug_print("mfrc522: collision position not valid is %s.\n", enable == MFRC522_BOOL_TRUE ? "true" : "false");
1319 
1320  /* mfrc522_get_collision_position_not_valid test */
1321  mfrc522_interface_debug_print("mfrc522: mfrc522_get_collision_position_not_valid test.\n");
1322 
1323  /* get collision position */
1324  res = mfrc522_get_collision_position(&gs_handle, &reg);
1325  if (res != 0)
1326  {
1327  mfrc522_interface_debug_print("mfrc522: get collision position failed.\n");
1328  (void)mfrc522_deinit(&gs_handle);
1329 
1330  return 1;
1331  }
1332  mfrc522_interface_debug_print("mfrc522: collision position is 0x%02X.\n", reg);
1333 
1334  /* mfrc522_set_crc_msb_first/mfrc522_get_crc_msb_first test */
1335  mfrc522_interface_debug_print("mfrc522: mfrc522_set_crc_msb_first/mfrc522_get_crc_msb_first test.\n");
1336 
1337  /* enable */
1338  res = mfrc522_set_crc_msb_first(&gs_handle, MFRC522_BOOL_TRUE);
1339  if (res != 0)
1340  {
1341  mfrc522_interface_debug_print("mfrc522: set crc msb first failed.\n");
1342  (void)mfrc522_deinit(&gs_handle);
1343 
1344  return 1;
1345  }
1346  mfrc522_interface_debug_print("mfrc522: set crc msb first enable.\n");
1347  res = mfrc522_get_crc_msb_first(&gs_handle, &enable);
1348  if (res != 0)
1349  {
1350  mfrc522_interface_debug_print("mfrc522: get crc msb first failed.\n");
1351  (void)mfrc522_deinit(&gs_handle);
1352 
1353  return 1;
1354  }
1355  mfrc522_interface_debug_print("mfrc522: check get crc msb first %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1356 
1357  /* disable */
1358  res = mfrc522_set_crc_msb_first(&gs_handle, MFRC522_BOOL_FALSE);
1359  if (res != 0)
1360  {
1361  mfrc522_interface_debug_print("mfrc522: set crc msb first failed.\n");
1362  (void)mfrc522_deinit(&gs_handle);
1363 
1364  return 1;
1365  }
1366  mfrc522_interface_debug_print("mfrc522: set crc msb first disable.\n");
1367  res = mfrc522_get_crc_msb_first(&gs_handle, &enable);
1368  if (res != 0)
1369  {
1370  mfrc522_interface_debug_print("mfrc522: get crc msb first failed.\n");
1371  (void)mfrc522_deinit(&gs_handle);
1372 
1373  return 1;
1374  }
1375  mfrc522_interface_debug_print("mfrc522: check get crc msb first %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1376 
1377  /* mfrc522_set_tx_wait_rf/mfrc522_get_tx_wait_rf test */
1378  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_wait_rf/mfrc522_get_tx_wait_rf test.\n");
1379 
1380  /* enable */
1381  res = mfrc522_set_tx_wait_rf(&gs_handle, MFRC522_BOOL_TRUE);
1382  if (res != 0)
1383  {
1384  mfrc522_interface_debug_print("mfrc522: set tx wait rf failed.\n");
1385  (void)mfrc522_deinit(&gs_handle);
1386 
1387  return 1;
1388  }
1389  mfrc522_interface_debug_print("mfrc522: set tx wait rf enable .\n");
1390  res = mfrc522_get_tx_wait_rf(&gs_handle, &enable);
1391  if (res != 0)
1392  {
1393  mfrc522_interface_debug_print("mfrc522: get tx wait rf failed.\n");
1394  (void)mfrc522_deinit(&gs_handle);
1395 
1396  return 1;
1397  }
1398  mfrc522_interface_debug_print("mfrc522: check tx wait rf %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1399 
1400  /* disable */
1401  res = mfrc522_set_tx_wait_rf(&gs_handle, MFRC522_BOOL_FALSE);
1402  if (res != 0)
1403  {
1404  mfrc522_interface_debug_print("mfrc522: set tx wait rf failed.\n");
1405  (void)mfrc522_deinit(&gs_handle);
1406 
1407  return 1;
1408  }
1409  mfrc522_interface_debug_print("mfrc522: set tx wait rf disable .\n");
1410  res = mfrc522_get_tx_wait_rf(&gs_handle, &enable);
1411  if (res != 0)
1412  {
1413  mfrc522_interface_debug_print("mfrc522: get tx wait rf failed.\n");
1414  (void)mfrc522_deinit(&gs_handle);
1415 
1416  return 1;
1417  }
1418  mfrc522_interface_debug_print("mfrc522: check tx wait rf %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1419 
1420  /* mfrc522_set_mfin_polarity/mfrc522_get_mfin_polarity test */
1421  mfrc522_interface_debug_print("mfrc522: mfrc522_set_mfin_polarity/mfrc522_get_mfin_polarity test.\n");
1422 
1423  /* set low */
1425  if (res != 0)
1426  {
1427  mfrc522_interface_debug_print("mfrc522: set mfin polarity failed.\n");
1428  (void)mfrc522_deinit(&gs_handle);
1429 
1430  return 1;
1431  }
1432  mfrc522_interface_debug_print("mfrc522: set mfin polarity low.\n");
1433  res = mfrc522_get_mfin_polarity(&gs_handle, &polarity);
1434  if (res != 0)
1435  {
1436  mfrc522_interface_debug_print("mfrc522: get mfin polarity failed.\n");
1437  (void)mfrc522_deinit(&gs_handle);
1438 
1439  return 1;
1440  }
1441  mfrc522_interface_debug_print("mfrc522: check mfin polarity %s.\n", polarity == MFRC522_MFIN_POLARITY_LOW ? "ok" : "error");
1442 
1443  /* set high */
1445  if (res != 0)
1446  {
1447  mfrc522_interface_debug_print("mfrc522: set mfin polarity failed.\n");
1448  (void)mfrc522_deinit(&gs_handle);
1449 
1450  return 1;
1451  }
1452  mfrc522_interface_debug_print("mfrc522: set mfin polarity high.\n");
1453  res = mfrc522_get_mfin_polarity(&gs_handle, &polarity);
1454  if (res != 0)
1455  {
1456  mfrc522_interface_debug_print("mfrc522: get mfin polarity failed.\n");
1457  (void)mfrc522_deinit(&gs_handle);
1458 
1459  return 1;
1460  }
1461  mfrc522_interface_debug_print("mfrc522: check mfin polarity %s.\n", polarity == MFRC522_MFIN_POLARITY_HIGH ? "ok" : "error");
1462 
1463  /* mfrc522_set_crc_preset/mfrc522_get_crc_preset test */
1464  mfrc522_interface_debug_print("mfrc522: mfrc522_set_crc_preset/mfrc522_get_crc_preset test.\n");
1465 
1466  /* 0000 */
1468  if (res != 0)
1469  {
1470  mfrc522_interface_debug_print("mfrc522: set crc preset failed.\n");
1471  (void)mfrc522_deinit(&gs_handle);
1472 
1473  return 1;
1474  }
1475  mfrc522_interface_debug_print("mfrc522: set crc preset 0000.\n");
1476  res = mfrc522_get_crc_preset(&gs_handle, &preset);
1477  if (res != 0)
1478  {
1479  mfrc522_interface_debug_print("mfrc522: get crc preset failed.\n");
1480  (void)mfrc522_deinit(&gs_handle);
1481 
1482  return 1;
1483  }
1484  mfrc522_interface_debug_print("mfrc522: check crc preset %s.\n", preset == MFRC522_CRC_PRESET_0000 ? "ok" : "error");
1485 
1486  /* 6363 */
1488  if (res != 0)
1489  {
1490  mfrc522_interface_debug_print("mfrc522: set crc preset failed.\n");
1491  (void)mfrc522_deinit(&gs_handle);
1492 
1493  return 1;
1494  }
1495  mfrc522_interface_debug_print("mfrc522: set crc preset 6363.\n");
1496  res = mfrc522_get_crc_preset(&gs_handle, &preset);
1497  if (res != 0)
1498  {
1499  mfrc522_interface_debug_print("mfrc522: get crc preset failed.\n");
1500  (void)mfrc522_deinit(&gs_handle);
1501 
1502  return 1;
1503  }
1504  mfrc522_interface_debug_print("mfrc522: check crc preset %s.\n", preset == MFRC522_CRC_PRESET_6363 ? "ok" : "error");
1505 
1506  /* A671 */
1508  if (res != 0)
1509  {
1510  mfrc522_interface_debug_print("mfrc522: set crc preset failed.\n");
1511  (void)mfrc522_deinit(&gs_handle);
1512 
1513  return 1;
1514  }
1515  mfrc522_interface_debug_print("mfrc522: set crc preset A671.\n");
1516  res = mfrc522_get_crc_preset(&gs_handle, &preset);
1517  if (res != 0)
1518  {
1519  mfrc522_interface_debug_print("mfrc522: get crc preset failed.\n");
1520  (void)mfrc522_deinit(&gs_handle);
1521 
1522  return 1;
1523  }
1524  mfrc522_interface_debug_print("mfrc522: check crc preset %s.\n", preset == MFRC522_CRC_PRESET_A671 ? "ok" : "error");
1525 
1526  /* FFFF */
1528  if (res != 0)
1529  {
1530  mfrc522_interface_debug_print("mfrc522: set crc preset failed.\n");
1531  (void)mfrc522_deinit(&gs_handle);
1532 
1533  return 1;
1534  }
1535  mfrc522_interface_debug_print("mfrc522: set crc preset FFFF.\n");
1536  res = mfrc522_get_crc_preset(&gs_handle, &preset);
1537  if (res != 0)
1538  {
1539  mfrc522_interface_debug_print("mfrc522: get crc preset failed.\n");
1540  (void)mfrc522_deinit(&gs_handle);
1541 
1542  return 1;
1543  }
1544  mfrc522_interface_debug_print("mfrc522: check crc preset %s.\n", preset == MFRC522_CRC_PRESET_FFFF ? "ok" : "error");
1545 
1546  /* mfrc522_set_tx_crc_generation/mfrc522_get_tx_crc_generation test */
1547  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_crc_generation/mfrc522_get_tx_crc_generation test.\n");
1548 
1549  /* enable */
1551  if (res != 0)
1552  {
1553  mfrc522_interface_debug_print("mfrc522: set tx crc generation failed.\n");
1554  (void)mfrc522_deinit(&gs_handle);
1555 
1556  return 1;
1557  }
1558  mfrc522_interface_debug_print("mfrc522: set tx crc generation enable.\n");
1559  res = mfrc522_get_tx_crc_generation(&gs_handle, &enable);
1560  if (res != 0)
1561  {
1562  mfrc522_interface_debug_print("mfrc522: get tx crc generation failed.\n");
1563  (void)mfrc522_deinit(&gs_handle);
1564 
1565  return 1;
1566  }
1567  mfrc522_interface_debug_print("mfrc522: check tx crc generation %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1568 
1569  /* disable */
1571  if (res != 0)
1572  {
1573  mfrc522_interface_debug_print("mfrc522: set tx crc generation failed.\n");
1574  (void)mfrc522_deinit(&gs_handle);
1575 
1576  return 1;
1577  }
1578  mfrc522_interface_debug_print("mfrc522: set tx crc generation disable.\n");
1579  res = mfrc522_get_tx_crc_generation(&gs_handle, &enable);
1580  if (res != 0)
1581  {
1582  mfrc522_interface_debug_print("mfrc522: get tx crc generation failed.\n");
1583  (void)mfrc522_deinit(&gs_handle);
1584 
1585  return 1;
1586  }
1587  mfrc522_interface_debug_print("mfrc522: check tx crc generation %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1588 
1589  /* mfrc522_set_tx_speed/mfrc522_get_tx_speed test */
1590  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_speed/mfrc522_get_tx_speed test.\n");
1591 
1592  /* 106 kBd*/
1593  res = mfrc522_set_tx_speed(&gs_handle, MFRC522_SPEED_106_KBD);
1594  if (res != 0)
1595  {
1596  mfrc522_interface_debug_print("mfrc522: set tx speed failed.\n");
1597  (void)mfrc522_deinit(&gs_handle);
1598 
1599  return 1;
1600  }
1601  mfrc522_interface_debug_print("mfrc522: set tx speed 106 kBd.\n");
1602  res = mfrc522_get_tx_speed(&gs_handle, &speed);
1603  if (res != 0)
1604  {
1605  mfrc522_interface_debug_print("mfrc522: get tx speed failed.\n");
1606  (void)mfrc522_deinit(&gs_handle);
1607 
1608  return 1;
1609  }
1610  mfrc522_interface_debug_print("mfrc522: check tx speed %s.\n", speed == MFRC522_SPEED_106_KBD ? "ok" : "error");
1611 
1612  /* 212 kBd*/
1613  res = mfrc522_set_tx_speed(&gs_handle, MFRC522_SPEED_212_KBD);
1614  if (res != 0)
1615  {
1616  mfrc522_interface_debug_print("mfrc522: set tx speed failed.\n");
1617  (void)mfrc522_deinit(&gs_handle);
1618 
1619  return 1;
1620  }
1621  mfrc522_interface_debug_print("mfrc522: set tx speed 212 kBd.\n");
1622  res = mfrc522_get_tx_speed(&gs_handle, &speed);
1623  if (res != 0)
1624  {
1625  mfrc522_interface_debug_print("mfrc522: get tx speed failed.\n");
1626  (void)mfrc522_deinit(&gs_handle);
1627 
1628  return 1;
1629  }
1630  mfrc522_interface_debug_print("mfrc522: check tx speed %s.\n", speed == MFRC522_SPEED_212_KBD ? "ok" : "error");
1631 
1632  /* 424 kBd*/
1633  res = mfrc522_set_tx_speed(&gs_handle, MFRC522_SPEED_424_KBD);
1634  if (res != 0)
1635  {
1636  mfrc522_interface_debug_print("mfrc522: set tx speed failed.\n");
1637  (void)mfrc522_deinit(&gs_handle);
1638 
1639  return 1;
1640  }
1641  mfrc522_interface_debug_print("mfrc522: set tx speed 424 kBd.\n");
1642  res = mfrc522_get_tx_speed(&gs_handle, &speed);
1643  if (res != 0)
1644  {
1645  mfrc522_interface_debug_print("mfrc522: get tx speed failed.\n");
1646  (void)mfrc522_deinit(&gs_handle);
1647 
1648  return 1;
1649  }
1650  mfrc522_interface_debug_print("mfrc522: check tx speed %s.\n", speed == MFRC522_SPEED_424_KBD ? "ok" : "error");
1651 
1652  /* 848 kBd*/
1653  res = mfrc522_set_tx_speed(&gs_handle, MFRC522_SPEED_848_KBD);
1654  if (res != 0)
1655  {
1656  mfrc522_interface_debug_print("mfrc522: set tx speed failed.\n");
1657  (void)mfrc522_deinit(&gs_handle);
1658 
1659  return 1;
1660  }
1661  mfrc522_interface_debug_print("mfrc522: set tx speed 848 kBd.\n");
1662  res = mfrc522_get_tx_speed(&gs_handle, &speed);
1663  if (res != 0)
1664  {
1665  mfrc522_interface_debug_print("mfrc522: get tx speed failed.\n");
1666  (void)mfrc522_deinit(&gs_handle);
1667 
1668  return 1;
1669  }
1670  mfrc522_interface_debug_print("mfrc522: check tx speed %s.\n", speed == MFRC522_SPEED_848_KBD ? "ok" : "error");
1671 
1672  /* mfrc522_set_modulation_invert/mfrc522_get_modulation_invert test */
1673  mfrc522_interface_debug_print("mfrc522: mfrc522_set_modulation_invert/mfrc522_get_modulation_invert test.\n");
1674 
1675  /* enable */
1677  if (res != 0)
1678  {
1679  mfrc522_interface_debug_print("mfrc522: set modulation invert failed.\n");
1680  (void)mfrc522_deinit(&gs_handle);
1681 
1682  return 1;
1683  }
1684  mfrc522_interface_debug_print("mfrc522: set modulation invert enable.\n");
1685  res = mfrc522_get_modulation_invert(&gs_handle, &enable);
1686  if (res != 0)
1687  {
1688  mfrc522_interface_debug_print("mfrc522: get modulation invert failed.\n");
1689  (void)mfrc522_deinit(&gs_handle);
1690 
1691  return 1;
1692  }
1693  mfrc522_interface_debug_print("mfrc522: check modulation invert %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1694 
1695  /* disable */
1697  if (res != 0)
1698  {
1699  mfrc522_interface_debug_print("mfrc522: set modulation invert failed.\n");
1700  (void)mfrc522_deinit(&gs_handle);
1701 
1702  return 1;
1703  }
1704  mfrc522_interface_debug_print("mfrc522: set modulation invert disable.\n");
1705  res = mfrc522_get_modulation_invert(&gs_handle, &enable);
1706  if (res != 0)
1707  {
1708  mfrc522_interface_debug_print("mfrc522: get modulation invert failed.\n");
1709  (void)mfrc522_deinit(&gs_handle);
1710 
1711  return 1;
1712  }
1713  mfrc522_interface_debug_print("mfrc522: check modulation invert %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1714 
1715  /* mfrc522_set_rx_crc_generation/mfrc522_get_rx_crc_generation test */
1716  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_crc_generation/mfrc522_get_rx_crc_generation test.\n");
1717 
1718  /* enable */
1720  if (res != 0)
1721  {
1722  mfrc522_interface_debug_print("mfrc522: set rx crc generation failed.\n");
1723  (void)mfrc522_deinit(&gs_handle);
1724 
1725  return 1;
1726  }
1727  mfrc522_interface_debug_print("mfrc522: set rx crc generation enable.\n");
1728  res = mfrc522_get_rx_crc_generation(&gs_handle, &enable);
1729  if (res != 0)
1730  {
1731  mfrc522_interface_debug_print("mfrc522: get rx crc generation failed.\n");
1732  (void)mfrc522_deinit(&gs_handle);
1733 
1734  return 1;
1735  }
1736  mfrc522_interface_debug_print("mfrc522: check rx crc generation %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1737 
1738  /* disable */
1740  if (res != 0)
1741  {
1742  mfrc522_interface_debug_print("mfrc522: set rx crc generation failed.\n");
1743  (void)mfrc522_deinit(&gs_handle);
1744 
1745  return 1;
1746  }
1747  mfrc522_interface_debug_print("mfrc522: set rx crc generation disable.\n");
1748  res = mfrc522_get_rx_crc_generation(&gs_handle, &enable);
1749  if (res != 0)
1750  {
1751  mfrc522_interface_debug_print("mfrc522: get rx crc generation failed.\n");
1752  (void)mfrc522_deinit(&gs_handle);
1753 
1754  return 1;
1755  }
1756  mfrc522_interface_debug_print("mfrc522: check rx crc generation %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1757 
1758  /* mfrc522_set_rx_speed/mfrc522_get_rx_speed test */
1759  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_speed/mfrc522_get_rx_speed test.\n");
1760 
1761  /* 106 kBd */
1762  res = mfrc522_set_rx_speed(&gs_handle, MFRC522_SPEED_106_KBD);
1763  if (res != 0)
1764  {
1765  mfrc522_interface_debug_print("mfrc522: set rx speed failed.\n");
1766  (void)mfrc522_deinit(&gs_handle);
1767 
1768  return 1;
1769  }
1770  mfrc522_interface_debug_print("mfrc522: set rx speed 106 kBd.\n");
1771  res = mfrc522_get_rx_speed(&gs_handle, &speed);
1772  if (res != 0)
1773  {
1774  mfrc522_interface_debug_print("mfrc522: get rx speed failed.\n");
1775  (void)mfrc522_deinit(&gs_handle);
1776 
1777  return 1;
1778  }
1779  mfrc522_interface_debug_print("mfrc522: check rx speed %s.\n", speed == MFRC522_SPEED_106_KBD ? "ok" : "error");
1780 
1781  /* 212 kBd */
1782  res = mfrc522_set_rx_speed(&gs_handle, MFRC522_SPEED_212_KBD);
1783  if (res != 0)
1784  {
1785  mfrc522_interface_debug_print("mfrc522: set rx speed failed.\n");
1786  (void)mfrc522_deinit(&gs_handle);
1787 
1788  return 1;
1789  }
1790  mfrc522_interface_debug_print("mfrc522: set rx speed 212 kBd.\n");
1791  res = mfrc522_get_rx_speed(&gs_handle, &speed);
1792  if (res != 0)
1793  {
1794  mfrc522_interface_debug_print("mfrc522: get rx speed failed.\n");
1795  (void)mfrc522_deinit(&gs_handle);
1796 
1797  return 1;
1798  }
1799  mfrc522_interface_debug_print("mfrc522: check rx speed %s.\n", speed == MFRC522_SPEED_212_KBD ? "ok" : "error");
1800 
1801  /* 424 kBd */
1802  res = mfrc522_set_rx_speed(&gs_handle, MFRC522_SPEED_424_KBD);
1803  if (res != 0)
1804  {
1805  mfrc522_interface_debug_print("mfrc522: set rx speed failed.\n");
1806  (void)mfrc522_deinit(&gs_handle);
1807 
1808  return 1;
1809  }
1810  mfrc522_interface_debug_print("mfrc522: set rx speed 424 kBd.\n");
1811  res = mfrc522_get_rx_speed(&gs_handle, &speed);
1812  if (res != 0)
1813  {
1814  mfrc522_interface_debug_print("mfrc522: get rx speed failed.\n");
1815  (void)mfrc522_deinit(&gs_handle);
1816 
1817  return 1;
1818  }
1819  mfrc522_interface_debug_print("mfrc522: check rx speed %s.\n", speed == MFRC522_SPEED_424_KBD ? "ok" : "error");
1820 
1821  /* 848 kBd */
1822  res = mfrc522_set_rx_speed(&gs_handle, MFRC522_SPEED_848_KBD);
1823  if (res != 0)
1824  {
1825  mfrc522_interface_debug_print("mfrc522: set rx speed failed.\n");
1826  (void)mfrc522_deinit(&gs_handle);
1827 
1828  return 1;
1829  }
1830  mfrc522_interface_debug_print("mfrc522: set rx speed 848 kBd.\n");
1831  res = mfrc522_get_rx_speed(&gs_handle, &speed);
1832  if (res != 0)
1833  {
1834  mfrc522_interface_debug_print("mfrc522: get rx speed failed.\n");
1835  (void)mfrc522_deinit(&gs_handle);
1836 
1837  return 1;
1838  }
1839  mfrc522_interface_debug_print("mfrc522: check rx speed %s.\n", speed == MFRC522_SPEED_848_KBD ? "ok" : "error");
1840 
1841  /* mfrc522_set_rx_no_error/mfrc522_get_rx_no_error test */
1842  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_no_error/mfrc522_get_rx_no_error test.\n");
1843 
1844  /* enable */
1845  res = mfrc522_set_rx_no_error(&gs_handle, MFRC522_BOOL_TRUE);
1846  if (res != 0)
1847  {
1848  mfrc522_interface_debug_print("mfrc522: set rx no error failed.\n");
1849  (void)mfrc522_deinit(&gs_handle);
1850 
1851  return 1;
1852  }
1853  mfrc522_interface_debug_print("mfrc522: set rx no error enable.\n");
1854  res = mfrc522_get_rx_no_error(&gs_handle, &enable);
1855  if (res != 0)
1856  {
1857  mfrc522_interface_debug_print("mfrc522: get rx no error failed.\n");
1858  (void)mfrc522_deinit(&gs_handle);
1859 
1860  return 1;
1861  }
1862  mfrc522_interface_debug_print("mfrc522: check rx no error %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1863 
1864  /* disable */
1865  res = mfrc522_set_rx_no_error(&gs_handle, MFRC522_BOOL_FALSE);
1866  if (res != 0)
1867  {
1868  mfrc522_interface_debug_print("mfrc522: set rx no error failed.\n");
1869  (void)mfrc522_deinit(&gs_handle);
1870 
1871  return 1;
1872  }
1873  mfrc522_interface_debug_print("mfrc522: set rx no error disable.\n");
1874  res = mfrc522_get_rx_no_error(&gs_handle, &enable);
1875  if (res != 0)
1876  {
1877  mfrc522_interface_debug_print("mfrc522: get rx no error failed.\n");
1878  (void)mfrc522_deinit(&gs_handle);
1879 
1880  return 1;
1881  }
1882  mfrc522_interface_debug_print("mfrc522: check rx no error %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1883 
1884  /* mfrc522_set_rx_multiple/mfrc522_get_rx_multiple test */
1885  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_multiple/mfrc522_get_rx_multiple test.\n");
1886 
1887  /* enable */
1888  res = mfrc522_set_rx_multiple(&gs_handle, MFRC522_BOOL_TRUE);
1889  if (res != 0)
1890  {
1891  mfrc522_interface_debug_print("mfrc522: set rx multiple failed.\n");
1892  (void)mfrc522_deinit(&gs_handle);
1893 
1894  return 1;
1895  }
1896  mfrc522_interface_debug_print("mfrc522: set rx multiple enable.\n");
1897  res = mfrc522_get_rx_multiple(&gs_handle, &enable);
1898  if (res != 0)
1899  {
1900  mfrc522_interface_debug_print("mfrc522: get rx multiple failed.\n");
1901  (void)mfrc522_deinit(&gs_handle);
1902 
1903  return 1;
1904  }
1905  mfrc522_interface_debug_print("mfrc522: check rx multiple %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1906 
1907  /* disable */
1908  res = mfrc522_set_rx_multiple(&gs_handle, MFRC522_BOOL_FALSE);
1909  if (res != 0)
1910  {
1911  mfrc522_interface_debug_print("mfrc522: set rx multiple failed.\n");
1912  (void)mfrc522_deinit(&gs_handle);
1913 
1914  return 1;
1915  }
1916  mfrc522_interface_debug_print("mfrc522: set rx multiple disable.\n");
1917  res = mfrc522_get_rx_multiple(&gs_handle, &enable);
1918  if (res != 0)
1919  {
1920  mfrc522_interface_debug_print("mfrc522: get rx multiple failed.\n");
1921  (void)mfrc522_deinit(&gs_handle);
1922 
1923  return 1;
1924  }
1925  mfrc522_interface_debug_print("mfrc522: check rx multiple %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1926 
1927  /* mfrc522_set_antenna_driver/mfrc522_get_antenna_driver test */
1928  mfrc522_interface_debug_print("mfrc522: mfrc522_set_antenna_driver/mfrc522_get_antenna_driver test.\n");
1929 
1930  /* enable */
1932  if (res != 0)
1933  {
1934  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
1935  (void)mfrc522_deinit(&gs_handle);
1936 
1937  return 1;
1938  }
1939  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx2 rf on enable.\n");
1941  if (res != 0)
1942  {
1943  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
1944  (void)mfrc522_deinit(&gs_handle);
1945 
1946  return 1;
1947  }
1948  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1949 
1950  /* disable */
1952  if (res != 0)
1953  {
1954  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
1955  (void)mfrc522_deinit(&gs_handle);
1956 
1957  return 1;
1958  }
1959  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx2 rf on disable.\n");
1961  if (res != 0)
1962  {
1963  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
1964  (void)mfrc522_deinit(&gs_handle);
1965 
1966  return 1;
1967  }
1968  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
1969 
1970  /* enable */
1972  if (res != 0)
1973  {
1974  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
1975  (void)mfrc522_deinit(&gs_handle);
1976 
1977  return 1;
1978  }
1979  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx1 rf on enable.\n");
1981  if (res != 0)
1982  {
1983  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
1984  (void)mfrc522_deinit(&gs_handle);
1985 
1986  return 1;
1987  }
1988  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
1989 
1990  /* disable */
1992  if (res != 0)
1993  {
1994  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
1995  (void)mfrc522_deinit(&gs_handle);
1996 
1997  return 1;
1998  }
1999  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx1 rf on disable.\n");
2001  if (res != 0)
2002  {
2003  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2004  (void)mfrc522_deinit(&gs_handle);
2005 
2006  return 1;
2007  }
2008  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2009 
2010  /* enable */
2012  if (res != 0)
2013  {
2014  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2015  (void)mfrc522_deinit(&gs_handle);
2016 
2017  return 1;
2018  }
2019  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx2 rf off enable.\n");
2021  if (res != 0)
2022  {
2023  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2024  (void)mfrc522_deinit(&gs_handle);
2025 
2026  return 1;
2027  }
2028  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2029 
2030  /* disable */
2032  if (res != 0)
2033  {
2034  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2035  (void)mfrc522_deinit(&gs_handle);
2036 
2037  return 1;
2038  }
2039  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx2 rf off disable.\n");
2041  if (res != 0)
2042  {
2043  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2044  (void)mfrc522_deinit(&gs_handle);
2045 
2046  return 1;
2047  }
2048  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2049 
2050  /* enable */
2052  if (res != 0)
2053  {
2054  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2055  (void)mfrc522_deinit(&gs_handle);
2056 
2057  return 1;
2058  }
2059  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx1 rf off enable.\n");
2061  if (res != 0)
2062  {
2063  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2064  (void)mfrc522_deinit(&gs_handle);
2065 
2066  return 1;
2067  }
2068  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2069 
2070  /* disable */
2072  if (res != 0)
2073  {
2074  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2075  (void)mfrc522_deinit(&gs_handle);
2076 
2077  return 1;
2078  }
2079  mfrc522_interface_debug_print("mfrc522: set antenna driver inv tx1 rf off disable.\n");
2081  if (res != 0)
2082  {
2083  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2084  (void)mfrc522_deinit(&gs_handle);
2085 
2086  return 1;
2087  }
2088  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2089 
2090  /* enable */
2092  if (res != 0)
2093  {
2094  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2095  (void)mfrc522_deinit(&gs_handle);
2096 
2097  return 1;
2098  }
2099  mfrc522_interface_debug_print("mfrc522: set antenna driver tx2 cw enable.\n");
2100  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX2_CW, &enable);
2101  if (res != 0)
2102  {
2103  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2104  (void)mfrc522_deinit(&gs_handle);
2105 
2106  return 1;
2107  }
2108  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2109 
2110  /* disable */
2112  if (res != 0)
2113  {
2114  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2115  (void)mfrc522_deinit(&gs_handle);
2116 
2117  return 1;
2118  }
2119  mfrc522_interface_debug_print("mfrc522: set antenna driver tx2 cw disable.\n");
2120  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX2_CW, &enable);
2121  if (res != 0)
2122  {
2123  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2124  (void)mfrc522_deinit(&gs_handle);
2125 
2126  return 1;
2127  }
2128  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2129 
2130  /* enable */
2132  if (res != 0)
2133  {
2134  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2135  (void)mfrc522_deinit(&gs_handle);
2136 
2137  return 1;
2138  }
2139  mfrc522_interface_debug_print("mfrc522: set antenna driver tx2 rf enable.\n");
2140  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX2_RF, &enable);
2141  if (res != 0)
2142  {
2143  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2144  (void)mfrc522_deinit(&gs_handle);
2145 
2146  return 1;
2147  }
2148  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2149 
2150  /* disable */
2152  if (res != 0)
2153  {
2154  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2155  (void)mfrc522_deinit(&gs_handle);
2156 
2157  return 1;
2158  }
2159  mfrc522_interface_debug_print("mfrc522: set antenna driver tx2 rf disable.\n");
2160  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX2_RF, &enable);
2161  if (res != 0)
2162  {
2163  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2164  (void)mfrc522_deinit(&gs_handle);
2165 
2166  return 1;
2167  }
2168  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2169 
2170  /* enable */
2172  if (res != 0)
2173  {
2174  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2175  (void)mfrc522_deinit(&gs_handle);
2176 
2177  return 1;
2178  }
2179  mfrc522_interface_debug_print("mfrc522: set antenna driver tx1 rf enable.\n");
2180  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX1_RF, &enable);
2181  if (res != 0)
2182  {
2183  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2184  (void)mfrc522_deinit(&gs_handle);
2185 
2186  return 1;
2187  }
2188  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2189 
2190  /* disable */
2192  if (res != 0)
2193  {
2194  mfrc522_interface_debug_print("mfrc522: set antenna driver failed.\n");
2195  (void)mfrc522_deinit(&gs_handle);
2196 
2197  return 1;
2198  }
2199  mfrc522_interface_debug_print("mfrc522: set antenna driver tx1 rf disable.\n");
2200  res = mfrc522_get_antenna_driver(&gs_handle, MFRC522_ANTENNA_DRIVER_TX1_RF, &enable);
2201  if (res != 0)
2202  {
2203  mfrc522_interface_debug_print("mfrc522: get antenna driver failed.\n");
2204  (void)mfrc522_deinit(&gs_handle);
2205 
2206  return 1;
2207  }
2208  mfrc522_interface_debug_print("mfrc522: check antenna driver %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2209 
2210  /* mfrc522_set_force_100_ask/mfrc522_get_force_100_ask test */
2211  mfrc522_interface_debug_print("mfrc522: mfrc522_set_force_100_ask/mfrc522_get_force_100_ask test.\n");
2212 
2213  /* enable */
2214  res = mfrc522_set_force_100_ask(&gs_handle, MFRC522_BOOL_TRUE);
2215  if (res != 0)
2216  {
2217  mfrc522_interface_debug_print("mfrc522: set force 100 ask failed.\n");
2218  (void)mfrc522_deinit(&gs_handle);
2219 
2220  return 1;
2221  }
2222  mfrc522_interface_debug_print("mfrc522: set force 100 ask enable.\n");
2223  res = mfrc522_get_force_100_ask(&gs_handle, &enable);
2224  if (res != 0)
2225  {
2226  mfrc522_interface_debug_print("mfrc522: get force 100 ask failed.\n");
2227  (void)mfrc522_deinit(&gs_handle);
2228 
2229  return 1;
2230  }
2231  mfrc522_interface_debug_print("mfrc522: check force 100 ask %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2232 
2233  /* disable */
2234  res = mfrc522_set_force_100_ask(&gs_handle, MFRC522_BOOL_FALSE);
2235  if (res != 0)
2236  {
2237  mfrc522_interface_debug_print("mfrc522: set force 100 ask failed.\n");
2238  (void)mfrc522_deinit(&gs_handle);
2239 
2240  return 1;
2241  }
2242  mfrc522_interface_debug_print("mfrc522: set force 100 ask disable.\n");
2243  res = mfrc522_get_force_100_ask(&gs_handle, &enable);
2244  if (res != 0)
2245  {
2246  mfrc522_interface_debug_print("mfrc522: get force 100 ask failed.\n");
2247  (void)mfrc522_deinit(&gs_handle);
2248 
2249  return 1;
2250  }
2251  mfrc522_interface_debug_print("mfrc522: check force 100 ask %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2252 
2253  /* mfrc522_set_tx_input/mfrc522_get_tx_input test */
2254  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_input/mfrc522_get_tx_input test.\n");
2255 
2256  /* 3 state */
2258  if (res != 0)
2259  {
2260  mfrc522_interface_debug_print("mfrc522: set tx input failed.\n");
2261  (void)mfrc522_deinit(&gs_handle);
2262 
2263  return 1;
2264  }
2265  mfrc522_interface_debug_print("mfrc522: set tx input 3 state.\n");
2266  res = mfrc522_get_tx_input(&gs_handle, &tx_input);
2267  if (res != 0)
2268  {
2269  mfrc522_interface_debug_print("mfrc522: get tx input failed.\n");
2270  (void)mfrc522_deinit(&gs_handle);
2271 
2272  return 1;
2273  }
2274  mfrc522_interface_debug_print("mfrc522: check tx input %s.\n", tx_input == MFRC522_TX_INPUT_3_STATE ? "ok" : "error");
2275 
2276  /* internal encoder */
2278  if (res != 0)
2279  {
2280  mfrc522_interface_debug_print("mfrc522: set tx input failed.\n");
2281  (void)mfrc522_deinit(&gs_handle);
2282 
2283  return 1;
2284  }
2285  mfrc522_interface_debug_print("mfrc522: set tx input internal encoder.\n");
2286  res = mfrc522_get_tx_input(&gs_handle, &tx_input);
2287  if (res != 0)
2288  {
2289  mfrc522_interface_debug_print("mfrc522: get tx input failed.\n");
2290  (void)mfrc522_deinit(&gs_handle);
2291 
2292  return 1;
2293  }
2294  mfrc522_interface_debug_print("mfrc522: check tx input %s.\n", tx_input == MFRC522_TX_INPUT_INTERNAL_ENCODER ? "ok" : "error");
2295 
2296  /* mfin pin */
2298  if (res != 0)
2299  {
2300  mfrc522_interface_debug_print("mfrc522: set tx input failed.\n");
2301  (void)mfrc522_deinit(&gs_handle);
2302 
2303  return 1;
2304  }
2305  mfrc522_interface_debug_print("mfrc522: set tx input mfin pin.\n");
2306  res = mfrc522_get_tx_input(&gs_handle, &tx_input);
2307  if (res != 0)
2308  {
2309  mfrc522_interface_debug_print("mfrc522: get tx input failed.\n");
2310  (void)mfrc522_deinit(&gs_handle);
2311 
2312  return 1;
2313  }
2314  mfrc522_interface_debug_print("mfrc522: check tx input %s.\n", tx_input == MFRC522_TX_INPUT_MFIN_PIN ? "ok" : "error");
2315 
2316  /* control */
2318  if (res != 0)
2319  {
2320  mfrc522_interface_debug_print("mfrc522: set tx input failed.\n");
2321  (void)mfrc522_deinit(&gs_handle);
2322 
2323  return 1;
2324  }
2325  mfrc522_interface_debug_print("mfrc522: set tx input control.\n");
2326  res = mfrc522_get_tx_input(&gs_handle, &tx_input);
2327  if (res != 0)
2328  {
2329  mfrc522_interface_debug_print("mfrc522: get tx input failed.\n");
2330  (void)mfrc522_deinit(&gs_handle);
2331 
2332  return 1;
2333  }
2334  mfrc522_interface_debug_print("mfrc522: check tx input %s.\n", tx_input == MFRC522_TX_INPUT_CONTROL ? "ok" : "error");
2335 
2336  /* mfrc522_set_mfout_input/mfrc522_get_mfout_input test */
2337  mfrc522_interface_debug_print("mfrc522: mfrc522_set_mfout_input/mfrc522_get_mfout_input test.\n");
2338 
2339  /* 3 state */
2341  if (res != 0)
2342  {
2343  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2344  (void)mfrc522_deinit(&gs_handle);
2345 
2346  return 1;
2347  }
2348  mfrc522_interface_debug_print("mfrc522: set mfout input 3 state.\n");
2349  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2350  if (res != 0)
2351  {
2352  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2353  (void)mfrc522_deinit(&gs_handle);
2354 
2355  return 1;
2356  }
2357  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_3_STATE ? "ok" : "error");
2358 
2359  /* low */
2361  if (res != 0)
2362  {
2363  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2364  (void)mfrc522_deinit(&gs_handle);
2365 
2366  return 1;
2367  }
2368  mfrc522_interface_debug_print("mfrc522: set mfout input low.\n");
2369  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2370  if (res != 0)
2371  {
2372  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2373  (void)mfrc522_deinit(&gs_handle);
2374 
2375  return 1;
2376  }
2377  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_LOW ? "ok" : "error");
2378 
2379  /* high */
2381  if (res != 0)
2382  {
2383  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2384  (void)mfrc522_deinit(&gs_handle);
2385 
2386  return 1;
2387  }
2388  mfrc522_interface_debug_print("mfrc522: set mfout input high.\n");
2389  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2390  if (res != 0)
2391  {
2392  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2393  (void)mfrc522_deinit(&gs_handle);
2394 
2395  return 1;
2396  }
2397  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_HIGH ? "ok" : "error");
2398 
2399  /* test */
2401  if (res != 0)
2402  {
2403  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2404  (void)mfrc522_deinit(&gs_handle);
2405 
2406  return 1;
2407  }
2408  mfrc522_interface_debug_print("mfrc522: set mfout input test.\n");
2409  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2410  if (res != 0)
2411  {
2412  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2413  (void)mfrc522_deinit(&gs_handle);
2414 
2415  return 1;
2416  }
2417  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_TEST ? "ok" : "error");
2418 
2419  /* internal encoder */
2421  if (res != 0)
2422  {
2423  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2424  (void)mfrc522_deinit(&gs_handle);
2425 
2426  return 1;
2427  }
2428  mfrc522_interface_debug_print("mfrc522: set mfout input internal encoder.\n");
2429  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2430  if (res != 0)
2431  {
2432  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2433  (void)mfrc522_deinit(&gs_handle);
2434 
2435  return 1;
2436  }
2437  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_INTERNAL_ENCODER ? "ok" : "error");
2438 
2439  /* transmitted */
2441  if (res != 0)
2442  {
2443  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2444  (void)mfrc522_deinit(&gs_handle);
2445 
2446  return 1;
2447  }
2448  mfrc522_interface_debug_print("mfrc522: set mfout input transmitted.\n");
2449  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2450  if (res != 0)
2451  {
2452  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2453  (void)mfrc522_deinit(&gs_handle);
2454 
2455  return 1;
2456  }
2457  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_TRANSMITTED ? "ok" : "error");
2458 
2459  /* received */
2461  if (res != 0)
2462  {
2463  mfrc522_interface_debug_print("mfrc522: set mfout input failed.\n");
2464  (void)mfrc522_deinit(&gs_handle);
2465 
2466  return 1;
2467  }
2468  mfrc522_interface_debug_print("mfrc522: set mfout input received.\n");
2469  res = mfrc522_get_mfout_input(&gs_handle, &mfout_input);
2470  if (res != 0)
2471  {
2472  mfrc522_interface_debug_print("mfrc522: get mfout input failed.\n");
2473  (void)mfrc522_deinit(&gs_handle);
2474 
2475  return 1;
2476  }
2477  mfrc522_interface_debug_print("mfrc522: check mfout input %s.\n", mfout_input == MFRC522_MFOUT_INPUT_RECEIVED ? "ok" : "error");
2478 
2479  /* mfrc522_set_contactless_uart_input/mfrc522_get_contactless_uart_input test */
2480  mfrc522_interface_debug_print("mfrc522: mfrc522_set_contactless_uart_input/mfrc522_get_contactless_uart_input test.\n");
2481 
2482  /* set constant low */
2484  if (res != 0)
2485  {
2486  mfrc522_interface_debug_print("mfrc522: set contactless uart input failed.\n");
2487  (void)mfrc522_deinit(&gs_handle);
2488 
2489  return 1;
2490  }
2491  mfrc522_interface_debug_print("mfrc522: set contactless uart input constant low.\n");
2492  res = mfrc522_get_contactless_uart_input(&gs_handle, &uart_input);
2493  if (res != 0)
2494  {
2495  mfrc522_interface_debug_print("mfrc522: get contactless uart input failed.\n");
2496  (void)mfrc522_deinit(&gs_handle);
2497 
2498  return 1;
2499  }
2500  mfrc522_interface_debug_print("mfrc522: check contactless uart input %s.\n", uart_input == MFRC522_CONTACTLESS_UART_INPUT_CONSTANT_LOW ? "ok" : "error");
2501 
2502  /* set mfin pin */
2504  if (res != 0)
2505  {
2506  mfrc522_interface_debug_print("mfrc522: set contactless uart input failed.\n");
2507  (void)mfrc522_deinit(&gs_handle);
2508 
2509  return 1;
2510  }
2511  mfrc522_interface_debug_print("mfrc522: set contactless uart input mfin pin.\n");
2512  res = mfrc522_get_contactless_uart_input(&gs_handle, &uart_input);
2513  if (res != 0)
2514  {
2515  mfrc522_interface_debug_print("mfrc522: get contactless uart input failed.\n");
2516  (void)mfrc522_deinit(&gs_handle);
2517 
2518  return 1;
2519  }
2520  mfrc522_interface_debug_print("mfrc522: check contactless uart input %s.\n", uart_input == MFRC522_CONTACTLESS_UART_MFIN_PIN ? "ok" : "error");
2521 
2522  /* set internal analog module */
2524  if (res != 0)
2525  {
2526  mfrc522_interface_debug_print("mfrc522: set contactless uart input failed.\n");
2527  (void)mfrc522_deinit(&gs_handle);
2528 
2529  return 1;
2530  }
2531  mfrc522_interface_debug_print("mfrc522: set contactless uart input internal analog module.\n");
2532  res = mfrc522_get_contactless_uart_input(&gs_handle, &uart_input);
2533  if (res != 0)
2534  {
2535  mfrc522_interface_debug_print("mfrc522: get contactless uart input failed.\n");
2536  (void)mfrc522_deinit(&gs_handle);
2537 
2538  return 1;
2539  }
2540  mfrc522_interface_debug_print("mfrc522: check contactless uart input %s.\n", uart_input == MFRC522_CONTACTLESS_UART_INTERNAL_ANALOG_MODULE ? "ok" : "error");
2541 
2542  /* set nrz */
2544  if (res != 0)
2545  {
2546  mfrc522_interface_debug_print("mfrc522: set contactless uart input failed.\n");
2547  (void)mfrc522_deinit(&gs_handle);
2548 
2549  return 1;
2550  }
2551  mfrc522_interface_debug_print("mfrc522: set contactless uart input nrz.\n");
2552  res = mfrc522_get_contactless_uart_input(&gs_handle, &uart_input);
2553  if (res != 0)
2554  {
2555  mfrc522_interface_debug_print("mfrc522: get contactless uart input failed.\n");
2556  (void)mfrc522_deinit(&gs_handle);
2557 
2558  return 1;
2559  }
2560  mfrc522_interface_debug_print("mfrc522: check contactless uart input %s.\n", uart_input == MFRC522_CONTACTLESS_UART_NRZ ? "ok" : "error");
2561 
2562  /* mfrc522_set_rx_wait/mfrc522_get_rx_wait test */
2563  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_wait/mfrc522_get_rx_wait test.\n");
2564 
2565  level = rand() % 0x40;
2566  res = mfrc522_set_rx_wait(&gs_handle, level);
2567  if (res != 0)
2568  {
2569  mfrc522_interface_debug_print("mfrc522: set rx wait failed.\n");
2570  (void)mfrc522_deinit(&gs_handle);
2571 
2572  return 1;
2573  }
2574  mfrc522_interface_debug_print("mfrc522: set rx wait 0x%02X.\n", level);
2575  res = mfrc522_get_rx_wait(&gs_handle, &level_check);
2576  if (res != 0)
2577  {
2578  mfrc522_interface_debug_print("mfrc522: get rx wait failed.\n");
2579  (void)mfrc522_deinit(&gs_handle);
2580 
2581  return 1;
2582  }
2583  mfrc522_interface_debug_print("mfrc522: check rx wait %s.\n", level_check == level ? "ok" : "error");
2584 
2585  /* mfrc522_set_min_level/mfrc522_get_min_level test */
2586  mfrc522_interface_debug_print("mfrc522: mfrc522_set_min_level/mfrc522_get_min_level test.\n");
2587 
2588  level = rand() % 0xF;
2589  res = mfrc522_set_min_level(&gs_handle, level);
2590  if (res != 0)
2591  {
2592  mfrc522_interface_debug_print("mfrc522: set min level failed.\n");
2593  (void)mfrc522_deinit(&gs_handle);
2594 
2595  return 1;
2596  }
2597  mfrc522_interface_debug_print("mfrc522: set min level 0x%02X.\n", level);
2598  res = mfrc522_get_min_level(&gs_handle, &level_check);
2599  if (res != 0)
2600  {
2601  mfrc522_interface_debug_print("mfrc522: get min level failed.\n");
2602  (void)mfrc522_deinit(&gs_handle);
2603 
2604  return 1;
2605  }
2606  mfrc522_interface_debug_print("mfrc522: check min level %s.\n", level_check == level ? "ok" : "error");
2607 
2608  /* mfrc522_set_collision_level/mfrc522_get_collision_level test */
2609  mfrc522_interface_debug_print("mfrc522: mfrc522_set_collision_level/mfrc522_get_collision_level test.\n");
2610 
2611  level = rand() % 8;
2612  res = mfrc522_set_collision_level(&gs_handle, level);
2613  if (res != 0)
2614  {
2615  mfrc522_interface_debug_print("mfrc522: set collision level failed.\n");
2616  (void)mfrc522_deinit(&gs_handle);
2617 
2618  return 1;
2619  }
2620  mfrc522_interface_debug_print("mfrc522: set collision level 0x%02X.\n", level);
2621  res = mfrc522_get_collision_level(&gs_handle, &level_check);
2622  if (res != 0)
2623  {
2624  mfrc522_interface_debug_print("mfrc522: get collision level failed.\n");
2625  (void)mfrc522_deinit(&gs_handle);
2626 
2627  return 1;
2628  }
2629  mfrc522_interface_debug_print("mfrc522: check collision level %s.\n", level_check == level ? "ok" : "error");
2630 
2631  /* mfrc522_set_channel_reception/mfrc522_get_channel_reception test */
2632  mfrc522_interface_debug_print("mfrc522: mfrc522_set_channel_reception/mfrc522_get_channel_reception test.\n");
2633 
2634  /* stronger channel */
2636  if (res != 0)
2637  {
2638  mfrc522_interface_debug_print("mfrc522: set channel reception failed.\n");
2639  (void)mfrc522_deinit(&gs_handle);
2640 
2641  return 1;
2642  }
2643  mfrc522_interface_debug_print("mfrc522: set channel reception stronger channel.\n");
2644  res = mfrc522_get_channel_reception(&gs_handle, &reception);
2645  if (res != 0)
2646  {
2647  mfrc522_interface_debug_print("mfrc522: get channel reception failed.\n");
2648  (void)mfrc522_deinit(&gs_handle);
2649 
2650  return 1;
2651  }
2652  mfrc522_interface_debug_print("mfrc522: check channel reception %s.\n", reception == MFRC522_CHANNEL_RECEPTION_STRONGER ? "ok" : "error");
2653 
2654  /* stronger channel and freezes the selected channel */
2656  if (res != 0)
2657  {
2658  mfrc522_interface_debug_print("mfrc522: set channel reception failed.\n");
2659  (void)mfrc522_deinit(&gs_handle);
2660 
2661  return 1;
2662  }
2663  mfrc522_interface_debug_print("mfrc522: set channel reception stronger channel and freezes the selected channel.\n");
2664  res = mfrc522_get_channel_reception(&gs_handle, &reception);
2665  if (res != 0)
2666  {
2667  mfrc522_interface_debug_print("mfrc522: get channel reception failed.\n");
2668  (void)mfrc522_deinit(&gs_handle);
2669 
2670  return 1;
2671  }
2672  mfrc522_interface_debug_print("mfrc522: check channel reception %s.\n", reception == MFRC522_CHANNEL_RECEPTION_STRONGER_FREEZE_SELECTED ? "ok" : "error");
2673 
2674  /* mfrc522_set_fix_iq/mfrc522_get_fix_iq test */
2675  mfrc522_interface_debug_print("mfrc522: mfrc522_set_fix_iq/mfrc522_get_fix_iq test.\n");
2676 
2677  /* enable */
2678  res = mfrc522_set_fix_iq(&gs_handle, MFRC522_BOOL_TRUE);
2679  if (res != 0)
2680  {
2681  mfrc522_interface_debug_print("mfrc522: set fix iq failed.\n");
2682  (void)mfrc522_deinit(&gs_handle);
2683 
2684  return 1;
2685  }
2686  mfrc522_interface_debug_print("mfrc522: set fix iq enable.\n");
2687  res = mfrc522_get_fix_iq(&gs_handle, &enable);
2688  if (res != 0)
2689  {
2690  mfrc522_interface_debug_print("mfrc522: get fix iq failed.\n");
2691  (void)mfrc522_deinit(&gs_handle);
2692 
2693  return 1;
2694  }
2695  mfrc522_interface_debug_print("mfrc522: check fix iq %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2696 
2697  /* disable */
2698  res = mfrc522_set_fix_iq(&gs_handle, MFRC522_BOOL_FALSE);
2699  if (res != 0)
2700  {
2701  mfrc522_interface_debug_print("mfrc522: set fix iq failed.\n");
2702  (void)mfrc522_deinit(&gs_handle);
2703 
2704  return 1;
2705  }
2706  mfrc522_interface_debug_print("mfrc522: set fix iq disable.\n");
2707  res = mfrc522_get_fix_iq(&gs_handle, &enable);
2708  if (res != 0)
2709  {
2710  mfrc522_interface_debug_print("mfrc522: get fix iq failed.\n");
2711  (void)mfrc522_deinit(&gs_handle);
2712 
2713  return 1;
2714  }
2715  mfrc522_interface_debug_print("mfrc522: check fix iq %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2716 
2717  /* mfrc522_set_timer_prescal_even/mfrc522_get_timer_prescal_even test */
2718  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_prescal_even/mfrc522_get_timer_prescal_even test.\n");
2719 
2720  /* enable */
2722  if (res != 0)
2723  {
2724  mfrc522_interface_debug_print("mfrc522: set timer prescal even failed.\n");
2725  (void)mfrc522_deinit(&gs_handle);
2726 
2727  return 1;
2728  }
2729  mfrc522_interface_debug_print("mfrc522: set timer prescal even enable.\n");
2730  res = mfrc522_get_timer_prescal_even(&gs_handle, &enable);
2731  if (res != 0)
2732  {
2733  mfrc522_interface_debug_print("mfrc522: get timer prescal even failed.\n");
2734  (void)mfrc522_deinit(&gs_handle);
2735 
2736  return 1;
2737  }
2738  mfrc522_interface_debug_print("mfrc522: check timer prescal even %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2739 
2740  /* disable */
2742  if (res != 0)
2743  {
2744  mfrc522_interface_debug_print("mfrc522: set timer prescal even failed.\n");
2745  (void)mfrc522_deinit(&gs_handle);
2746 
2747  return 1;
2748  }
2749  mfrc522_interface_debug_print("mfrc522: set timer prescal even disable.\n");
2750  res = mfrc522_get_timer_prescal_even(&gs_handle, &enable);
2751  if (res != 0)
2752  {
2753  mfrc522_interface_debug_print("mfrc522: get timer prescal even failed.\n");
2754  (void)mfrc522_deinit(&gs_handle);
2755 
2756  return 1;
2757  }
2758  mfrc522_interface_debug_print("mfrc522: check timer prescal even %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2759 
2760  /* mfrc522_set_timer_constant_reception/mfrc522_get_timer_constant_reception test */
2761  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_constant_reception/mfrc522_get_timer_constant_reception test.\n");
2762 
2763  level = rand() % 3;
2764  res = mfrc522_set_timer_constant_reception(&gs_handle, level);
2765  if (res != 0)
2766  {
2767  mfrc522_interface_debug_print("mfrc522: set timer constant reception failed.\n");
2768  (void)mfrc522_deinit(&gs_handle);
2769 
2770  return 1;
2771  }
2772  mfrc522_interface_debug_print("mfrc522: set timer constant reception 0x%02X.\n", level);
2773  res = mfrc522_get_timer_constant_reception(&gs_handle, &level_check);
2774  if (res != 0)
2775  {
2776  mfrc522_interface_debug_print("mfrc522: get timer constant reception failed.\n");
2777  (void)mfrc522_deinit(&gs_handle);
2778 
2779  return 1;
2780  }
2781  mfrc522_interface_debug_print("mfrc522: check timer constant reception %s.\n", level == level_check ? "ok" : "error");
2782 
2783  /* mfrc522_set_timer_constant_sync/mfrc522_get_timer_constant_sync test */
2784  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_constant_sync/mfrc522_get_timer_constant_sync test.\n");
2785 
2786  level = rand() % 3;
2787  res = mfrc522_set_timer_constant_sync(&gs_handle, level);
2788  if (res != 0)
2789  {
2790  mfrc522_interface_debug_print("mfrc522: set timer constant sync failed.\n");
2791  (void)mfrc522_deinit(&gs_handle);
2792 
2793  return 1;
2794  }
2795  mfrc522_interface_debug_print("mfrc522: set timer constant sync 0x%02X.\n", level);
2796  res = mfrc522_get_timer_constant_sync(&gs_handle, &level_check);
2797  if (res != 0)
2798  {
2799  mfrc522_interface_debug_print("mfrc522: get timer constant sync failed.\n");
2800  (void)mfrc522_deinit(&gs_handle);
2801 
2802  return 1;
2803  }
2804  mfrc522_interface_debug_print("mfrc522: check timer constant sync %s.\n", level == level_check ? "ok" : "error");
2805 
2806  /* mfrc522_set_tx_wait/mfrc522_get_tx_wait test */
2807  mfrc522_interface_debug_print("mfrc522: mfrc522_set_tx_wait/mfrc522_get_tx_wait test.\n");
2808 
2809  level = rand() % 3;
2810  res = mfrc522_set_tx_wait(&gs_handle, level);
2811  if (res != 0)
2812  {
2813  mfrc522_interface_debug_print("mfrc522: set tx wait failed.\n");
2814  (void)mfrc522_deinit(&gs_handle);
2815 
2816  return 1;
2817  }
2818  mfrc522_interface_debug_print("mfrc522: set tx wait 0x%02X.\n", level);
2819  res = mfrc522_get_tx_wait(&gs_handle, &level_check);
2820  if (res != 0)
2821  {
2822  mfrc522_interface_debug_print("mfrc522: get tx wait failed.\n");
2823  (void)mfrc522_deinit(&gs_handle);
2824 
2825  return 1;
2826  }
2827  mfrc522_interface_debug_print("mfrc522: check tx wait %s.\n", level == level_check ? "ok" : "error");
2828 
2829  /* mfrc522_set_parity_disable/mfrc522_get_parity_disable test */
2830  mfrc522_interface_debug_print("mfrc522: mfrc522_set_parity_disable/mfrc522_get_parity_disable test.\n");
2831 
2832  /* enable */
2833  res = mfrc522_set_parity_disable(&gs_handle, MFRC522_BOOL_TRUE);
2834  if (res != 0)
2835  {
2836  mfrc522_interface_debug_print("mfrc522: set parity disable failed.\n");
2837  (void)mfrc522_deinit(&gs_handle);
2838 
2839  return 1;
2840  }
2841  mfrc522_interface_debug_print("mfrc522: set parity disable enable.\n");
2842  res = mfrc522_get_parity_disable(&gs_handle, &enable);
2843  if (res != 0)
2844  {
2845  mfrc522_interface_debug_print("mfrc522: get parity disable failed.\n");
2846  (void)mfrc522_deinit(&gs_handle);
2847 
2848  return 1;
2849  }
2850  mfrc522_interface_debug_print("mfrc522: check parity disable %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
2851 
2852  /* disable */
2854  if (res != 0)
2855  {
2856  mfrc522_interface_debug_print("mfrc522: set parity disable failed.\n");
2857  (void)mfrc522_deinit(&gs_handle);
2858 
2859  return 1;
2860  }
2861  mfrc522_interface_debug_print("mfrc522: set parity disable disable.\n");
2862  res = mfrc522_get_parity_disable(&gs_handle, &enable);
2863  if (res != 0)
2864  {
2865  mfrc522_interface_debug_print("mfrc522: get parity disable failed.\n");
2866  (void)mfrc522_deinit(&gs_handle);
2867 
2868  return 1;
2869  }
2870  mfrc522_interface_debug_print("mfrc522: check parity disable %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
2871 
2872  if (interface != MFRC522_INTERFACE_UART)
2873  {
2874  /* mfrc522_set_serial_speed/mfrc522_get_serial_speed test */
2875  mfrc522_interface_debug_print("mfrc522: mfrc522_set_serial_speed/mfrc522_get_serial_speed test.\n");
2876 
2877  t0 = rand() % 0x8;
2878  t1 = rand() % 0x20;
2879  res = mfrc522_set_serial_speed(&gs_handle, t0, t1);
2880  if (res != 0)
2881  {
2882  mfrc522_interface_debug_print("mfrc522: set serial speed failed.\n");
2883  (void)mfrc522_deinit(&gs_handle);
2884 
2885  return 1;
2886  }
2887  mfrc522_interface_debug_print("mfrc522: set serial speed t0 0x%02X.\n", t0);
2888  mfrc522_interface_debug_print("mfrc522: set serial speed t1 0x%02X.\n", t1);
2889  res = mfrc522_get_serial_speed(&gs_handle, &t0_check, &t1_check);
2890  if (res != 0)
2891  {
2892  mfrc522_interface_debug_print("mfrc522: get serial speed failed.\n");
2893  (void)mfrc522_deinit(&gs_handle);
2894 
2895  return 1;
2896  }
2897  mfrc522_interface_debug_print("mfrc522: check serial speed t0 %s.\n", t0 == t0_check ? "ok" : "error");
2898  mfrc522_interface_debug_print("mfrc522: check serial speed t1 %s.\n", t1 == t1_check ? "ok" : "error");
2899  }
2900 
2901  /* mfrc522_get_crc test */
2902  mfrc522_interface_debug_print("mfrc522: mfrc522_get_crc test.\n");
2903 
2904  /* get the crc */
2905  res = mfrc522_get_crc(&gs_handle, &crc);
2906  if (res != 0)
2907  {
2908  mfrc522_interface_debug_print("mfrc522: get crc failed.\n");
2909  (void)mfrc522_deinit(&gs_handle);
2910 
2911  return 1;
2912  }
2913  mfrc522_interface_debug_print("mfrc522: crc is 0x%04X.\n", crc);
2914 
2915  /* mfrc522_set_modulation_width/mfrc522_get_modulation_width test */
2916  mfrc522_interface_debug_print("mfrc522: mfrc522_set_modulation_width/mfrc522_get_modulation_width test.\n");
2917 
2918  level = rand() % 256;
2919  res = mfrc522_set_modulation_width(&gs_handle, level);
2920  if (res != 0)
2921  {
2922  mfrc522_interface_debug_print("mfrc522: set modulation width failed.\n");
2923  (void)mfrc522_deinit(&gs_handle);
2924 
2925  return 1;
2926  }
2927  mfrc522_interface_debug_print("mfrc522: set modulation width 0x%02X.\n", level);
2928  res = mfrc522_get_modulation_width(&gs_handle, &level_check);
2929  if (res != 0)
2930  {
2931  mfrc522_interface_debug_print("mfrc522: get modulation width failed.\n");
2932  (void)mfrc522_deinit(&gs_handle);
2933 
2934  return 1;
2935  }
2936  mfrc522_interface_debug_print("mfrc522: check modulation width %s.\n", level == level_check ? "ok" : "error");
2937 
2938  /* mfrc522_set_rx_gain/mfrc522_get_rx_gain test */
2939  mfrc522_interface_debug_print("mfrc522: mfrc522_set_rx_gain/mfrc522_get_rx_gain test.\n");
2940 
2941  /* set the 18 db */
2942  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_18_DB);
2943  if (res != 0)
2944  {
2945  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
2946  (void)mfrc522_deinit(&gs_handle);
2947 
2948  return 1;
2949  }
2950  mfrc522_interface_debug_print("mfrc522: set rx gain 18 db.\n");
2951  res = mfrc522_get_rx_gain(&gs_handle, &gain);
2952  if (res != 0)
2953  {
2954  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
2955  (void)mfrc522_deinit(&gs_handle);
2956 
2957  return 1;
2958  }
2959  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_18_DB ? "ok" : "error");
2960 
2961  /* set the 23 db */
2962  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_23_DB);
2963  if (res != 0)
2964  {
2965  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
2966  (void)mfrc522_deinit(&gs_handle);
2967 
2968  return 1;
2969  }
2970  mfrc522_interface_debug_print("mfrc522: set rx gain 23 db.\n");
2971  res = mfrc522_get_rx_gain(&gs_handle, &gain);
2972  if (res != 0)
2973  {
2974  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
2975  (void)mfrc522_deinit(&gs_handle);
2976 
2977  return 1;
2978  }
2979  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_23_DB ? "ok" : "error");
2980 
2981  /* set the 33 db */
2982  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_33_DB);
2983  if (res != 0)
2984  {
2985  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
2986  (void)mfrc522_deinit(&gs_handle);
2987 
2988  return 1;
2989  }
2990  mfrc522_interface_debug_print("mfrc522: set rx gain 33 db.\n");
2991  res = mfrc522_get_rx_gain(&gs_handle, &gain);
2992  if (res != 0)
2993  {
2994  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
2995  (void)mfrc522_deinit(&gs_handle);
2996 
2997  return 1;
2998  }
2999  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_33_DB ? "ok" : "error");
3000 
3001  /* set the 38 db */
3002  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_38_DB);
3003  if (res != 0)
3004  {
3005  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
3006  (void)mfrc522_deinit(&gs_handle);
3007 
3008  return 1;
3009  }
3010  mfrc522_interface_debug_print("mfrc522: set rx gain 38 db.\n");
3011  res = mfrc522_get_rx_gain(&gs_handle, &gain);
3012  if (res != 0)
3013  {
3014  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
3015  (void)mfrc522_deinit(&gs_handle);
3016 
3017  return 1;
3018  }
3019  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_38_DB ? "ok" : "error");
3020 
3021  /* set the 43 db */
3022  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_43_DB);
3023  if (res != 0)
3024  {
3025  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
3026  (void)mfrc522_deinit(&gs_handle);
3027 
3028  return 1;
3029  }
3030  mfrc522_interface_debug_print("mfrc522: set rx gain 43 db.\n");
3031  res = mfrc522_get_rx_gain(&gs_handle, &gain);
3032  if (res != 0)
3033  {
3034  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
3035  (void)mfrc522_deinit(&gs_handle);
3036 
3037  return 1;
3038  }
3039  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_43_DB ? "ok" : "error");
3040 
3041  /* set the 48 db */
3042  res = mfrc522_set_rx_gain(&gs_handle, MFRC522_RX_GAIN_48_DB);
3043  if (res != 0)
3044  {
3045  mfrc522_interface_debug_print("mfrc522: set rx gain failed.\n");
3046  (void)mfrc522_deinit(&gs_handle);
3047 
3048  return 1;
3049  }
3050  mfrc522_interface_debug_print("mfrc522: set rx gain 48 db.\n");
3051  res = mfrc522_get_rx_gain(&gs_handle, &gain);
3052  if (res != 0)
3053  {
3054  mfrc522_interface_debug_print("mfrc522: get rx gain failed.\n");
3055  (void)mfrc522_deinit(&gs_handle);
3056 
3057  return 1;
3058  }
3059  mfrc522_interface_debug_print("mfrc522: check rx gain %s.\n", gain == MFRC522_RX_GAIN_48_DB ? "ok" : "error");
3060 
3061  /* mfrc522_set_cwgsn/mfrc522_get_cwgsn test */
3062  mfrc522_interface_debug_print("mfrc522: mfrc522_set_cwgsn/mfrc522_get_cwgsn test.\n");
3063 
3064  level = rand() % 0xF;
3065  res = mfrc522_set_cwgsn(&gs_handle, level);
3066  if (res != 0)
3067  {
3068  mfrc522_interface_debug_print("mfrc522: set cwgsn failed.\n");
3069  (void)mfrc522_deinit(&gs_handle);
3070 
3071  return 1;
3072  }
3073  mfrc522_interface_debug_print("mfrc522: set cwgsn 0x%02X.\n", level);
3074  res = mfrc522_get_cwgsn(&gs_handle, &level_check);
3075  if (res != 0)
3076  {
3077  mfrc522_interface_debug_print("mfrc522: get cwgsn failed.\n");
3078  (void)mfrc522_deinit(&gs_handle);
3079 
3080  return 1;
3081  }
3082  mfrc522_interface_debug_print("mfrc522: check cwgsn %s.\n", level == level_check ? "ok" : "error");
3083 
3084  /* mfrc522_set_modgsn/mfrc522_get_modgsn test */
3085  mfrc522_interface_debug_print("mfrc522: mfrc522_set_modgsn/mfrc522_get_modgsn test.\n");
3086 
3087  level = rand() % 0xF;
3088  res = mfrc522_set_modgsn(&gs_handle, level);
3089  if (res != 0)
3090  {
3091  mfrc522_interface_debug_print("mfrc522: set modgsn failed.\n");
3092  (void)mfrc522_deinit(&gs_handle);
3093 
3094  return 1;
3095  }
3096  mfrc522_interface_debug_print("mfrc522: set modgsn 0x%02X.\n", level);
3097  res = mfrc522_get_modgsn(&gs_handle, &level_check);
3098  if (res != 0)
3099  {
3100  mfrc522_interface_debug_print("mfrc522: get modgsn failed.\n");
3101  (void)mfrc522_deinit(&gs_handle);
3102 
3103  return 1;
3104  }
3105  mfrc522_interface_debug_print("mfrc522: check modgsn %s.\n", level == level_check ? "ok" : "error");
3106 
3107  /* mfrc522_set_cwgsp/mfrc522_get_cwgsp test */
3108  mfrc522_interface_debug_print("mfrc522: mfrc522_set_cwgsp/mfrc522_get_cwgsp test.\n");
3109 
3110  level = rand() % 0x40;
3111  res = mfrc522_set_cwgsp(&gs_handle, level);
3112  if (res != 0)
3113  {
3114  mfrc522_interface_debug_print("mfrc522: set cwgsp failed.\n");
3115  (void)mfrc522_deinit(&gs_handle);
3116 
3117  return 1;
3118  }
3119  mfrc522_interface_debug_print("mfrc522: set cwgsp 0x%02X.\n", level);
3120  res = mfrc522_get_cwgsp(&gs_handle, &level_check);
3121  if (res != 0)
3122  {
3123  mfrc522_interface_debug_print("mfrc522: get cwgsp failed.\n");
3124  (void)mfrc522_deinit(&gs_handle);
3125 
3126  return 1;
3127  }
3128  mfrc522_interface_debug_print("mfrc522: check cwgsp %s.\n", level == level_check ? "ok" : "error");
3129 
3130  /* mfrc522_set_modgsp/mfrc522_get_modgsp test */
3131  mfrc522_interface_debug_print("mfrc522: mfrc522_set_modgsp/mfrc522_get_modgsp test.\n");
3132 
3133  level = rand() % 0x40;
3134  res = mfrc522_set_modgsp(&gs_handle, level);
3135  if (res != 0)
3136  {
3137  mfrc522_interface_debug_print("mfrc522: set modgsp failed.\n");
3138  (void)mfrc522_deinit(&gs_handle);
3139 
3140  return 1;
3141  }
3142  mfrc522_interface_debug_print("mfrc522: set modgsp 0x%02X.\n", level);
3143  res = mfrc522_get_modgsp(&gs_handle, &level_check);
3144  if (res != 0)
3145  {
3146  mfrc522_interface_debug_print("mfrc522: get modgsp failed.\n");
3147  (void)mfrc522_deinit(&gs_handle);
3148 
3149  return 1;
3150  }
3151  mfrc522_interface_debug_print("mfrc522: check modgsp %s.\n", level == level_check ? "ok" : "error");
3152 
3153  /* mfrc522_set_timer_auto/mfrc522_get_timer_auto test */
3154  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_auto/mfrc522_get_timer_auto test.\n");
3155 
3156  /* enable */
3157  res = mfrc522_set_timer_auto(&gs_handle, MFRC522_BOOL_TRUE);
3158  if (res != 0)
3159  {
3160  mfrc522_interface_debug_print("mfrc522: set timer auto failed.\n");
3161  (void)mfrc522_deinit(&gs_handle);
3162 
3163  return 1;
3164  }
3165  mfrc522_interface_debug_print("mfrc522: set timer auto enable.\n");
3166  res = mfrc522_get_timer_auto(&gs_handle, &enable);
3167  if (res != 0)
3168  {
3169  mfrc522_interface_debug_print("mfrc522: get timer auto failed.\n");
3170  (void)mfrc522_deinit(&gs_handle);
3171 
3172  return 1;
3173  }
3174  mfrc522_interface_debug_print("mfrc522: check timer auto %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3175 
3176  /* disable */
3177  res = mfrc522_set_timer_auto(&gs_handle, MFRC522_BOOL_FALSE);
3178  if (res != 0)
3179  {
3180  mfrc522_interface_debug_print("mfrc522: set timer auto failed.\n");
3181  (void)mfrc522_deinit(&gs_handle);
3182 
3183  return 1;
3184  }
3185  mfrc522_interface_debug_print("mfrc522: set timer auto disable.\n");
3186  res = mfrc522_get_timer_auto(&gs_handle, &enable);
3187  if (res != 0)
3188  {
3189  mfrc522_interface_debug_print("mfrc522: get timer auto failed.\n");
3190  (void)mfrc522_deinit(&gs_handle);
3191 
3192  return 1;
3193  }
3194  mfrc522_interface_debug_print("mfrc522: check timer auto %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3195 
3196  /* mfrc522_set_timer_gated_mode/mfrc522_get_timer_gated_mode test */
3197  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_gated_mode/mfrc522_get_timer_gated_mode test.\n");
3198 
3199  /* none */
3201  if (res != 0)
3202  {
3203  mfrc522_interface_debug_print("mfrc522: set timer gated mode failed.\n");
3204  (void)mfrc522_deinit(&gs_handle);
3205 
3206  return 1;
3207  }
3208  mfrc522_interface_debug_print("mfrc522: set timer gated mode none.\n");
3209  res = mfrc522_get_timer_gated_mode(&gs_handle, &gated_mode);
3210  if (res != 0)
3211  {
3212  mfrc522_interface_debug_print("mfrc522: get timer gated mode failed.\n");
3213  (void)mfrc522_deinit(&gs_handle);
3214 
3215  return 1;
3216  }
3217  mfrc522_interface_debug_print("mfrc522: check timer gated mode %s.\n", gated_mode == MFRC522_TIMER_GATED_MODE_NONE ? "ok" : "error");
3218 
3219  /* mfin */
3221  if (res != 0)
3222  {
3223  mfrc522_interface_debug_print("mfrc522: set timer gated mode failed.\n");
3224  (void)mfrc522_deinit(&gs_handle);
3225 
3226  return 1;
3227  }
3228  mfrc522_interface_debug_print("mfrc522: set timer gated mode mfin.\n");
3229  res = mfrc522_get_timer_gated_mode(&gs_handle, &gated_mode);
3230  if (res != 0)
3231  {
3232  mfrc522_interface_debug_print("mfrc522: get timer gated mode failed.\n");
3233  (void)mfrc522_deinit(&gs_handle);
3234 
3235  return 1;
3236  }
3237  mfrc522_interface_debug_print("mfrc522: check timer gated mode %s.\n", gated_mode == MFRC522_TIMER_GATED_MODE_MFIN ? "ok" : "error");
3238 
3239  /* aux1 */
3241  if (res != 0)
3242  {
3243  mfrc522_interface_debug_print("mfrc522: set timer gated mode failed.\n");
3244  (void)mfrc522_deinit(&gs_handle);
3245 
3246  return 1;
3247  }
3248  mfrc522_interface_debug_print("mfrc522: set timer gated mode aux1.\n");
3249  res = mfrc522_get_timer_gated_mode(&gs_handle, &gated_mode);
3250  if (res != 0)
3251  {
3252  mfrc522_interface_debug_print("mfrc522: get timer gated mode failed.\n");
3253  (void)mfrc522_deinit(&gs_handle);
3254 
3255  return 1;
3256  }
3257  mfrc522_interface_debug_print("mfrc522: check timer gated mode %s.\n", gated_mode == MFRC522_TIMER_GATED_MODE_AUX1 ? "ok" : "error");
3258 
3259  /* mfrc522_set_timer_auto_restart/mfrc522_get_timer_auto_restart test */
3260  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_auto_restart/mfrc522_get_timer_auto_restart test.\n");
3261 
3262  /* enable */
3264  if (res != 0)
3265  {
3266  mfrc522_interface_debug_print("mfrc522: set timer_auto restart failed.\n");
3267  (void)mfrc522_deinit(&gs_handle);
3268 
3269  return 1;
3270  }
3271  mfrc522_interface_debug_print("mfrc522: set timer auto restart enable.\n");
3272  res = mfrc522_get_timer_auto_restart(&gs_handle, &enable);
3273  if (res != 0)
3274  {
3275  mfrc522_interface_debug_print("mfrc522: get timer_auto restart failed.\n");
3276  (void)mfrc522_deinit(&gs_handle);
3277 
3278  return 1;
3279  }
3280  mfrc522_interface_debug_print("mfrc522: check timer auto restart %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3281 
3282  /* disable */
3284  if (res != 0)
3285  {
3286  mfrc522_interface_debug_print("mfrc522: set timer_auto restart failed.\n");
3287  (void)mfrc522_deinit(&gs_handle);
3288 
3289  return 1;
3290  }
3291  mfrc522_interface_debug_print("mfrc522: set timer auto restart disable.\n");
3292  res = mfrc522_get_timer_auto_restart(&gs_handle, &enable);
3293  if (res != 0)
3294  {
3295  mfrc522_interface_debug_print("mfrc522: get timer_auto restart failed.\n");
3296  (void)mfrc522_deinit(&gs_handle);
3297 
3298  return 1;
3299  }
3300  mfrc522_interface_debug_print("mfrc522: check timer auto restart %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3301 
3302  /* mfrc522_set_timer_prescaler/mfrc522_get_timer_prescaler test */
3303  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_prescaler/mfrc522_get_timer_prescaler test.\n");
3304 
3305  t = rand() % 0xFFF;
3306  res = mfrc522_set_timer_prescaler(&gs_handle, t);
3307  if (res != 0)
3308  {
3309  mfrc522_interface_debug_print("mfrc522: set timer prescaler failed.\n");
3310  (void)mfrc522_deinit(&gs_handle);
3311 
3312  return 1;
3313  }
3314  mfrc522_interface_debug_print("mfrc522: set timer prescaler 0x%04X.\n", t);
3315  res = mfrc522_get_timer_prescaler(&gs_handle, &t_check);
3316  if (res != 0)
3317  {
3318  mfrc522_interface_debug_print("mfrc522: get timer prescaler failed.\n");
3319  (void)mfrc522_deinit(&gs_handle);
3320 
3321  return 1;
3322  }
3323  mfrc522_interface_debug_print("mfrc522: check timer prescaler %s.\n", t_check == t ? "ok" : "error");
3324 
3325  /* mfrc522_set_timer_reload/mfrc522_get_timer_reload test */
3326  mfrc522_interface_debug_print("mfrc522: mfrc522_set_timer_reload/mfrc522_get_timer_reload test.\n");
3327 
3328  t = rand() % 0xFFFFU;
3329  res = mfrc522_set_timer_reload(&gs_handle, t);
3330  if (res != 0)
3331  {
3332  mfrc522_interface_debug_print("mfrc522: set timer reload failed.\n");
3333  (void)mfrc522_deinit(&gs_handle);
3334 
3335  return 1;
3336  }
3337  mfrc522_interface_debug_print("mfrc522: set timer reload 0x%04X.\n", t);
3338  res = mfrc522_get_timer_reload(&gs_handle, &t_check);
3339  if (res != 0)
3340  {
3341  mfrc522_interface_debug_print("mfrc522: get timer reload failed.\n");
3342  (void)mfrc522_deinit(&gs_handle);
3343 
3344  return 1;
3345  }
3346  mfrc522_interface_debug_print("mfrc522: check timer reload %s.\n", t_check == t ? "ok" : "error");
3347 
3348  /* mfrc522_get_timer_counter test */
3349  mfrc522_interface_debug_print("mfrc522: mfrc522_get_timer_counter test.\n");
3350 
3351  res = mfrc522_get_timer_counter(&gs_handle, &t_check);
3352  if (res != 0)
3353  {
3354  mfrc522_interface_debug_print("mfrc522: get timer reload failed.\n");
3355  (void)mfrc522_deinit(&gs_handle);
3356 
3357  return 1;
3358  }
3359  mfrc522_interface_debug_print("mfrc522: check timer reload 0x%04X.\n", t_check);
3360 
3361  /* mfrc522_set_fifo_data/mfrc522_get_fifo_data test */
3362  mfrc522_interface_debug_print("mfrc522: mfrc522_set_fifo_data/mfrc522_get_fifo_data test.\n");
3363 
3364  for (i = 0; i < 64; i++)
3365  {
3366  buf[i] = rand() % 256;
3367  }
3368  res = mfrc522_set_fifo_data(&gs_handle, buf, 64);
3369  if (res != 0)
3370  {
3371  mfrc522_interface_debug_print("mfrc522: set fifo data failed.\n");
3372  (void)mfrc522_deinit(&gs_handle);
3373 
3374  return 1;
3375  }
3376  res = mfrc522_get_fifo_data(&gs_handle, buf_check, 64);
3377  if (res != 0)
3378  {
3379  mfrc522_interface_debug_print("mfrc522: set fifo data failed.\n");
3380  (void)mfrc522_deinit(&gs_handle);
3381 
3382  return 1;
3383  }
3384  mfrc522_interface_debug_print("mfrc522: check fifo data %s.\n", memcmp(buf, buf_check, 64) == 0 ? "ok" : "error");
3385 
3386  /* mfrc522_set_test_bus_signal_1/mfrc522_get_test_bus_signal_1 test */
3387  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_bus_signal_1/mfrc522_get_test_bus_signal_1 test.\n");
3388 
3389  level = rand() % 8;
3390  res = mfrc522_set_test_bus_signal_1(&gs_handle, level);
3391  if (res != 0)
3392  {
3393  mfrc522_interface_debug_print("mfrc522: set test bus signal 1 failed.\n");
3394  (void)mfrc522_deinit(&gs_handle);
3395 
3396  return 1;
3397  }
3398  mfrc522_interface_debug_print("mfrc522: set test bus signal 1 0x%02X.\n", level);
3399  res = mfrc522_get_test_bus_signal_1(&gs_handle, &level_check);
3400  if (res != 0)
3401  {
3402  mfrc522_interface_debug_print("mfrc522: get test bus signal 1 failed.\n");
3403  (void)mfrc522_deinit(&gs_handle);
3404 
3405  return 1;
3406  }
3407  mfrc522_interface_debug_print("mfrc522: check test bus signal 1 %s.\n", level == level_check ? "ok" : "error");
3408 
3409  /* mfrc522_set_test_bus_signal_2/mfrc522_get_test_bus_signal_2 test */
3410  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_bus_signal_2/mfrc522_get_test_bus_signal_2 test.\n");
3411 
3412  level = rand() % 0x20;
3413  res = mfrc522_set_test_bus_signal_2(&gs_handle, level);
3414  if (res != 0)
3415  {
3416  mfrc522_interface_debug_print("mfrc522: set test bus signal 2 failed.\n");
3417  (void)mfrc522_deinit(&gs_handle);
3418 
3419  return 1;
3420  }
3421  mfrc522_interface_debug_print("mfrc522: set test bus signal 2 0x%02X.\n", level);
3422  res = mfrc522_get_test_bus_signal_2(&gs_handle, &level_check);
3423  if (res != 0)
3424  {
3425  mfrc522_interface_debug_print("mfrc522: get test bus signal 2 failed.\n");
3426  (void)mfrc522_deinit(&gs_handle);
3427 
3428  return 1;
3429  }
3430  mfrc522_interface_debug_print("mfrc522: check test bus signal 2 %s.\n", level == level_check ? "ok" : "error");
3431 
3432  /* mfrc522_set_test_bus_flip/mfrc522_get_test_bus_flip test */
3433  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_bus_flip/mfrc522_get_test_bus_flip test.\n");
3434 
3435  /* enable */
3436  res = mfrc522_set_test_bus_flip(&gs_handle, MFRC522_BOOL_TRUE);
3437  if (res != 0)
3438  {
3439  mfrc522_interface_debug_print("mfrc522: set test bus flip failed.\n");
3440  (void)mfrc522_deinit(&gs_handle);
3441 
3442  return 1;
3443  }
3444  mfrc522_interface_debug_print("mfrc522: set test bus flip enable.\n");
3445  res = mfrc522_get_test_bus_flip(&gs_handle, &enable);
3446  if (res != 0)
3447  {
3448  mfrc522_interface_debug_print("mfrc522: get test bus flip failed.\n");
3449  (void)mfrc522_deinit(&gs_handle);
3450 
3451  return 1;
3452  }
3453  mfrc522_interface_debug_print("mfrc522: check test bus flip %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3454 
3455  /* disable */
3456  res = mfrc522_set_test_bus_flip(&gs_handle, MFRC522_BOOL_FALSE);
3457  if (res != 0)
3458  {
3459  mfrc522_interface_debug_print("mfrc522: set test bus flip failed.\n");
3460  (void)mfrc522_deinit(&gs_handle);
3461 
3462  return 1;
3463  }
3464  mfrc522_interface_debug_print("mfrc522: set test bus flip disable.\n");
3465  res = mfrc522_get_test_bus_flip(&gs_handle, &enable);
3466  if (res != 0)
3467  {
3468  mfrc522_interface_debug_print("mfrc522: get test bus flip failed.\n");
3469  (void)mfrc522_deinit(&gs_handle);
3470 
3471  return 1;
3472  }
3473  mfrc522_interface_debug_print("mfrc522: check test bus flip %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3474 
3475  /* mfrc522_set_test_prbs9/mfrc522_get_test_prbs9 test */
3476  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_prbs9/mfrc522_get_test_prbs9 test.\n");
3477 
3478  /* enable */
3479  res = mfrc522_set_test_prbs9(&gs_handle, MFRC522_BOOL_TRUE);
3480  if (res != 0)
3481  {
3482  mfrc522_interface_debug_print("mfrc522: set test prbs9 failed.\n");
3483  (void)mfrc522_deinit(&gs_handle);
3484 
3485  return 1;
3486  }
3487  mfrc522_interface_debug_print("mfrc522: set test prbs9 enable.\n");
3488  res = mfrc522_get_test_prbs9(&gs_handle, &enable);
3489  if (res != 0)
3490  {
3491  mfrc522_interface_debug_print("mfrc522: get test prbs9 failed.\n");
3492  (void)mfrc522_deinit(&gs_handle);
3493 
3494  return 1;
3495  }
3496  mfrc522_interface_debug_print("mfrc522: check test prbs9 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3497 
3498  /* disable */
3499  res = mfrc522_set_test_prbs9(&gs_handle, MFRC522_BOOL_FALSE);
3500  if (res != 0)
3501  {
3502  mfrc522_interface_debug_print("mfrc522: set test prbs9 failed.\n");
3503  (void)mfrc522_deinit(&gs_handle);
3504 
3505  return 1;
3506  }
3507  mfrc522_interface_debug_print("mfrc522: set test prbs9 disable.\n");
3508  res = mfrc522_get_test_prbs9(&gs_handle, &enable);
3509  if (res != 0)
3510  {
3511  mfrc522_interface_debug_print("mfrc522: get test prbs9 failed.\n");
3512  (void)mfrc522_deinit(&gs_handle);
3513 
3514  return 1;
3515  }
3516  mfrc522_interface_debug_print("mfrc522: check test prbs9 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3517 
3518  /* mfrc522_set_test_prbs15/mfrc522_get_test_prbs15 test */
3519  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_prbs15/mfrc522_get_test_prbs15 test.\n");
3520 
3521  /* enable */
3522  res = mfrc522_set_test_prbs15(&gs_handle, MFRC522_BOOL_TRUE);
3523  if (res != 0)
3524  {
3525  mfrc522_interface_debug_print("mfrc522: set test prbs15 failed.\n");
3526  (void)mfrc522_deinit(&gs_handle);
3527 
3528  return 1;
3529  }
3530  mfrc522_interface_debug_print("mfrc522: set test prbs15 enable.\n");
3531  res = mfrc522_get_test_prbs15(&gs_handle, &enable);
3532  if (res != 0)
3533  {
3534  mfrc522_interface_debug_print("mfrc522: get test prbs15 failed.\n");
3535  (void)mfrc522_deinit(&gs_handle);
3536 
3537  return 1;
3538  }
3539  mfrc522_interface_debug_print("mfrc522: check test prbs15 %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3540 
3541  /* disable */
3542  res = mfrc522_set_test_prbs15(&gs_handle, MFRC522_BOOL_FALSE);
3543  if (res != 0)
3544  {
3545  mfrc522_interface_debug_print("mfrc522: set test prbs15 failed.\n");
3546  (void)mfrc522_deinit(&gs_handle);
3547 
3548  return 1;
3549  }
3550  mfrc522_interface_debug_print("mfrc522: set test prbs15 disable.\n");
3551  res = mfrc522_get_test_prbs15(&gs_handle, &enable);
3552  if (res != 0)
3553  {
3554  mfrc522_interface_debug_print("mfrc522: get test prbs15 failed.\n");
3555  (void)mfrc522_deinit(&gs_handle);
3556 
3557  return 1;
3558  }
3559  mfrc522_interface_debug_print("mfrc522: check test prbs15 %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3560 
3561  /* mfrc522_set_test_rs232_line/mfrc522_get_test_rs232_line test */
3562  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_rs232_line/mfrc522_get_test_rs232_line test.\n");
3563 
3564  /* enable */
3566  if (res != 0)
3567  {
3568  mfrc522_interface_debug_print("mfrc522: set test rs232 line failed.\n");
3569  (void)mfrc522_deinit(&gs_handle);
3570 
3571  return 1;
3572  }
3573  mfrc522_interface_debug_print("mfrc522: set test rs232 line enable.\n");
3574  res = mfrc522_get_test_rs232_line(&gs_handle, &enable);
3575  if (res != 0)
3576  {
3577  mfrc522_interface_debug_print("mfrc522: get test rs232 line failed.\n");
3578  (void)mfrc522_deinit(&gs_handle);
3579 
3580  return 1;
3581  }
3582  mfrc522_interface_debug_print("mfrc522: check test rs232 line %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3583 
3584  /* disable */
3586  if (res != 0)
3587  {
3588  mfrc522_interface_debug_print("mfrc522: set test rs232 line failed.\n");
3589  (void)mfrc522_deinit(&gs_handle);
3590 
3591  return 1;
3592  }
3593  mfrc522_interface_debug_print("mfrc522: set test rs232 line disable.\n");
3594  res = mfrc522_get_test_rs232_line(&gs_handle, &enable);
3595  if (res != 0)
3596  {
3597  mfrc522_interface_debug_print("mfrc522: get test rs232 line failed.\n");
3598  (void)mfrc522_deinit(&gs_handle);
3599 
3600  return 1;
3601  }
3602  mfrc522_interface_debug_print("mfrc522: check test rs232 line %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3603 
3604  /* mfrc522_set_test_pin_enable/mfrc522_get_test_pin_enable test */
3605  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_pin_enable/mfrc522_get_test_pin_enable test.\n");
3606 
3607  level = rand() % 0x40;
3608  res = mfrc522_set_test_pin_enable(&gs_handle, level);
3609  if (res != 0)
3610  {
3611  mfrc522_interface_debug_print("mfrc522: set test pin enable failed.\n");
3612  (void)mfrc522_deinit(&gs_handle);
3613 
3614  return 1;
3615  }
3616  mfrc522_interface_debug_print("mfrc522: set test pin enable 0x%02X.\n", level);
3617  res = mfrc522_get_test_pin_enable(&gs_handle, &level_check);
3618  if (res != 0)
3619  {
3620  mfrc522_interface_debug_print("mfrc522: get test pin enable failed.\n");
3621  (void)mfrc522_deinit(&gs_handle);
3622 
3623  return 1;
3624  }
3625  mfrc522_interface_debug_print("mfrc522: check test pin enable %s.\n", level == level_check ? "ok" : "error");
3626 
3627  /* mfrc522_set_test_port_io/mfrc522_get_test_port_io test */
3628  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_port_io/mfrc522_get_test_port_io test.\n");
3629 
3630  /* enable */
3631  res = mfrc522_set_test_port_io(&gs_handle, MFRC522_BOOL_TRUE);
3632  if (res != 0)
3633  {
3634  mfrc522_interface_debug_print("mfrc522: set test port io failed.\n");
3635  (void)mfrc522_deinit(&gs_handle);
3636 
3637  return 1;
3638  }
3639  mfrc522_interface_debug_print("mfrc522: set test port io enable.\n");
3640  res = mfrc522_get_test_port_io(&gs_handle, &enable);
3641  if (res != 0)
3642  {
3643  mfrc522_interface_debug_print("mfrc522: get test port io failed.\n");
3644  (void)mfrc522_deinit(&gs_handle);
3645 
3646  return 1;
3647  }
3648  mfrc522_interface_debug_print("mfrc522: check test port io %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3649 
3650  /* disable */
3651  res = mfrc522_set_test_port_io(&gs_handle, MFRC522_BOOL_FALSE);
3652  if (res != 0)
3653  {
3654  mfrc522_interface_debug_print("mfrc522: set test port io failed.\n");
3655  (void)mfrc522_deinit(&gs_handle);
3656 
3657  return 1;
3658  }
3659  mfrc522_interface_debug_print("mfrc522: set test port io disable.\n");
3660  res = mfrc522_get_test_port_io(&gs_handle, &enable);
3661  if (res != 0)
3662  {
3663  mfrc522_interface_debug_print("mfrc522: get test port io failed.\n");
3664  (void)mfrc522_deinit(&gs_handle);
3665 
3666  return 1;
3667  }
3668  mfrc522_interface_debug_print("mfrc522: check test port io %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3669 
3670  /* mfrc522_set_test_pin_value/mfrc522_get_test_pin_value test */
3671  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_pin_value/mfrc522_get_test_pin_value test.\n");
3672 
3673  level = rand() % 0x40;
3674  res = mfrc522_set_test_pin_value(&gs_handle, level);
3675  if (res != 0)
3676  {
3677  mfrc522_interface_debug_print("mfrc522: set test pin value failed.\n");
3678  (void)mfrc522_deinit(&gs_handle);
3679 
3680  return 1;
3681  }
3682  mfrc522_interface_debug_print("mfrc522: set test pin value 0x%02X.\n", level);
3683  res = mfrc522_get_test_pin_value(&gs_handle, &level_check);
3684  if (res != 0)
3685  {
3686  mfrc522_interface_debug_print("mfrc522: get test pin value failed.\n");
3687  (void)mfrc522_deinit(&gs_handle);
3688 
3689  return 1;
3690  }
3691  mfrc522_interface_debug_print("mfrc522: check test pin value %s.\n", level == level_check ? "ok" : "error");
3692 
3693  /* mfrc522_get_test_bus test */
3694  mfrc522_interface_debug_print("mfrc522: mfrc522_get_test_bus test.\n");
3695 
3696  res = mfrc522_get_test_bus(&gs_handle, &level);
3697  if (res != 0)
3698  {
3699  mfrc522_interface_debug_print("mfrc522: get test bus failed.\n");
3700  (void)mfrc522_deinit(&gs_handle);
3701 
3702  return 1;
3703  }
3704  mfrc522_interface_debug_print("mfrc522: get test bus 0x%02X.\n", level);
3705 
3706  /* mfrc522_set_test_amp_rcv/mfrc522_get_test_amp_rcv test */
3707  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_amp_rcv/mfrc522_get_test_amp_rcv test.\n");
3708 
3709  /* enable */
3710  res = mfrc522_set_test_amp_rcv(&gs_handle, MFRC522_BOOL_TRUE);
3711  if (res != 0)
3712  {
3713  mfrc522_interface_debug_print("mfrc522: set test amp rcv failed.\n");
3714  (void)mfrc522_deinit(&gs_handle);
3715 
3716  return 1;
3717  }
3718  mfrc522_interface_debug_print("mfrc522: set test amp rcv enable.\n");
3719  res = mfrc522_get_test_amp_rcv(&gs_handle, &enable);
3720  if (res != 0)
3721  {
3722  mfrc522_interface_debug_print("mfrc522: get test amp rcv failed.\n");
3723  (void)mfrc522_deinit(&gs_handle);
3724 
3725  return 1;
3726  }
3727  mfrc522_interface_debug_print("mfrc522: check test amp rcv %s.\n", enable == MFRC522_BOOL_TRUE ? "ok" : "error");
3728 
3729  /* disable */
3730  res = mfrc522_set_test_amp_rcv(&gs_handle, MFRC522_BOOL_FALSE);
3731  if (res != 0)
3732  {
3733  mfrc522_interface_debug_print("mfrc522: set test amp rcv failed.\n");
3734  (void)mfrc522_deinit(&gs_handle);
3735 
3736  return 1;
3737  }
3738  mfrc522_interface_debug_print("mfrc522: set test amp rcv disable.\n");
3739  res = mfrc522_get_test_amp_rcv(&gs_handle, &enable);
3740  if (res != 0)
3741  {
3742  mfrc522_interface_debug_print("mfrc522: get test amp rcv failed.\n");
3743  (void)mfrc522_deinit(&gs_handle);
3744 
3745  return 1;
3746  }
3747  mfrc522_interface_debug_print("mfrc522: check test amp rcv %s.\n", enable == MFRC522_BOOL_FALSE ? "ok" : "error");
3748 
3749  /* mfrc522_set_self_test/mfrc522_get_self_test test */
3750  mfrc522_interface_debug_print("mfrc522: mfrc522_set_self_test/mfrc522_get_self_test test.\n");
3751 
3752  level = 0x00;
3753  res = mfrc522_set_self_test(&gs_handle, level);
3754  if (res != 0)
3755  {
3756  mfrc522_interface_debug_print("mfrc522: set self test failed.\n");
3757  (void)mfrc522_deinit(&gs_handle);
3758 
3759  return 1;
3760  }
3761  mfrc522_interface_debug_print("mfrc522: set self test 0x%02X.\n", level);
3762  res = mfrc522_get_self_test(&gs_handle, &level_check);
3763  if (res != 0)
3764  {
3765  mfrc522_interface_debug_print("mfrc522: get self test failed.\n");
3766  (void)mfrc522_deinit(&gs_handle);
3767 
3768  return 1;
3769  }
3770  mfrc522_interface_debug_print("mfrc522: check self test %s.\n", level == level_check ? "ok" : "error");
3771 
3772  /* mfrc522_get_version test */
3773  mfrc522_interface_debug_print("mfrc522: mfrc522_get_version test.\n");
3774 
3775  res = mfrc522_get_version(&gs_handle, &id, &version);
3776  if (res != 0)
3777  {
3778  mfrc522_interface_debug_print("mfrc522: get version failed.\n");
3779  (void)mfrc522_deinit(&gs_handle);
3780 
3781  return 1;
3782  }
3783  mfrc522_interface_debug_print("mfrc522: id is 0x%02X, version is 0x%02X.\n", id, version);
3784 
3785  /* mfrc522_set_test_analog_control_aux_1/mfrc522_get_test_analog_control_aux_1 test */
3786  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_analog_control_aux_1/mfrc522_get_test_analog_control_aux_1 test.\n");
3787 
3788  /* 3 state */
3790  if (res != 0)
3791  {
3792  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3793  (void)mfrc522_deinit(&gs_handle);
3794 
3795  return 1;
3796  }
3797  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 3 state.\n");
3798  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3799  if (res != 0)
3800  {
3801  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3802  (void)mfrc522_deinit(&gs_handle);
3803 
3804  return 1;
3805  }
3806  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_3_STATE ? "ok" : "error");
3807 
3808  /* output */
3810  if (res != 0)
3811  {
3812  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3813  (void)mfrc522_deinit(&gs_handle);
3814 
3815  return 1;
3816  }
3817  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 output.\n");
3818  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3819  if (res != 0)
3820  {
3821  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3822  (void)mfrc522_deinit(&gs_handle);
3823 
3824  return 1;
3825  }
3826  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_OUTPUT ? "ok" : "error");
3827 
3828  /* test signal corr1 */
3830  if (res != 0)
3831  {
3832  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3833  (void)mfrc522_deinit(&gs_handle);
3834 
3835  return 1;
3836  }
3837  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 test signal corr1.\n");
3838  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3839  if (res != 0)
3840  {
3841  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3842  (void)mfrc522_deinit(&gs_handle);
3843 
3844  return 1;
3845  }
3846  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_TEST_SIGNAL_CORR1 ? "ok" : "error");
3847 
3848  /* dac test signal min level */
3850  if (res != 0)
3851  {
3852  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3853  (void)mfrc522_deinit(&gs_handle);
3854 
3855  return 1;
3856  }
3857  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 dac test signal min level.\n");
3858  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3859  if (res != 0)
3860  {
3861  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3862  (void)mfrc522_deinit(&gs_handle);
3863 
3864  return 1;
3865  }
3866  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_MIN_LEVEL ? "ok" : "error");
3867 
3868  /* dac test signal adc i */
3870  if (res != 0)
3871  {
3872  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3873  (void)mfrc522_deinit(&gs_handle);
3874 
3875  return 1;
3876  }
3877  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 dac test signal adc i.\n");
3878  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3879  if (res != 0)
3880  {
3881  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3882  (void)mfrc522_deinit(&gs_handle);
3883 
3884  return 1;
3885  }
3886  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_I ? "ok" : "error");
3887 
3888  /* dac test signal adc q */
3890  if (res != 0)
3891  {
3892  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3893  (void)mfrc522_deinit(&gs_handle);
3894 
3895  return 1;
3896  }
3897  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 dac test signal adc q.\n");
3898  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3899  if (res != 0)
3900  {
3901  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3902  (void)mfrc522_deinit(&gs_handle);
3903 
3904  return 1;
3905  }
3906  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_Q ? "ok" : "error");
3907 
3908  /* test signal for production */
3910  if (res != 0)
3911  {
3912  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3913  (void)mfrc522_deinit(&gs_handle);
3914 
3915  return 1;
3916  }
3917  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 test signal for production.\n");
3918  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3919  if (res != 0)
3920  {
3921  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3922  (void)mfrc522_deinit(&gs_handle);
3923 
3924  return 1;
3925  }
3926  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_SIGNAL_FOR_PRODUCTION ? "ok" : "error");
3927 
3928  /* high */
3930  if (res != 0)
3931  {
3932  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3933  (void)mfrc522_deinit(&gs_handle);
3934 
3935  return 1;
3936  }
3937  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 high.\n");
3938  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3939  if (res != 0)
3940  {
3941  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3942  (void)mfrc522_deinit(&gs_handle);
3943 
3944  return 1;
3945  }
3946  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_HIGH ? "ok" : "error");
3947 
3948  /* low */
3950  if (res != 0)
3951  {
3952  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3953  (void)mfrc522_deinit(&gs_handle);
3954 
3955  return 1;
3956  }
3957  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 low.\n");
3958  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3959  if (res != 0)
3960  {
3961  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3962  (void)mfrc522_deinit(&gs_handle);
3963 
3964  return 1;
3965  }
3966  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_LOW ? "ok" : "error");
3967 
3968  /* tx active */
3970  if (res != 0)
3971  {
3972  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3973  (void)mfrc522_deinit(&gs_handle);
3974 
3975  return 1;
3976  }
3977  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 tx active.\n");
3978  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3979  if (res != 0)
3980  {
3981  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
3982  (void)mfrc522_deinit(&gs_handle);
3983 
3984  return 1;
3985  }
3986  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_TX_ACTIVE ? "ok" : "error");
3987 
3988  /* rx active */
3990  if (res != 0)
3991  {
3992  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
3993  (void)mfrc522_deinit(&gs_handle);
3994 
3995  return 1;
3996  }
3997  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 rx active.\n");
3998  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
3999  if (res != 0)
4000  {
4001  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
4002  (void)mfrc522_deinit(&gs_handle);
4003 
4004  return 1;
4005  }
4006  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_RX_ACTIVE ? "ok" : "error");
4007 
4008  /* subcarrier detected */
4010  if (res != 0)
4011  {
4012  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
4013  (void)mfrc522_deinit(&gs_handle);
4014 
4015  return 1;
4016  }
4017  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 subcarrier detected.\n");
4018  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
4019  if (res != 0)
4020  {
4021  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
4022  (void)mfrc522_deinit(&gs_handle);
4023 
4024  return 1;
4025  }
4026  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_SUBCARRIER_DETECTED ? "ok" : "error");
4027 
4028  /* defined bit */
4030  if (res != 0)
4031  {
4032  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 failed.\n");
4033  (void)mfrc522_deinit(&gs_handle);
4034 
4035  return 1;
4036  }
4037  mfrc522_interface_debug_print("mfrc522: set test analog control aux 1 defined bit.\n");
4038  res = mfrc522_get_test_analog_control_aux_1(&gs_handle, &control);
4039  if (res != 0)
4040  {
4041  mfrc522_interface_debug_print("mfrc522: get test analog control aux 1 failed.\n");
4042  (void)mfrc522_deinit(&gs_handle);
4043 
4044  return 1;
4045  }
4046  mfrc522_interface_debug_print("mfrc522: check test analog control aux 1 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DEFINED_BIT ? "ok" : "error");
4047 
4048  /* mfrc522_set_test_analog_control_aux_2/mfrc522_get_test_analog_control_aux_2 test */
4049  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_analog_control_aux_2/mfrc522_get_test_analog_control_aux_2 test.\n");
4050 
4051  /* 3 state */
4053  if (res != 0)
4054  {
4055  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4056  (void)mfrc522_deinit(&gs_handle);
4057 
4058  return 2;
4059  }
4060  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 3 state.\n");
4061  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4062  if (res != 0)
4063  {
4064  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4065  (void)mfrc522_deinit(&gs_handle);
4066 
4067  return 2;
4068  }
4069  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_3_STATE ? "ok" : "error");
4070 
4071  /* output */
4073  if (res != 0)
4074  {
4075  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4076  (void)mfrc522_deinit(&gs_handle);
4077 
4078  return 2;
4079  }
4080  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 output.\n");
4081  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4082  if (res != 0)
4083  {
4084  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4085  (void)mfrc522_deinit(&gs_handle);
4086 
4087  return 2;
4088  }
4089  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_OUTPUT ? "ok" : "error");
4090 
4091  /* test signal corr1 */
4093  if (res != 0)
4094  {
4095  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4096  (void)mfrc522_deinit(&gs_handle);
4097 
4098  return 2;
4099  }
4100  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 test signal corr1.\n");
4101  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4102  if (res != 0)
4103  {
4104  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4105  (void)mfrc522_deinit(&gs_handle);
4106 
4107  return 2;
4108  }
4109  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_TEST_SIGNAL_CORR1 ? "ok" : "error");
4110 
4111  /* dac test signal min level */
4113  if (res != 0)
4114  {
4115  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4116  (void)mfrc522_deinit(&gs_handle);
4117 
4118  return 2;
4119  }
4120  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 dac test signal min level.\n");
4121  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4122  if (res != 0)
4123  {
4124  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4125  (void)mfrc522_deinit(&gs_handle);
4126 
4127  return 2;
4128  }
4129  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_MIN_LEVEL ? "ok" : "error");
4130 
4131  /* dac test signal adc i */
4133  if (res != 0)
4134  {
4135  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4136  (void)mfrc522_deinit(&gs_handle);
4137 
4138  return 2;
4139  }
4140  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 dac test signal adc i.\n");
4141  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4142  if (res != 0)
4143  {
4144  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4145  (void)mfrc522_deinit(&gs_handle);
4146 
4147  return 2;
4148  }
4149  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_I ? "ok" : "error");
4150 
4151  /* dac test signal adc q */
4153  if (res != 0)
4154  {
4155  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4156  (void)mfrc522_deinit(&gs_handle);
4157 
4158  return 2;
4159  }
4160  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 dac test signal adc q.\n");
4161  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4162  if (res != 0)
4163  {
4164  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4165  (void)mfrc522_deinit(&gs_handle);
4166 
4167  return 2;
4168  }
4169  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_Q ? "ok" : "error");
4170 
4171  /* test signal for production */
4173  if (res != 0)
4174  {
4175  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4176  (void)mfrc522_deinit(&gs_handle);
4177 
4178  return 2;
4179  }
4180  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 test signal for production.\n");
4181  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4182  if (res != 0)
4183  {
4184  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4185  (void)mfrc522_deinit(&gs_handle);
4186 
4187  return 2;
4188  }
4189  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_SIGNAL_FOR_PRODUCTION ? "ok" : "error");
4190 
4191  /* high */
4193  if (res != 0)
4194  {
4195  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4196  (void)mfrc522_deinit(&gs_handle);
4197 
4198  return 2;
4199  }
4200  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 high.\n");
4201  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4202  if (res != 0)
4203  {
4204  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4205  (void)mfrc522_deinit(&gs_handle);
4206 
4207  return 2;
4208  }
4209  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_HIGH ? "ok" : "error");
4210 
4211  /* low */
4213  if (res != 0)
4214  {
4215  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4216  (void)mfrc522_deinit(&gs_handle);
4217 
4218  return 2;
4219  }
4220  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 low.\n");
4221  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4222  if (res != 0)
4223  {
4224  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4225  (void)mfrc522_deinit(&gs_handle);
4226 
4227  return 2;
4228  }
4229  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_LOW ? "ok" : "error");
4230 
4231  /* tx active */
4233  if (res != 0)
4234  {
4235  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4236  (void)mfrc522_deinit(&gs_handle);
4237 
4238  return 2;
4239  }
4240  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 tx active.\n");
4241  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4242  if (res != 0)
4243  {
4244  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4245  (void)mfrc522_deinit(&gs_handle);
4246 
4247  return 2;
4248  }
4249  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_TX_ACTIVE ? "ok" : "error");
4250 
4251  /* rx active */
4253  if (res != 0)
4254  {
4255  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4256  (void)mfrc522_deinit(&gs_handle);
4257 
4258  return 2;
4259  }
4260  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 rx active.\n");
4261  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4262  if (res != 0)
4263  {
4264  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4265  (void)mfrc522_deinit(&gs_handle);
4266 
4267  return 2;
4268  }
4269  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_RX_ACTIVE ? "ok" : "error");
4270 
4271  /* subcarrier detected */
4273  if (res != 0)
4274  {
4275  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4276  (void)mfrc522_deinit(&gs_handle);
4277 
4278  return 2;
4279  }
4280  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 subcarrier detected.\n");
4281  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4282  if (res != 0)
4283  {
4284  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4285  (void)mfrc522_deinit(&gs_handle);
4286 
4287  return 2;
4288  }
4289  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_SUBCARRIER_DETECTED ? "ok" : "error");
4290 
4291  /* defined bit */
4293  if (res != 0)
4294  {
4295  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 failed.\n");
4296  (void)mfrc522_deinit(&gs_handle);
4297 
4298  return 2;
4299  }
4300  mfrc522_interface_debug_print("mfrc522: set test analog control aux 2 defined bit.\n");
4301  res = mfrc522_get_test_analog_control_aux_2(&gs_handle, &control);
4302  if (res != 0)
4303  {
4304  mfrc522_interface_debug_print("mfrc522: get test analog control aux 2 failed.\n");
4305  (void)mfrc522_deinit(&gs_handle);
4306 
4307  return 2;
4308  }
4309  mfrc522_interface_debug_print("mfrc522: check test analog control aux 2 %s.\n", control == MFRC522_TEST_ANALOG_CONTROL_DEFINED_BIT ? "ok" : "error");
4310 
4311  /* mfrc522_set_test_dac_1/mfrc522_get_test_dac_1 test */
4312  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_dac_1/mfrc522_get_test_dac_1 test.\n");
4313 
4314  level = rand() % 0x40;
4315  res = mfrc522_set_test_dac_1(&gs_handle, level);
4316  if (res != 0)
4317  {
4318  mfrc522_interface_debug_print("mfrc522: set test dac 1 failed.\n");
4319  (void)mfrc522_deinit(&gs_handle);
4320 
4321  return 2;
4322  }
4323  mfrc522_interface_debug_print("mfrc522: set test dac 1 0x%02X.\n", level);
4324  res = mfrc522_get_test_dac_1(&gs_handle, &level_check);
4325  if (res != 0)
4326  {
4327  mfrc522_interface_debug_print("mfrc522: get test dac 1 failed.\n");
4328  (void)mfrc522_deinit(&gs_handle);
4329 
4330  return 2;
4331  }
4332  mfrc522_interface_debug_print("mfrc522: check test dac 1 %s.\n", level == level_check ? "ok" : "error");
4333 
4334  /* mfrc522_set_test_dac_2/mfrc522_get_test_dac_2 test */
4335  mfrc522_interface_debug_print("mfrc522: mfrc522_set_test_dac_2/mfrc522_get_test_dac_2 test.\n");
4336 
4337  level = rand() % 0x40;
4338  res = mfrc522_set_test_dac_2(&gs_handle, level);
4339  if (res != 0)
4340  {
4341  mfrc522_interface_debug_print("mfrc522: set test dac 2 failed.\n");
4342  (void)mfrc522_deinit(&gs_handle);
4343 
4344  return 2;
4345  }
4346  mfrc522_interface_debug_print("mfrc522: set test dac 2 0x%02X.\n", level);
4347  res = mfrc522_get_test_dac_2(&gs_handle, &level_check);
4348  if (res != 0)
4349  {
4350  mfrc522_interface_debug_print("mfrc522: get test dac 2 failed.\n");
4351  (void)mfrc522_deinit(&gs_handle);
4352 
4353  return 2;
4354  }
4355  mfrc522_interface_debug_print("mfrc522: check test dac 2 %s.\n", level == level_check ? "ok" : "error");
4356 
4357  /* mfrc522_get_test_adc test */
4358  mfrc522_interface_debug_print("mfrc522: mfrc522_get_test_adc test.\n");
4359 
4360  res = mfrc522_get_test_adc(&gs_handle, &adc_i, &adc_q);
4361  if (res != 0)
4362  {
4363  mfrc522_interface_debug_print("mfrc522: get test adc failed.\n");
4364  (void)mfrc522_deinit(&gs_handle);
4365 
4366  return 2;
4367  }
4368  mfrc522_interface_debug_print("mfrc522: test adc i is 0x%02X adc q is 0x%02X.\n", adc_i, adc_q);
4369 
4370  /* finish register */
4371  mfrc522_interface_debug_print("mfrc522: finish register test.\n");
4372  (void)mfrc522_deinit(&gs_handle);
4373 
4374  return 0;
4375 }
driver mfrc522 register test header file
uint8_t mfrc522_get_timer_auto(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the timer auto status
mfrc522_interface_t
mfrc522 interface enumeration definition
uint8_t mfrc522_get_force_100_ask(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the force 100 ask status
uint8_t mfrc522_get_water_level(mfrc522_handle_t *handle, uint8_t *level)
get the water level
uint8_t mfrc522_set_interrupt2(mfrc522_handle_t *handle, mfrc522_interrupt2_t type, mfrc522_bool_t enable)
enable or disable the interrupt2
uint8_t mfrc522_set_fix_iq(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable fix iq
uint8_t mfrc522_get_collision_level(mfrc522_handle_t *handle, uint8_t *level)
get the collision level
uint8_t mfrc522_get_modulation_invert(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the modulation invert status
uint8_t mfrc522_get_interrupt2(mfrc522_handle_t *handle, mfrc522_interrupt2_t type, mfrc522_bool_t *enable)
get the interrupt2 status
uint8_t mfrc522_get_timer_constant_sync(mfrc522_handle_t *handle, uint8_t *t)
get the timer constant sync
uint8_t mfrc522_get_timer_counter(mfrc522_handle_t *handle, uint16_t *cnt)
get the timer counter
mfrc522_test_analog_control_t
mfrc522 test analog control enumeration definition
mfrc522_bool_t
mfrc522 bool enumeration definition
uint8_t mfrc522_init(mfrc522_handle_t *handle)
initialize the chip
uint8_t mfrc522_set_mifare_crypto1_on(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable mifare crypto1 on
uint8_t mfrc522_get_clear_temperature_error(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the clear temperature error status
uint8_t mfrc522_set_rx_multiple(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable rx multiple
uint8_t mfrc522_get_modulation_width(mfrc522_handle_t *handle, uint8_t *width)
get the modulation width
uint8_t mfrc522_get_timer_prescal_even(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the timer prescal even status
uint8_t mfrc522_set_timer_constant_sync(mfrc522_handle_t *handle, uint8_t t)
set the timer constant sync
uint8_t mfrc522_set_interface(mfrc522_handle_t *handle, mfrc522_interface_t interface)
set the chip interface
uint8_t mfrc522_get_serial_speed(mfrc522_handle_t *handle, uint8_t *t0, uint8_t *t1)
get the serial speed
uint8_t mfrc522_set_interrupt_pin_type(mfrc522_handle_t *handle, mfrc522_interrupt_pin_type_t type)
set the interrupt pin type
uint8_t mfrc522_get_crc_preset(mfrc522_handle_t *handle, mfrc522_crc_preset_t *preset)
get the crc preset
uint8_t mfrc522_get_tx_wait_rf(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the rf tx wait status
uint8_t mfrc522_set_force_iic_high_speed(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable force iic high speed
uint8_t mfrc522_set_channel_reception(mfrc522_handle_t *handle, mfrc522_channel_reception_t reception)
set the channel reception
uint8_t mfrc522_set_rx_wait(mfrc522_handle_t *handle, uint8_t t)
set the rx wait
mfrc522_timer_gated_mode_t
mfrc522 timer gated mode enumeration definition
uint8_t mfrc522_get_mfout_input(mfrc522_handle_t *handle, mfrc522_mfout_input_t *input)
get the mfout input
uint8_t mfrc522_set_force_100_ask(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable force 100 ask
uint8_t mfrc522_get_rx_no_error(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the rx no error status
uint8_t mfrc522_get_status2(mfrc522_handle_t *handle, uint8_t *status)
get the status2
uint8_t mfrc522_get_error(mfrc522_handle_t *handle, uint8_t *err)
get the error
uint8_t mfrc522_flush_fifo(mfrc522_handle_t *handle)
flush the fifo
uint8_t mfrc522_get_fix_iq(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the fix iq status
uint8_t mfrc522_get_collision_position_not_valid(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the collision position not valid bit status
uint8_t mfrc522_set_interrupt1(mfrc522_handle_t *handle, mfrc522_interrupt1_t type, mfrc522_bool_t enable)
enable or disable the interrupt1
uint8_t mfrc522_set_rx_speed(mfrc522_handle_t *handle, mfrc522_speed_t speed)
set the rx speed
uint8_t mfrc522_set_parity_disable(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable parity disable
uint8_t mfrc522_set_crc_preset(mfrc522_handle_t *handle, mfrc522_crc_preset_t preset)
set the crc preset
uint8_t mfrc522_get_crc(mfrc522_handle_t *handle, uint16_t *crc)
get the crc
uint8_t mfrc522_get_tx_last_bits(mfrc522_handle_t *handle, uint8_t *bits)
get the tx last bits
uint8_t mfrc522_get_tx_input(mfrc522_handle_t *handle, mfrc522_tx_input_t *input)
get the tx input
uint8_t mfrc522_set_water_level(mfrc522_handle_t *handle, uint8_t level)
set the water level
uint8_t mfrc522_set_tx_last_bits(mfrc522_handle_t *handle, uint8_t bits)
set the tx last bits
uint8_t mfrc522_set_interrupt1_pin_invert(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable interrupt1 pin invert
uint8_t mfrc522_set_rx_align(mfrc522_handle_t *handle, mfrc522_rx_align_t align)
set the rx align
uint8_t mfrc522_set_antenna_driver(mfrc522_handle_t *handle, mfrc522_antenna_driver_t driver, mfrc522_bool_t enable)
enable or disable the antenna driver
uint8_t mfrc522_set_modgsp(mfrc522_handle_t *handle, uint8_t n)
set the modgsp
mfrc522_tx_input_t
mfrc522 tx input enumeration definition
uint8_t mfrc522_get_interrupt1_pin_invert(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the interrupt1 pin invert status
uint8_t mfrc522_get_rx_align(mfrc522_handle_t *handle, mfrc522_rx_align_t *align)
get the rx align
uint8_t mfrc522_get_rx_last_bits(mfrc522_handle_t *handle, uint8_t *bits)
get the rx last bits
mfrc522_channel_reception_t
mfrc522 channel reception enumeration definition
mfrc522_interrupt_pin_type_t
mfrc522 interrupt pin type enumeration definition
uint8_t mfrc522_info(mfrc522_info_t *info)
get chip information
uint8_t mfrc522_get_timer_reload(mfrc522_handle_t *handle, uint16_t *reload)
get the timer reload
uint8_t mfrc522_set_mfin_polarity(mfrc522_handle_t *handle, mfrc522_mfin_polarity_t polarity)
set the mfin polarity
uint8_t mfrc522_get_rx_multiple(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the rx multiple status
uint8_t mfrc522_start_timer(mfrc522_handle_t *handle)
start the timer
mfrc522_crc_preset_t
mfrc522 crc preset enumeration definition
uint8_t mfrc522_set_timer_auto_restart(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable timer auto restart
uint8_t mfrc522_set_clear_temperature_error(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable clear temperature error
uint8_t mfrc522_get_rx_gain(mfrc522_handle_t *handle, mfrc522_rx_gain_t *gain)
get the rx gain
uint8_t mfrc522_get_timer_auto_restart(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the timer auto restart status
uint8_t mfrc522_set_modulation_invert(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable the modulation invert
uint8_t mfrc522_set_interrupt2_mark(mfrc522_handle_t *handle, mfrc522_interrupt_mark_t mark)
set the interrupt2 mark
uint8_t mfrc522_set_modulation_width(mfrc522_handle_t *handle, uint8_t width)
set the modulation width
mfrc522_modem_state_t
mfrc522 modem state enumeration definition
uint8_t mfrc522_get_modgsn(mfrc522_handle_t *handle, uint8_t *n)
get the modgsn
uint8_t mfrc522_set_value_clear_after_coll(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable value clear after coll
mfrc522_contactless_uart_input_t
mfrc522 contactless uart input enumeration definition
uint8_t mfrc522_get_status1(mfrc522_handle_t *handle, uint8_t *status)
get the status1
mfrc522_rx_gain_t
mfrc522 rx gain enumeration definition
uint8_t mfrc522_set_fifo_data(mfrc522_handle_t *handle, uint8_t *data, uint8_t len)
set the fifo data
uint8_t mfrc522_get_collision_position(mfrc522_handle_t *handle, uint8_t *pos)
get the collision position
uint8_t mfrc522_get_tx_crc_generation(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the tx crc generation status
uint8_t mfrc522_set_tx_input(mfrc522_handle_t *handle, mfrc522_tx_input_t input)
set the tx input
uint8_t mfrc522_set_rx_crc_generation(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable the rx crc generation
uint8_t mfrc522_set_tx_wait(mfrc522_handle_t *handle, uint8_t t)
set the tx wait
uint8_t mfrc522_get_tx_speed(mfrc522_handle_t *handle, mfrc522_speed_t *speed)
get the tx speed
uint8_t mfrc522_get_interface(mfrc522_handle_t *handle, mfrc522_interface_t *interface)
get the chip interface
uint8_t mfrc522_set_cwgsn(mfrc522_handle_t *handle, uint8_t n)
set the cwgsn
uint8_t mfrc522_get_value_clear_after_coll(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the value clear after coll status
mfrc522_rx_align_t
mfrc522 rx align enumeration definition
uint8_t mfrc522_get_parity_disable(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the parity disable status
uint8_t mfrc522_get_addr_pin(mfrc522_handle_t *handle, uint8_t *addr_pin)
get the iic address pin
uint8_t mfrc522_set_cwgsp(mfrc522_handle_t *handle, uint8_t n)
set the cwgsp
uint8_t mfrc522_set_timer_gated_mode(mfrc522_handle_t *handle, mfrc522_timer_gated_mode_t mode)
set the timer gated mode
uint8_t mfrc522_set_tx_speed(mfrc522_handle_t *handle, mfrc522_speed_t speed)
set the tx speed
uint8_t mfrc522_get_interrupt1_status(mfrc522_handle_t *handle, uint8_t *status)
get the interrupt1 status
uint8_t mfrc522_get_min_level(mfrc522_handle_t *handle, uint8_t *level)
get the min level
uint8_t mfrc522_get_mfin_polarity(mfrc522_handle_t *handle, mfrc522_mfin_polarity_t *polarity)
get the mfin polarity
uint8_t mfrc522_get_rx_wait(mfrc522_handle_t *handle, uint8_t *t)
get the rx wait
uint8_t mfrc522_get_timer_gated_mode(mfrc522_handle_t *handle, mfrc522_timer_gated_mode_t *mode)
get the timer gated mode
uint8_t mfrc522_get_cwgsn(mfrc522_handle_t *handle, uint8_t *n)
get the cwgsn
uint8_t mfrc522_set_addr_pin(mfrc522_handle_t *handle, uint8_t addr_pin)
set the iic address pin
uint8_t mfrc522_get_crc_msb_first(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the crc msb first
uint8_t mfrc522_set_tx_crc_generation(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable tx crc generation
uint8_t mfrc522_set_rx_gain(mfrc522_handle_t *handle, mfrc522_rx_gain_t gain)
set the rx gain
uint8_t mfrc522_get_timer_prescaler(mfrc522_handle_t *handle, uint16_t *t)
get the timer prescaler
uint8_t mfrc522_set_timer_auto(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable timer auto
uint8_t mfrc522_set_timer_reload(mfrc522_handle_t *handle, uint16_t reload)
set the timer reload
uint8_t mfrc522_get_contactless_uart_input(mfrc522_handle_t *handle, mfrc522_contactless_uart_input_t *input)
get the contactless uart input
uint8_t mfrc522_get_interrupt_pin_type(mfrc522_handle_t *handle, mfrc522_interrupt_pin_type_t *type)
get the interrupt pin type
uint8_t mfrc522_get_channel_reception(mfrc522_handle_t *handle, mfrc522_channel_reception_t *reception)
get the channel reception
uint8_t mfrc522_get_modem_state(mfrc522_handle_t *handle, mfrc522_modem_state_t *state)
get the modem state
uint8_t mfrc522_get_cwgsp(mfrc522_handle_t *handle, uint8_t *n)
get the cwgsp
uint8_t mfrc522_set_tx_wait_rf(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable the rf tx wait
uint8_t mfrc522_get_fifo_data(mfrc522_handle_t *handle, uint8_t *data, uint8_t len)
get the fifo data
uint8_t mfrc522_get_interrupt1(mfrc522_handle_t *handle, mfrc522_interrupt1_t type, mfrc522_bool_t *enable)
get the interrupt1 status
uint8_t mfrc522_set_serial_speed(mfrc522_handle_t *handle, uint8_t t0, uint8_t t1)
set the serial speed
uint8_t mfrc522_get_antenna_driver(mfrc522_handle_t *handle, mfrc522_antenna_driver_t driver, mfrc522_bool_t *enable)
get the antenna driver status
uint8_t mfrc522_set_receiver_analog(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable the analog part of the receiver
uint8_t mfrc522_get_fifo_level(mfrc522_handle_t *handle, uint8_t *level)
get the fifo level
uint8_t mfrc522_set_crc_msb_first(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable the crc msb first
uint8_t mfrc522_set_rx_no_error(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable rx no error
uint8_t mfrc522_get_interrupt2_status(mfrc522_handle_t *handle, uint8_t *status)
get the interrupt2 status
uint8_t mfrc522_get_rx_crc_generation(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the rx crc generation status
uint8_t mfrc522_set_collision_level(mfrc522_handle_t *handle, uint8_t level)
set the collision level
uint8_t mfrc522_set_min_level(mfrc522_handle_t *handle, uint8_t level)
set the min level
uint8_t mfrc522_deinit(mfrc522_handle_t *handle)
close the chip
uint8_t mfrc522_set_modgsn(mfrc522_handle_t *handle, uint8_t n)
set the modgsn
uint8_t mfrc522_get_modgsp(mfrc522_handle_t *handle, uint8_t *n)
get the modgsp
uint8_t mfrc522_get_receiver_analog(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the analog part of the receiver status
uint8_t mfrc522_get_force_iic_high_speed(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the iic high speed status
uint8_t mfrc522_start_send(mfrc522_handle_t *handle)
start the transmission of data
uint8_t mfrc522_get_rx_speed(mfrc522_handle_t *handle, mfrc522_speed_t *speed)
get the rx speed
uint8_t mfrc522_set_interrupt1_mark(mfrc522_handle_t *handle, mfrc522_interrupt_mark_t mark)
set the interrupt1 mark
uint8_t mfrc522_set_timer_prescaler(mfrc522_handle_t *handle, uint16_t t)
set the timer prescaler
mfrc522_speed_t
mfrc522 speed enumeration definition
uint8_t mfrc522_set_timer_constant_reception(mfrc522_handle_t *handle, uint8_t t)
set the timer constant reception
uint8_t mfrc522_stop_send(mfrc522_handle_t *handle)
stop the transmission of data
mfrc522_mfin_polarity_t
mfrc522 mfin polarity enumeration definition
uint8_t mfrc522_get_power_down(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get power down status
uint8_t mfrc522_get_tx_wait(mfrc522_handle_t *handle, uint8_t *t)
get the tx wait
mfrc522_mfout_input_t
mfrc522 mfout input enumeration definition
uint8_t mfrc522_set_contactless_uart_input(mfrc522_handle_t *handle, mfrc522_contactless_uart_input_t input)
set the contactless uart input
uint8_t mfrc522_get_timer_constant_reception(mfrc522_handle_t *handle, uint8_t *t)
get the timer constant reception
uint8_t mfrc522_set_timer_prescal_even(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable timer prescal even
uint8_t mfrc522_set_power_down(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable power down
uint8_t mfrc522_set_mfout_input(mfrc522_handle_t *handle, mfrc522_mfout_input_t input)
set the mfout input
@ MFRC522_INTERFACE_SPI
@ MFRC522_INTERFACE_UART
@ MFRC522_INTERFACE_IIC
@ MFRC522_TEST_ANALOG_CONTROL_SUBCARRIER_DETECTED
@ MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_I
@ MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_ADC_Q
@ MFRC522_TEST_ANALOG_CONTROL_LOW
@ MFRC522_TEST_ANALOG_CONTROL_DAC_TEST_SIGNAL_MIN_LEVEL
@ MFRC522_TEST_ANALOG_CONTROL_OUTPUT
@ MFRC522_TEST_ANALOG_CONTROL_HIGH
@ MFRC522_TEST_ANALOG_CONTROL_RX_ACTIVE
@ MFRC522_TEST_ANALOG_CONTROL_SIGNAL_FOR_PRODUCTION
@ MFRC522_TEST_ANALOG_CONTROL_TX_ACTIVE
@ MFRC522_TEST_ANALOG_CONTROL_TEST_SIGNAL_CORR1
@ MFRC522_TEST_ANALOG_CONTROL_3_STATE
@ MFRC522_TEST_ANALOG_CONTROL_DEFINED_BIT
@ MFRC522_BOOL_TRUE
@ MFRC522_BOOL_FALSE
@ MFRC522_TIMER_GATED_MODE_MFIN
@ MFRC522_TIMER_GATED_MODE_AUX1
@ MFRC522_TIMER_GATED_MODE_NONE
@ MFRC522_TX_INPUT_MFIN_PIN
@ MFRC522_TX_INPUT_3_STATE
@ MFRC522_TX_INPUT_CONTROL
@ MFRC522_TX_INPUT_INTERNAL_ENCODER
@ MFRC522_CHANNEL_RECEPTION_STRONGER
@ MFRC522_CHANNEL_RECEPTION_STRONGER_FREEZE_SELECTED
@ MFRC522_INTERRUPT_PIN_TYPE_OPEN_DRAIN
@ MFRC522_INTERRUPT_PIN_TYPE_STANDARD_CMOS
@ MFRC522_CRC_PRESET_A671
@ MFRC522_CRC_PRESET_0000
@ MFRC522_CRC_PRESET_6363
@ MFRC522_CRC_PRESET_FFFF
@ MFRC522_CONTACTLESS_UART_INTERNAL_ANALOG_MODULE
@ MFRC522_CONTACTLESS_UART_INPUT_CONSTANT_LOW
@ MFRC522_CONTACTLESS_UART_MFIN_PIN
@ MFRC522_CONTACTLESS_UART_NRZ
@ MFRC522_RX_GAIN_48_DB
@ MFRC522_RX_GAIN_33_DB
@ MFRC522_RX_GAIN_38_DB
@ MFRC522_RX_GAIN_43_DB
@ MFRC522_RX_GAIN_18_DB
@ MFRC522_RX_GAIN_23_DB
@ MFRC522_ANTENNA_DRIVER_TX2_RF
@ MFRC522_ANTENNA_DRIVER_INV_TX1_RF_OFF
@ MFRC522_ANTENNA_DRIVER_TX2_CW
@ MFRC522_ANTENNA_DRIVER_INV_TX2_RF_ON
@ MFRC522_ANTENNA_DRIVER_TX1_RF
@ MFRC522_ANTENNA_DRIVER_INV_TX2_RF_OFF
@ MFRC522_ANTENNA_DRIVER_INV_TX1_RF_ON
@ MFRC522_RX_ALIGN_7
@ MFRC522_RX_ALIGN_0
@ MFRC522_RX_ALIGN_1
@ MFRC522_INTERRUPT2_CRC
@ MFRC522_INTERRUPT2_MFIN_ACT
@ MFRC522_INTERRUPT1_LO_ALERT
@ MFRC522_INTERRUPT1_IDLE
@ MFRC522_INTERRUPT1_TX
@ MFRC522_INTERRUPT1_TIMER
@ MFRC522_INTERRUPT1_HI_ALERT
@ MFRC522_INTERRUPT1_RX
@ MFRC522_INTERRUPT1_ERR
@ MFRC522_SPEED_848_KBD
@ MFRC522_SPEED_424_KBD
@ MFRC522_SPEED_106_KBD
@ MFRC522_SPEED_212_KBD
@ MFRC522_MFIN_POLARITY_LOW
@ MFRC522_MFIN_POLARITY_HIGH
@ MFRC522_MFOUT_INPUT_TEST
@ MFRC522_MFOUT_INPUT_HIGH
@ MFRC522_MFOUT_INPUT_TRANSMITTED
@ MFRC522_MFOUT_INPUT_LOW
@ MFRC522_MFOUT_INPUT_3_STATE
@ MFRC522_MFOUT_INPUT_INTERNAL_ENCODER
@ MFRC522_MFOUT_INPUT_RECEIVED
@ MFRC522_INTERRUPT_MARK_SET
@ MFRC522_INTERRUPT_MARK_CLEARED
uint8_t mfrc522_set_test_port_io(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test port io
uint8_t mfrc522_set_test_bus_signal_1(mfrc522_handle_t *handle, uint8_t s)
set the test bus signal 1
uint8_t mfrc522_get_test_bus_signal_1(mfrc522_handle_t *handle, uint8_t *s)
get the test bus signal 1
uint8_t mfrc522_set_test_dac_2(mfrc522_handle_t *handle, uint8_t dac)
set the test dac 2
uint8_t mfrc522_set_test_prbs15(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test prbs15
uint8_t mfrc522_get_test_prbs9(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test prbs9 status
uint8_t mfrc522_get_test_dac_2(mfrc522_handle_t *handle, uint8_t *dac)
get the test dac 2
uint8_t mfrc522_get_self_test(mfrc522_handle_t *handle, uint8_t *test)
get the self test
uint8_t mfrc522_get_test_pin_enable(mfrc522_handle_t *handle, uint8_t *pin)
get the test pin enable
uint8_t mfrc522_get_test_adc(mfrc522_handle_t *handle, uint8_t *adc_i, uint8_t *adc_q)
get the test adc
uint8_t mfrc522_get_test_port_io(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test port io status
uint8_t mfrc522_get_test_analog_control_aux_1(mfrc522_handle_t *handle, mfrc522_test_analog_control_t *control)
get the test analog control aux 1
uint8_t mfrc522_set_test_bus_signal_2(mfrc522_handle_t *handle, uint8_t s)
set the test bus signal 2
uint8_t mfrc522_set_test_analog_control_aux_2(mfrc522_handle_t *handle, mfrc522_test_analog_control_t control)
set the test analog control aux 2
uint8_t mfrc522_get_test_pin_value(mfrc522_handle_t *handle, uint8_t *value)
get the test pin value
uint8_t mfrc522_get_test_analog_control_aux_2(mfrc522_handle_t *handle, mfrc522_test_analog_control_t *control)
get the test analog control aux 2
uint8_t mfrc522_set_test_analog_control_aux_1(mfrc522_handle_t *handle, mfrc522_test_analog_control_t control)
set the test analog control aux 1
uint8_t mfrc522_get_test_amp_rcv(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test amp rcv status
uint8_t mfrc522_get_test_bus(mfrc522_handle_t *handle, uint8_t *bus)
get the test bus
uint8_t mfrc522_get_test_prbs15(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test prbs15 status
uint8_t mfrc522_set_test_amp_rcv(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test amp rcv
uint8_t mfrc522_get_test_bus_flip(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test bus flip status
uint8_t mfrc522_set_self_test(mfrc522_handle_t *handle, uint8_t test)
set the self test
uint8_t mfrc522_get_version(mfrc522_handle_t *handle, uint8_t *id, uint8_t *version)
get the version
uint8_t mfrc522_get_test_dac_1(mfrc522_handle_t *handle, uint8_t *dac)
get the test dac 1
uint8_t mfrc522_set_test_prbs9(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test prbs9
uint8_t mfrc522_set_test_pin_enable(mfrc522_handle_t *handle, uint8_t pin)
set the test pin enable
uint8_t mfrc522_get_test_bus_signal_2(mfrc522_handle_t *handle, uint8_t *s)
get the test bus signal 2
uint8_t mfrc522_set_test_dac_1(mfrc522_handle_t *handle, uint8_t dac)
set the test dac 1
uint8_t mfrc522_set_test_rs232_line(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test rs232 line
uint8_t mfrc522_set_test_pin_value(mfrc522_handle_t *handle, uint8_t value)
set the test pin value
uint8_t mfrc522_set_test_bus_flip(mfrc522_handle_t *handle, mfrc522_bool_t enable)
enable or disable test bus flip
uint8_t mfrc522_get_test_rs232_line(mfrc522_handle_t *handle, mfrc522_bool_t *enable)
get the test rs232 line status
uint8_t mfrc522_interface_uart_deinit(void)
interface uart deinit
void mfrc522_interface_receive_callback(uint16_t type)
interface receive callback
uint8_t mfrc522_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t mfrc522_interface_reset_gpio_deinit(void)
interface reset gpio deinit
uint8_t mfrc522_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
uint8_t mfrc522_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
void mfrc522_interface_delay_ms(uint32_t ms)
interface delay ms
uint16_t mfrc522_interface_uart_read(uint8_t *buf, uint16_t len)
interface uart read
uint8_t mfrc522_interface_reset_gpio_init(void)
interface reset gpio init
uint8_t mfrc522_interface_spi_deinit(void)
interface spi bus deinit
uint8_t mfrc522_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t mfrc522_interface_spi_init(void)
interface spi bus init
uint8_t mfrc522_interface_uart_flush(void)
interface uart flush
uint8_t mfrc522_interface_reset_gpio_write(uint8_t value)
interface reset gpio write
uint8_t mfrc522_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mfrc522_interface_iic_init(void)
interface iic bus init
void mfrc522_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mfrc522_interface_uart_init(void)
interface uart init
uint8_t mfrc522_interface_uart_write(uint8_t *buf, uint16_t len)
interface uart write
uint8_t mfrc522_register_test(mfrc522_interface_t interface, uint8_t addr)
register test
mfrc522 handle structure definition
mfrc522 information structure definition
float supply_voltage_max_v
uint32_t driver_version
char interface[32]
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]