DR-U-USB/DR-E-USB RLMXX0CLASS  GT20171121-1
RLMXXX_API_CRC.h
Go to the documentation of this file.
1 
13 #ifndef _RLMXXX_API_CRC_
14 #define _RLMXXX_API_CRC_
15 
16 #include <QtCore/QtGlobal>
17 #include <QObject>
18 #include "moddefs.h"
19 
21 #ifdef RLMXXXCRC_LIBRARY
22 #define RLMXXXCRC_EXPORT Q_DECL_EXPORT
23 #else
24 #define RLMXXXCRC_EXPORT Q_DECL_IMPORT
25 #endif
26 
27 #ifdef RLM600
28 #define REGSERIAL 0x10F
29 // FREQUENCY PROFILE
30 #define REGPROFILE 0x102
31 #define PROF_FM0 (0<<4)
32 #define PROF_MILLER2 (1<<4)
33 #define PROF_MILLER4 (2<<4)
34 #define PROF_MILLER8 (3<<4)
35 #define PROF_SETPROF(x) ((x)<<4)
36 #define PROF_GETPROF(x) ((x)>>4)
37 #define PROF_SETBLF(x) ((x)&0x7)
38 #define PROF_GETBLF(x) ((x)&0x7)
39 #define BLF_80 0
40 #define BLF_128 1
41 #define BLF_160 2
42 #define BLF_213 3
43 #define BLF_284 4
44 #define BLF_341 5
45 #define BLF_426 6
46 #define BLF_568 7
47 #else
48 #define REGSERIAL 0x101
49 #endif
50 
51 class BSP_Serial;
52 
57 struct srecord
58 {
59  quint8 Sindex;
60  quint8 Slen;
61  quint8 Target;
62  quint8 Action;
63  quint8 Bank;
64  QByteArray Ptr;
65  quint8 MaskLen;
66  QByteArray Mask;
67  quint8 Truncate;
68 };
69 
73 struct trecord
74 {
75  quint16 Tindex;
76  quint16 Len;
77  QByteArray Tid;
78 };
79 
83 class RLMXXXCRC_EXPORT RLMXXXCRC : public QObject
84 {
85  Q_OBJECT
86  public:
87  RLMXXXCRC();
89 
90  quint8 GetVersion( QByteArray& Serial, quint8& Version );
91  quint8 GetPaStatus( quint8& Status );
92  quint8 GetPower( quint8& Power );
93  quint8 SetPower( const quint8 Power );
94 
95  quint8 GetFrequency( quint8& FreMode, quint8& FreBase, QByteArray& BaseFre, quint8& ChannNum
96  , quint8& ChannSpc, quint8& FreHop );
97  quint8 SetFrequency(const quint8 FreMode, const quint8 FreBase ,const QByteArray& BaseFre,const quint8 ChannNum
98  ,const quint8 ChannSpc , const quint8 FreHop );
99 
100  quint8 GetCommand( quint8& Cmd );
101  quint8 GetStatus( quint8& Status );
102 
103  quint8 StartInventory(const quint8 flagAnti,const quint8 initQ );
104  quint8 ReadInventory( QByteArray& Tid );
105  quint8 StopCurrentCmd( void );
106  quint8 TagIdent( QByteArray& Tid );
107 
108  quint8 ReadData( const QByteArray& AccessPwd, quint8 Bank, const QByteArray& Ptr,
109  quint8 Cnt, QByteArray& Tid, QByteArray& ReadData, quint8& ec );
110  quint8 ReadBatch( const QByteArray& AccessPwd, const quint8 Option, const quint8 initQ,
111  const QList<QByteArray>& BatchList );
112  quint8 RetriveBatchData( QList<QByteArray>& Results );
113  quint8 FastAuth( const QList<QByteArray> AccessPwdList, const QByteArray& Tid, quint8& ec );
114  quint8 WriteWord( const QByteArray& AccessPwd, quint8 Bank, const QByteArray& Ptr, const QByteArray& WriteData, const QByteArray Tid, quint8& ec );
115  quint8 WriteData( const QByteArray& AccessPwd, quint8 Bank, QByteArray& Ptr, quint8 Cnt, const QByteArray& WriteData, QByteArray& Tid, quint8& ec );
116  quint8 WriteEPC( const QByteArray& AccessPwd, const QByteArray& Tid, const QByteArray& Epc, quint8& ec );
117  quint8 EraseData( const QByteArray& AccessPwd, quint8 Bank, const QByteArray& Ptr,
118  quint8 Cnt, QByteArray& Tid, quint8& ec );
119  quint8 LockMem( const QByteArray& AccessPwd, const QByteArray& LockData, const QByteArray& Tid,
120  quint8& ec );
121  quint8 KillTag( const QByteArray& KillPwd, const QByteArray& Tid, quint8& ec );
122 
123  quint8 GetRegister( quint16 radd, quint16 rlen, QByteArray& reg, quint8& ec );
124  quint8 SetRegister( const quint16 radd, const quint16 rlen, const QByteArray& reg_data, quint8& ec );
125  quint8 ResetRegister( void );
126  quint8 SaveRegister( void );
127  quint8 ReadEEPROM( const quint16 eadd, quint16 rlen, QByteArray& data, quint8& ec );
128  quint8 WriteEEPROM(const quint16 eadd, const quint16 wlen, const QByteArray& data, quint8& ec );
129  quint8 SelectAddRecord( const srecord& SRecord, quint8& ec );
130  quint8 SelectDeleteRecordByIndex( const quint8 sindex, quint8& ec );
131  quint8 SelectRecordByIndex( const quint8 sindex, const quint8 snum, quint8& ec );
132  quint8 SelectGetRecord( srecord& SRecord , quint8& ec );
133  quint8 SelectExecuteByIndex( const quint8 sindex, const quint8 snum, quint8& ec );
134  quint8 InventoryByIndex( const quint8 sindex, const quint8 snum, const quint8 sst , const quint8 q, quint8& ec );
135  quint8 InventoryGetStatus( quint16& tnum , quint8& ec );
136  quint8 InventorySelectIndex( const quint16 tindex, const quint16 tlen, quint8& ec );
137  quint8 InventoryGetRecord( trecord& TRecord, quint8& ec );
138  quint8 EnterSleep( void );
139  quint8 EnablePA( const bool flag);
140 
141  quint8 Higgs3LoadImage( const QByteArray& AccessPwd, const QList<QByteArray>& Image, QByteArray& Tid, quint8& ec );
142  quint8 Higgs3FastLoadImage( const QByteArray& AccessPwd, const QList<QByteArray>& Image, QByteArray& Tid, quint8& ec );
143  quint8 Higgs3BlockReadLock( const QByteArray& AccessPwd, const quint8 ReadLock, QByteArray& Tid, quint8& ec );
144  quint8 Higgs3BlockPermaLock( const QByteArray& AccessPwd, const quint8 Action, QByteArray Mask , QByteArray& Tid, quint8& ec );
145 
146  quint8 NXPChangeConfig( const QByteArray& AccessPwd, QByteArray& Config, QByteArray& Tid, quint8& ec );
147  quint8 NXPReadProtect( const QByteArray& AccessPwd, QByteArray& Tid, quint8& ec );
148  quint8 NXPResetReadProtect( const QByteArray& AccessPwd, QByteArray& Tid, quint8& ec );
149  quint8 NXPChangeEAS( const QByteArray& AccessPwd, const quint8 EasBit, QByteArray& Tid, quint8& ec );
150  quint8 NXPEASAlarm( QByteArray& Alarmcode, quint8& ec );
151  quint8 NXPUntraceable(const QByteArray& AccessPwd, const QByteArray& Payload, quint8& ec);
152  quint8 NXPTam(const QByteArray& AccessPwd, const QByteArray& Header, QByteArray& Tam, quint8& ec);
153  quint8 NXPReadBuffer(const QByteArray& AccessPwd, QByteArray& Payload, quint8& ec);
154  quint8 NXPWriteBlock(const QByteArray& AccessPwd, quint8 Bank,QByteArray& Ptr, quint8 Cnt, const QByteArray& WriteData,quint8& ec);
155  quint8 NXPReadBlock( const QByteArray& AccessPwd, quint8 Bank, const QByteArray& Ptr, quint8 Cnt, QByteArray& ReadData, quint8& ec);
156 
157  quint8 GetHardwareId( QByteArray& HwId );
158 
159 #ifdef RLM300
160  quint8 FWupdateInit( quint8& ec );
161  quint8 FWupdateSendSize( const QByteArray& filesize, quint8& ec );
162  quint8 FWupdateSendData( const QByteArray& data, quint8& ec );
163  quint8 FWupdateCommit( quint8& ec );
164 
165  quint8 FCCSingleFreq( const quint8 mode, const quint8 freq_idx, quint8& ec );
166  quint8 FCCFreqHop( quint8& ec );
167 
168  quint8 ETSISingleFreq( const quint8 mode, const quint8 freq_idx, quint8& ec );
169 
170  quint8 NCCSingleFreq( const quint8 modulation, const quint8 freq_index, quint8& ec );
171  quint8 NCCFreqHop( const quint8 modulation, quint8& ec );
172 
173  quint8 IndiaSingleFreq( const quint8 modulation, const quint8 freq_index, quint8& ec );
174  quint8 IndiaFreqHop( const quint8 modulation, quint8& ec );
175 #endif
176 
177 #ifdef RLM600
178  quint8 SingleFreq(const quint8 mode, const quint16 freq_mhz, const quint16 freq_khz, quint8& ec);
179  quint8 FreqHop(quint8& ec);
180  quint8 OBURead(QByteArray &ObuData, QByteArray &Tid, quint8& ec);
181  quint8 OBUInventory();
182  quint8 ReadOBUInventory(QByteArray &ObuData, QByteArray &Tid);
183 #endif
184 
185  quint8 CheckforPendingFrames( quint32 timeout );
186  void setSerial(BSP_Serial *s);
187  void releaseSerial();
188 
191  _s = cp._s;
192  return *this;
193  }
194  signals:
195  void signeedrestart();
196 
197  private slots:
198  void lostconnection();
199 
200  private:
201  void SendCommand( const QByteArray& SendCommand);
202  quint8 ReceiveResponse( QByteArray& ba, quint32 waittime);
203  void CRC16Calculation( QByteArray& ba);
204  QByteArray CRC16CalculationResponse( const QByteArray& ba );
205  void EBV8Calculate( QByteArray& ba , const quint8 val , const bool action );
206 
207  quint32 retries;
208  bool _in_restart_phase;
209  BSP_Serial *_s;
210 
211 };
212 
213 #endif
quint8 Truncate
Truncate flag of EPC Global definition.
Definition: RLMXXX_API_CRC.h:67
quint8 Slen
length of this record
Definition: RLMXXX_API_CRC.h:60
quint8 MaskLen
Mask bit count.
Definition: RLMXXX_API_CRC.h:65
Tag identifier buffer structure.
Definition: RLMXXX_API_CRC.h:73
RLMXXXCRC & operator=(const RLMXXXCRC &cp)
Copy Operator to handle the serial object.
Definition: RLMXXX_API_CRC.h:190
quint16 Tindex
Table index of this record.
Definition: RLMXXX_API_CRC.h:75
QByteArray Mask
Mask field of EPC Global definition.
Definition: RLMXXX_API_CRC.h:66
quint8 Action
Action field of EPC Global definition.
Definition: RLMXXX_API_CRC.h:62
Class library for serial communication.
Definition: bsp_serial.h:40
QByteArray Tid
Tag identifier (PC+EPC)
Definition: RLMXXX_API_CRC.h:77
quint8 Sindex
internal index number [1-16]
Definition: RLMXXX_API_CRC.h:59
quint8 Target
Target field of EPC Global definition [0-4] (000b-100b)
Definition: RLMXXX_API_CRC.h:61
RLMXXX Class library.
Definition: RLMXXX_API_CRC.h:83
QByteArray Ptr
Memory word pointer.
Definition: RLMXXX_API_CRC.h:64
#define RLMXXXCRC_EXPORT
Windows DLL definitions.
Definition: RLMXXX_API_CRC.h:24
SELECT structure used with methods to manipulate the SELECT behaviour of the module;.
Definition: RLMXXX_API_CRC.h:57
quint16 Len
Length.
Definition: RLMXXX_API_CRC.h:76
quint8 Bank
Tag Memory bank selector [1-3].
Definition: RLMXXX_API_CRC.h:63