FEDM_BRMTabItem.h
Go to the documentation of this file.
00001 /*-------------------------------------------------------
00002 |                                                       |
00003 |                  FEDM_BRMTabItem.h                    |
00004 |                                                       |
00005 ---------------------------------------------------------
00006 
00007 Copyright © 2000-2012   FEIG ELECTRONIC GmbH, All Rights Reserved.
00008                                                 Lange Strasse 4
00009                                                 D-35781 Weilburg
00010                                                 Federal Republic of Germany
00011                                                 phone    : +49 6471 31090
00012                                                 fax      : +49 6471 310999
00013                                                 e-mail   : obid-support@feig.de
00014                                                 Internet : http://www.feig.de
00015                                         
00016 Author                  :       Markus Hultsch
00017 Begin                   :       07.06.2000
00018 
00019 Version                 :       04.03.01 / 09.11.2012 / M. Hultsch
00020                                                 - new method: GetISO15693Manufacturer()
00021 
00022                                                 04.02.04 / 19.06.2012 / M. Hultsch
00023                                                 - support for direction information (in combination with Gate People Counter)
00024 
00025                                                 04.00.00 / 21.07.2011 / M. Hultsch
00026                                                 - max. UID length increased to 96 Bytes
00027 
00028                                                 03.03.00 / 21.02.2011 / M. Hultsch
00029 
00030 Operation Systems       :       independent
00031 
00032 Function                        :       class for buffered read mode of OBID i-scan® and 
00033                                                 OBID® classic-pro reader family
00034 
00035 
00036 Trademarks:
00037 -----------
00038 OBID®, OBID i-scan® and OBID myAXXESS® are registered Trademarks of FEIG ELECTRONIC GmbH
00039 Other Trademarks: see FEDM.h
00040 */
00041 
00042 #if !defined(_FEDM_BRMTABITEM_H_INCLUDED_)
00043 #define _FEDM_BRMTABITEM_H_INCLUDED_
00044 
00045 
00046 #include "FEDM_ISC.h"
00047 #include "../FEDM_DataBase.h"
00048 #include "FEDM_TabItem.h"
00049 
00050 
00051 class FEDM_ISCReader;
00052 
00053 
00054 
00055 //#####################################################################################
00056 // constants
00057 //#####################################################################################
00058                 
00059 // sizes of memories in BRM-table
00060 #define FEDM_ISC_BRM_TABLE_RxDB_SIZE            1024    // 256 blocks * 4 bytes = 1024 byte
00061 
00062 #define FEDM_ISC_BRM_TABLE_MAX_ANTENNA            32    // max 32 antenna values for each transponder
00063 
00064 
00065 
00066 
00067 //####################################################################
00068 // class FEDM_BRMTabItem (only for use inside FEDM_ISCReader-class)
00069 // >> supports Buffered Read Mode <<
00070 //####################################################################
00071 
00079 class _FEDM_ISC_CORE_EXT_CLASS FEDM_BRMTabItem : public FEDM_TabItem
00080 {
00081 public:
00082 
00083         // friend classes have access rights to protected members
00084         friend class FEDM_ISCReader;
00085 
00091         const char* GetISO15693Manufacturer();
00092 
00099         void GetTableSizes(     int& iRxDB_BlockCount, int& iRxDB_BlockSize);
00100         
00106         unsigned int GetEpcC1G2TagModelNumber();
00107 
00113         unsigned int GetEpcC1G2MaskDesignerID();
00114 
00120         const char* GetEpcC1G2MaskDesignerName();
00121 
00128         bool IsExtendedPC_W1();
00129 
00130 protected:
00131         FEDM_BRMTabItem();                      // default constructor
00132         FEDM_BRMTabItem(unsigned int uiTabIndex);       // main constructor
00133         /*virtual*/ ~FEDM_BRMTabItem(); // destructor
00134 
00135         void Init();                    // set all data members to 0
00136         void Init(int iRxDB_BlockCount, int iRxDB_BlockSize);
00137 
00138         __int64 GetSnr();               // get lower serial number as 64-bit integer
00139 
00140         int             GetEpc(char* cEpc, int iBufLen);
00141         int             GetEpcRaw(unsigned char* cEpc, int iBufLen);
00142         int             GetEpcHeader();
00143         __int64 GetEpcDomainManager();
00144         __int64 GetEpcObjectClass();
00145         __int64 GetEpcSnr();
00146 
00147         // sets table values (used only in class FEDM_ISCReader)
00148         int SetData(unsigned char ucCmd, unsigned char* ucData, unsigned char* ucTrData, unsigned int& uiByteCnt);
00149 
00150         // sets serial numbers into table
00151         int SetSnr_0x21(unsigned char* ucData, unsigned int& iByteCnt);
00152         int SetSnr_0x22(unsigned char* ucTrData, unsigned char* ucData, unsigned int& iByteCnt);
00153 
00154         void ClearAntennaValues();
00155 
00156         // data elements
00157 public:
00158         // For extended inventory command with request of antenna values
00159         unsigned char   m_ucFlags;
00160 
00161         unsigned char   m_ucTrType;                             
00162         unsigned char   m_ucEpcType;                    // EPC type
00163         unsigned char   m_ucIDDT;                               
00164         unsigned char   m_ucAFI;                                
00165         unsigned char   m_ucDsfID;                              
00166         unsigned char   m_ucSnrLen;                             
00167         unsigned char   m_ucSnr[FEDM_ISC_MAX_UID_LENGTH];       
00168         unsigned char   m_ucClass1Gen2_PC[2];   
00169         unsigned char   m_ucClass1Gen2_XPC_W1[2];       
00170         FEDM_BYTE_ARRAY m_ucRxDB;                               
00171         unsigned char   m_ucDBAdr;                              
00172         unsigned int    m_uiDBN;                                
00173         unsigned char   m_ucTimer[4];                   
00174         unsigned char   m_ucDate[5];                    
00175         unsigned char   m_ucAntNr;                              
00176         unsigned char   m_ucInput;                              
00177         unsigned char   m_ucState;                              
00178         unsigned char   m_ucDirection;                  
00179         unsigned char   m_ucMacAddress[6];              
00180 
00181         unsigned char   m_ucBlockSize;                  
00182 
00183         unsigned char   m_ucAntCount;                   
00184         unsigned char   m_ucAntNumber[FEDM_ISC_BRM_TABLE_MAX_ANTENNA];  
00185         unsigned char   m_ucAntRSSI[FEDM_ISC_BRM_TABLE_MAX_ANTENNA];    
00186         unsigned char   m_ucAntRes1[FEDM_ISC_BRM_TABLE_MAX_ANTENNA];    
00187 
00188         bool    m_bIsSnr;                       
00189         bool    m_bIsEpc;
00190         bool    m_bIsAFI;                       
00191         bool    m_bIsDB;                        
00192         bool    m_bIsTimer;                     
00193         bool    m_bIsDate;                      
00194         bool    m_bIsAntNr;                     
00195         bool    m_bIsInput;                     
00196         bool    m_bIsRSSI;                      
00197         bool    m_bIsMacAddr;           
00198         bool    m_bIsDirection;         
00199 
00200 
00201 protected:
00202 
00203         unsigned char m_ucRxDB_TidBank[4];
00204 
00205         int m_iRxDB_BlockCount;
00206         int m_iRxDB_BlockSize;
00207 
00208         unsigned int            m_uiTabIndex;
00209 };
00210 
00211 #endif // !defined(_FEDM_BRMTABITEM_H_INCLUDED_)


maggie_rfid_drivers
Author(s): Raul Perula-Martinez
autogenerated on Mon Sep 14 2015 03:05:28