# tmr_gen2.h File Reference

Mercury API - Gen2 tag information and interfaces. More...

## Classes

struct | TMR_GEN2_LockAction
struct | TMR_GEN2_DENATRAN_IAV_WriteCredentials
struct | TMR_GEN2_DENATRAN_IAV_WriteSecCredentials
struct | TMR_GEN2_Select
struct | TMR_GEN2_Bap
union | TMR_NXP_ConfigWord
union | TMR_NXP_UCODE7_ConfigWord
union | TMR_Monza4_ControlByte
union | TMR_Monza4_Payload
struct | TMR_SR_GEN2_QStatic
struct | TMR_SR_GEN2_Q
struct | TMR_GEN2_TagData
struct | TMR_GEN2_TagReadData

## Defines

#define | TMR_GEN2_MAX_PC_BYTE_COUNT (6)

## Typedefs

typedef enum TMR_GEN2_LockBits | TMR_GEN2_LockBits
typedef struct TMR_GEN2_LockAction | TMR_GEN2_LockAction
typedef uint32_t | TMR_GEN2_Password
typedef struct TMR_GEN2_DENATRAN_IAV_WriteCredentials | TMR_GEN2_DENATRAN_IAV_WriteCredentials
typedef struct TMR_GEN2_DENATRAN_IAV_WriteSecCredentials | TMR_GEN2_DENATRAN_IAV_WriteSecCredentials
typedef enum TMR_GEN2_Bank | TMR_GEN2_Bank
typedef struct TMR_GEN2_Select | TMR_GEN2_Select
typedef enum TMR_GEN2_Session | TMR_GEN2_Session
typedef enum TMR_GEN2_DivideRatio | TMR_GEN2_DivideRatio
typedef enum TMR_GEN2_TrExt | TMR_GEN2_TrExt
typedef enum TMR_GEN2_Target | TMR_GEN2_Target
typedef enum TMR_GEN2_TagEncoding | TMR_GEN2_TagEncoding
typedef enum TMR_GEN2_LinkFrequency | TMR_GEN2_LinkFrequency
typedef enum TMR_GEN2_ProtocolExtension | TMR_GEN2_ProtocolExtension
typedef struct TMR_GEN2_Bap | TMR_GEN2_Bap
typedef enum TMR_GEN2_UNTRACEABLE_Epc | TMR_GEN2_UNTRACEABLE_Epc
typedef enum TMR_GEN2_UNTRACEABLE_Tid | TMR_GEN2_UNTRACEABLE_Tid
typedef enum TMR_GEN2_UNTRACEABLE_UserMemory | TMR_GEN2_UNTRACEABLE_UserMemory
typedef enum TMR_GEN2_UNTRACEABLE_Range | TMR_GEN2_UNTRACEABLE_Range
typedef enum TMR_NXP_KeyId | TMR_NXP_KeyId
typedef enum TMR_NXP_Profile | TMR_NXP_Profile
typedef enum TMR_GEN2_Tari | TMR_GEN2_Tari
typedef enum TMR_GEN2_WriteMode | TMR_GEN2_WriteMode
typedef enum TMR_SR_GEN2_SiliconType | TMR_SR_GEN2_SiliconType
typedef union TMR_NXP_ConfigWord | TMR_NXP_ConfigWord
typedef union TMR_NXP_UCODE7_ConfigWord | TMR_NXP_UCODE7_ConfigWord
typedef union TMR_Monza4_ControlByte | TMR_Monza4_ControlByte
typedef union TMR_Monza4_Payload | TMR_Monza4_Payload
typedef enum TMR_SR_GEN2_QType | TMR_SR_GEN2_QType
typedef struct TMR_SR_GEN2_QStatic | TMR_SR_GEN2_QStatic
typedef struct TMR_SR_GEN2_Q | TMR_SR_GEN2_Q
typedef struct TMR_GEN2_TagData | TMR_GEN2_TagData
typedef struct TMR_GEN2_TagReadData | TMR_GEN2_TagReadData

## Enumerations

enum

TMR_GEN2_LockBits {
TMR_GEN2_LOCK_BITS_USER_PERM = (1 << 0), TMR_GEN2_LOCK_BITS_USER = (1 << 1), TMR_GEN2_LOCK_BITS_TID_PERM = (1 << 2), TMR_GEN2_LOCK_BITS_TID = (1 << 3),
TMR_GEN2_LOCK_BITS_EPC_PERM = (1 << 4), TMR_GEN2_LOCK_BITS_EPC = (1 << 5), TMR_GEN2_LOCK_BITS_ACCESS_PERM = (1 << 6), TMR_GEN2_LOCK_BITS_ACCESS = (1 << 7),
TMR_GEN2_LOCK_BITS_KILL_PERM = (1 << 8), TMR_GEN2_LOCK_BITS_KILL = (1 << 9)
}

