FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus.cpp
Go to the documentation of this file.
00001 /*-------------------------------------------------------
00002 |                                                       |
00003 |      FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus.cpp|
00004 |                                                       |
00005 ---------------------------------------------------------
00006 
00007 Copyright © 2009-2010   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                   :       02.10.2009
00018 
00019 Version                 :       03.01.00 / 10.02.2010 / M. Hultsch
00020 
00021 Operation Systems       :       independent
00022 
00023 Function                        :       class for OBID i-scan® HF transponder ISO15693 of manufacturer Texas Instruments Incorporated
00024                                                 specialized tag handler on top with custom specific commands
00025 
00026 NOTE                            :       this class supports only selected or addressed mode in Host-Mode
00027 
00028 
00029 Trademarks:
00030 -----------
00031 OBID®, OBID i-scan® and OBID myAXXESS® are registered Trademarks of FEIG ELECTRONIC GmbH
00032 Other Trademarks: see FEDM.h
00033 */
00034 
00035 
00036 #if !defined(_FEDM_NO_TAG_HANDLER_ISO15693)
00037 
00038 #include "FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus.h"
00039 #include "../FEDM_ISCReader.h"
00040 #include "../FEDM_ISOTabItem.h"
00041 #include "../FEDM_ISCReaderID.h"
00042 #include "../FEDM_ISC.h"
00043 #include "../../FEDM_Functions.h"
00044 
00045 
00046 #if _MSC_VER >= 1400
00047         #pragma warning(disable : 4996)
00048 #endif
00049 
00050 
00051 
00052 //####################################################################
00053 // class FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus
00054 // >> supports only ISO Host Commands <<
00055 //####################################################################
00056 
00057 FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus(
00058         FEDM_ISCReader* pReader,
00059         FEDM_ISOTabItem* pTabItem )
00060         : FedmIscTagHandler_ISO15693_TI(pReader, FedmIscTagHandler::TYPE_ISO15693_TI_Tag_it_HFI_Plus, pTabItem)
00061 {
00062         m_sTagName = "ISO 15693 : ";
00063         m_sTagName += FEDM_TabItem::GetISO15693Manufacturer(FEDM_ISC_ISO_MFR_TI);
00064         m_sTagName += " Tag-it HF-I Plus";
00065 }
00066 
00067 FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus(
00068         FEDM_ISCReader* pReader,
00069         unsigned int uiTagHandlerType,
00070         FEDM_ISOTabItem* pTabItem )
00071         : FedmIscTagHandler_ISO15693_TI(pReader, uiTagHandlerType, pTabItem)
00072 {
00073         m_sTagName = "ISO 15693 : ";
00074         m_sTagName += FEDM_TabItem::GetISO15693Manufacturer(FEDM_ISC_ISO_MFR_TI);
00075         m_sTagName += " Tag-it HF-I Plus";
00076 }
00077 
00078 FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::~FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus()
00079 {
00080 }
00081 
00082 // set all data members to 0
00083 /*void FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::Init()
00084 {
00085 }*/
00086 
00087 /***************************************************************************
00088   Begin                 :       09.10.2009 / M. Hultsch
00089 
00090   Version               :       03.01.00 / 12.10.2009 / M. Hultsch
00091 
00092   Function                      :       [0xB1][0xA2] Write2Blocks
00093 
00094   Parameters            :       unsigned char ucDBAdr, unsigned char ucDBSize, string sEvenDB, string sOddDB
00095 
00096   Return value          :       0                               - if tramsmission was successful
00097                                                 status byte (>1)- if the reader signals a problem
00098                                                 error code (<0) - if something goes wrong
00099 ***************************************************************************/
00100 int FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::Write2Blocks(
00101         unsigned char ucDBAdr, 
00102         unsigned char ucDBSize,
00103         unsigned char* pucEvenDB, 
00104         unsigned char* pucOddDB)
00105 {
00106         int iErr = 0;
00107         
00108         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xA2));
00109         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE, (unsigned char)0));
00110 
00111         if(m_bNonAddressedMode)
00112         {
00113                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_NONADR));
00114         }
00115         else if(m_pTabItem->m_bIsSelected)
00116         {
00117                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_SEL));
00118         }
00119         else
00120         {
00121                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_ADR));
00122                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_UID, m_pTabItem->m_ucSnr, m_pTabItem->m_ucSnrLen));
00123         }
00124         
00125         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_TI_DB_ADR, ucDBAdr));
00126         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_TI_DB_SIZE, ucDBSize));
00127         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_TI_EVEN_DB, pucEvenDB, 4));
00128         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_TI_ODD_DB, pucOddDB, 4));
00129 
00130         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xA2));
00131         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MFR, (unsigned char)FEDM_ISC_ISO_MFR_TI));
00132         
00133         // ... and execute
00134         return m_pReader->SendProtocol(0xB1);
00135 }
00136 
00137 /***************************************************************************
00138   Begin                 :       09.10.2009 / M. Hultsch
00139 
00140   Version               :       03.01.00 / 12.10.2009 / M. Hultsch
00141 
00142   Function                      :       [0xB1][0xA3] Lock2Blocks
00143 
00144   Parameters            :       unsigned char ucDBAdr
00145 
00146   Return value          :       0                               - if tramsmission was successful
00147                                                 status byte (>1)- if the reader signals a problem
00148                                                 error code (<0) - if something goes wrong
00149 ***************************************************************************/
00150 int FedmIscTagHandler_ISO15693_TI_Tag_it_HFI_Plus::Lock2Blocks(
00151         unsigned char ucDBAdr)
00152 {
00153         int iErr = 0;
00154         
00155         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xA3));
00156         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE, (unsigned char)0));
00157 
00158         if(m_bNonAddressedMode)
00159         {
00160                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_NONADR));
00161         }
00162         else if(m_pTabItem->m_bIsSelected)
00163         {
00164                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_SEL));
00165         }
00166         else
00167         {
00168                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_ADR));
00169                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_UID, m_pTabItem->m_ucSnr, m_pTabItem->m_ucSnrLen));
00170         }
00171         
00172         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_TI_DB_ADR, ucDBAdr));
00173 
00174         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xA3));
00175         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MFR, (unsigned char)FEDM_ISC_ISO_MFR_TI));
00176         
00177         // ... and execute
00178         return m_pReader->SendProtocol(0xB1);
00179 }
00180 
00181 #endif // #if !defined(_FEDM_NO_TAG_HANDLER_ISO15693)


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