Exemplo n.º 1
0
int mifare_ultra_special_writeblock(uint8_t blockNo, uint8_t *blockData)
{
	uint16_t len;
	uint8_t d_block[8] = {0x00};
	uint8_t receivedAnswer[MAX_MIFARE_FRAME_SIZE];
	uint8_t receivedAnswerPar[MAX_MIFARE_PARITY_SIZE];

	// command MIFARE_CLASSIC_WRITEBLOCK
	d_block[0]= blockNo;
	memcpy(d_block+1,blockData,4);
	AppendCrc14443a(d_block, 6);

	len = mifare_sendcmd_short_special(NULL, 1, 0xA2, d_block, receivedAnswer, receivedAnswerPar, NULL);

	if (receivedAnswer[0] != 0x0A) {   //  0x0a - ACK
		if (MF_DBGLEVEL >= MF_DBG_ERROR)
			Dbprintf("Cmd Send Error: %02x %d", receivedAnswer[0],len);
		return 1;
	}
	return 0;
}
Exemplo n.º 2
0
int mifare_ultra_special_writeblock(uint32_t uid, uint8_t blockNo, uint8_t *blockData)
{
    uint16_t len;

    uint8_t d_block[8];
    uint8_t *receivedAnswer = get_bigbufptr_recvrespbuf();
	uint8_t *receivedAnswerPar = receivedAnswer + MAX_FRAME_SIZE;

    // command MIFARE_CLASSIC_WRITEBLOCK
	memset(d_block,'\0',8);
	d_block[0]= blockNo;
	memcpy(d_block+1,blockData,4);
	AppendCrc14443a(d_block, 6);

	//i know the data send here is correct
    len = mifare_sendcmd_short_special(NULL, 1, 0xA2, d_block, receivedAnswer, receivedAnswerPar, NULL);

    if (receivedAnswer[0] != 0x0A) {   //  0x0a - ACK
        if (MF_DBGLEVEL >= 1)   Dbprintf("Cmd Send Error: %02x %d", receivedAnswer[0],len);
        return 1;
    }

    return 0;
}