enum | TMR_GEN2_Bank { TMR_GEN2_BANK_RESERVED = 0x0, TMR_GEN2_BANK_EPC = 0x1, TMR_GEN2_BANK_TID = 0x2, TMR_GEN2_BANK_USER = 0x3, TMR_GEN2_BANK_RESERVED_ENABLED = 0x4, TMR_GEN2_EPC_LENGTH_FILTER = 0x6, TMR_GEN2_EPC_TRUNCATE = 0x7, TMR_GEN2_BANK_EPC_ENABLED = 0x8, TMR_GEN2_BANK_TID_ENABLED = 0x10, TMR_GEN2_BANK_USER_ENABLED = 0x20 }
enum | TMR_GEN2_Session { , TMR_GEN2_SESSION_S0 = 0x00, TMR_GEN2_SESSION_S1 = 0x01, TMR_GEN2_SESSION_S2 = 0x02, TMR_GEN2_SESSION_S3 = 0x03 }
enum | TMR_GEN2_DivideRatio { TMR_GEN2_DIVIDE_RATIO_8 = 0, TMR_GEN2_DIVIDE_RATIO_64_3 = 1 }
enum | TMR_GEN2_TrExt { TMR_GEN2_TR_EXT_NO_PILOT_TONE = 0, TMR_GEN2_TR_EXT_PILOT_TONE = 1 }
enum | TMR_GEN2_Target { , TMR_GEN2_TARGET_A = 0, TMR_GEN2_TARGET_B = 1, TMR_GEN2_TARGET_AB = 2, TMR_GEN2_TARGET_BA = 3 }
enum | TMR_GEN2_TagEncoding { TMR_GEN2_FM0 = 0 , TMR_GEN2_MILLER_M_2 = 1, TMR_GEN2_MILLER_M_4 = 2, TMR_GEN2_MILLER_M_8 = 3 }
enum | TMR_GEN2_LinkFrequency { TMR_GEN2_LINKFREQUENCY_250KHZ = 250, TMR_GEN2_LINKFREQUENCY_320KHZ = 320, TMR_GEN2_LINKFREQUENCY_640KHZ = 640 }
enum | TMR_GEN2_ProtocolExtension
enum | TMR_GEN2_UNTRACEABLE_Epc
enum | TMR_GEN2_UNTRACEABLE_Tid
enum | TMR_GEN2_UNTRACEABLE_UserMemory
enum | TMR_GEN2_UNTRACEABLE_Range
enum | TMR_NXP_KeyId
enum | TMR_NXP_Profile
enum | TMR_GEN2_Tari { TMR_GEN2_TARI_25US = 0, TMR_GEN2_TARI_12_5US = 1, TMR_GEN2_TARI_6_25US = 2 }
enum | TMR_GEN2_WriteMode { TMR_GEN2_WORD_ONLY = 0, TMR_GEN2_BLOCK_ONLY = 1, TMR_GEN2_BLOCK_FALLBACK = 2 }
enum | TMR_SR_GEN2_SiliconType
enum | TMR_SR_GEN2_QType

## Detailed Description

Mercury API - Gen2 tag information and interfaces.

Author:
  Brian Fiegel

Date:
  5/7/2009

## Define Documentation

#define TMR_GEN2_MAX_PC_BYTE_COUNT (6)

Size allocated for storing PC data in TMR_GEN2_TagData

## Typedef Documentation

typedef enum TMR_GEN2_Bank TMR_GEN2_Bank

Gen2 memory banks

typedef struct TMR_GEN2_Bap TMR_GEN2_Bap

Gen2 bap parameters

typedef struct TMR_GEN2_DENATRAN_IAV_WriteCredentials TMR_GEN2_DENATRAN_IAV_WriteCredentials

a 16 byte(128 bit) Gen2 Denatran IAV write credentials

typedef struct TMR_GEN2_DENATRAN_IAV_WriteSecCredentials TMR_GEN2_DENATRAN_IAV_WriteSecCredentials

a 16 byte(128 bit) Gen2 Denatran IAV write sec credentials

typedef enum TMR_GEN2_DivideRatio TMR_GEN2_DivideRatio

Gen2 divide ratio values

typedef enum TMR_GEN2_LinkFrequency TMR_GEN2_LinkFrequency

Gen2 link frequencies

typedef struct TMR_GEN2_LockAction TMR_GEN2_LockAction

The arguments to a TMR_lockTag() method for Gen2 tags.

typedef enum TMR_GEN2_LockBits TMR_GEN2_LockBits

Memory lock bits

typedef uint32_t TMR_GEN2_Password

A 32-bit password (access or kill) in the Gen2 protocol.

typedef enum TMR_GEN2_ProtocolExtension TMR_GEN2_ProtocolExtension

Gen2 Protocol Extension parameters

