Go to the documentation of this file.00001
00002 #ifndef _TMR_FILTER_H
00003 #define _TMR_FILTER_H
00004
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "tmr_tag_data.h"
00034 #include "tmr_gen2.h"
00035 #include "tmr_iso180006b.h"
00036
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00050 typedef enum TMR_FilterType
00051 {
00053 TMR_FILTER_TYPE_TAG_DATA = 0,
00055 TMR_FILTER_TYPE_GEN2_SELECT = 1,
00057 TMR_FILTER_TYPE_ISO180006B_SELECT = 2
00058 } TMR_FilterType;
00059
00064 typedef struct TMR_TagFilter
00065 {
00066 TMR_FilterType type;
00067 union
00068 {
00070 TMR_TagData tagData;
00072 TMR_GEN2_Select gen2Select;
00074 TMR_ISO180006B_Select iso180006bSelect;
00075 } u;
00076 } TMR_TagFilter;
00077
00086 bool TMR_TF_match(TMR_TagFilter *filter, TMR_TagData *tag);
00087
00088 TMR_Status TMR_TF_init_tag(TMR_TagFilter *filter, TMR_TagData *tag);
00089
00090 TMR_Status TMR_TF_init_gen2_select(TMR_TagFilter *filter, bool invert,
00091 TMR_GEN2_Bank bank, uint32_t bitPointer,
00092 uint16_t maskBitLength, uint8_t *mask);
00093
00094 TMR_Status TMR_TF_init_ISO180006B_select(TMR_TagFilter *filter, bool invert,
00095 TMR_ISO180006B_SelectOp op,
00096 uint8_t address, uint8_t mask,
00097 uint8_t wordData[8]);
00098 #ifdef __cplusplus
00099 }
00100 #endif
00101
00102 #endif