From dfc3c5053cb9347fc2ff63342aad7abc3bbf94c6 Mon Sep 17 00:00:00 2001 From: "roel@libnfc.org" Date: Wed, 3 Apr 2013 11:18:01 +0000 Subject: [PATCH] removed another redundant function to compose reader short frame --- armsrc/iso14443a.c | 35 ++++++++++++----------------------- armsrc/iso14443a.h | 2 +- armsrc/mifarecmd.c | 6 +++--- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index 5a01178d..6c80c02d 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -1547,44 +1547,33 @@ static int GetIso14443aAnswerFromTag(uint8_t *receivedResponse, int maxLen, int } } -void ReaderTransmitShort(const uint8_t* bt) +void ReaderTransmitBitsPar(uint8_t* frame, int bits, uint32_t par) { int wait = 0; int samples = 0; - -// ShortFrameFromReader(*bt); - CodeIso14443aBitsAsReaderPar(bt,7,0); - - // Select the card - TransmitFor14443a(ToSend, ToSendMax, &samples, &wait); - - // Store reader command in buffer - if (tracing) LogTrace(bt,1,0,GetParity(bt,1),TRUE); -} - -void ReaderTransmitPar(uint8_t* frame, int len, uint32_t par) -{ - int wait = 0; - int samples = 0; - + // This is tied to other size changes // uint8_t* frame_addr = ((uint8_t*)BigBuf) + 2024; - CodeIso14443aAsReaderPar(frame,len,par); - + CodeIso14443aBitsAsReaderPar(frame,bits,par); + // Select the card TransmitFor14443a(ToSend, ToSendMax, &samples, &wait); if(trigger) LED_A_ON(); - + // Store reader command in buffer - if (tracing) LogTrace(frame,len,0,par,TRUE); + if (tracing) LogTrace(frame,nbytes(bits),0,par,TRUE); } +void ReaderTransmitPar(uint8_t* frame, int len, uint32_t par) +{ + ReaderTransmitBitsPar(frame,len*8,par); +} void ReaderTransmit(uint8_t* frame, int len) { // Generate parity and redirect - ReaderTransmitPar(frame,len,GetParity(frame,len)); + ReaderTransmitBitsPar(frame,len*8,GetParity(frame,len)); } int ReaderReceive(uint8_t* receivedAnswer) @@ -1623,7 +1612,7 @@ int iso14443a_select_card(byte_t* uid_ptr, iso14a_card_select_t* p_hi14a_card, u int len; // Broadcast for a card, WUPA (0x52) will force response from all cards in the field - ReaderTransmitShort(wupa); + ReaderTransmitBitsPar(wupa,7,0); // Receive the ATQA if(!ReaderReceive(resp)) return 0; // Dbprintf("atqa: %02x %02x",resp[0],resp[1]); diff --git a/armsrc/iso14443a.h b/armsrc/iso14443a.h index 8422f6cb..c3051d48 100644 --- a/armsrc/iso14443a.h +++ b/armsrc/iso14443a.h @@ -82,8 +82,8 @@ extern byte_t oddparity (const byte_t bt); extern uint32_t GetParity(const uint8_t * pbtCmd, int iLen); extern void AppendCrc14443a(uint8_t* data, int len); -extern void ReaderTransmitShort(const uint8_t* bt); extern void ReaderTransmit(uint8_t* frame, int len); +extern void ReaderTransmitBitsPar(uint8_t* frame, int bits, uint32_t par); extern void ReaderTransmitPar(uint8_t* frame, int len, uint32_t par); extern int ReaderReceive(uint8_t* receivedAnswer); extern int ReaderReceivePar(uint8_t* receivedAnswer, uint32_t * parptr); diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c index e7850b3f..6ca9e4e9 100644 --- a/armsrc/mifarecmd.c +++ b/armsrc/mifarecmd.c @@ -801,7 +801,7 @@ void MifareCSetBlock(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datai // reset chip if (needWipe){ - ReaderTransmitShort(wupC1); + ReaderTransmitBitsPar(wupC1,7,0); if(!ReaderReceive(receivedAnswer) || (receivedAnswer[0] != 0x0a)) { if (MF_DBGLEVEL >= 1) Dbprintf("wupC1 error"); break; @@ -821,7 +821,7 @@ void MifareCSetBlock(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datai // write block if (workFlags & 0x02) { - ReaderTransmitShort(wupC1); + ReaderTransmitBitsPar(wupC1,7,0); if(!ReaderReceive(receivedAnswer) || (receivedAnswer[0] != 0x0a)) { if (MF_DBGLEVEL >= 1) Dbprintf("wupC1 error"); break; @@ -919,7 +919,7 @@ void MifareCGetBlock(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datai while (true) { if (workFlags & 0x02) { - ReaderTransmitShort(wupC1); + ReaderTransmitBitsPar(wupC1,7,0); if(!ReaderReceive(receivedAnswer) || (receivedAnswer[0] != 0x0a)) { if (MF_DBGLEVEL >= 1) Dbprintf("wupC1 error"); break; -- 2.39.5