본문 바로가기
코스웨어/15년 스마트컨트롤러

2015-12-09 RFID 개인업무일지 - 천정호

by 알 수 없는 사용자 2015. 12. 9.
728x90
반응형



















#ifndef  __RFID_H__

#define  __RFID_H__


#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <unistd.h>

#include <termios.h>

#include <fcntl.h>


#define CRC_PRESET  0xFFFF

#define CRC_POLYNOM 0x8408


#define SENDBSIZE   128

#define RECVBSIZE   128


#define INVENT_STD  0x0010

#define INVENT_EP8  0x0020

#define INVENT_E12  0x0040

#define INVENT_UID  0x0080


#define TRTYPE_ICODE_UID  0x8000

#define TRTYPE_ICODE_EPC  0x4000

#define TRTYPE_ICODE_156  0x0800

#define TRTYPE_ICODE_HF   0x0200

#define TRTYPE_ICODE_ICO  0x0100


#define MAXPORT     4

#define MAXONCEREAD 4


#pragma pack(1)


typedef struct WS_RFID        WS_RFID;

typedef struct RFID_MANAGER   RFID_MANAGER;

typedef struct COMMON         COMMON;

typedef struct INVEN_COMMON   INVEN_COMMON;

typedef struct IDD            IDD;

typedef  union INVENT_PTR     INVENT_PTR;


struct WS_RFID

{

    int iDev;

    struct termios stOldtio;

    unsigned char ucaSendTo[SENDBSIZE];

    unsigned char ucaRecvFr[RECVBSIZE];

};


/*

 struct RFID_MANAGER

 {

 WS_RFID  stCOM;

 int (port_cal)(int, struct termios *);

 int (close)(int, struct termios *);

 int (recv)(int, void *, int);

 int (send)(int, void *);

 int (open)();

 };

 */


struct COMMON

{

    unsigned char  ucLen;

    unsigned char  ucComAdr;

    unsigned char  ucCtl;

};


struct INVEN_COMMON  //Reply Inventory Common

{

    unsigned char  ucStatus;   //[4]

    unsigned char  ucDataSet;  //[5]

    unsigned char  ucTr_Type;  //[6]

};


struct IDD

{

    unsigned char  ucData[12];  //[0]~[11]

    unsigned short  usCrc;      //[12][13]

    unsigned char  ucUid[5];    //[14]~[18]

};


typedef struct ISO15693_reader_control_Baud_Rate_Detect

{

    COMMON          stCOM;

    unsigned char   ucOpt;

    unsigned short  usCrc;

}baud_detect;


typedef struct ISO15693_host_command_req_inven

{

    COMMON          stCOM;

    unsigned char   ucOpt;

    unsigned char   ucMode;

    unsigned short  usCrc;

}req_inven;


typedef struct ISO15693_host_command_reply_inven_standard

{

    COMMON         stCOM;     //[1]~[3]

    INVEN_COMMON   stICOM;    //[4]~[6]

    unsigned char  ucDSFID;   //[7]

    unsigned char  ucUID[8];  //[8]~[15]  //8Bytes

    unsigned short usCrc;     //[16][17]

}reply_inven_std;


typedef struct ISO15693_host_command_reply_inven_icode_epc8

{

    COMMON            stCOM;     //[1]~[3]

    INVEN_COMMON      stICOM;    //[4]~[6]

    unsigned char     ucEPC[8];  //[7]~[14]  //8Bytes

    unsigned short    usCrc;     //[15][16]

}reply_inven_icode_epc8;


typedef struct ISO15693_host_command_reply_inven_icode_epc12

{

    COMMON          stCOM;      //[1]~[3]

    INVEN_COMMON    stICOM;     //[4]~[6]

    unsigned char   ucEPC[12];  //[7]~[18]  //12Bytes

    unsigned short  usCrc;      //[19][20]

}reply_inven_icode_epc12;


typedef struct ISO15693_host_command_reply_inven_icode_uid

{

    COMMON           stCOM;   //[1]~[3]

    INVEN_COMMON     stICOM;  //[4]~[6]

    IDD              stIDD;   //[7]~[25]  //19Bytes

    unsigned short   usCrc;   //[26][27]

}reply_inven_icode_uid;


union INVENT_PTR

{

    reply_inven_std         *stSTD;

    reply_inven_icode_epc8  *stEPC8;

    reply_inven_icode_epc12 *stEPC12;

    reply_inven_icode_uid   *stUID;

};


unsigned short RFID_CRC(void *, unsigned int);


#pragma pack(1)


#endif /* __RFID_H__ */



728x90