2 ============================================================================
7 Description : Very simple test of uFR library
8 ============================================================================
19 #define READER_TYPE 1 //uFR type (1Mbps)
21 #define PORT_NAME "/dev/ttyUSB0" //"" for auto
23 #define PORT_INTERFACE 1 //Serial
25 #define JSON_NUM(NAME) printf("\"" #NAME "\": %d", NAME)
26 #define JSON_STR(NAME) printf("\"" #NAME "\": \"%s\"", NAME)
27 #define JSON_START() printf("{\n")
28 #define JSON_NEXT() printf(",\n")
29 #define JSON_END() printf("\n}\n")
33 static void signal_exit(int sig)
36 fprintf(stderr, "signal %d, terminating\n", sig);
39 static void *read_cards(void *ptr)
49 fprintf(stderr, "uFCoder library version: %s\n", GetDllVersionStr());
51 status = ReaderOpenEx(READER_TYPE, PORT_NAME, PORT_INTERFACE, 0);
52 if (status != UFR_OK) {
53 fprintf(stderr, "ReaderOpenEx: %s\n", UFR_Status2String(status));
57 //status = ReaderUISignal(0, 0);
58 //printf("ReaderUISignal: %s\n", UFR_Status2String(status));
60 fputs(GetReaderDescription(), stderr);
63 status = GetDlogicCardType(&card_type);
64 if (status != UFR_OK) {
65 if (status != UFR_NO_CARD) {
66 fprintf(stderr, "GetDlogicCardType: %s\n", UFR_Status2String(status));
72 status = GetCardIdEx(&sak, uid_num, &uid_size);
73 if (status != UFR_OK) {
74 if (status != UFR_NO_CARD) {
75 fprintf(stderr, "GetCardIdEx: %s\n", UFR_Status2String(status));
81 for (uint8_t i = 0; i < uid_size; i++) {
82 sprintf(&uid[2*i], "%02x", uid_num[i]);
86 JSON_NUM(card_type); JSON_NEXT();
87 JSON_NUM(sak); JSON_NEXT();
88 JSON_NUM(uid_size); JSON_NEXT();
89 JSON_STR(uid); JSON_END();
94 status = ReaderClose();
95 fprintf(stderr, "ReaderClose: %s\n", UFR_Status2String(status));
104 signal(SIGINT, signal_exit);
105 signal(SIGTERM, signal_exit);
107 if (pthread_create(&t, NULL, read_cards, NULL)) {
108 perror("pthread_create");
112 pthread_join(t, NULL);