FedmIscTagHandler_ISO15693_EM_4034.cpp
Go to the documentation of this file.
00001 /*-------------------------------------------------------
00002 |                                                       |
00003 |      FedmIscTagHandler_ISO15693_EM_4034.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 EM Microelectronic-Marin SA
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_EM_4034.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_EM_4034
00054 // >> supports only ISO Host Commands <<
00055 //####################################################################
00056 
00057 FedmIscTagHandler_ISO15693_EM_4034::FedmIscTagHandler_ISO15693_EM_4034(
00058         FEDM_ISCReader* pReader,
00059         FEDM_ISOTabItem* pTabItem )
00060         : FedmIscTagHandler_ISO15693_EM(pReader, FedmIscTagHandler::TYPE_ISO15693_EM_4034, pTabItem)
00061 {
00062         m_sTagName = "ISO 15693 : ";
00063         m_sTagName += FEDM_TabItem::GetISO15693Manufacturer(FEDM_ISC_ISO_MFR_EM);
00064         m_sTagName += " 4034";
00065 }
00066 
00067 FedmIscTagHandler_ISO15693_EM_4034::FedmIscTagHandler_ISO15693_EM_4034(
00068         FEDM_ISCReader* pReader,
00069         unsigned int uiTagHandlerType,
00070         FEDM_ISOTabItem* pTabItem )
00071         : FedmIscTagHandler_ISO15693_EM(pReader, uiTagHandlerType, pTabItem)
00072 {
00073         m_sTagName = "ISO 15693 : ";
00074         m_sTagName += FEDM_TabItem::GetISO15693Manufacturer(FEDM_ISC_ISO_MFR_EM);
00075         m_sTagName += " 4034";
00076 }
00077 
00078 FedmIscTagHandler_ISO15693_EM_4034::~FedmIscTagHandler_ISO15693_EM_4034()
00079 {
00080 }
00081 
00082 // set all data members to 0
00083 /*void FedmIscTagHandler_ISO15693_EM_4034::Init()
00084 {
00085 }*/
00086 
00087 /***************************************************************************
00088   Begin                 :       09.10.2009 / M. Hultsch
00089 
00090   Version               :       03.01.00 / 09.10.2009 / M. Hultsch
00091 
00092   Function                      :       [0xB1][0xA0] ToggleEAS
00093                                                 only non addressed
00094 
00095   Parameters            :       string sPassword
00096 
00097   Return value          :       0                               - if tramsmission was successful
00098                                                 status byte (>1)- if the reader signals a problem
00099                                                 error code (<0) - if something goes wrong
00100 ***************************************************************************/
00101 int FedmIscTagHandler_ISO15693_EM_4034::ToggleEAS(
00102         string sPassword)
00103 {
00104         int iErr = 0;
00105 
00106         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xA0));
00107         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE, (unsigned char)0));
00108         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE, (unsigned char)FEDM_ISC_ISO_MODE_NONADR));
00109         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_EM_PASSWORD, sPassword));
00110 
00111         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MFR, (unsigned char)FEDM_ISC_ISO_MFR_EM));
00112         
00113         // ... and execute
00114         return m_pReader->SendProtocol(0xB1);
00115 }
00116 
00117 /***************************************************************************
00118   Begin                 :       09.10.2009 / M. Hultsch
00119 
00120   Version               :       03.01.00 / 09.10.2009 / M. Hultsch
00121 
00122   Function                      :       [0xB1][0xE4] Login
00123 
00124   Parameters            :       string sPassword
00125 
00126   Return value          :       0                               - if tramsmission was successful
00127                                                 status byte (>1)- if the reader signals a problem
00128                                                 error code (<0) - if something goes wrong
00129 ***************************************************************************/
00130 int FedmIscTagHandler_ISO15693_EM_4034::Login(
00131         string sPassword)
00132 {
00133         int iErr = 0;
00134         
00135         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_CMD, (unsigned char)0xE4));
00136         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE, (unsigned char)0));
00137         if(m_bNonAddressedMode)
00138         {
00139                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_NONADR));
00140         }
00141         else if(m_pTabItem->m_bIsSelected)
00142         {
00143                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_SEL));
00144         }
00145         else
00146         {
00147                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MODE_ADR, (unsigned char)FEDM_ISC_ISO_MODE_ADR));
00148                 FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_UID, m_pTabItem->m_ucSnr, m_pTabItem->m_ucSnrLen));
00149         }
00150 
00151         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_REQ_EM_PASSWORD, sPassword));
00152 
00153         FEDM_CHK1(iErr, m_pReader->SetData(FEDM_ISC_TMP_B1_MFR, (unsigned char)FEDM_ISC_ISO_MFR_EM));
00154         
00155         // ... and execute
00156         return m_pReader->SendProtocol(0xB1);
00157 }
00158 
00159 #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