Example #1
0
/**
 * @brief  Checks if a FELICA card is still in the field
 * @param  void
 * @return ISO18092_SUCCESSCODE : the function is succesful
 * @return ISO18092_ERRORCODE_DEFAULT : No card in the RF field
 */
int8_t FELICA_CardTest( void )
{
	uint8_t DummyBuffer[MAX_BUFFER_SIZE];

	if(PCD_CheckSendReceive(REQC, DummyBuffer)!= ISO18092_SUCCESSCODE)
		return ISO18092_ERRORCODE_DEFAULT;

	return ISO18092_SUCCESSCODE;
}
Example #2
0
/**
 * @brief  Handles the REQC command
 * @param  *pDataRead	: Pointer on the response
 * @return TRUE (if CR95HF answered ATQB) / FALSE (No ISO14443B in Field)
 */
static int8_t FELICA_REQC( uint8_t *pDataRead )
{
	if(PCD_CheckSendReceive(REQC, pDataRead)!= ISO18092_SUCCESSCODE)
		return ISO18092_ERRORCODE_DEFAULT;
		
	if (pDataRead[2] != 0x01) // If the answer is not an answer to REQC
		return ISO18092_ERRORCODE_DEFAULT;
	else
		return ISO18092_SUCCESSCODE;
}
Example #3
0
/**
 * @brief  Initializes the PCD device for the IS014443A protocol
 * @param  *pDataRead	: Pointer to the PCD response
 * @return ISO14443A_SUCCESSCODE the function is succesful
 * @return ISO14443A_ERRORCODE_DEFAULT : an error occured
 */
int8_t TOPAZ_ID( uint8_t *pDataRead)
{
	uint8_t Tag_error_check;

	if(PCD_CheckSendReceive(TOPAZ, pDataRead) != ISO14443A_SUCCESSCODE)
		return ISO14443A_ERRORCODE_DEFAULT;

	Tag_error_check = pDataRead[RFTRANS_95HF_LENGTH_OFFSET]-1;
	if((pDataRead[Tag_error_check] & ISO14443A_CRCMASK)	 == ISO14443A_CRC_ERRORCODE_TYPEA)
		return ISO14443A_ERRORCODE_CRC;

	if(pDataRead[0] == SENDRECV_RESULTSCODE_OK && pDataRead[1] == 0x04)
		return ISO14443A_ERRORCODE_DEFAULT;
		
	st95mode = PCD;
	if (pDataRead[0] == 0x80)
		st95tagtype = TT1;
	else
		return ISO14443A_ERRORCODE_DEFAULT;
	   	
	return ISO14443A_SUCCESSCODE;
}