mirror of
https://gitlab.com/fabinfra/fabhardware/fabreader.git
synced 2025-04-20 17:46:26 +02:00
Fixed CRC
This commit is contained in:
parent
b747c07945
commit
2e9b11afc4
@ -116,19 +116,24 @@ MFRC522::StatusCode NFC::Transceive(byte* command, byte command_len, byte* respo
|
|||||||
pcb = 0x0A;
|
pcb = 0x0A;
|
||||||
|
|
||||||
// Calculate CRC_A
|
// Calculate CRC_A
|
||||||
state = rfid->PCD_CalculateCRC(request_buffer, request_buffer_size, &request_buffer[request_buffer_size - 2]);
|
state = rfid->PCD_CalculateCRC(request_buffer, request_buffer_size - 2, &request_buffer[request_buffer_size - 2]);
|
||||||
if (state != MFRC522::STATUS_OK)
|
if (state != MFRC522::STATUS_OK)
|
||||||
{
|
{
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
byte response_buffer[APDU_BUFFER_SIZE + 4]; // APDU Size + PCB + CID + 2x CRC
|
||||||
|
byte response_buffer_size;
|
||||||
|
|
||||||
printbytes(request_buffer, request_buffer_size);
|
printbytes(request_buffer, request_buffer_size);
|
||||||
|
state = rfid->PCD_TransceiveData(request_buffer, request_buffer_size, response_buffer, &response_buffer_size);
|
||||||
state = rfid->PCD_TransceiveData(request_buffer, request_buffer_size, response, response_len);
|
|
||||||
if (state != MFRC522::STATUS_OK)
|
if (state != MFRC522::STATUS_OK)
|
||||||
{
|
{
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memcpy(response, response_buffer + 2, response_buffer_size - 4);
|
||||||
|
*response_len = response_buffer_size - 4;
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
@ -29,7 +29,7 @@ void loop()
|
|||||||
|
|
||||||
byte request_buffer[APDU_BUFFER_SIZE] = {0x90, 0x5A, 0x00, 0x00, 0x03, 0x42, 0x41, 0x46, 0x00};
|
byte request_buffer[APDU_BUFFER_SIZE] = {0x90, 0x5A, 0x00, 0x00, 0x03, 0x42, 0x41, 0x46, 0x00};
|
||||||
byte request_buffer_size = 9;
|
byte request_buffer_size = 9;
|
||||||
byte response_buffer[APDU_BUFFER_SIZE];
|
byte response_buffer[APDU_BUFFER_SIZE] = {0};
|
||||||
byte response_buffer_size;
|
byte response_buffer_size;
|
||||||
printbytes(request_buffer, request_buffer_size);
|
printbytes(request_buffer, request_buffer_size);
|
||||||
|
|
||||||
@ -42,6 +42,15 @@ void loop()
|
|||||||
Serial.println("Data Exchange complete");
|
Serial.println("Data Exchange complete");
|
||||||
printbytes(response_buffer, response_buffer_size);
|
printbytes(response_buffer, response_buffer_size);
|
||||||
|
|
||||||
|
state = nfc->Transceive(request_buffer, request_buffer_size, response_buffer, &response_buffer_size);
|
||||||
|
if (state != MFRC522::STATUS_OK)
|
||||||
|
{
|
||||||
|
Serial.println("Data Exchange failed");
|
||||||
|
Serial.println(state);
|
||||||
|
}
|
||||||
|
Serial.println("Data Exchange complete");
|
||||||
|
printbytes(response_buffer, response_buffer_size);
|
||||||
|
|
||||||
nfc->disconnectCard();
|
nfc->disconnectCard();
|
||||||
Serial.println("Card disconnected");
|
Serial.println("Card disconnected");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user