style improved

This commit is contained in:
Rotzbua
2015-04-02 14:10:17 +02:00
parent ac12772d07
commit 12a42c8143
2 changed files with 44 additions and 44 deletions

View File

@@ -114,7 +114,7 @@ void MFRC522::PCD_ReadRegister( byte reg, ///< The register to read from. One o
mask |= (1 << i); mask |= (1 << i);
} }
// Read value and tell that we want to read the same address again. // Read value and tell that we want to read the same address again.
byte value = SPI.transfer(address); byte value = SPI.transfer(address);
// Apply mask to both current value of values[0] and the new data in value. // Apply mask to both current value of values[0] and the new data in value.
values[0] = (values[index] & ~mask) | (value & mask); values[0] = (values[index] & ~mask) | (value & mask);
} }
@@ -387,7 +387,7 @@ byte MFRC522::PCD_CommunicateWithPICC( byte command, ///< The command to execut
// Prepare values for BitFramingReg // Prepare values for BitFramingReg
byte txLastBits = validBits ? *validBits : 0; byte txLastBits = validBits ? *validBits : 0;
byte bitFraming = (rxAlign << 4) + txLastBits; // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] byte bitFraming = (rxAlign << 4) + txLastBits; // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0]
PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command. PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command.
PCD_WriteRegister(ComIrqReg, 0x7F); // Clear all seven interrupt request bits PCD_WriteRegister(ComIrqReg, 0x7F); // Clear all seven interrupt request bits
@@ -452,7 +452,7 @@ byte MFRC522::PCD_CommunicateWithPICC( byte command, ///< The command to execut
return STATUS_CRC_WRONG; return STATUS_CRC_WRONG;
} }
// Verify CRC_A - do our own calculation and store the control in controlBuffer. // Verify CRC_A - do our own calculation and store the control in controlBuffer.
byte controlBuffer[2]; byte controlBuffer[2];
n = PCD_CalculateCRC(&backData[0], *backLen - 2, &controlBuffer[0]); n = PCD_CalculateCRC(&backData[0], *backLen - 2, &controlBuffer[0]);
if (n != STATUS_OK) { if (n != STATUS_OK) {
return n; return n;
@@ -540,7 +540,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
bool uidComplete; bool uidComplete;
bool selectDone; bool selectDone;
bool useCascadeTag; bool useCascadeTag;
byte cascadeLevel = 1; byte cascadeLevel = 1;
byte result; byte result;
byte count; byte count;
byte index; byte index;
@@ -585,7 +585,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
// Repeat Cascade Level loop until we have a complete UID. // Repeat Cascade Level loop until we have a complete UID.
uidComplete = false; uidComplete = false;
while ( ! uidComplete) { while (!uidComplete) {
// Set the Cascade Level in the SEL byte, find out if we need to use the Cascade Tag in byte 2. // Set the Cascade Level in the SEL byte, find out if we need to use the Cascade Tag in byte 2.
switch (cascadeLevel) { switch (cascadeLevel) {
case 1: case 1:
@@ -624,7 +624,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
byte bytesToCopy = currentLevelKnownBits / 8 + (currentLevelKnownBits % 8 ? 1 : 0); // The number of bytes needed to represent the known bits for this level. byte bytesToCopy = currentLevelKnownBits / 8 + (currentLevelKnownBits % 8 ? 1 : 0); // The number of bytes needed to represent the known bits for this level.
if (bytesToCopy) { if (bytesToCopy) {
byte maxBytes = useCascadeTag ? 3 : 4; // Max 4 bytes in each Cascade Level. Only 3 left if we use the Cascade Tag byte maxBytes = useCascadeTag ? 3 : 4; // Max 4 bytes in each Cascade Level. Only 3 left if we use the Cascade Tag
if (bytesToCopy > maxBytes) { if (bytesToCopy > maxBytes) {
bytesToCopy = maxBytes; bytesToCopy = maxBytes;
} }
for (count = 0; count < bytesToCopy; count++) { for (count = 0; count < bytesToCopy; count++) {
@@ -638,7 +638,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
// Repeat anti collision loop until we can transmit all UID bits + BCC and receive a SAK - max 32 iterations. // Repeat anti collision loop until we can transmit all UID bits + BCC and receive a SAK - max 32 iterations.
selectDone = false; selectDone = false;
while ( ! selectDone) { while (!selectDone) {
// Find out how many bits and bytes to send and receive. // Find out how many bits and bytes to send and receive.
if (currentLevelKnownBits >= 32) { // All UID bits in this Cascade Level are known. This is a SELECT. if (currentLevelKnownBits >= 32) { // All UID bits in this Cascade Level are known. This is a SELECT.
//Serial.print("SELECT: currentLevelKnownBits="); Serial.println(currentLevelKnownBits, DEC); //Serial.print("SELECT: currentLevelKnownBits="); Serial.println(currentLevelKnownBits, DEC);
@@ -673,7 +673,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
PCD_WriteRegister(BitFramingReg, (rxAlign << 4) + txLastBits); // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] PCD_WriteRegister(BitFramingReg, (rxAlign << 4) + txLastBits); // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0]
// Transmit the buffer and receive the response. // Transmit the buffer and receive the response.
result = PCD_TransceiveData(buffer, bufferUsed, responseBuffer, &responseLength, &txLastBits, rxAlign); result = PCD_TransceiveData(buffer, bufferUsed, responseBuffer, &responseLength, &txLastBits, rxAlign);
if (result == STATUS_COLLISION) { // More than one PICC in the field => collision. if (result == STATUS_COLLISION) { // More than one PICC in the field => collision.
result = PCD_ReadRegister(CollReg); // CollReg[7..0] bits are: ValuesAfterColl reserved CollPosNotValid CollPos[4:0] result = PCD_ReadRegister(CollReg); // CollReg[7..0] bits are: ValuesAfterColl reserved CollPosNotValid CollPos[4:0]
if (result & 0x20) { // CollPosNotValid if (result & 0x20) { // CollPosNotValid
@@ -690,7 +690,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
currentLevelKnownBits = collisionPos; currentLevelKnownBits = collisionPos;
count = (currentLevelKnownBits - 1) % 8; // The bit to modify count = (currentLevelKnownBits - 1) % 8; // The bit to modify
index = 1 + (currentLevelKnownBits / 8) + (count ? 1 : 0); // First byte is index 0. index = 1 + (currentLevelKnownBits / 8) + (count ? 1 : 0); // First byte is index 0.
buffer[index] |= (1 << count); buffer[index] |= (1 << count);
} }
else if (result != STATUS_OK) { else if (result != STATUS_OK) {
return result; return result;
@@ -706,7 +706,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
// Run loop again to do the SELECT. // Run loop again to do the SELECT.
} }
} }
} // End of while ( ! selectDone) } // End of while (!selectDone)
// We do not check the CBB - it was constructed by us above. // We do not check the CBB - it was constructed by us above.
@@ -718,7 +718,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
} }
// Check response SAK (Select Acknowledge) // Check response SAK (Select Acknowledge)
if (responseLength != 3 || txLastBits != 0) { // SAK must be exactly 24 bits (1 byte + CRC_A). if (responseLength != 3 || txLastBits != 0) { // SAK must be exactly 24 bits (1 byte + CRC_A).
return STATUS_ERROR; return STATUS_ERROR;
} }
// Verify CRC_A - do our own calculation and store the control in buffer[2..3] - those bytes are not needed anymore. // Verify CRC_A - do our own calculation and store the control in buffer[2..3] - those bytes are not needed anymore.
@@ -736,7 +736,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
uidComplete = true; uidComplete = true;
uid->sak = responseBuffer[0]; uid->sak = responseBuffer[0];
} }
} // End of while ( ! uidComplete) } // End of while (!uidComplete)
// Set correct uid->size // Set correct uid->size
uid->size = 3 * cascadeLevel + 1; uid->size = 3 * cascadeLevel + 1;
@@ -751,7 +751,7 @@ byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally outp
*/ */
byte MFRC522::PICC_HaltA() { byte MFRC522::PICC_HaltA() {
byte result; byte result;
byte buffer[4]; byte buffer[4];
// Build command buffer // Build command buffer
buffer[0] = PICC_CMD_HLTA; buffer[0] = PICC_CMD_HLTA;
@@ -898,7 +898,7 @@ byte MFRC522::MIFARE_Write( byte blockAddr, ///< MIFARE Classic: The block (0-0x
} }
// Step 2: Transfer the data // Step 2: Transfer the data
result = PCD_MIFARE_Transceive( buffer, bufferSize); // Adds CRC_A and checks that the response is MF_ACK. result = PCD_MIFARE_Transceive(buffer, bufferSize); // Adds CRC_A and checks that the response is MF_ACK.
if (result != STATUS_OK) { if (result != STATUS_OK) {
return result; return result;
} }
@@ -1250,7 +1250,7 @@ void MFRC522::PICC_DumpToSerial(Uid *uid ///< Pointer to Uid struct returned fro
PICC_DumpMifareUltralightToSerial(); PICC_DumpMifareUltralightToSerial();
break; break;
case PICC_TYPE_ISO_14443_4: case PICC_TYPE_ISO_14443_4:
case PICC_TYPE_ISO_18092: case PICC_TYPE_ISO_18092:
case PICC_TYPE_MIFARE_PLUS: case PICC_TYPE_MIFARE_PLUS:
case PICC_TYPE_TNP3XXX: case PICC_TYPE_TNP3XXX:
@@ -1293,7 +1293,7 @@ void MFRC522::PICC_DumpMifareClassicToSerial( Uid *uid, ///< Pointer to Uid str
break; break;
default: // Should not happen. Ignore. default: // Should not happen. Ignore.
break; break;
} }
// Dump sectors, highest address first. // Dump sectors, highest address first.
@@ -1526,16 +1526,16 @@ bool MFRC522::MIFARE_OpenUidBackdoor(bool logErrors) {
byte response[32]; // Card's response is written here byte response[32]; // Card's response is written here
byte received; byte received;
byte status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 40 byte status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 40
if( status != STATUS_OK ) { if(status != STATUS_OK) {
if( logErrors ) { if(logErrors) {
Serial.println(F("Card did not respond to 0x40 after HALT command. Are you sure it is a UID changeable one?")); Serial.println(F("Card did not respond to 0x40 after HALT command. Are you sure it is a UID changeable one?"));
Serial.print(F("Error name: ")); Serial.print(F("Error name: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }
return false; return false;
} }
if ( received != 1 || response[0] != 0x0A ) { if (received != 1 || response[0] != 0x0A) {
if ( logErrors ) { if (logErrors) {
Serial.print(F("Got bad response on backdoor 0x40 command: ")); Serial.print(F("Got bad response on backdoor 0x40 command: "));
Serial.print(response[0], HEX); Serial.print(response[0], HEX);
Serial.print(F(" (")); Serial.print(F(" ("));
@@ -1548,16 +1548,16 @@ bool MFRC522::MIFARE_OpenUidBackdoor(bool logErrors) {
cmd = 0x43; cmd = 0x43;
validBits = 8; validBits = 8;
status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 43 status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 43
if( status != STATUS_OK ) { if(status != STATUS_OK) {
if( logErrors ) { if(logErrors) {
Serial.println(F("Error in communication at command 0x43, after successfully executing 0x40")); Serial.println(F("Error in communication at command 0x43, after successfully executing 0x40"));
Serial.print(F("Error name: ")); Serial.print(F("Error name: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }
return false; return false;
} }
if ( received != 1 || response[0] != 0x0A ) { if (received != 1 || response[0] != 0x0A) {
if ( logErrors ) { if (logErrors) {
Serial.print(F("Got bad response on backdoor 0x43 command: ")); Serial.print(F("Got bad response on backdoor 0x43 command: "));
Serial.print(response[0], HEX); Serial.print(response[0], HEX);
Serial.print(F(" (")); Serial.print(F(" ("));
@@ -1579,11 +1579,11 @@ bool MFRC522::MIFARE_OpenUidBackdoor(bool logErrors) {
* It assumes a default KEY A of 0xFFFFFFFFFFFF. * It assumes a default KEY A of 0xFFFFFFFFFFFF.
* Make sure to have selected the card before this function is called. * Make sure to have selected the card before this function is called.
*/ */
bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) { bool MFRC522::MIFARE_SetUid(byte *newUid, byte uidSize, bool logErrors) {
// UID + BCC byte can not be larger than 16 together // UID + BCC byte can not be larger than 16 together
if ( !newUid || !uidSize || uidSize > 15) { if (!newUid || !uidSize || uidSize > 15) {
if ( logErrors ) { if (logErrors) {
Serial.println(F("New UID buffer empty, size 0, or size > 15 given")); Serial.println(F("New UID buffer empty, size 0, or size > 15 given"));
} }
return false; return false;
@@ -1592,9 +1592,9 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
// Authenticate for reading // Authenticate for reading
MIFARE_Key key = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; MIFARE_Key key = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
byte status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); byte status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid);
if ( status != STATUS_OK ) { if (status != STATUS_OK) {
if ( status == STATUS_TIMEOUT ) { if (status == STATUS_TIMEOUT) {
// We get a read timeout if no card is selected yet, so let's select one // We get a read timeout if no card is selected yet, so let's select one
// Wake the card up again if sleeping // Wake the card up again if sleeping
@@ -1602,15 +1602,15 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
// byte atqa_size = 2; // byte atqa_size = 2;
// PICC_WakeupA(atqa_answer, &atqa_size); // PICC_WakeupA(atqa_answer, &atqa_size);
if ( !PICC_IsNewCardPresent() || !PICC_ReadCardSerial() ) { if (!PICC_IsNewCardPresent() || !PICC_ReadCardSerial()) {
Serial.println(F("No card was previously selected, and none are available. Failed to set UID.")); Serial.println(F("No card was previously selected, and none are available. Failed to set UID."));
return false; return false;
} }
status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid);
if ( status != STATUS_OK ) { if (status != STATUS_OK) {
// We tried, time to give up // We tried, time to give up
if ( logErrors ) { if (logErrors) {
Serial.println(F("Failed to authenticate to card for reading, could not set UID: ")); Serial.println(F("Failed to authenticate to card for reading, could not set UID: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }
@@ -1618,7 +1618,7 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
} }
} }
else { else {
if ( logErrors ) { if (logErrors) {
Serial.print(F("PCD_Authenticate() failed: ")); Serial.print(F("PCD_Authenticate() failed: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }
@@ -1630,8 +1630,8 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
byte block0_buffer[18]; byte block0_buffer[18];
byte byteCount = sizeof(block0_buffer); byte byteCount = sizeof(block0_buffer);
status = MIFARE_Read((byte)0, block0_buffer, &byteCount); status = MIFARE_Read((byte)0, block0_buffer, &byteCount);
if ( status != STATUS_OK ) { if (status != STATUS_OK) {
if ( logErrors ) { if (logErrors) {
Serial.print(F("MIFARE_Read() failed: ")); Serial.print(F("MIFARE_Read() failed: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
Serial.println(F("Are you sure your KEY A for sector 0 is 0xFFFFFFFFFFFF?")); Serial.println(F("Are you sure your KEY A for sector 0 is 0xFFFFFFFFFFFF?"));
@@ -1641,7 +1641,7 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
// Write new UID to the data we just read, and calculate BCC byte // Write new UID to the data we just read, and calculate BCC byte
byte bcc = 0; byte bcc = 0;
for ( int i = 0; i < uidSize; i++ ) { for (int i = 0; i < uidSize; i++) {
block0_buffer[i] = newUid[i]; block0_buffer[i] = newUid[i];
bcc ^= newUid[i]; bcc ^= newUid[i];
} }
@@ -1653,8 +1653,8 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
PCD_StopCrypto1(); PCD_StopCrypto1();
// Activate UID backdoor // Activate UID backdoor
if ( !MIFARE_OpenUidBackdoor(logErrors) ) { if (!MIFARE_OpenUidBackdoor(logErrors)) {
if ( logErrors ) { if (logErrors) {
Serial.println(F("Activating the UID backdoor failed.")); Serial.println(F("Activating the UID backdoor failed."));
} }
return false; return false;
@@ -1663,7 +1663,7 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
// Write modified block 0 back to card // Write modified block 0 back to card
status = MIFARE_Write((byte)0, block0_buffer, (byte)16); status = MIFARE_Write((byte)0, block0_buffer, (byte)16);
if (status != STATUS_OK) { if (status != STATUS_OK) {
if ( logErrors ) { if (logErrors) {
Serial.print(F("MIFARE_Write() failed: ")); Serial.print(F("MIFARE_Write() failed: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }
@@ -1682,14 +1682,14 @@ bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) {
* Resets entire sector 0 to zeroes, so the card can be read again by readers. * Resets entire sector 0 to zeroes, so the card can be read again by readers.
*/ */
bool MFRC522::MIFARE_UnbrickUidSector(bool logErrors) { bool MFRC522::MIFARE_UnbrickUidSector(bool logErrors) {
MIFARE_OpenUidBackdoor( logErrors ); MIFARE_OpenUidBackdoor(logErrors);
byte block0_buffer[] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; byte block0_buffer[] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
// Write modified block 0 back to card // Write modified block 0 back to card
byte status = MIFARE_Write((byte)0, block0_buffer, (byte)16); byte status = MIFARE_Write((byte)0, block0_buffer, (byte)16);
if (status != STATUS_OK) { if (status != STATUS_OK) {
if ( logErrors ) { if (logErrors) {
Serial.print(F("MIFARE_Write() failed: ")); Serial.print(F("MIFARE_Write() failed: "));
Serial.println(GetStatusCodeName(status)); Serial.println(GetStatusCodeName(status));
} }

View File

@@ -324,7 +324,7 @@ public:
byte PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = NULL, byte *backLen = NULL, byte *validBits = NULL, byte rxAlign = 0, bool checkCRC = false); byte PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = NULL, byte *backLen = NULL, byte *validBits = NULL, byte rxAlign = 0, bool checkCRC = false);
byte PICC_RequestA(byte *bufferATQA, byte *bufferSize); byte PICC_RequestA(byte *bufferATQA, byte *bufferSize);
byte PICC_WakeupA(byte *bufferATQA, byte *bufferSize); byte PICC_WakeupA(byte *bufferATQA, byte *bufferSize);
byte PICC_REQA_or_WUPA(byte command, byte *bufferATQA, byte *bufferSize); byte PICC_REQA_or_WUPA(byte command, byte *bufferATQA, byte *bufferSize);
byte PICC_Select(Uid *uid, byte validBits = 0); byte PICC_Select(Uid *uid, byte validBits = 0);
byte PICC_HaltA(); byte PICC_HaltA();
@@ -360,14 +360,14 @@ public:
void PICC_DumpMifareUltralightToSerial(); void PICC_DumpMifareUltralightToSerial();
void MIFARE_SetAccessBits(byte *accessBitBuffer, byte g0, byte g1, byte g2, byte g3); void MIFARE_SetAccessBits(byte *accessBitBuffer, byte g0, byte g1, byte g2, byte g3);
bool MIFARE_OpenUidBackdoor(bool logErrors); bool MIFARE_OpenUidBackdoor(bool logErrors);
bool MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors); bool MIFARE_SetUid(byte *newUid, byte uidSize, bool logErrors);
bool MIFARE_UnbrickUidSector(bool logErrors); bool MIFARE_UnbrickUidSector(bool logErrors);
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
// Convenience functions - does not add extra functionality // Convenience functions - does not add extra functionality
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
bool PICC_IsNewCardPresent(); bool PICC_IsNewCardPresent();
bool PICC_ReadCardSerial(); bool PICC_ReadCardSerial();
private: private:
byte _chipSelectPin; // Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) byte _chipSelectPin; // Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low)