2 ============================================================================
7 Description : Very simple test of uFR library
8 ============================================================================
19 #define READER_TYPE 1 //uFR type (1Mbps)
20 #define PORT_NAME "/dev/ttyUSB0"
21 #define PORT_INTERFACE 1 //Serial
23 #define JSON_NUM(NAME) printf("\"" #NAME "\": %d", NAME)
24 #define JSON_STR(NAME) printf("\"" #NAME "\": \"%s\"", NAME)
25 #define JSON_START() printf("{\n")
26 #define JSON_NEXT() printf(",\n")
27 #define JSON_END() printf("\n}\n")
31 static void signal_exit(int sig)
33 fprintf(stderr, "signal %d\n", sig);
37 static void *read_cards(void *ptr)
47 fprintf(stderr, "uFCoder library version: %s\n", GetDllVersionStr());
49 status = ReaderOpenEx(READER_TYPE, PORT_NAME, PORT_INTERFACE, 0);
50 if (status != UFR_OK) {
51 fprintf(stderr, "ReaderOpenEx: %s\n", UFR_Status2String(status));
55 //status = ReaderUISignal(0, 0);
56 //printf("ReaderUISignal: %s\n", UFR_Status2String(status));
58 fputs(GetReaderDescription(), stderr);
61 status = GetDlogicCardType(&card_type);
62 if (status != UFR_OK) {
63 if (status != UFR_NO_CARD) {
64 fprintf(stderr, "GetDlogicCardType: %s\n", UFR_Status2String(status));
70 status = GetCardIdEx(&sak, uid_num, &uid_size);
71 if (status != UFR_OK) {
72 if (status != UFR_NO_CARD) {
73 fprintf(stderr, "GetCardIdEx: %s\n", UFR_Status2String(status));
79 for (uint8_t i = 0; i < uid_size; i++) {
80 sprintf(&uid[2*i], "%02x", uid_num[i]);
84 JSON_NUM(card_type); JSON_NEXT();
85 JSON_NUM(sak); JSON_NEXT();
86 JSON_NUM(uid_size); JSON_NEXT();
87 JSON_STR(uid); JSON_END();
92 status = ReaderClose();
93 fprintf(stderr, "ReaderClose: %s\n", UFR_Status2String(status));
102 signal(SIGINT, signal_exit);
103 signal(SIGTERM, signal_exit);
105 if (pthread_create(&t, NULL, read_cards, NULL)) {
106 perror("pthread_create");
110 pthread_join(t, NULL);