FEDM_ISCReaderDiagnostic.h
Go to the documentation of this file.
00001 /*-------------------------------------------------------
00002 |                                                       |
00003 |                  FEDM_ISCReaderDiagnostic.h           |
00004 |                                                       |
00005 ---------------------------------------------------------
00006 
00007 Copyright © 2008-2014   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                   :       08.12.2008
00018 
00019 Version                 :       04.06.10 / 10.12.2014 / M. Hultsch
00020                                                 - new mode 0x08
00021 
00022                                                 04.06.01 / 03.03.2014 / M. Hultsch
00023                                                 - new mode 0x07
00024 
00025                                                 04.03.01 / 05.11.2012 / M. Hultsch
00026                                                 - new mode 0x21
00027 
00028                                                 03.03.00 / 10.02.2011 / M. Hultsch
00029 
00030 Operation Systems       :       independent
00031 
00032 Function                        :       class for collecting all reader diagnostic status
00033 
00034 
00035 Trademarks:
00036 -----------
00037 OBID®, OBID i-scan® and OBID myAXXESS® are registered Trademarks of FEIG ELECTRONIC GmbH
00038 Other Trademarks: see FEDM.h
00039 */
00040 
00041 #if !defined(_FEDM_ISC_READER_DIAGNOSTIC_)
00042 #define _FEDM_ISC_READER_DIAGNOSTIC_
00043 
00044 
00045 
00046 
00047 
00048 //#####################################################################################
00049 // structure
00050 //#####################################################################################
00051 
00053 typedef struct _FEDM_ISC_READER_DIAGNOSTIC
00054 {
00055         // Reader and Antenna Status
00056         // [0x6E] and Mode=0x01
00057         union
00058         {
00059                 unsigned char   ucFlagsA;                                               
00060                 struct
00061                 {
00062                         unsigned char   bRfHardware:            1;              
00063                         unsigned char   bRfNoise:                       1;              
00064                         unsigned char   bRfPhaseError_Less:     1;              
00065                         unsigned char   bRfPhaseError_More:     1;              
00066                         unsigned char   bRfPowerAmp:            1;              
00067                         unsigned char   bTempWarning:           1;              
00068                         unsigned char   bSyncTimeout:           1;              
00069                         unsigned char   bTempAlarm:                     1;              
00070                 };
00071                 struct
00072                 {
00073                         unsigned char   bDummy1:                        5;              
00074                         unsigned char   bChannelAlloc:          1;              
00075                         unsigned char   bDummy2:                        2;              
00076                 };
00077         };
00078 
00079         union
00080         {
00081                 unsigned char   ucFlagsB;                                               
00082                 struct
00083                 {
00084                         unsigned char   bRfPhaseError_Ant1:     1;              
00085                         unsigned char   bRfPhaseError_Ant2: 1;          
00086                         unsigned char   bRfPhaseError_Ant3: 1;          
00087                         unsigned char   bRfPhaseError_Ant4: 1;          
00088                         unsigned char   bDummy3:                        4;              
00089                 };
00090                 struct
00091                 {
00092                         unsigned char   bMuxStatus:                     1;              
00093                         unsigned char   bDatStatus:                     1;              
00094                         unsigned char   bDCAntError:            1;              
00095                         unsigned char   bDummy4:                        5;              
00096                 };
00097 
00098         };
00099 
00100         // RF Power Amplifier Status
00101         // [0x6E] and Mode=0x02
00102         // only ISC.LR200, ISC.LR2000 and ISC.MR200
00103         union
00104         {
00105                 struct
00106                 {
00107                         unsigned short int uiImpedance;         
00108                 };
00109 
00110                 struct
00111                 {
00112                         unsigned char ucRfPower;                        
00113                         unsigned char ucRfModulation;           
00114                         unsigned char ucAmpTemp;                        
00115                 };
00116         };
00117 
00118         // Multiplexer Status
00119         // [0x6E] and Mode=0x03
00120         unsigned char ucMuxStatusCh1;                           
00121         unsigned char ucMuxStatusCh2;                           
00122         unsigned char ucMuxStatusCh3;                           
00123         unsigned char ucMuxStatusCh4;                           
00124         unsigned char ucMuxStatusCh5;                           
00125         unsigned char ucMuxStatusCh6;                           
00126         unsigned char ucMuxStatusCh7;                           
00127         unsigned char ucMuxStatusCh8;                           
00128 
00129         // EEPROM and FPGA Status
00130         // [0x6E] and Mode=0x04
00131         unsigned char   ucIntErrorA;                                            
00132 
00133         union
00134         {
00135                 unsigned char   ucIntErrorB;                                    
00136                 struct
00137                 {
00138                         unsigned char   bEepromDevice1:         1;              
00139                         unsigned char   bEepromDevice2:         1;              
00140                         unsigned char   bHwFilter:                      1;              
00141                         unsigned char   bRfDecoder:                     1;              
00142                         unsigned char   bParaMismatch:          1;              
00143                         unsigned char   bDummy5:                        3;              
00144                 };
00145         };
00146 
00147         // Multiplexer Impedance Status
00149 #if defined(__BORLANDC__)
00150         union _CNTRL_OUT1
00151 #else
00152         union CNTRL_OUT1
00153 #endif
00154         {
00156                 unsigned char   ucMux_PowerAmp;
00157                 struct
00158                 {
00161                         unsigned char   bMuxCh1_PowerAmp:                       1;
00164                         unsigned char   bMuxCh2_PowerAmp:                       1;
00167                         unsigned char   bMuxCh3_PowerAmp:                       1;
00170                         unsigned char   bMuxCh4_PowerAmp:                       1;
00173                         unsigned char   bMuxCh5_PowerAmp:                       1;
00176                         unsigned char   bMuxCh6_PowerAmp:                       1;
00179                         unsigned char   bMuxCh7_PowerAmp:                       1;
00182                         unsigned char   bMuxCh8_PowerAmp:                       1;
00183                 };
00184         } CNTRL_OUT1;
00185 
00187 #if defined(__BORLANDC__)
00188         union _PHASE_LT50_OUT1
00189 #else
00190         union PHASE_LT50_OUT1
00191 #endif
00192         {
00194                 unsigned char   ucMux_PhaseError_Less;
00195                 struct
00196                 {
00198                         unsigned char   bMuxCh1_PhaseError_Less:        1;
00200                         unsigned char   bMuxCh2_PhaseError_Less:        1;
00202                         unsigned char   bMuxCh3_PhaseError_Less:        1;
00204                         unsigned char   bMuxCh4_PhaseError_Less:        1;
00206                         unsigned char   bMuxCh5_PhaseError_Less:        1;
00208                         unsigned char   bMuxCh6_PhaseError_Less:        1;
00210                         unsigned char   bMuxCh7_PhaseError_Less:        1;
00212                         unsigned char   bMuxCh8_PhaseError_Less:        1;
00213                 };
00214         } PHASE_LT50_OUT1;
00215 
00217 #if defined(__BORLANDC__)
00218         union _PHASE_GT50_OUT1
00219 #else
00220         union PHASE_GT50_OUT1
00221 #endif
00222         {
00224                 unsigned char   ucMux_PhaseError_More;
00225                 struct
00226                 {
00228                         unsigned char   bMuxCh1_PhaseError_More:        1;
00230                         unsigned char   bMuxCh2_PhaseError_More:        1;
00232                         unsigned char   bMuxCh3_PhaseError_More:        1;
00234                         unsigned char   bMuxCh4_PhaseError_More:        1;
00236                         unsigned char   bMuxCh5_PhaseError_More:        1;
00238                         unsigned char   bMuxCh6_PhaseError_More:        1;
00240                         unsigned char   bMuxCh7_PhaseError_More:        1;
00242                         unsigned char   bMuxCh8_PhaseError_More:        1;
00243                 };
00244         } PHASE_GT50_OUT1;
00245         
00247 #if defined(__BORLANDC__)
00248         union _CNTRL_OUT2
00249 #else
00250         union CNTRL_OUT2
00251 #endif
00252         {
00254                 unsigned char   ucMux_PowerAmp;
00255                 struct
00256                 {
00259                         unsigned char   bMuxCh1_PowerAmp:                       1;
00262                         unsigned char   bMuxCh2_PowerAmp:                       1;
00265                         unsigned char   bMuxCh3_PowerAmp:                       1;
00268                         unsigned char   bMuxCh4_PowerAmp:                       1;
00271                         unsigned char   bMuxCh5_PowerAmp:                       1;
00274                         unsigned char   bMuxCh6_PowerAmp:                       1;
00277                         unsigned char   bMuxCh7_PowerAmp:                       1;
00280                         unsigned char   bMuxCh8_PowerAmp:                       1;
00281                 };
00282         } CNTRL_OUT2;
00283 
00285 #if defined(__BORLANDC__)
00286         union _PHASE_LT50_OUT2
00287 #else
00288         union PHASE_LT50_OUT2
00289 #endif
00290         {
00292                 unsigned char   ucMux_PhaseError_Less;
00293                 struct
00294                 {
00296                         unsigned char   bMuxCh1_PhaseError_Less:        1;
00298                         unsigned char   bMuxCh2_PhaseError_Less:        1;
00300                         unsigned char   bMuxCh3_PhaseError_Less:        1;
00302                         unsigned char   bMuxCh4_PhaseError_Less:        1;
00304                         unsigned char   bMuxCh5_PhaseError_Less:        1;
00306                         unsigned char   bMuxCh6_PhaseError_Less:        1;
00308                         unsigned char   bMuxCh7_PhaseError_Less:        1;
00310                         unsigned char   bMuxCh8_PhaseError_Less:        1;
00311                 };
00312         } PHASE_LT50_OUT2;
00313 
00315 #if defined(__BORLANDC__)
00316         union _PHASE_GT50_OUT2
00317 #else
00318         union PHASE_GT50_OUT2
00319 #endif
00320         {
00322                 unsigned char   ucMux_PhaseError_More;
00323                 struct
00324                 {
00326                         unsigned char   bMuxCh1_PhaseError_More:        1;
00328                         unsigned char   bMuxCh2_PhaseError_More:        1;
00330                         unsigned char   bMuxCh3_PhaseError_More:        1;
00332                         unsigned char   bMuxCh4_PhaseError_More:        1;
00334                         unsigned char   bMuxCh5_PhaseError_More:        1;
00336                         unsigned char   bMuxCh6_PhaseError_More:        1;
00338                         unsigned char   bMuxCh7_PhaseError_More:        1;
00340                         unsigned char   bMuxCh8_PhaseError_More:        1;
00341                 };
00342         } PHASE_GT50_OUT2;
00343         
00345 #if defined(__BORLANDC__)
00346         union _CNTRL_OUT3
00347 #else
00348         union CNTRL_OUT3
00349 #endif
00350         {
00352                 unsigned char   ucMux_PowerAmp;
00353                 struct
00354                 {
00357                         unsigned char   bMuxCh1_PowerAmp:                       1;
00360                         unsigned char   bMuxCh2_PowerAmp:                       1;
00363                         unsigned char   bMuxCh3_PowerAmp:                       1;
00366                         unsigned char   bMuxCh4_PowerAmp:                       1;
00369                         unsigned char   bMuxCh5_PowerAmp:                       1;
00372                         unsigned char   bMuxCh6_PowerAmp:                       1;
00375                         unsigned char   bMuxCh7_PowerAmp:                       1;
00378                         unsigned char   bMuxCh8_PowerAmp:                       1;
00379                 };
00380         } CNTRL_OUT3;
00381 
00383 #if defined(__BORLANDC__)
00384         union _PHASE_LT50_OUT3
00385 #else
00386         union PHASE_LT50_OUT3
00387 #endif
00388         {
00390                 unsigned char   ucMux_PhaseError_Less;
00391                 struct
00392                 {
00394                         unsigned char   bMuxCh1_PhaseError_Less:        1;
00396                         unsigned char   bMuxCh2_PhaseError_Less:        1;
00398                         unsigned char   bMuxCh3_PhaseError_Less:        1;
00400                         unsigned char   bMuxCh4_PhaseError_Less:        1;
00402                         unsigned char   bMuxCh5_PhaseError_Less:        1;
00404                         unsigned char   bMuxCh6_PhaseError_Less:        1;
00406                         unsigned char   bMuxCh7_PhaseError_Less:        1;
00408                         unsigned char   bMuxCh8_PhaseError_Less:        1;
00409                 };
00410         } PHASE_LT50_OUT3;
00411 
00413 #if defined(__BORLANDC__)
00414         union _PHASE_GT50_OUT3
00415 #else
00416         union PHASE_GT50_OUT3
00417 #endif
00418         {
00420                 unsigned char   ucMux_PhaseError_More;
00421                 struct
00422                 {
00424                         unsigned char   bMuxCh1_PhaseError_More:        1;
00426                         unsigned char   bMuxCh2_PhaseError_More:        1;
00428                         unsigned char   bMuxCh3_PhaseError_More:        1;
00430                         unsigned char   bMuxCh4_PhaseError_More:        1;
00432                         unsigned char   bMuxCh5_PhaseError_More:        1;
00434                         unsigned char   bMuxCh6_PhaseError_More:        1;
00436                         unsigned char   bMuxCh7_PhaseError_More:        1;
00438                         unsigned char   bMuxCh8_PhaseError_More:        1;
00439                 };
00440         } PHASE_GT50_OUT3;
00441         
00443 #if defined(__BORLANDC__)
00444         union _CNTRL_OUT4
00445 #else
00446         union CNTRL_OUT4
00447 #endif
00448         {
00450                 unsigned char   ucMux_PowerAmp;
00451                 struct
00452                 {
00455                         unsigned char   bMuxCh1_PowerAmp:                       1;
00458                         unsigned char   bMuxCh2_PowerAmp:                       1;
00461                         unsigned char   bMuxCh3_PowerAmp:                       1;
00464                         unsigned char   bMuxCh4_PowerAmp:                       1;
00467                         unsigned char   bMuxCh5_PowerAmp:                       1;
00470                         unsigned char   bMuxCh6_PowerAmp:                       1;
00473                         unsigned char   bMuxCh7_PowerAmp:                       1;
00476                         unsigned char   bMuxCh8_PowerAmp:                       1;
00477                 };
00478         } CNTRL_OUT4;
00479 
00481 #if defined(__BORLANDC__)
00482         union _PHASE_LT50_OUT4
00483 #else
00484         union PHASE_LT50_OUT4
00485 #endif
00486         {
00488                 unsigned char   ucMux_PhaseError_Less;
00489                 struct
00490                 {
00492                         unsigned char   bMuxCh1_PhaseError_Less:        1;
00494                         unsigned char   bMuxCh2_PhaseError_Less:        1;
00496                         unsigned char   bMuxCh3_PhaseError_Less:        1;
00498                         unsigned char   bMuxCh4_PhaseError_Less:        1;
00500                         unsigned char   bMuxCh5_PhaseError_Less:        1;
00502                         unsigned char   bMuxCh6_PhaseError_Less:        1;
00504                         unsigned char   bMuxCh7_PhaseError_Less:        1;
00506                         unsigned char   bMuxCh8_PhaseError_Less:        1;
00507                 };
00508         } PHASE_LT50_OUT4;
00509 
00511 #if defined(__BORLANDC__)
00512         union _PHASE_GT50_OUT4
00513 #else
00514         union PHASE_GT50_OUT4
00515 #endif
00516         {
00518                 unsigned char   ucMux_PhaseError_More;
00519                 struct
00520                 {
00522                         unsigned char   bMuxCh1_PhaseError_More:        1;
00524                         unsigned char   bMuxCh2_PhaseError_More:        1;
00526                         unsigned char   bMuxCh3_PhaseError_More:        1;
00528                         unsigned char   bMuxCh4_PhaseError_More:        1;
00530                         unsigned char   bMuxCh5_PhaseError_More:        1;
00532                         unsigned char   bMuxCh6_PhaseError_More:        1;
00534                         unsigned char   bMuxCh7_PhaseError_More:        1;
00536                         unsigned char   bMuxCh8_PhaseError_More:        1;
00537                 };
00538         } PHASE_GT50_OUT4;
00539 
00540         // MAX Status
00541         // [0x6E] and Mode=0x06
00542         union
00543         {
00544                 unsigned short int      usErrorFlags;                                           
00545                 struct
00546                 {
00547                         unsigned short int      bRTC:                                   1;              
00548                         unsigned short int      bMetadata:                              1;              
00549                         unsigned short int      bTimezoneTable:                 1;              
00550                         unsigned short int      bHolidayTable:                  1;              
00551                         unsigned short int      bAccessTable:                   1;              
00552                         unsigned short int      bRes1:                                  1;              
00553                         unsigned short int      bReaderConfig:                  1;              
00554                         unsigned short int      bTableUpdate:                   1;              
00555                         unsigned short int      bRes2:                                  8;              
00556                 };
00557         };
00558 
00559         unsigned short int      usEventTableSize;                                               
00560         unsigned short int      usEventTableLength;                                             
00561 
00562         // ID ISC.PRH200 LED Status
00563         // [0x6E] and Mode=0x07
00564         unsigned char   ucNoOfLEDs;                                                                     
00565         unsigned char   ucLEDStatus[29];                                                        
00566 
00567 
00568         // ID ISC.LR2500-B Antenna Tuning Status
00569         // [0x6E] and Mode=0x08
00570         unsigned short int      usRes1;                                         
00571         unsigned short int      usVoltage;                                      
00572         unsigned short int      usRes2;                                         
00573         unsigned short int      usCurrent;                                      
00574         unsigned short int      usPhase;                                        
00575         short int                       iPhase;                                         
00576         unsigned char           ucRes1;                                         
00577         unsigned char           ucRes2;                                         
00578         unsigned char           ucRes3;                                         
00579 
00580         // Firmware Status
00581         // [0x6E] and Mode=0x20
00582         unsigned char   ucFirmwareStatus[32];                                           
00583 
00584         // Config-Para Change
00585         // [0x6E] and Mode=0x21
00586         unsigned char   ucConfigParaChange;                                                     
00587 
00588 
00589         bool bIsDiagnosticRead; 
00590         bool bIsMode0x01Read;   
00591         bool bIsMode0x02Read;   
00592         bool bIsMode0x03Read;   
00593         bool bIsMode0x04Read;   
00594         bool bIsMode0x05Read;   
00595         bool bIsMode0x06Read;   
00596         bool bIsMode0x07Read;   
00597         bool bIsMode0x08Read;   
00598         bool bIsMode0x20Read;   
00599         bool bIsMode0x21Read;   
00600         
00601         // Reader information, only when Diagnostic Data sent with notification protocol
00602         union
00603         {
00604                 unsigned char   ucReaderType;                   
00605                 unsigned char   ucReaderClass;                  
00606         };
00607         unsigned char   ucReaderClassGen;                       
00608         unsigned char   ucReaderTypeOfClass;            
00609         unsigned char   ucReserved3;                            
00610 
00612         void Init()
00613         {
00614                 memset(&ucFlagsA, 0, sizeof(_FEDM_ISC_READER_DIAGNOSTIC));
00615         }
00616 
00617 
00620         unsigned int GetReaderType()
00621         {
00622                 if(ucReaderType & 0x80)
00623                 {
00624                         // class information
00625                         return  ((unsigned int)ucReserved3<<24) +
00626                                         ((unsigned int)ucReaderTypeOfClass<<16) +
00627                                         ((unsigned int)ucReaderClassGen<<8)  +
00628                                          (unsigned int)ucReaderClass;
00629                 }
00630                 else
00631                 {
00632                         // single type number
00633                         return (unsigned int)ucReaderClass;
00634                 }
00635         }
00636 
00637 } FEDM_ISC_READER_DIAGNOSTIC;
00638 
00639 
00640 #endif // !defined(_FEDM_ISC_READER_DIAGNOSTIC_)


rfid_drivers
Author(s): Raul Perula-Martinez
autogenerated on Thu Apr 2 2015 03:06:13