typedef enum TMR_GEN2_Session TMR_GEN2_Session

Gen2 session values

typedef struct TMR_GEN2_TagData TMR_GEN2_TagData

Gen2-specific per-tag data

typedef enum TMR_GEN2_TagEncoding TMR_GEN2_TagEncoding

Gen2 tag encoding modulation values

typedef struct TMR_GEN2_TagReadData TMR_GEN2_TagReadData

Gen2-specific parameters per-tag data

typedef enum TMR_GEN2_Target TMR_GEN2_Target

Gen2 target search algorithms

typedef enum TMR_GEN2_Tari TMR_GEN2_Tari

Gen2 Tari values

typedef enum TMR_GEN2_TrExt TMR_GEN2_TrExt

Gen2 TrExt bit

typedef enum TMR_GEN2_UNTRACEABLE_Epc TMR_GEN2_UNTRACEABLE_Epc

Gen2v2 untraceably hides part of EPC memory or not

typedef enum TMR_GEN2_UNTRACEABLE_Range TMR_GEN2_UNTRACEABLE_Range

specifies Gen2v2 Tag’s operating range

typedef enum TMR_GEN2_UNTRACEABLE_Tid TMR_GEN2_UNTRACEABLE_Tid

Gen2v2 untraceably hides part of TID memory or not

typedef enum TMR_GEN2_UNTRACEABLE_UserMemory TMR_GEN2_UNTRACEABLE_UserMemory

Gen2v2 untraceably hides part of UserMemory memory or not

typedef enum TMR_GEN2_WriteMode TMR_GEN2_WriteMode

Gen2 WriteMode

typedef union TMR_Monza4_ControlByte TMR_Monza4_ControlByte

TMR_Monza4_ControlByte is an argument to Monza4 QTReadWrite custom command User can set the control byte directly using the 8 bit 'data' field. Otherwise, provides an option to individually set each flag. Instance of TMR_Monza4_ControlByte must be initialized before using either by declaring it as 'static' (or initializing it to 0) or by using the constructor routine TMR_init_Monza4_ControlByte() method.

typedef union TMR_Monza4_Payload TMR_Monza4_Payload

TMR_Monza4_Payload is an argument to Monza4 QTReadWrite custom command User can set the payload directly using the 16 bit 'data' field. Otherwise, provides an option to individually set each flag. Instance of TMR_Monza4_Payload must be initialized before using either by declaring it as 'static' (or initializing it to 0) or by using the constructor routine TMR_init_Monza4_Payload() method. This field controls the QT functionality. These bits are ignored when the Read/Write field equals 0 in control byte.

typedef union TMR_NXP_ConfigWord TMR_NXP_ConfigWord

The argument to a ChangeConfig command for NXP G2iL tags User can set the configWord directly using the 16 bit 'data' field. Otherwise, provides an option to individually set each flag. Instance of TMR_NXP_ConfigWord must be initialized before using either by declaring it as 'static' or by using the constructor routine TMR_init_NXP_ConfigWord() method.

typedef enum TMR_NXP_KeyId TMR_NXP_KeyId

Authentication KeyId

typedef enum TMR_NXP_Profile TMR_NXP_Profile

Memory profile for the addition of custom data

typedef union TMR_NXP_UCODE7_ConfigWord TMR_NXP_UCODE7_ConfigWord

The argument to a ChangeConfig command for NXP UCODE 7 tags User can set the configWord directly using the 16 bit 'data' field. Otherwise, provides an option to individually set each flag. Instance of TMR_NXP_UCODE7_ConfigWord must be initialized before using either by declaring it as 'static' or by using the constructor routine TMR_init_NXP_UCODE7_ConfigWord() method.

typedef struct TMR_SR_GEN2_Q TMR_SR_GEN2_Q

This represents a Q algorithm on the reader.

typedef struct TMR_SR_GEN2_QStatic TMR_SR_GEN2_QStatic

Configuration of the static-Q algorithm.

typedef enum TMR_SR_GEN2_QType TMR_SR_GEN2_QType

This represents the types of Q algorithms avaliable on the reader.

typedef enum TMR_SR_GEN2_SiliconType TMR_SR_GEN2_SiliconType

Defines the values for different gen2 silicon types.

## Enumeration Type Documentation

enum TMR_GEN2_Bank

Gen2 memory banks

Enumerator:

  TMR_GEN2_BANK_RESERVED | Reserved bank (kill and access passwords)
  TMR_GEN2_BANK_EPC | EPC memory bank
  TMR_GEN2_BANK_TID | TID memory bank
  TMR_GEN2_BANK_USER | User memory bank
  TMR_GEN2_BANK_RESERVED_ENABLED | Used to enable the read of additional membanks - reserved mem bank
  TMR_GEN2_EPC_LENGTH_FILTER | Used to Filter Gen2 Tag with specified EPC length
  TMR_GEN2_EPC_TRUNCATE | Gen2 Truncate Option
  TMR_GEN2_BANK_EPC_ENABLED | Used to enable the read of additional membanks - epc mem bank
  TMR_GEN2_BANK_TID_ENABLED | Used to enable the read of additional membanks - tid mem bank
  TMR_GEN2_BANK_USER_ENABLED | Used to enable the read of additional membanks - user mem bank

