123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /*
- * Module_RFID.h
- *
- * Created on: 2019-10-24
- * Update: 2022-08-09
- * Author: Eason Yang
- * Version: V0.04
- *
- * History
- * 1. Added : Reyax constant.
- *
- *
- *
- *
- *
- */
-
- #ifndef LIB_RFID_H_
- #define LIB_RFID_H_
- #include <sys/time.h>
- #include <sys/timeb.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ipc.h>
- #include <sys/shm.h>
- #include <sys/shm.h>
- #include <sys/mman.h>
- #include <linux/wireless.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <stdio.h> /* Standard input/output definitions */
- #include <stdlib.h>
- #include <unistd.h> /* UNIX standard function definitions */
- #include <fcntl.h> /* File control definitions */
- #include <termios.h> /* POSIX terminal control definitions */
- #include <errno.h> /* Error number definitions */
- #include <string.h> /* String function definitions */
- #include <time.h>
- #include <ctype.h>
- #include <ifaddrs.h>
- #include <stdbool.h>
- typedef struct Rfid
- {
- uint8_t snType; // 4 bytes or 6 bytes or 7 bytes or 10 bytes
- uint8_t cardType; // 0: NONE 1: ISO14443A 2: ISO14443B 4: FELICA
- uint8_t currentCard[32]; // Current charging cycle start card number
- uint8_t targetBlock; // RFID read/write target block
- uint8_t keyType; // 0: Key-A 1: Key-B
- uint8_t data_Block[32]; // RFID operation block data
- }RFID;
- //==================================
- // Global Constant (Card Length)
- //==================================
- #define RFID_SN_TYPE_4BYTE 4
- #define RFID_SN_TYPE_6BYTE 6
- #define RFID_SN_TYPE_7BYTE 7
- #define RFID_SN_TYPE_8BYTE 8
- #define RFID_SN_TYPE_10BYTE 10
- //==================================
- // Global Constant (Card Type)
- //==================================
- #define NONE 0
- #define ISO14443A 1
- #define IS014443B 2
- #define FELICA 3
- //==================================
- // Global Constant (Module type)
- //==================================
- #define NO_MODULE -1
- #define MODULE_EWT 0
- #define MODULE_REYAX 1
- //==================================
- // Global Constant (RF Output level)
- //==================================
- #define SET_RF_STRONGEST 0x00
- #define SET_RF_STRONGER 0x01
- #define SET_RF_WEAK 0x02
- #define SET_RF_WEAKEST 0x03
- //==================================
- // Global Constant (Automatic Detecting)
- //==================================
- #define SET_DETECTING_OFF 0x00
- #define SET_DETECTING_ON 0x01
- #define SET_DETECTING_TEMPORARILY 0x11
- //==========================
- // Declare RFID module type
- //==========================
- #define RFID_MODULE_TYPE MODULE_EWT // EWT : MODULE_EWT REYAX : MODULE_REYAX
- char ClaCheckSum(unsigned char *buffer, int len);
- int system_command(int uart, unsigned char* cmd,int length, unsigned char* rx);
- int at_command(int uart, unsigned char* cmd,int length, unsigned char* rx);
- bool getRequestCardSN(int Fd, int moduleType,RFID *rfid);
- bool ISO14443A_REQUEST_SN(int Fd, int moduleType, unsigned char *serialNumber);
- bool ISO14443B_REQUEST_SN(int Fd, int moduleType, unsigned char *serialNumber);
- bool FELICA_REQUEST_SN(int Fd, int moduleType, unsigned char *serialNumber);
- bool getBlockRead(int Fd, int moduleType,int block, unsigned char keyid, unsigned char *data);
- bool setBlockWrite(int Fd, int moduleType,int block, unsigned char keyid, unsigned char *data);
- bool setDefaultOfAutomaticDetectingCard(int Fd, int moduleType, int Value);
- bool setRfOutputLevel(int Fd, int moduleType, int Value);
- void setBuzzer(int Fd, int moduleType, unsigned char time);
- void sethaltCard(int Fd, int moduleType);
- #endif
|