Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
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
00057
00058
00059
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
00069
00070
00071
00079 class _FEDM_ISC_CORE_EXT_CLASS FEDM_BRMTabItem : public FEDM_TabItem
00080 {
00081 public:
00082
00083
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();
00132 FEDM_BRMTabItem(unsigned int uiTabIndex);
00133 ~FEDM_BRMTabItem();
00134
00135 void Init();
00136 void Init(int iRxDB_BlockCount, int iRxDB_BlockSize);
00137
00138 __int64 GetSnr();
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
00148 int SetData(unsigned char ucCmd, unsigned char* ucData, unsigned char* ucTrData, unsigned int& uiByteCnt);
00149
00150
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
00157 public:
00158
00159 unsigned char m_ucFlags;
00160
00161 unsigned char m_ucTrType;
00162 unsigned char m_ucEpcType;
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_)