enum TMR_GEN2_DivideRatio

Gen2 divide ratio values

Enumerator:

  TMR_GEN2_DIVIDE_RATIO_8 | DR of 8
  TMR_GEN2_DIVIDE_RATIO_64_3 | DR of 64/3

enum TMR_GEN2_LinkFrequency

Gen2 link frequencies

Enumerator:

  TMR_GEN2_LINKFREQUENCY_250KHZ | 250 kHz
  TMR_GEN2_LINKFREQUENCY_320KHZ | 320 KHZ
  TMR_GEN2_LINKFREQUENCY_640KHZ | 640 kHz

enum TMR_GEN2_LockBits

Memory lock bits

Enumerator:

  TMR_GEN2_LOCK_BITS_USER_PERM | User memory bank lock permalock bit
  TMR_GEN2_LOCK_BITS_USER | User memory bank lock bit
  TMR_GEN2_LOCK_BITS_TID_PERM | TID memory bank lock permalock bit
  TMR_GEN2_LOCK_BITS_TID | TID memory bank lock bit
  TMR_GEN2_LOCK_BITS_EPC_PERM | EPC memory bank lock permalock bit
  TMR_GEN2_LOCK_BITS_EPC | EPC memory bank lock bit
  TMR_GEN2_LOCK_BITS_ACCESS_PERM | Access password lock permalock bit
  TMR_GEN2_LOCK_BITS_ACCESS | Access password lock bit
  TMR_GEN2_LOCK_BITS_KILL_PERM | Kill password lock permalock bit
  TMR_GEN2_LOCK_BITS_KILL | Kill password lock bit

enum TMR_GEN2_ProtocolExtension

Gen2 Protocol Extension parameters

enum TMR_GEN2_Session

Gen2 session values

Enumerator:

  TMR_GEN2_SESSION_S0 | Session 0
  TMR_GEN2_SESSION_S1 | Session 1
  TMR_GEN2_SESSION_S2 | Session 2
  TMR_GEN2_SESSION_S3 | Session 3

enum TMR_GEN2_TagEncoding

Gen2 tag encoding modulation values

Enumerator:

  TMR_GEN2_FM0 | FM0
  TMR_GEN2_MILLER_M_2 | M = 2
  TMR_GEN2_MILLER_M_4 | M = 4
  TMR_GEN2_MILLER_M_8 | M = 8

enum TMR_GEN2_Target

Gen2 target search algorithms

Enumerator:

  TMR_GEN2_TARGET_A | Search target A
  TMR_GEN2_TARGET_B | Search target B
  TMR_GEN2_TARGET_AB | Search target A until exhausted, then search target B
  TMR_GEN2_TARGET_BA | Search target B until exhausted, then search target A

enum TMR_GEN2_Tari

Gen2 Tari values

Enumerator:

  TMR_GEN2_TARI_25US | Tari of 25 microseconds
  TMR_GEN2_TARI_12_5US | Tari of 12.5 microseconds
  TMR_GEN2_TARI_6_25US | Tari of 6.25 microseconds

enum TMR_GEN2_TrExt

Gen2 TrExt bit

Enumerator:

  TMR_GEN2_TR_EXT_NO_PILOT_TONE | No pilot tone in tag response
  TMR_GEN2_TR_EXT_PILOT_TONE | Pilot tone in tag response

enum TMR_GEN2_UNTRACEABLE_Epc

Gen2v2 untraceably hides part of EPC memory or not

enum TMR_GEN2_UNTRACEABLE_Range

specifies Gen2v2 Tag’s operating range

enum TMR_GEN2_UNTRACEABLE_Tid

Gen2v2 untraceably hides part of TID memory or not

enum TMR_GEN2_UNTRACEABLE_UserMemory

Gen2v2 untraceably hides part of UserMemory memory or not

enum TMR_GEN2_WriteMode

Gen2 WriteMode

Enumerator:

  TMR_GEN2_WORD_ONLY | WORD ONLY
  TMR_GEN2_BLOCK_ONLY | BLOCK ONLY
  TMR_GEN2_BLOCK_FALLBACK | BLOCK FALLBACK

enum TMR_NXP_KeyId

Authentication KeyId

enum TMR_NXP_Profile

Memory profile for the addition of custom data

enum TMR_SR_GEN2_QType

This represents the types of Q algorithms avaliable on the reader.

enum TMR_SR_GEN2_SiliconType

Defines the values for different gen2 silicon types.