diff options
-rw-r--r-- | reader.c | 5 | ||||
-rw-r--r-- | reader_yhy.c | 18 |
2 files changed, 19 insertions, 4 deletions
@@ -8,6 +8,7 @@ #include "nfcommander.h" #include "reader.h" #include "config.h" +#include "command.h" #define MAX_PLUGIN_PATH NAME_MAX #define DEFAULT_POLL_TIMEOUT 1000 @@ -148,8 +149,7 @@ static int reader_process(){ printf("Slot %2lu: ", n); reader_print_tag(tags[n].info); printf(" valid\n"); - printf("%s\n", tags[n].info.static_data); - //TODO + command_start(&(tags[n].info)); return 0; } @@ -159,6 +159,7 @@ static int reader_process(){ else{ if(tags[n].flags & FLAG_ACTIVE){ //tag was removed - free any allocated members + command_stop(&(tags[n].info)); tag_info_free(&(tags[n].info)); printf("Tag in slot %lu removed\n", n); } diff --git a/reader_yhy.c b/reader_yhy.c index 704a053..5174ef9 100644 --- a/reader_yhy.c +++ b/reader_yhy.c @@ -142,11 +142,19 @@ uint8_t read_ntag(nfc_tag_info_t* tag){ return FLAG_TAG_DATA_VALID; } +void write_ntag(nfc_tag_info_t* tag){ + //TODO +} + uint8_t read_mifare(nfc_tag_info_t* tag){ //TODO return FLAG_TAG_LOCKED; } +void write_mifare(nfc_tag_info_t* tag){ + //TODO +} + int scan(){ nfc_tag_info_t card = { 0 @@ -154,7 +162,7 @@ int scan(){ uint16_t atqa = 0; uint8_t sak = 0; - uint8_t flags; + uint8_t flags = 0; for(yhy_sync_request(reader_fd, 1, &atqa); atqa; yhy_sync_request(reader_fd, 0, &atqa)){ sak = 0; @@ -201,7 +209,13 @@ int scan(){ reader_tag_present(flags, &card); break; case TAG_WRITE_REQUESTED: - //TODO write card data + //write card data + if(card.type == tag_ntag){ + write_ntag(&card); + } + else if(card.type == tag_mifare1){ + write_mifare(&card); + } break; } |