unsigned int tag_get_datablocks(BYTE tag) { switch(tag) { // raw tag types return number of blocks needed for emulator tag type case TAG_TYPE_ASK_RAW: case TAG_TYPE_FSK1_RAW: case TAG_TYPE_FSK2_RAW: case TAG_TYPE_PSK1_RAW: case TAG_TYPE_PSK2_RAW: case TAG_TYPE_PSK3_RAW: return RFIDlerConfig.DataBits / tag_get_blocksize(RFIDlerVTag.TagType); case TAG_TYPE_EM4X05: return EM4X05_DATABLOCKS; case TAG_TYPE_HITAG1: return HITAG1_DATABLOCKS; case TAG_TYPE_HITAG2: return HITAG2_DATABLOCKS; case TAG_TYPE_Q5: return Q5_DATABLOCKS; case TAG_TYPE_T55X7: return T55X7_DATABLOCKS; default: return 0; } }
void vtag_set_tag_from_type(BYTE tag) { vtag_wipe(); RFIDlerVTag.TagType= tag; RFIDlerVTag.BlockSize= tag_get_blocksize(tag); RFIDlerVTag.DataBlocks= tag_get_datablocks(tag); }
unsigned int tag_get_blocksize(BYTE tag) { switch(tag) { // raw tag types return blocksize of emulator tag case TAG_TYPE_ASK_RAW: case TAG_TYPE_FSK1_RAW: case TAG_TYPE_FSK2_RAW: case TAG_TYPE_PSK1_RAW: case TAG_TYPE_PSK2_RAW: case TAG_TYPE_PSK3_RAW: return tag_get_blocksize(RFIDlerVTag.TagType); case TAG_TYPE_EM4X05: return EM4X05_BLOCKSIZE; case TAG_TYPE_HITAG1: return HITAG1_BLOCKSIZE; case TAG_TYPE_HITAG2: return HITAG2_BLOCKSIZE; case TAG_TYPE_Q5: return Q5_BLOCKSIZE; case TAG_TYPE_T55X7: return T55X7_BLOCKSIZE; default: return 0; } }