-Fixed a bug in iso14_apdu

-According to ISO14443-4, the block number (bit 0) in the PCB needs to be flipped every once in a while. Not doing so leads to the card not responding to commands anymore. The flipping is done according to the standard now.
-Declare iso14_apdu in iso14443a.h to enable usage from other .c files
-iso14_apdu now returns 0 if ReaderReceive returned 0 (to distinguish between the case that ReaderReceive returns -1 and the case that it returns 0)
-Added a new function to change the timeout (to enable changing it from other .c files without the need for a global variable)
This commit is contained in:
frederikmoellers@aol.de 2012-08-24 21:00:03 +00:00
commit b0127e65f1
2 changed files with 26 additions and 4 deletions

View file

@ -89,8 +89,10 @@ extern int ReaderReceive(uint8_t* receivedAnswer);
extern int ReaderReceivePar(uint8_t* receivedAnswer, uint32_t * parptr);
extern void iso14443a_setup();
extern int iso14_apdu(uint8_t * cmd, size_t cmd_len, void * data);
extern int iso14443a_select_card(uint8_t * uid_ptr, iso14a_card_select_t * resp_data, uint32_t * cuid_ptr);
extern void iso14a_set_trigger(int enable);
extern void iso14a_set_timeout(uint32_t timeout);
extern void iso14a_clear_tracelen(void);
extern void iso14a_set_tracing(int enable);