From c9601a9576d7a98bbe7322e201fa5e7aec2c03fa Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 15 Aug 2010 11:24:26 +0800 Subject: easytool: Decode the last MRT station entered/left fields --- easytool/easycard.h | 9 +++++++++ easytool/easytool.c | 13 ++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/easytool/easycard.h b/easytool/easycard.h index fb4d93d..37caf1f 100644 --- a/easytool/easycard.h +++ b/easytool/easycard.h @@ -28,6 +28,15 @@ struct easy_sect15blk2 { uint8_t unknown3; } __attribute__ ((packed)); +/* Sector 7 */ +struct easy_sect7blk { + uint8_t unknown[3]; + uint8_t value1; + uint8_t station_code; + uint8_t unknown2[5]; + uint8_t timestamp[3]; + uint8_t unknown3[3]; +} __attribute__ ((packed)); /* storage of a transaction log record on the transponder itself */ struct easy_log_rec { diff --git a/easytool/easytool.c b/easytool/easytool.c index cb9fe30..1a9eef9 100644 --- a/easytool/easytool.c +++ b/easytool/easytool.c @@ -96,6 +96,10 @@ static void dump_easycard(mifare_tag *mft) (struct easy_sect2blk0 *) mft->amb[1*4+0].mbd.abtData; struct easy_sect15blk2 *b15s2 = (struct easy_sect15blk2 *) mft->amb[15*4+2].mbd.abtData; + struct easy_sect7blk *mrt_enter = + (struct easy_sect7blk *) mft->amb[7*4+2].mbd.abtData; + struct easy_sect7blk *mrt_leave = + (struct easy_sect7blk *) mft->amb[7*4+1].mbd.abtData; uint32_t uid = *((uint32_t *) manuf->abtUID); /* dump the header */ @@ -105,9 +109,16 @@ static void dump_easycard(mifare_tag *mft) printf("Current Balance: %5u NTD\n", val->value); printf("Sum of all purchases on day %u (of month): %u NTD\n", b15s2->day_of_month, b15s2->sum_of_day); - printf("\nTransaction Log:\n"); + + printf("Last MRT station entered: %s (%s)\n", + get_value_string(taipei_mrt_stn_id, mrt_enter->station_code), + easy_asc_timestamp(mrt_enter->timestamp)); + printf("Last MRT station left: %s (%s)\n", + get_value_string(taipei_mrt_stn_id, mrt_leave->station_code), + easy_asc_timestamp(mrt_leave->timestamp)); /* dump the transaction log */ + printf("\nTransaction Log:\n"); easy_dump_log(mft); } -- cgit v1.2.3