[Add] First commit
This commit is contained in:
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright 2017-2020, NXP
|
||||
*
|
||||
* All rights are reserved. Reproduction in whole or in part is
|
||||
* prohibited without the written consent of the copyright owner.
|
||||
* NXP reserves the right to make changes without notice at any time.
|
||||
* NXP makes no warranty, expressed, implied or statutory, including but
|
||||
* not limited to any implied warranty of merchantability or fitness for any
|
||||
*particular purpose, or that the use will not infringe any third party patent,
|
||||
* copyright or trademark. NXP must not be liable for any loss or damage
|
||||
* arising from its use.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
* Simplified API ISO 18000.
|
||||
*
|
||||
* $Author$
|
||||
* $Revision$ (v07.10.00)
|
||||
* $Date$
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef EX11_SIMPLIFIEDAPI_ISO_18000_H
|
||||
#define EX11_SIMPLIFIEDAPI_ISO_18000_H
|
||||
|
||||
/* ACK does not take any parameter and uses the handle present in context */
|
||||
#define I18000_ACK() { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Ack; \
|
||||
}
|
||||
|
||||
/* REQRN takes the option with which to perform the REQRn Command */
|
||||
/* bOpt can be only PHAL_I18000P3M3_REQRN_USE_HANDLE here */
|
||||
#define I18000_REQRN(bOpt) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bOption = bOpt; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_ReqRn; \
|
||||
}
|
||||
|
||||
/* READ takes the Memory Bank to read, address of the word to read, length of the word ptr and No of words to read */
|
||||
/* bMembank can be 0x00 - 0x03 , pWordptr is user choice limited to tag memory size */
|
||||
/* bWordPtrLength can be 0x00 - 0x03 and depends on the TAG memory size , bWordcount is the number of words to read */
|
||||
#define I18000_READ(bMembank, pWordptr, bWordPtrlength, bWordcount) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bMemBank = bMembank; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pWordPtr = pWordptr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordPtrLength = bWordPtrlength; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordCount = bWordcount; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Read; \
|
||||
}
|
||||
|
||||
/* WRITE takes the option, Memory Bank to write, address of the word to write, length of the word ptr and Data to write */
|
||||
/* bOpt can be #PH_NFCLIB_18000P3M3_AC_NO_COVER_CODING or #PH_NFCLIB_18000P3M3_AC_USE_COVER_CODING, bMembank can be 0x00 - 0x03 */
|
||||
/* pWordptr is user choice limited to tag memory size, bWordPtrLength can be 0x00 - 0x03 and depends on the TAG memory size */
|
||||
/* pData is a 2 byte word to write */
|
||||
#define I18000_WRITE(bOpt, bMembank, pWordptr, bWordPtrlength, pData) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bOption = bOpt; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bMemBank = bMembank; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pWordPtr = pWordptr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordPtrLength = bWordPtrlength; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pBuffer = pData; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Write; \
|
||||
}
|
||||
|
||||
/* KILL takes the option , the password for the kill and recommissioning option */
|
||||
/* bOpt can be #PH_NFCLIB_18000P3M3_AC_NO_COVER_CODING or #PH_NFCLIB_18000P3M3_AC_USE_COVER_CODING, pPassWord is a 4 byte password */
|
||||
/* bReCom can be any optional or mandatory support Recom option, value 0x04 is a mandatory support */
|
||||
#define I18000_KILL(bOpt, pPassWord, bReCom) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bOption = bOpt; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pPassword = pPassWord; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bRecom = bReCom; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Kill; \
|
||||
}
|
||||
|
||||
/* LOCK takes the Mask on which and the action with which to perform the Lock */
|
||||
/* pLockMask and pLockAction both are a 10-bit field please refer ISO 18000-3M3 for detailed value */
|
||||
#define I18000_LOCK(pLockMask, pLockAction) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pMask = pLockMask; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pAction = pLockAction; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Lock; \
|
||||
}
|
||||
|
||||
/* ACCESS takes the option and password for the Access */
|
||||
/* bOpt can be #PH_NFCLIB_18000P3M3_AC_NO_COVER_CODING or #PH_NFCLIB_18000P3M3_AC_USE_COVER_CODING, pPassWord is a 4 byte password */
|
||||
#define I18000_ACCESS(bOpt, pPassWord) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bOption = bOpt; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pPassword = pPassWord; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_Access; \
|
||||
}
|
||||
|
||||
/* BLOCKWRITE takes the Memory Bank to write ,address of the word,length of the word ptr, No of words and Data to write */
|
||||
/* bMembank can be 0x00 - 0x03, pWordptr is user choice limited to tag memory size, bWordPtrLen can be 0x00 - 0x03 and depends on the TAG memory size */
|
||||
/* bWordcount is the no of words to write and is card support specific, pData takes the data to write */
|
||||
#define I18000_BLOCKWRITE(bMembank, pWordptr, bWordPtrLen, bWordcount, pData) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bMemBank = bMembank; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pWordPtr = pWordptr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordPtrLength = bWordPtrLen; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordCount = bWordcount; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pBuffer = pData; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_BlockWrite; \
|
||||
}
|
||||
|
||||
/* BLOCKERASE takes the Memory Bank to write ,address of the word,length of the word ptr and No of words to erase */
|
||||
/* bMembank can be 0x00 - 0x03, pWordptr is user choice limited to tag memory size */
|
||||
/* bWordPtrLen can be 0x00 - 0x03 and depends on the TAG memory size and No of words to erase is card support specific*/
|
||||
#define I18000_BLOCKERASE(bMembank, pWordptr, bWordPtrLen, bWordcount) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bMemBank = bMembank; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pWordPtr = pWordptr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordPtrLength = bWordPtrLen; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bWordCount = bWordcount; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_BlockErase; \
|
||||
}
|
||||
|
||||
/* BLOCKPERMALOCK takes the RFU, READ/LOCK choice, Memory Bank to PermaLock, starting address of the block and length of the block ptr, range of the block mask, and MemMask */
|
||||
/* bRFU is to be kept 0, bReadlock can be 0/1, bMembank can be 0x00 - 0x03, pBlockptr is user choice limited to tag memory size */
|
||||
/* bBlockPtrLen can be 0x00 - 0x03, bBlockrange depends on Tag Memory and pMemMask along with ReadLock depend upon 0/1 */
|
||||
#define I18000_BLOCKPERMALOCK(bRfu, bReadlock, bMembank, pBlockptr, bBlockPtrLen, bBlockrange, pMemMask) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bRFU = bRfu; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bReadLock = bReadlock; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bMemBank = bMembank; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pBlockPtr = pBlockptr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bBlockPtrLength = bBlockPtrLen; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bBlockRange = bBlockrange; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pMask = pMemMask; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_BlockPermaLock; \
|
||||
}
|
||||
|
||||
/* SETHANDLE takes the pointer to the handle */
|
||||
/* pHandlePtr is a 2 byte Handle return by the REQRN command */
|
||||
#define I18000_SETHANDLE(pHandlePtr) { \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.pHandle = pHandlePtr; \
|
||||
phNfcLib_TransmitInput.phNfcLib_ISO18000.bCommand = ISO18000_SetHandle; \
|
||||
}
|
||||
|
||||
#endif /* EX11_SIMPLIFIEDAPI_ISO_18000_H */
|
||||
Reference in New Issue
Block a user