MOBY D C/C++ MDWAPI. Programming instructions. General information Table of Contents SLG D10. Overview 1. Configuration parameters 2

Size: px
Start display at page:

Download "MOBY D C/C++ MDWAPI. Programming instructions. General information Table of Contents SLG D10. Overview 1. Configuration parameters 2"

Transcription

1 General information Table of Contents MOBY D Programming instructions SLG D10 Overview 1 Configuration parameters 2 Description of protocols 3 SLG D11/D12 Overview 4 Configuration parameters 5 Description of protocols 6 Software support for MOBY D Reader Family ID FEISC Installation 7 Programming interface 8 Software support for ID FECOM serial interface Installation 9 Programming interface 10 C++ Class Library ID FEDM Overview 11 Basic features 12 Base classes 13 Global functions 14 Reader class 15 A First steps in programming MOBY D Abbreviations Published in May 2005

2 Safety instructions!!! This manual contains notes that should be observed to ensure your personal safety and to protect the product and connected equipment from damage. These notes are highlighted in the manual by a warning triangle and are marked as follows according to the level of danger: Danger indicates an imminently hazardous situation which, if not avoided, will result in death, serious injury or considerable property damage. Warning indicates an imminently hazardous situation which, if not avoided, may result in death, serious injury or considerable property damage. Caution indicates an imminently hazardous situation which, if not avoided, may result in minor injury or property damage. Note highlights an important item of information about the product or indicates a section of the instructions that requires careful attention. Qualified personnel The equipment may be commissioned and operated by qualified personnel only. For the purposes of the safety instructions in this instruction manual, a "Qualified Person" is one who is authorized to commission, ground and label devices, systems and circuits according to accepted safety standards. Trademarks MOBY is a registered trademark of SIEMENS AG. Microsoft, Windows, Visual C++ and Visual Basic are registered trademarks of the Microsoft Corporation. Borland, C++Builder and Delphi are registered trademarks of the Inprise Corporation. The remaining names in this document may be trademarks which, when used by third parties for their own purposes, may result in a violation of the rights of the trademark bearer. Copyright Siemens AG 2001, 2002, 2003, 2005 All rights reserved Passing this document on to third parties, reproducing this document or using or relating its contents is not permitted without express authority. Offenders will be liable for damages. All rights, including rights created by patent grant or registration of a utility model or design, are reserved. Siemens AG Automation & Drives Special Products, Automotive Industry Projects, Training P.O.Box 4848, D Nuremberg Siemens-Aktiengesellschaft Exclusion of liability We have checked the contents of this Manual to ensure that they match the hardware and software described herein. However, because deviations cannot be completely ruled out, we cannot guarantee complete conformance. However, the information contained in this document is checked regularly and any necessary corrections are included in subsequent editions. We are thankful for any recommendations or suggestions. We reserve the right to make technical changes. Order no. (4)J31069-D0138-U001-A3-7618

3 05/05 General information General information These programming instructions describe a software library that is also available to you in the form of an annotated source code. For this reason, we shall refrain here from documenting any more than absolutely necessary to give you a basic understanding of the functionality and use of classes. We shall assume that the user of this library will read the source code and will be able to work his or her way through the details with the assistance of this documentation, the header files and the inserted comments. Appendix A contains a Getting Started section that includes decision-making aids and describes the first steps in programming MOBY D. Individual bits within a byte that are marked with a 0 are reserved for future testing or manufacturing purposes. These bits may not be modified. Doing so may cause the reader to malfunction. The following numerical formats are used: 0...9: Decimal numbers 0x00...0xFF: Hexadecimal numbers b0...1: Binary numbers Hexadecimal numbers in brackets [ ] indicate a control byte (command) or a status byte (error). The following applies to read/write devices SLG D10/SLG D11/SLG D12. No connections led out for digital input/output signals No LEDs available for status indications or diagnoses The SLG D11 and SLG D12 do not have buzzers. (4)J31069-D0138-U001-A

4 Table of Contents 05/05 Table of Contents General information SLG D10 overview lntroduction MOBY D SLG D Data safety Data transmission between MOBY D SLG D10 and the host Configuration commands and control commands ISO15693 host commands Buffered Read Mode Scan mode Reader Multiplex Mode Asynchronous interface Data format and protocol frames CRC16 calculation algorithm SLG D10 configuration parameters (CFG) Reader parameters CFG0: Passwords CFG1: General inputs and outputs CFG2: COM interface CFG3: HF interface I CFG4: HF interface II CFG5: HF interface III CFG6: Reserved CFG7: Reserved Transponder parameters CFG8: General transponder parameters CFG9: Reserved System parameters CFG10: General system parameters CFG11: Buffered Read Mode CFG12: Scan Mode CFG13: Anticollision CFG14: Reserved CFG15: Reserved Description of protocols for SLG D Protocols for configuring the reader [0xA0] Reader Login (4)J31069-D0138-U001-A3-7618

5 05/05 Table of Contents [0x80] Read Configuration [0x81] Write Configuration [0x82] Save Configuration to EEPROM [0x83] Set Default Configuration [0x85] Set System Timer [0x86] Get System Timer Protocols for controlling the reader [0x52] Baud Rate Detection [0x55] Start Flash Loader [0x63] CPU Reset [0x65] Get Software Version [0x69] RF Reset [0x6A] RF ON/OFF [0x6C] Set Noise Level [0x6D] Get Noise Level [0x6E] Reader Diagnostic [0x6F] Basic antenna tuning [0x71] Set Output [0x74] Get Input Special commands [0x1B] Reset QUIET Bit (I-CODE1 transponders only) [0x1C] EAS (I-CODE1 transponders only) Protocols for ISO15693 host commands Supported ISO15693 host commands for ISO15693 transponders Infineon (my-d) Philips (I-Code SLI) STMicroelectronics (LRI512) Texas Instruments (Tag-it HFI) Supported ISO15693 host commands for I-Code1 Transponders Supported ISO15693 host commands for Tag-it HF Transponders [0xB0] Host commands for ISO15693: required and optional commands [0x01] Inventory [0x02] Stay Quiet [0x22] Lock Multiple Blocks [0x23] Read Multiple Blocks [0x24] Write Multiple Blocks [0x25] Select [0x26] Reset to Ready [0x27] Write AFI [0x28] Lock AFI [0x29] Write DSFID [0x2A] Lock DSFID [0x2B] Get System Information [0x2C] Get Multiple Block Security Status (4)J31069-D0138-U001-A

6 Table of Contents 05/ [0xA0] Read Config Block [0xA1] Write Config Block [0xB1] Host commands for ISO15693: user-specific and manufacturerspecific commands [0xBF] ISO15693 transparent command Protocols for the Buffered Read Mode Processes in the Buffered Read Mode Transponder access in the Buffered Read Mode [0x21] Read Buffer [0x31] Read Data Buffer Info [0x32] Clear Data Buffer [0x33] Initialize Buffer Appendix Codes for transponder types Time response of the asynchronous interface Time response of the ISO15693 host commands Index of status bytes Index of control bytes Index of configuration parameters Memory model for I-CODE1 transponders Examples of Reading Data SLG D11/D12 overview Data transmission between MOBY D SLG D11/D12 and the host Configuration commands and control commands ISO15693 host commands Scan mode Asynchronous interface Data format und protocol frame CRC16 calculation algorithm SLG D11/D12 configuration parameters (CFG) CFG0: Reserved CFG1: Interface CFG2: General inputs/outputs CFG3: HF interface CFG4: Transponder parameters CFG5: Anticollision CFG6: Scan mode CFG7: Scan mode (4)J31069-D0138-U001-A3-7618

7 05/05 Table of Contents 6 Description of protocols for SLG D11/D Protocols for configuring the reader [0x80] Read Configuration [0x81] Write Configuration [0x82] Save Configuration [0x83] Set Default Configuration Protocols for controlling the reader [0x52] Baud Rate Detection [0x55] Start Flash Loader [0x63] CPU Reset [0x65] Get Software Version [0x69] RF Reset [0x6A] RF ON/OFF [0x71] Set Output Special commands [0x1B] Reset QUIET Bit (I-CODE1 transponders only) Protocols for ISO15693 host commands Supported ISO15693 host commands for ISO15693 transponders Infineon (my-d) Philips (I-Code SLI) STMicroelectronics (LRI512) Texas Instruments (Tag-it HFI) Supported ISO15693 host commands for I-Code1 Transponders Supported ISO15693 host commands for Tag-it HF Transponders [0xB0] Host commands for ISO15693: required and optional commands [0x01] Inventory [0x02] Stay Quiet [0x22] Lock Multiple Blocks [0x23] Read Multiple Blocks [0x24] Write Multiple Blocks [0x25] Select [0x26] Reset to Ready [0x27] Write AFI [0x28] Lock AFI [0x29] Write DSFID [0x2A] Lock DSFID [0x2B] Get System Information [0x2C] Get Multiple Block Security Status [0xA0] Read Config Block [0xA1] Write Config Block [0xB1] Host commands for ISO15693: user-specific and manufacturerspecific commands [0xBF] ISO15693 transparent command (4)J31069-D0138-U001-A

8 Table of Contents 05/ Appendix Codes for transponder types Time response of the asynchronous interface Time response of the ISO15693 host commands Index of status bytes Index of control bytes Index of configuration parameters Storage model for I-CODE1 transponders Examples of Reading Data Installing the FEISC-DLL Introduction Installation Integration into the application program FEISC-DLL programming interface Overview Parameter passing Event signaling to applications List of functions FEISC_NewReader FEISC_DeleteReader FEISC_GetReaderList FEISC_GetDLLVersion FEISC_GetErrorText FEISC_GetStatusText FEISC_GetReaderPara FEISC_SetReaderPara FEISC_AddEventHandler FEISC_DelEventHandler FEISC_BuildProtocol FEISC_SplitProtocol FEISC_SendTransparent FEISC_Transmit FEISC_Receive FEISC_GetLastSendProt FEISC_GetLastRecProt FEISC_GetLastState FEISC_GetLastRecProtLen FEISC_GetLastError FEISC_0x1B_ResetQuietBit FEISC_0x1C_EASRequest FEISC_0x21_ReadBuffer (4)J31069-D0138-U001-A3-7618

9 05/05 Table of Contents FEISC_0x31_ReadDataBufferInfo FEISC_0x32_ClearDataBuffer FEISC_0x33_InitBuffer FEISC_0x52_GetBaud FEISC_0x55_StartFlashLoader FEISC_0x63_CPUReset FEISC_0x65_SoftVersion FEISC_0x69_RFReset FEISC_0x6A_RFOnOff FEISC_0x6B_InitNoiseThreshold FEISC_0x6C_SetNoiseLevel FEISC_0x6D_GetNoiseLevel FEISC_0x6E_RdDiag FEISC_0x75_AdjAntenna FEISC_0x71_SetOutput FEISC_0x74_ReadInput FEISC_0x80_ReadConfBlock FEISC_0x81_WriteConfBlock FEISC_0x82_SaveConfBlock FEISC_0x83_ResetConfBlock FEISC_0x85_SetSysTimer FEISC_0x86_GetSysTimer FEISC_0xA0_RdLogin FEISC_0xB0_ISOCmd FEISC_0xB1_ ISOCustAndPropCmd FEISC_0xBF_ ISOTranspCmd Support for multithreading Appendix ID FEISC error codes List of parameter IDs List of constants for the FEISC_EVENT_INIT structure Installing the FECOM-DLL Introduction Installation Integration into the application program FECOM-DLL programming interface Overview Event signaling for control lines List of functions FECOM_OpenPort FECOM_ClosePort (4)J31069-D0138-U001-A

10 Table of Contents 05/ FECOM_GetPortList FECOM_GetDLLVersion FECOM_GetErrorText FECOM_GetLastError FECOM_GetPortHnd FECOM_GetPortPara FECOM_SetPortPara FECOM_DoPortCmd FECOM_AddEventHandler FECOM_DelEventHandler FECOM_Transceive FECOM_Transmit FECOM_Receive Appendix ID FECOM error codes List of parameter IDs List of constants for the FECOM_EVENT_INIT structure Class library overview Introduction Overview of all MOBY D components Supported operating systems and development environments Installation Class overview Class structure diagram Component diagram Basic features of the class library Internal structure Data containers Access constants Protocol traffic Serialization Error handling Base classes of the class library FEDM_Base Functions (public) Functions (protected) FEDM_DataBase Attributes (protected) Attributes (public) (4)J31069-D0138-U001-A3-7618

11 05/05 Table of Contents Functions (public) Abstract functions (public) Global functions of the class library FEDM_Functions Appendix FEDM error codes List of storage type constants Macros FEDM_ISCReader reader class of the class library Overview FEDM_ISCReader Implemented data containers Attributes (protected) Functions (public) Functions (protected) Examples for the use of the SendProtocol function FEDM_ISCTable Examples for the use of the table List of constants A First steps in programming MOBY D A.1 Available SLG modes A.2 Serial interface settings A.3 Parameterization of the SLG Abbreviations (4)J31069-D0138-U001-A

12 SLG D10 overview 05/05 1 SLG D10 overview 1.1 lntroduction MOBY D SLG D10 The SLG D10 are the long range readers of the MOBY D family. The MOBY D family covers the complete spectrum of reader ranges. It includes proximity, midrange and long range devices, which differ in their maximum write/read ranges. MOBY D readers of different types can be used together since the readers have the same communication interface. Each reader is equipped with a bidirectional asynchronous interface (RS 232 or RS 422). The multitag function is still another advantage. The readers use this function to read and write to different transponder types and to handle multiple transponders located within the HF field. The SLG D10 are the most powerful members of the MOBY D family. They have the widest reader range, the most extensive configuration options and the largest command set. However, their basic command set and functions are still fully compatible with the commands of the other MOBY D family members. Thanks to their extensive configurability, the SLG D10 can be readily adapted to any individual application by configuring their hardware and software Data safety Since it must be possible to safeguard your data against unauthorized access, the reader is equipped with the following protective mechanisms: Configuration protection: Access to the configuration data stored in the reader EEPROM can be locked. Access to the configuration parameters stored in the reader is protected by a 32-bit password known as the "Reader ID" or the reader identifier. This ensures that the configuration parameters in the reader EEPROM can only be read or modified after the user logs in with a valid Reader ID using the [0xA0] Reader Login command, provided that a password has been defined. 10 (4)J31069-D0138-U001-A3-7618

13 05/05 SLG D10 overview 1.2 Data transmission between MOBY D SLG D10 and the host There are five different kinds of data transmission between the MOBY D reader and the host (terminal, PC). ISO15693 host commands, Buffered Read Mode and Scan Mode are used for the exchange of data between the transponder and the host. Configuration commands and control commands are used for matching the reader parameters to various applications. The following table shows what interfaces are supported by the various kinds of data transmission: Configuration commands Reader control commands ISO15693 host commands Buffered Read Mode Scan mode Asynchronous interface (RS 232 / RS 422) Configuration commands and control commands This type of data transmission is suitable for reader configuration and diagnosis via the asynchronous interface. The reader configuration parameters are stored in the reader memory. They must be stored in the EEPROM for the particular configuration data to be preserved even when the device is shut off. When the device is switched back on, the reader reads out the configuration from the EEPROM. Reader control diagnosis is executed immediately. The reader response contains status or data information of the command. Host (terminal / PC /...) Parameter command / control command Reader Parameters received and saved / control command processed Yes Status / date No Error status (4)J31069-D0138-U001-A

14 SLG D10 overview 05/ ISO15693 host commands The ISO15693 host commands provide a way for host and transponders to exchange data with the aid of the reader. The transponders must remain within the recognition field of the reader. Note When you write data to a transponder, you must ensure that the transponder remains within the recognition field of the reader during the entire write procedure. If the transponder leaves the recognition field of the reader during the write procedure, data will be lost. The reader distinguishes between three modes. Addressed mode Before data can be read or written in addressed mode, the UID of the transponder must be known. You will learn the UID when you send the protocol [0x01] Inventory. When a transponder is located in the recognition field of the reader at this moment, it replies with its UID. The transponder must then be addressed with the correct UID during all subsequent read and write commands. The following flowchart shows the steps required for communication with a transponder in addressed mode. Host (Terminal / PC /...) Reader Inventory to query the UID Transponder in antenna field? Read data with UID from the transponder Write data with UID to the transponder Yes Status/number of selected transponders/uids No Status = no transponders Transponder with correct UID in the antenna field? Yes Status/read transponder data No Status = no transponder in reader field Transponder with correct UID in the antenna field? Yes No Status OK Status = no transponder in read field 12 (4)J31069-D0138-U001-A3-7618

15 05/05 SLG D10 overview Not addressed mode In not addressed mode, you do not need to know the UID of the transponder. This mode is recommended when only one transponder is located in the recognition field of the reader. The following flowchart shows the steps required for communication with one transponder in not addressed mode. Host (Terminal / PC /...) Reader Read data Transponder in antenna field? Yes Status/read transponder data No Status = no transponder in reader field Write data Transponder in antenna field? Yes No Status OK Status = no transponder in reader field (4)J31069-D0138-U001-A

16 SLG D10 overview 05/05 Selected: In this mode, the reader only communicates with one selected transponder. Before you can read or write in select mode, the UID of the transponder must be known. You will learn the UID when you send the protocol [0x01] Inventory. In a second step, the transponder must be selected with the command [0x25] Select. This must contain the UID of the transponder. The following flowchart shows the steps required for communication with a transponder in select mode. Host (Terminal / PC /...) Reader Inventory for query of UID Transponder in antenna field? Yes Status/number of selected transponders/uids No Status = no transponders Select transponder with UID Transponder with correct UID in the antenna field? Yes Status/read transponder data No Status = no transponder in reader field Read data Selected transponder in antenna field? Yes Status/read transponder data No Status = no transponder in reader field Write data Selected transponder in antenna field? Yes No Status OK Status = no transponder in reader field 14 (4)J31069-D0138-U001-A3-7618

17 05/05 SLG D10 overview Buffered Read Mode The Buffered Read Mode is a high-level operating mode that tracks down transponders in the detection range of the reader. This operating mode is especially suitable for those application that use the transponder for object identification. The Buffered Read Mode processes all data read from the transponders and filters operations to make the user interface transparent to transponder data and to keep data traffic between the reader and the host at a minimum. Only three commands are used for controlling the Buffered Read Mode. In this operating mode, the reader automatically selects the transponders in it detection range and reads their requested data. The transponder data that are thus read out are stored in a FIFO data buffer. The transponder data that were read out can then be read using the [0x21] Read Buffer command. This command always reads the first data set available in the data buffer. However, before you can retrieve the next data set from the buffer using the read command, you must first delete the data you already read using the [0x32] Clear Data Buffer command. If the Buffered Read Mode is enabled in the configuration block, CFG10: General system parameters, the reader begins reading transponder data immediately after it is switched on. The Buffered Read Mode can be reinitialized using the Fehler! Verweisquelle konnte nicht gefunden werden. command. In the Buffered Read Mode, the reader responds to each valid message with a data or status protocol. The response also contains the control byte received by the reader. Host (terminal / PC /...) Reader Read data Transponder data in the data buffer? Yes Status protocol / data protocol Clear data Transponder data read? Yes No Status = no valid data No Status OK Status = no valid data (4)J31069-D0138-U001-A

18 SLG D10 overview 05/05 Note In the Buffered Read Mode, only read operations are possible. Buffered Read Mode can only be used when Scan Mode is off. Buffered Read Mode can be used together with Reader Multiplex Mode Scan mode In this operating mode the reader automatically sends data to the host as soon as a transponder moves into its field and valid data could be read. In scan mode the contents of the message block (UID, data block) can be adjusted to all user applications. Scan mode can be used with the asynchronous interface. The reader starts outputting the protocol block as soon as all required data have been read correctly from the transponder. If the reader is unable to read the data of a protocol block completely and correctly, it does not output any data. If, for instance, the address of the data block is invalid, the UID of the transponder is not sent. Scan mode with the asynchronous interface The data are output as shown below based on their configuration. The specified order cannot be changed. The format of the sent protocols depends on the configuration and number of transponders in the recognition field of the reader. Example 1: One transponder is located in the recognition field. UID and data block are to be read. Example 2: Three transponders are located in the recognition field. Only the UID is to be read. PR UID1 EZ UID2 EZ UID3 EZ 1 Not possible with SLG D10 16 (4)J31069-D0138-U001-A3-7618

19 05/05 SLG D10 overview Example 3: Three transponders are located in the recognition field. Only the data block is to be read. PR Data1 EZ Data2 EZ Data3 EZ Example 4: Two transponders are located in the recognition field. UID and data block are to be read. PR UID1 TZ Data1 EZ UID2 TZ Data2 EZ PR: UID: Data: TZ: EZ: ts: tr: Communication prefix (optional) Serial number (fixed) Data blocks (can be programmed as desired) Separator character (optional) End character (optional) SCAN-LOCK-TIME Time until the next new read access of the transponder Note If configuration protocols are to be sent to the reader when scan mode is active, we recommend that no transponder be located in the field of the reader during this time. Only read operations are possible in scan mode. Scan mode is only available when buffered read mode is deactivated. Scan mode can be used together with Reader Multiplex Mode. (4)J31069-D0138-U001-A

20 SLG D10 overview 05/ Reader Multiplex Mode The HF operations of the readers must be multiplexed to prevent the readers from interfering with each other and to permit operation of several readers close together. This is accomplished with multiplex mode. Together with buffered read mode, multiplex mode permits maximum operating speeds. Each reader passes control on to the next reader after it has concluded its task. This is like round robin control except that it is much faster than control executed by a single host, since it is controlled at reader level. To set up multiplex mode, buffered read mode or scan mode must be activated in configuration block CFG10: General system parameters (see chap.2.3.1). In addition, multiplex mode must be selected in the SYNC setting in configuration block CFG11: Buffered Read Mode (see chap ). The reader which is to trigger the multiplex chain must be configured as MASTER in the SYNC setting in configuration block CFG11: Buffered Read Mode. In multiplex mode, input signal IN1 and output signal OUT1 are reserved for the synchronization of the cable connections. Be sure to insulate signal input and signal output and to power them via external direct current. 18 (4)J31069-D0138-U001-A3-7618

21 05/05 SLG D10 overview 1.3 Asynchronous interface Data format and protocol frames You can configure the SLG D10 reader via an asynchronous interface and write data to and read out data from transponders. Communication between the reader and the connected host (terminal, PC, etc.) is governed by fixed protocols. These are designed for data busses and contain a bus address. When data is transmitted via the asynchronous interface, the reader supplies the requested data or a status byte. The response also contains the transmitted control byte. The reader does not respond if a defective protocol frame is transmitted. Protocol frame Host Reader LENGTH= n (n-2) (n-1) n Host Reader COM-ADR CONTRO L BYTE PROTOCOL DATA MSB CRC16 LSB CRC (5...(n-2)) (n-1) n LENGTH = n COM-ADR CON- TROL BYTE STATUS 1 (PROTOCOL DATA) MSB CRC16 LSB CRC16 LENGTH: Number of protocol bytes 1... n ( ) including length bytes and checksums COM-ADR: , device address in bus mode Note The reader can always be accessed via device address 255! The SLG D10 have only been provided with a point-to-point connection (RS 232, RS 422 upon request) (no RS 485)! 1 See chap Index of status bytes. (4)J31069-D0138-U001-A

22 SLG D10 overview 05/05 STATUS / PROTOCOL DATA: Contains status messages or protocol data from or for the reader. When the data are sent, the MSB is always transferred first when the reader is in ISO15693 host command mode (see also chapter Examples of Reading Data). CRC16: Cyclic redundancy check of protocol bytes from 1 to (n-2), as indicated by the CCITT-CRC16 polynomial: x 16 + x 12 + x Starting value: 0xFFFF Data format Start bits: 1 Data bits: 8 Stop bits: 1 Parity: Even (default) Uneven None Timing Waiting time at start A waiting time of at least 5 ms must be observed before sending a protocol start character (length byte). Host reader:.. Reaction time Waiting time n ms Host reader: ms min. Data timout The individual characters within a protocol must follow in intervals of not more than 12 ms. 12 ms max. 12 ms max. 12 ms max. Host reader: Character n Character n+1 Character n (4)J31069-D0138-U001-A3-7618

23 05/05 SLG D10 overview CRC16 calculation algorithm Polynomial: x 16 + x 12 + x CRC_POLYNOM = 0x8408; Starting value: 0xFFFF CRC_PRESET = 0xFFFF; Example in C: unsigned int crc = CRC_PRESET; for (i = 0; i < cnt; i++) /* cnt = Number of protocol bytes without CRC */ { crc ^= DATA[i]; for (j = 0; j < 8; j++) { if (crc & 0x0001) crc = (crc >> 1) ^ CRC_POLYNOM; else crc = (crc >> 1); } } (4)J31069-D0138-U001-A

24 SLG D10 configuration parameters (CFG) 05/05 2 SLG D10 configuration parameters (CFG) The configuration memory of the reader is divided into configuration blocks of 16 bytes each. Each block consists of 14 bytes of configuration parameters and a 2-byte CRC16 checksum. Each configuration block has a number (CFG0...CFGn). Configuration block structure in the configuration memory and EEPROM of the reader (CFG): Byte Contents PARAMETERS CRC16 The parameters are stored in two separate locations within the configuration memory: Reader RAM Storage EEPROM (for storing parameters when the device is switched off) You can address multiple locations in the configuration memory via the value of the CFG-ADR parameter described in chap. 3.1 Protocols for configuring the reader. CFG-ADR: CFGn: Memory address of the required configuration block LOC: Location of the configuration block (RAM / EEPROM) MODE: Specifies whether one or all configuration blocks are to be accessed Bit: Function LOC MODE CFGn: Configuration block address The configuration blocks in the EEPROM are protected by a 16-bit CRC checksum. These checksums are checked every time the reader is reset. If an incorrect checksum is detected, the reader enters the "EE Init Mode error status and sets the faulty configuration block back to the default values. The LED 1 flashes alternately red and green when EE-Init mode is activated. The reader responds to external commands with the "0x10 EEPROM Error status. You can exit EE-Init Mode by resetting the block (cold start or [0x63] CPU Reset command). The reader then switches to the configured operating state if the checksum of all data records is correct. 1 Not available for SLG D10 22 (4)J31069-D0138-U001-A3-7618

25 05/05 SLG D10 configuration parameters (CFG) Note Malfunctions may occur if parameters are configured outside of their permissible range or if unspecified parameters are changed! The EEPROM is returned to its default settings when the firmware is updated. The reader enters the "EE Init Mode error status. Description of configuration parameter structure Byte n Contents Concerns RAM Concerns EEPROM - Reserved... Any changes to this parameter become effective immediately after this configuration block is written to or stored in the RAM. Any changes to this parameter become effective only after this configuration block has been written to / stored in the EEPROM and the reader has been reset. These bits or bytes are reserved for future extensions or for internal testing and production purposes. They must not be modified, as this may lead to faulty reader operation. (4)J31069-D0138-U001-A

26 SLG D10 configuration parameters (CFG) 05/ Reader parameters CFG0: Passwords The parameters of configuration block CFG0 contain identification codes for the personalization of the reader. In this way, you can prevent unauthorized access to some reader functions. For security reasons, the data of this configuration block cannot be read by the host. Access is write access only. The [0x83] Set Default Configuration command is also not available. Byte Contents READER ID 0x00 0x00 0x00 Default 0x Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 READER-ID: Password the host uses to log into the reader to read and write configuration parameter blocks. Note READER-ID = 0x disables the password function. A read procedure with the [0x80] Read Configuration command always yields 0x A changed password becomes effective when the reader is reset. The [0x82] Save Configuration to EEPROM and [0x83] Set Default Configuration commands do not change register CFG0 if all configuration blocks are in use. The [0xA0] Reader Login command is used to gain access to the configuration data. 24 (4)J31069-D0138-U001-A3-7618

27 05/05 SLG D10 configuration parameters (CFG) Configuration protection Access to the configuration parameters stored on the reader is protected by a 32- bit password called the READER ID. This means that the configuration parameters in the EEPROM of the reader can only be read or changed after a login with the command [0xA0] Reader Login has been performed with a valid reader ID CFG1: General inputs and outputs 1 The parameters of configuration block CFG1 contain the digital input and output settings. Byte Contents IDLE-MODE FLASH-IDLE IN-ACTIVE 0x00 REL-TIME MSB Default 0xA800 0xFC00 0x00 0x00 Byte Contents REL-TIME LSB Default 0x00 0x00 0x00 OUT2- TIME 0x00 0x00 0x00 0x00 IDLE-MODE: Defines the status of the signal transmitters (OUT1, OUT2 and REL) during idle mode. Bit: Function: REL mode OUT2 mode OUT1 mode Mode Function b 0 0 UNCHANGED Status of signal transmitter unchanged b 0 1 ON Signal transmitter on b 1 0 OFF Signal transmitter off b 1 1 FLASHING Signal transmitter alternately on and off 1 Not available for SLG D10 (4)J31069-D0138-U001-A

28 SLG D10 configuration parameters (CFG) 05/05 FLASH-IDLE: Assigns a separate flash frequency to each output. Bit: Function: REL frequ. OUT2 frequ. OUT1 frequ Frequ. b 1 1 b 1 0 b 0 1 b Hz 2 Hz 4 Hz 8 Hz Frequency IN-ACTIVE: Specifies whether the input is active on an open or closed contact: Bit: Function IN2 IN1 Bit = 0 Input active on closed contact Bit = 1 Input active on open contact REL-TIME: Determines the relay hold time. If the reader receives a valid transponder response, the relay will be active for the duration set here. The function is disabled by setting REL-TIME to zero. Range: 0x xFFFF (* 100 ms) = 100 ms s. OUT2-TIME: Defines the relay hold time. If the reader receives a valid transponder response, output 2 (OUT2) will be active for the duration set here. The function is disabled by setting OUT2-TIME to zero. Range: 0x xFFFF (* 100 ms) = 100 ms s. 26 (4)J31069-D0138-U001-A3-7618

29 05/05 SLG D10 configuration parameters (CFG) CFG2: COM interface The parameters of configuration block CFG2 contain the data transmission settings. Byte Contents COM-ADR 0x00 BAUD TRANS- 0x00 FORM FLASH- LOADER- BAUD Default 0x00 0x08 0x01 0x08 0x00 0x baud e,8, baud Byte Contents Default TR- RESPONSE- TIME 0x64 10 sec 0x00 0x00 0x00 0x00 0x00 0x00 TR- RESPONSE- TIME COM-ADR 1 : Reader bus address ( ) for communication via the asynchronous interface; intended for bus applications (not SLG D10). Note Address 255 may not be configured. The reader can be accessed via COM address 255 in the send protocol at any time. It then responds with the defined address. For COM address 0, the reader reads out the bus address from the DIP1... DIP3 switch settings (not externally adjustable) either after being switched on or after the [0x63] CPU Reset command. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

30 SLG D10 configuration parameters (CFG) 05/05 BAUD 1 : The baud rate of the asynchronous interface is set here. BAUD Baud rate 0x baud 0x baud 0x baud 0x baud 0x baud 0x0A baud Note A change to the baud rate becomes effective only after configuration block CFG2 has been written to / stored in the EEPROM and the reader has been reset. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. 28 (4)J31069-D0138-U001-A3-7618

31 05/05 SLG D10 configuration parameters (CFG) TRANS-FORM 1 : This byte is used to define various parameters describing the data transmission format of the asynchronous interface. Bit: Function: S D P P: Parity b00 b01 b10 b11 P Parity None Even Uneven Do not use. D: Data bits D b0 b1 Data bits 8 Do not use. S: Stop bits S b0 b1 Stop bits 1 Do not use. Note Any changes to TRANS-FORM become effective only after configuration block CFG2 has been written to / stored in the EEPROM and the reader has been reset. Eight data bits and one stop bit must always be used. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

32 SLG D10 configuration parameters (CFG) 05/05 FLASH-LOADER-BAUD 1 : The baud rate of the flash loader is set here. 2 BAUD Baud rate 0x baud 0x baud 0x baud TR-RESPONSE-TIME: This byte allows you to specify the maximum response time for transponder commands. TR-RESPONSE-TIME starts when the reader has received a new command. The reader sends a response protocol at the latest after expiration of TR-RESPONSE- TIME. In this case, execution of current commands between reader and transponder are terminated. If this time is too short, the interface status [0x83] HF communication error appears. TR-RESPONSE-TIME Max. response time * 100 msec Note TR-RESPONSE-TIME has no influence on the protocols for the configuration and control of the reader. TR-RESPONSE-TIME must be less than Block Timeout in the settings of the Com port of the host. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. 2 See chap [0x55] Start Flash Loader 30 (4)J31069-D0138-U001-A3-7618

33 05/05 SLG D10 configuration parameters (CFG) CFG3: HF interface I The parameters of configuration block CFG3 contain global settings for the transponder driver and the reader. Byte Contents TAG-DRV 1 HF- EAS- FSK-RX- 0x00 0x00 POWER 1 LEVEL CHN 1 Default 0x000B 0x90 0xFF 0x02 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 TAG-DRV 1 : Specifies the transponder types to be handled by the reader. Byte: 0 1 Bit: Driver D 0.B.A b0 b1.a:.b:.d: Driver for this transponder type is disabled. Driver for this transponder type is enabled. Driver for I-CODE1 Driver for Tag-it HF Driver for ISO15693 In general, you should only enable those transponder drivers that you require for a particular application. This will reduce reader response time to transponder read/write operations and rule out the possibility of "parasitic" transponder access as far as possible. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

34 SLG D10 configuration parameters (CFG) 05/05 HF-POWER 1 : Specifies the HF output power Bit: Function MUL 0 LEVEL MUL Defines the multiplier for LEVEL MUL b0 HF OUTPUT= LEVEL * 1 W b1 HF OUTPUT= LEVEL * ¼ W LEVEL HF output power LEVEL HF output (MUL = b1) W W W W W W W Note The HF hardware is continuously checked by a monitoring function. In the event of an error, the reader responds to each command with error code 0x84. A change in the HF OUTPUT becomes effective only after configuration CFG3 has been written to / stored in the EEPROM and the reader has been reset. 1 A plausibility test is performed when this parameter is stored in the readerif an error occurs, the reader responds with STATUS = {0x11}. 32 (4)J31069-D0138-U001-A3-7618

35 05/05 SLG D10 configuration parameters (CFG) EAS-LEVEL: (I-CODE1 transponders only) Specifies the number of correct bits for the EAS command. FSK-RX-CHN 1 : (FSK transponders only) Specifies the type of receiver antenna. FSK-RX-CHN 0x00 Supplementary antenna only 0x01 Basic antenna only 0x02 Both antennas Note Although the SLG D10 has only one antenna, the parameter can still remain set to 0x02 (both antennas). 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

36 SLG D10 configuration parameters (CFG) 05/ CFG4: HF interface II The parameters of configuration block CFG4 contain the values for noise-level settings. Byte Contents NOISE-MIN NOISE-AVG NOISE-MAX NL-MODE Default 0x0000 0x0000 0x0000 0x00 Byte Contents IGNORE- WEAK- COLL Default 0x01 0x00 0x00 0x00 0x00 0x00 0x00 NOISE-MIN: Minimum noise level in mv NOISE-AVG: Average noise level in mv NOISE-MAX: Maximum noise level in mv NL-MODE: NL-MODE 0 automatically Noise level is set as follows 1 using the parameters specified under NOISE-MIN, NOISE- AVG and NOISE-MAX or using the [0x6C] Set Noise Level command Note When NL-MODE = {0}, the reader measures the noise levels continuously and stores them under NOISE-MIN, NOISE-AVG and NOISE-MAX. To preserve the settings stored under NOISE-MIN, NOISE-AVG and NOISE- MAX even after the device is switched off and after a [0x63] CPU Reset command, you must store this configuration block in the EEPROM using the [0x82] Save Configuration to EEPROM command. 34 (4)J31069-D0138-U001-A3-7618

37 05/05 SLG D10 configuration parameters (CFG) IGNORE-WEAK-COLL: (only I-Code1 transponder) Specifies whether or not a weak collision provides valid data. IGNORE- WEAK-COLL 0 Valid data in case of weak collision 1 Invalid data in case of weak collision; data ignored CFG5: HF interface III The parameters for configuration block CFG5 contain time settings for the transponder interface. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 RF-MOD Default 0x0F Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Default RF-MOD: HF modulation in 16% mode The adjustable range is 10% to 30% (0x0A... 0x1E). 0x0A: 10% modulation x1E: 30% modulation CFG6: Reserved Configuration block CFG6 is reserved for future use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 (4)J31069-D0138-U001-A

38 SLG D10 configuration parameters (CFG) 05/ CFG7: Reserved Configuration block CFG7 is reserved for future use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 36 (4)J31069-D0138-U001-A3-7618

39 05/05 SLG D10 configuration parameters (CFG) 2.2 Transponder parameters CFG8: General transponder parameters The parameters of configuration block CFG8 contain general transponder settings. Byte Contents I-CODE- MODE FAM- CODE APP-ID 0x80 ISO MODE ISO AFI Default 0x01 0x00 0x00 0x0B 0x00 0x00 ISO OPTION Byte Contents ISO CMD- OPTION Default 0x03 0x00 ISO TAGIT- OPTION 0x00 0x00 0x00 0x00 I-CODE-MODE: (I-CODE1 transponders only) Bit: Function Mapping FAST FAST FAST b0 Normal mode (1 / 256) b1 Fast mode (1 / 1) Mapping Mapping b0 b1 Reserved I-Code1 memory model FAM-CODE: (I-CODE1 transponders only) Family code for selecting a transponder (4)J31069-D0138-U001-A

40 SLG D10 configuration parameters (CFG) 05/05 APP-ID: (I-CODE1 transponders only) Application ID for selecting a transponder Note If FAM-CODE and APP-ID are set to zero, all I-CODE1 transponders respond. Otherwise, only those transponders with the appropriate FAM-CODE and APP-ID respond. ISO15693-MODE: Bit: Function 0 0 AFI NO-TS DATA- RATE SUB- CARRIER MOD DATA- CODING DATACODING DATACODING b0 Normal mode (1 / 256) b1 Fast mode (1 / 4) MOD MOD b0 100% This option increases the modulation bandwidth b1 10% SUB-CARRIER SUB-CARRIER b0 b1 ASK (1 subcarrier) FSK (2 subcarriers) Note The number of time slots (NO-TS) should be 16 in FSK mode. Only when just one transponder is in operation can the number of time slots be set to 1 to accelerate communication in FSK mode. 38 (4)J31069-D0138-U001-A3-7618

41 05/05 SLG D10 configuration parameters (CFG) DATA-RATE DATA-RATE b0 b1 Low High Data rate NO-TS NO-TS b0 b1 16 time slots 1 time slot Note When the number of time slots (NO-TS) is 1, anti-collision is only possible in ASK subcarrier mode. AFI b0 b1 AFI Disabled Enabled ISO15693-AFI: Identifier for the application family for selecting a transponder (4)J31069-D0138-U001-A

42 SLG D10 configuration parameters (CFG) 05/05 ISO15693-OPTION: Bit: Function WR-OPTION 0 0 WR-OPTION WR-OPTION b00 Automatically set b10 Transponder option = 0 b11 Transponder option = 1 Note If the WR-OPTION is set automatically, the reader sets WR-OPTION to 0 when the ISO15693 host command is in not-addressed mode. If a Tag-it HF transponder is used, WR-OPTION must be set to 1. For more details on the correct WR-OPTION, see chapter Supported ISO15693 host commands for ISO15693 transponders. ISO15693-CMD-OPTION: Bit: Function BREAK BREAK BREAK b10 b11 Pause time slot for NO transponder (Pause is always a 100% modulated EOF) This option accelerates the anticollision process but also increases the modulation bandwidth. Total length of time slot for NO transponder 40 (4)J31069-D0138-U001-A3-7618

43 05/05 SLG D10 configuration parameters (CFG) ISO15693-TAGIT-OPTION: Manufacturer-specific options Bit: Function EN INV- READ 0 INV-READ INV-READ b0 b1 Read the inventory is deactivated. Read the inventory is activated. Note This mode may only be used with buffered read mode. EN b0 b1 EN Tag-it options deactivated Tag-it options activated (4)J31069-D0138-U001-A

44 SLG D10 configuration parameters (CFG) 05/ CFG9: Reserved Configuration block CFG9 is reserved for future use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 42 (4)J31069-D0138-U001-A3-7618

45 05/05 SLG D10 configuration parameters (CFG) 2.3 System parameters CFG10: General system parameters The parameters of configuration block CFG10 contain general system settings. Byte Contents SYS- MODE 0x00 0x00 0x00 0x00 0x00 0x00 Default 0x04 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 SYS-MODE: The SYS-MODE register is used to set the various reader operating modes. Bit: Function ACOLL OP Mode OP ode: OP Mode b00 b01 b10 Function ISO15693 host mode Buffered read mode Scan mode ISO15693 host mode: You can use this bit combination to activate ISO15693 host mode. When ISO15693 host mode is activated, ISO15693 host commands can be used. Buffered read mode: You can use this bit combination to activate buffered read mode. When buffered read mode is activated, no ISO15693 host commands can be used. Scan mode: You can use this bit combination to activate scan mode. In scan mode the reader automatically sends the transponder data after it is detected. When scan mode is activated, ISO15693 host commands cannot be used. (4)J31069-D0138-U001-A

46 SLG D10 configuration parameters (CFG) 05/05 Note A change in OP mode becomes effective only after configuration block CFG10 has been written to / stored in the EEPROM and the reader has been reset. ACOLL: This bit enables the anticollision mode. The reader automatically sets transponderspecific communication parameters when in the anticollision mode. b0 b1 ACOLL Function Disabled (default) Enabled Note When the anticollision mode is disabled, the reader does not perform anticollision procedures for transponders located within the antenna field. See the description of the parameters in CFG13: Anticollision. When anti-collision mode is off, no Stay Quiet command is sent to the transponder. 44 (4)J31069-D0138-U001-A3-7618

47 05/05 SLG D10 configuration parameters (CFG) CFG11: Buffered Read Mode The parameters of configuration block CFG11 contain the Buffered Read Mode settings. To activate this mode, set the BRM bit in the SYS-MODE register of configuration block CFG10: General system parameters. If a large or unknown number of transponders is located within the antenna range, it is advisable to enable the anticollision mode. Buffered read mode can be used with the multiplex mode of the reader. The parameters for this function must be configured as described in this chapter. Byte Contents TR-DATA 1 DB-ADR DB-N 1 TR-ID 1 VALID-TIME READ Default 0x01 0x05 0x01 0x85 0x00 0x0A 0x80 Byte Contents SYNC SYNC-TIMEOUT 0x00 0x00 0x00 0x00 Default 0x00 0x03E8 TR-DATA 1 : Selects the data types for reader operations Bit: Function Byte order 0 TIMER 0 0 EAS DB UID UID b0 b1 UID UID is not stored. UID is stored. Function DB b0 b1 Data Block Function Data block is not stored. Data block is stored. 1 A plausibility test is carried out when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

48 SLG D10 configuration parameters (CFG) 05/05 EAS (only I-CODE1) EAS Function b0 No EAS function. b1 EAS command is executed. TIMER TIMER Function b0 No internal system timer. b1 Internal system timer activated. (for details, see chapter on [0x85] Set System Timer) Note The internal system timer is not a real-time clock (RTC). Therefore, a specific degree of accuracy cannot be guaranteed. Byte order Specifies the order of the bytes within the protocol frame. Byte Order Function b0 MSB first. b1 LSB first. 46 (4)J31069-D0138-U001-A3-7618

49 05/05 SLG D10 configuration parameters (CFG) DB-ADR: Address of the first data block. Range: 0x00...0xFF. For valid addresses see: chap Memory model for I-CODE1 transponders and chap Supported ISO15693 host commands for ISO15693 transponders. Bit: Function DB-ADR Note A change to DB-ADR becomes effective only after configuration block CFG11 has been written to / stored in the EEPROM and the reader has been reset. DB-N 1 : Number of data blocks. Range: 0x01...0x20. The data blocks in buffered read mode are always 4 bytes in size. See chap on Examples of Reading Data, buffered read mode (DB-SIZE of transponder = 4 bytes) and buffered read mode (DB-SIZE of transponder = 8 bytes). Valid numbers are found in: chap Memory model for I-CODE1 transponders and chap Supported ISO15693 host commands for ISO15693 transponders. Bit: Function 0 0 DB-N Note A change to DB-ADR becomes effective only after configuration block CFG11 has been written to / stored in the EEPROM and the reader has been reset. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. (4)J31069-D0138-U001-A

50 SLG D10 configuration parameters (CFG) 05/05 TR-ID 1 : The TR-ID register sets the parameters for transponder identification. If the content of the addressed data block is the same for several transponders, only one data record is generated. Bit: Function ID- SOURCE DB-ADR DB-ADR: Sets the data block address for transponder identification. If ID-SOURCE uses the UID as a data source, DB-ADR is ignored in the Buffered Read Mode. ID-SOURCE: Sets the data source for transponder identification. ID-SOURCE b0 b1 Function Data block UID Note A change to the TR-ID becomes effective only after configuration block CFG11 has been written to / stored in the EEPROM and the reader has been reset. Address TR-ID DB-ADR must lie within the range of the selected data block: TR-DATA DB-ADR TR-ID DB-ADR TR-DATA DB-ADR + TR-DATA DB-N 1. TR-ID TR-ADR is used as the UID for Tag-it HF transponders, provided that UID has not been selected in the TR-DATA configuration parameter. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. 48 (4)J31069-D0138-U001-A3-7618

51 05/05 SLG D10 configuration parameters (CFG) VALID-TIME: Minimum time period within which a transponder must be identified before it can be read a second time. VALID-TIME Time period x 100 ms Note A change to VALID-TIME becomes effective only after configuration block CFG11 has been written to / stored in the EEPROM and the reader has been reset. READ: (Tag-it HF and ISO15693 transponders only) Specifies whether, in the event of a read error for an ISO15693 transponder, the missing data blocks should be re-read repeatedly until VALID-TIME has expired. This setting is intended for reading transponders under poor reading conditions (noise, motion, poor location, etc.). Bit: Function RE-READ RE-READ: Indicates how often data blocks should be re-read after a read error. RE-READ b b1111 No new read... 15x new read Function RE-READ = 0 means that the reader forces a read access when an error occurs during the first read access but does not read again. (4)J31069-D0138-U001-A

52 SLG D10 configuration parameters (CFG) 05/05 SYNC: Sets the synchronization parameters Bit: Function RFOFF MASTER MODE MODE: MODE b00 b11 Function Multiplex mode OFF Multiplex mode ON MASTER: MASTER b0 b1 Slave Master Function RFOFF: b0: When the reader has concluded its HF communication task and transferred control to the next reader, the HF field is not turned off. Only the task is concluded. b1: When the reader has concluded its HF communication task and transferred control to the next reader, the HF field is turned off. Note One reader in the synchronization chain must be configured as MASTER so that it can start synchronization. SYNC-TIMEOUT: ( x 1 msec = 0 msec seconds) Timeout between two synchronization pulses. Note When the reader does not detect a synchronization pulse on IN1 within the SYNC-TIMEOUT time, it automatically generates a synchronization pulse on OUT1 after SYNC-TIMEOUT expires. In addition, the error message [0x85] for synchronization error appears. 50 (4)J31069-D0138-U001-A3-7618

53 05/05 SLG D10 configuration parameters (CFG) Example 1 Only one transponder is located in the antenna field. The transponder requires one second to pass by the antenna. The antenna field is uniform and has no HF holes. The application data are located in data blocks 1 and 2. The internal system time is needed to determine when the transponder has passed by the antenna. CFG10: General system parameters Byte Contents SYS-MODE Settings 0x01 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents Settings 0x00 0x00 0x00 0x00 0x00 0x00 0x00 CFG11: Buffered Read Mode Byte Contents TR-DATA DB-ADR DB-N TR-ID VALID-TIME READ Settings 0x22 0x01 0x02 0x01 0x0014 0x00 Byte Contents SYNC SYNC-TIMEOUT Settings 0x00 0x00 0x00 0x00 0x00 0x00 0x00 CFG13: Anticollision Byte Contents TIMESLOTS DIFF- HASH MIN- HASH MAX- HASH COLLISIONS - Settings 0x00 0x00 0x00 0x00 0x2222 0x00 Byte Contents ONT - - Settings 0x00 0x00 0x00 0x00 0x01 0x00 0x00 (4)J31069-D0138-U001-A

54 SLG D10 configuration parameters (CFG) 05/05 CFG10: General system parameters Buffered Read Mode is enabled Anticollision mode is disabled CFG11: Buffered Read Mode Data blocks 1 and 2 with time information Data block 1 is used to identify the transponder Each transponder must pass by the antenna in two seconds. CFG13: Anticollision (disabled) I-CODE1 transponders are read with a time slot and a hash value = 0. I-CODE1 and Tag-it HF transponders are read without the anticollision procedure. 52 (4)J31069-D0138-U001-A3-7618

55 05/05 SLG D10 configuration parameters (CFG) Example 2 There is an unknown number of transponders in the antenna field at a given point in time. The packets require two seconds to pass by the antenna. The antenna field is not unifom and contains HF holes. The application data are located in data blocks 1 and 2. CFG10: General system parameters Byte Contents SYS-MODE Settings 0x05 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents Settings 0x00 0x00 0x00 0x00 0x00 0x00 0x00 CFG11: Buffered Read Mode Byte Contents TR-DATA DB-ADR DB-N TR-ID VALID-TIME READ Settings 0x02 0x01 0x02 0x01 0x0028 0x80 Byte Contents SYNC SYNC-TIMEOUT Settings 0x00 0x00 0x00 0x00 0x00 0x00 0x00 CFG13: Anticollision Byte Contents TIMESLOTS DIFF- HASH MIN-HASH MAX- HASH COLLISIONS - Settings 0x53 0x00 0x00 0x00 0x2222 0x00 Byte Contents ONT - - Settings 0x00 0x00 0x00 0x00 0x01 0x00 0x00 (4)J31069-D0138-U001-A

56 SLG D10 configuration parameters (CFG) 05/05 CFG10: General system parameters Buffered Read Mode is enabled Anticollision mode is enabled CFG11: Buffered Read Mode Data blocks 1 and 2 with time information are read by the transponders Data block 1 is used for identifying the transponders Each transponder must pass by the antenna in four seconds. If read errors occur for a Tag-it HF transponder, the reader attempts to re-read this transponder within 4 seconds. CFG13: Anticollision I-CODE1 transponders are read with 16 to 64 time slots and a hash value = 0 using the anticollision procedure. I-Code1 and Tag-it HF transponders are read without the anticollision procedure. 54 (4)J31069-D0138-U001-A3-7618

57 05/05 SLG D10 configuration parameters (CFG) CFG12: Scan Mode The parameters of configuration block CFG12 contain the settings for scan mode. To activate scan mode, set the SCAN-MODE bit in the SYS-MODE register of configuration block CFG 10: General System Parameters. See chapter Scan mode can be used with multiplex mode of the reader. The parameters for this function must be configured in CFG11: Buffered Read Mode (see chap ). Byte Contents SCANNER- MODE 0x00 0x00 SCAN- DATA DB-ADR D-LGT SCAN- LOCK- TIME Default 0x02 0x01 0x05 0x04 0x00 Byte Contents SCAN- LOCK-TIME D-START DB-USE SEP- CHAR SEP-USR END- CHAR Default 0x0A 0x00 0x02 0x20 0x00 0x01 0x00 10 seconds ASCII Comma CR+LF END-USR SCANNER MODE: Specifies the type of scan procedure. Bit: Function Trigger Mode Mode: Mode b000 b010 Read once: Read once Read continuously Function (Activated during the read procedure. Ends after successful read access.) As soon as transponders have been decoded, the reader concludes the scan procedure. The reader must be triggered again before additional transponders can be read. Read continuously: The reader recognizes as many transponders as it can decode regardless of whether these are always the same transponders or different ones. This mode is primarily suitable for demonstrative and diagnostic purposes. The reader automatically forces an HF reset between two read procedures. (4)J31069-D0138-U001-A

58 SLG D10 configuration parameters (CFG) 05/05 Trigger: Trigger b0 Trigger deactivated b1 Trigger activated Trigger deactivated: Function The reader scans continuously. This mode increases power consumption, however. Trigger activated: The reader begins scanning when the trigger is activated. The digital input IN2 can be used as the trigger signal to start the scan procedure. The trigger pulse must last at least 100 msec. SCAN-DATA: Selects the data types to be sent in scan mode Bit: Function Byte order COM prefix TIME DB UID If one of the bits 0 to 1 (UID, DB) is not set, scan mode remains disabled. UID When this bit is set, the UID is output. b0 b1 UID No output of the UID Output of the UID Function DB (data block) When this bit is set, a specified data field is output. b0 b1 DB No output of a data field Output of a data field Function TIME Internal system timer (for details, see chapter [0x85] Set System Timer) When this bit is set, output of the internal system timer is activated. b0 b1 TIME Function No output of the internal system timer Output of the internal system timer 56 (4)J31069-D0138-U001-A3-7618

59 05/05 SLG D10 configuration parameters (CFG) COM prefix: When this option is set, the reader transfers the COM-ADR before each data record. b0 b1 COM prefix Function COM-ADR of the reader is not transferred. COM-ADR of the reader is transferred. Byte order: Specifies the order of the bytes within the protocol framework. Byte order Function b0 MSB first b1 LSB first DB-ADR: Transponder address of the first data block which is transferred in scan mode. Range: 0x00 to 0xFF. For valid addresses, see chapter Memory model for I-CODE1 transponders and chapter Supported ISO15693 host commands for ISO15693 transponders. D-LGT: D-LGT defines the length of raw data transferred during scan mode. The number of data bytes to be transferred, starting with D-START. Example: Data block Note A maximum of 254 bytes including UID, time and so on can be transferred with the interface. If more than 254 bytes are sent, the last bytes are cut off. (4)J31069-D0138-U001-A

60 SLG D10 configuration parameters (CFG) 05/05 SCAN-LOCK-TIME: ( * 100 msec = 100 msec sec) SCAN-LOCK-TIME specifies the time during which the reader does not send the transponder data a second time after the first send procedure. It makes no difference whether or not the transponder is in the recognition field of the reader during SCAN-LOCK-TIME. SCAN-LOCK-TIME begins after the data are sent from the transponder to the reader. t r : t o : t s : Time for reading the transponder data Data transmission from reader to host SCAN-LOCK-TIME During the SCAN-LOCK-TIME it makes no difference whether or not the transponder is located in the recognition field of the reader. D-START: This parameter defines the first byte of raw data (defined by DB-ADR and D-LGT) which is transferred in scan mode. To transfer the entire data block, D-START must be set to 0. Note The size of a data block depends on the type of transponder. 58 (4)J31069-D0138-U001-A3-7618

61 05/05 SLG D10 configuration parameters (CFG) DB-USE: Specifies the data format Bit: Function DB-FORMAT DB-FORMAT: b0000 Unformatted hexadecimal data The data are sent here as they were read from the transponder. b0010 ASCII-formatted hexadecimal data The raw data received from the transponder are converted here to ASCII code before being sent. The data bytes are separated first into nibbles and then converted in accordance with the following table to ASCII characters. Raw Data (Hex./Binary) ASCII Data (ASCII/Hex) 0x0 b x30 0x1 b x31 0x2 b x32 0x3 b x33 0x4 b x34 0x5 b x35 0x6 b x36 0x7 b x37 0x8 b x38 0x9 b x39 0xA b1010 A 0x41 0xB b1011 B 0x42 0xC b1100 C 0x43 0xD b1101 D 0x44 0xE b1110 E 0x45 0xF b1111 F 0x46 (4)J31069-D0138-U001-A

62 SLG D10 configuration parameters (CFG) 05/05 SEP-CHAR/END-CHAR: Specifies the separator character/end character between two data types for the sending data Bit: Function USER, ; TAB CR LF CR+LF ASCII Hex CR+LF 0x0D and 0x0A CR 0x0D LF 0x0A TAB 0x07 ; 0x3B, 0x2C 0x20 USER User-defined in SEP-USR/END-USR Note Only one option can be selected. SEP-USR: User-defined separation character END-USR: User-defined end character 60 (4)J31069-D0138-U001-A3-7618

63 05/05 SLG D10 configuration parameters (CFG) Scan read mode, examples The diagram below shows the function of the four different settings of scan mode. The examples assume use of only one transponder in the antenna field. Read once, trigger deactivated Trigger (IN2) Scan Lock Time Transponder outside the field Transponder outside the field HF communication Readaccess okay Readaccess bad Readaccess okay Readaccess bad Readaccess okay Host communication Read once, trigger activated Trigger (IN2) Scan Lock Time HF communication Start Transponder outside the field Start Transponder outside the field Start Readaccess bad Lesen Readaccess ok. okay Readaccess okay Readaccess okay Host communication In read once mode the reader only sends data to the host when new transponders were detected or the transponders left the antenna field during SCAN-LOCK- TIME and reentered the field later. (4)J31069-D0138-U001-A

64 SLG D10 configuration parameters (CFG) 05/05 Read continuously, trigger deactivated Trigger (IN2) Scan Lock Time HF communication RF reset RF reset RF reset RF reset Readaccess okay Readaccess okay Readaccess okay Readaccess okay Host communication Read continuously, trigger activated Trigger (IN2) Scan Lock Time RF reset RF reset RF reset RF reset RF reset HF communication Host communication Lesen Readaccess ok. okay Readaccess okay Readaccess okay Readaccess okay Readaccess okay In read continuously mode the reader sends data to the host when new transponders were detected or SCAN-LOCK-TIME for the transponders is over. 62 (4)J31069-D0138-U001-A3-7618

65 05/05 SLG D10 configuration parameters (CFG) CFG13: Anticollision The parameters of configuration block CFG13 contain anticollision settings. To enable the anticollision mode, set the ACOLL bit in the SYS-MODE register in configuration block CFG10: General system parameters. Byte Contents TIMESLOTS DIFF- HASH MIN-HASH MAX- HASH COLLISIONS Default 0x11 0x04 0x00 0x9F 0x2222 0x00 Byte Contents 0x00 0x00 0x00 0x00 ONT 0x00 0x00 Default 0x01 TIMESLOTS: (I-CODE1 transponders only) Number of time slots with which the transponders are read. Bit: Function 0 MAX-TS 0 MIN-TS MIN-TS: Minimum number of time slots MAX-TS: Maximum number of times slots MIN-TS / Number of time slots MAX-TS b b b b b b010 8 b001 4 b000 1 (4)J31069-D0138-U001-A

66 SLG D10 configuration parameters (CFG) 05/05 Each I-CODE1 transponder responds in a selected time slot. If too few time slots are selected for the number of transponders in the antenna field, only a limited number of transponders can be selected simultaneously. Too many time slots lead to lengthy delays. The optimum number of time slots lies at about twice the number of I-CODE1 transponders expected to be found in the antenna field at one time. The reader calculates the expected number of transponders from the parameters in COLLISIONS and sets the corresponding number of time slots to between MIN-TS and MAX-TS. To force a fixed number of time slots, both MIN-TS and MAX-TS must contain the required number of time slots. Note If the anticollision mode is disabled in configuration block CFG10: General system parameters, the reader uses MIN-TS for communication with the transponders. DIFF-HASH: (I-CODE1 transponders only) Value by which the hash value is changed between two transponder selections. Bit: Function DIFF-HASH MIN-HASH: (I-CODE1 transponders only) Minimum hash value. Bit: Function MIN-HASH MAX-HASH: (I-CODE1 transponders only) Maximum hash value. Bit: Function MAX-HASH The hash value and the UID of an I-CODE1 transponder specify the time slot in which the transponder responds. The hash value begins at MIN-HASH and is increased by DIFF-HASH after each transponder selection. If the hash value exceeds MAX-HASH, the difference between the hash value and MAX-HASH is added to MIN-HASH. To set a fixed hash value, both MIN-HASH and MAX-HASH must contain the required hash value. DIFF-HASH is then ignored. Hash values MIN-HASH MAX-HASH DIFF-HASH Ignored (4)J31069-D0138-U001-A3-7618

67 05/05 SLG D10 configuration parameters (CFG) Note If the anticollision mode is disabled, the reader uses the hash value = 0 for transponder communication. COLLISIONS: (I-CODE1 transponders only) These parameters are used to calculate the expected number of time slots in the antenna field. The following equation is used for this purpose: Time slots TS-TR * (weak collisions * TR-WEAK + strong collisions * TR-COLL + checksum error * TR-CRC) The calculated number of time slots is rounded up to a valid value between MIN-TS and MAX-TS. Byte 4 5 Bit Function TS-TR TR-WEAK TR-COLL TR-CRC TS-TR: Number of time slots per suspected transponder at the common air interface TR-WEAK: Number of transponders per weak collision at the common air interface TR-COLL: Number of transponders per collision at the common air interface. TR-CRC: Number of transponders per checksum error at the common air interface ONT: Specifies which transponder data are sent to the host Bit: Function ONT ONT: ONT b0 b1 Function The data of all transponders in the field are sent to the host. The reader carries out an RF reset prior to each command that reads an UID. Only the data of the newly selected transponders are sent to the host. (4)J31069-D0138-U001-A

68 SLG D10 configuration parameters (CFG) 05/ CFG14: Reserved The configuration block CFG14 is reserved for later use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x CFG15: Reserved The configuration block CFG15 is reserved for later use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 66 (4)J31069-D0138-U001-A3-7618

69 05/05 Description of protocols for SLG D10 3 Description of protocols for SLG D Protocols for configuring the reader Using the reader configuration protocols, the reader can be adapted to a wide range of specific conditions for different applications. The configuration parameters cannot be accessed until the command [0xA0] Reader Login has been executed with the correct READER-ID. Since your data must be protected against unauthorized access, the reader is provided with the following protection routine. Configuration protection Access to the configuration data stored in the EEPROM of the reader is locked [0xA0] Reader Login To gain access to the configuration parameters, the reader login must be performed every time the device is switched on or the [0x63] CPU Reset command is carried out. Host reader: ,9 9 COM-ADR [0xA0] READER-ID CRC16 Host reader ,6 6 COM-ADR [0xA0] STATUS 1 CRC16 READER-ID: The READER-ID is a password that protects the configuration parameters from all read and write access. READER-IDs can be changed in configuration block CFG0: Passwords. Note Logging in with an incorrect READER-ID can cause you to become logged out. You can log out using the [0x63] CPU Reset command. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

70 Description of protocols for SLG D10 05/ [0x80] Read Configuration "Read Configuration lets you determine the current configuration of the reader. The configuration is read in blocks of 14 bytes each and addressed by CFGn in the CFG-ADR byte. Host reader ,6 6 COM-ADR [0x80] CFG-ADR CRC16 Host reader ,20 20 COM-ADR [0x80] STATUS 1 CFG-REC CRC16 CFG-ADR 2 : Bit: Function LOC 0 CFGn: Configuration block address CFGn: Memory address of the required configuration block LOC: Configuration block location LOC Block location b0 b1 RAM EEPROM CFG-REC: Configuration block with a length of 14 bytes that was read from address CFGn in CFG-ADR. Note If the password function has been enabled, you must execute the [0xA0] Reader Login command before you can read the configuration block. Otherwise, error code 0x13 will be output. An attempt to read reserved configuration blocks leads to error code 0x15. 1 See chap Index of status bytes 2 See chap. 2 SLG D10 configuration parameters (CFG) 68 (4)J31069-D0138-U001-A3-7618

71 05/05 Description of protocols for SLG D [0x81] Write Configuration The Write Configuration command lets you modify the reader configuration. To do so, write blocks with a length of 14 bytes each in the configuration memory. The blocks are addressed by CFGn in the CFG-ADR byte. A description of the parameters is found in chap. 2 SLG D10 configuration parameters (CFG). Host reader ,20 20 COM-ADR [0x81] CFG-ADR CFG-REC CRC16 Host reader ,6 6 COM-ADR [0x81] STATUS 1 CRC16 CFG-ADR 2 : Bit: Function LOC 0 CFGn: Configuration block address CFGn: Memory address of the required configuration block LOC: Configuration block location LOC Block location b0 b1 RAM EEPROM CFG-REC: Configuration block with a length of 14 bytes that is stored in the reader configuration memory under address CFGn. Note If the password function is enabled, you must execute the [0xA0] Reader Login command before you can save the configuration block. Otherwise, error code 0x13 will be output. An attempt to write to reserved configuration blocks leads to error code 0x16. 1 See chap Index of status bytes 2 See chap. 2 SLG D10 configuration parameters (CFG) (4)J31069-D0138-U001-A

72 Description of protocols for SLG D10 05/ [0x82] Save Configuration to EEPROM This command lets you write the configuration block (CFG-ADR) in the RAM configuration memory to the EEPROM configuration memory of the reader. Host reader ,6 6 COM-ADR [0x82] CFG-ADR CRC16 Host reader ,6 6 COM-ADR [0x82] STATUS 1 CRC16 CFG-ADR 2 : Bit: Function 0 MODE CFGn: Configuration block address CFGn: Memory address of the required configuration block MODE: Specifies whether one or all configuration blocks are affected MODE Mode b0 b1 Configuration block defined by CFGs All configuration blocks Note Configuration block CFG0: Passwords is only saved if MODE = 0. If the password function is enabled, you must execute the [0xA0] Reader Login command before you can save the configuration block. Otherwise, error code 0x13 will be output. An attempt to save reserved configuration blocks to the EEPROM leads to error code 0x16. 1 See chap Index of status bytes 2 See chap. 2 SLG D10 configuration parameters (CFG) 70 (4)J31069-D0138-U001-A3-7618

73 05/05 Description of protocols for SLG D [0x83] Set Default Configuration The Set Default Configuration command lets you reset each configuration block to the manufacturer default settings. Host reader ,6 6 COM-ADR [0x83] CFG-ADR CRC16 Host reader ,6 6 COM-ADR [0x83] STATUS 1 CRC16 CFG-ADR 2 : Bit: Function LOC MODE CFGn: Configuration block address CFGn: Memory address of the required configuration block LOC: Configuration block location LOC Block location b0 b1 RAM RAM and EEPROM MODE: Specifies whether one or all configuration blocks should be reset MODE Type b0 The configuration block defined by CFGn is reset. b1 All configuration blocks are reset. Note Configuration block CFG0: Passwords is only reset to default settings if MODE = 0. To protect the configuration in the RAM from being lost when the device is switched off, use the [0x82] Save Configuration to EEPROM command. If the password function is enabled, you must execute the [0xA0] Reader Login command before you can reset the configuration block to default settings. Otherwise, error code 0x13 will be output. If you attempt to set the default configuration for reserved configuration blocks, error code 0x16 will be output. 1 See chap Index of status bytes 2 See chap. 2 SLG D10 configuration parameters (CFG) (4)J31069-D0138-U001-A

74 Description of protocols for SLG D10 05/ [0x85] Set System Timer The Set System Timer command is used to set the internal system timer of the CPU. The corresponding system time is stored in each data set after every select, read or write command to a transponder. Host reader ,9 9 COM-ADR [0x85] TIMER CRC16 Host reader ,6 6 COM-ADR [0x85] STATUS 1 CRC16 TIMER: Byte 4 5 6,7 TIME Hr. Min. ms Note The internal sytem timer is not a real-time clock (RTC). Therefore, a specific degree of accuracy cannot be guaranteed. 1 See chap Index of status bytes 72 (4)J31069-D0138-U001-A3-7618

75 05/05 Description of protocols for SLG D [0x86] Get System Timer The Get System Timer command reads the internal system timer of the CPU. Host reader ,5 5 COM-ADR [0x86] CRC16 Host reader ,10 10 COM-ADR [0x86] STATUS 1 TIMER CRC16 TIMER: Byte 5 6 7,8 TIME Hr. Min. ms Note The internal sytem timer is not a real-time clock (RTC). Therefore, a specific degree of accuracy cannot be guaranteed. (4)J31069-D0138-U001-A

76 Description of protocols for SLG D10 05/ Protocols for controlling the reader [0x52] Baud Rate Detection This protocol is used to determine the baud rate set for the asynchronous interface of the reader. Host reader ,6 6 COM-ADR [0x52] 0x00 CRC16 Host reader ,6 6 COM-ADR [0x52] 0x00 CRC16 Note The response protocol is only sent if the request was executed with the baud rate and correct parity of the reader [0x55] Start Flash Loader This protocol starts the flash loader of the reader. The SLG D10 firmware is loaded at the factory. Host reader ,5 5 0x00 [0x55] CRC16 Host reader ,6 6 0x00 [0x55] 0x00 CRC16 Note This command is only available if the COM-ADR 1 of the reader is set to 0. The baud rate for the flash loader is set in configuration block CFG2: COM interface. 1 See chap CFG2: COM interface 74 (4)J31069-D0138-U001-A3-7618

77 05/05 Description of protocols for SLG D [0x63] CPU Reset This protocol lets you reset the reader CPU. Host reader ,5 5 COM-ADR [0x63] CRC16 Host reader ,6 6 COM-ADR [0x63] STATUS 1 CRC [0x65] Get Software Version This protocol lets you determine the software version of the reader, the reader type and the transponder types supported by the software. Host reader ,5 5 COM-ADR [0x65] CRC16 Host reader , COM-ADR [0x65] STATUS 1 SW-REV D-REV ,11 12,13 HW-TYPE SW-TYPE TR-TYPE CRC16 SW-REV: Firmware version Byte 5 6 Bit: Function: Decoder firmware Main controller firmware D-REV: Version of the development firmware. D-REV is set to 0 for customized firmware versions. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

78 Description of protocols for SLG D10 05/05 HW-TYPE: Reader hardware type Bit: Function: SLG D10 FSK ASK CHN CHN: b0 b1 CHN Function One receive channel Two receive channels ASK / FSK: ASK / FSK b0 b1 Function ASK / FSK not possible ASK / FSK possible SW-TYPE: Reader firmware type SW-TYPE Reader type 0x29 SLG D10 TR-TYPE: Shows the transponders supported by the software. Bit: Function: Bit: Function: ISO Tag-it HF I-CODE1 76 (4)J31069-D0138-U001-A3-7618

79 05/05 Description of protocols for SLG D [0x69] RF Reset The HF field of the reader antenna can be switched off for t rf = 15 msec using the RF Reset command. This resets all transponders within the reader antenna field back to their basic settings. Host reader ,5 5 COM-ADR [0x69] CRC16 Host reader ,6 6 COM-ADR [0x69] STATUS 1 CRC16 Note After the RF Reset command, the reader cannot receive new transponders before time t rf has expired. After the RF Reset command, transponders located within the antenna field must be reselected. If the Buffered Read Mode is disabled, the RF Reset command causes the data table to become initialized. The response of this command is sent after the reset has been executed. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

80 Description of protocols for SLG D10 05/ [0x6A] RF ON/OFF The RF ON/OFF command switches the HF field of the reader antenna ON or OFF. Host reader ,6 6 COM-ADR [0x6A] RF CRC16 Host reader ,6 6 COM-ADR [0x6A] STATUS 1 CRC16 RF: 0x00 0x01 RF OFF ON HF field of reader antenna Note An enabled Buffered Read Mode is interrupted for as long as the HF is switched off. 1 See chap Index of status bytes 78 (4)J31069-D0138-U001-A3-7618

81 05/05 Description of protocols for SLG D [0x6C] Set Noise Level The Set Noise Level command sets the minimum, average and maximum noise levels and sets bit NL-MODE = {1} in register CFG4: HF interface II. Host reader ,11 11 COM-ADR [0x6C] NOISE-LEVEL CRC16 Host reader ,6 6 COM-ADR [0x6C] STATUS 1 CRC16 NOISE-LEVEL: Byte 4,5 6,7 8,9 NOISE-LEVEL Minimum noise level Average noise level Maximum noise level Note To set the noise level permanently, save configuration block CFG4: HF interface II to the EEPROM using the [0x82] Save Configuration to EEPROM command. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

82 Description of protocols for SLG D10 05/ [0x6D] Get Noise Level The Get Noise Level command reads out the current noise levels from the reader. Host reader ,5 5 COM-ADR [0x6D] CRC16 Host reader ,12 12 COM-ADR [0x6D] STATUS 1 NOISE- LEVEL CRC16 NOISE-LEVEL: Byte 5,6 7,8 9,10 NOISE-LEVEL Minimum noise level Average noise level Maximum noise level 1 See chap Index of status bytes 80 (4)J31069-D0138-U001-A3-7618

83 05/05 Description of protocols for SLG D [0x6E] Reader Diagnostic The Reader Diagnostic command executes a series of hardware diagnosis functions in the reader. Host reader ,6 6 COM-ADR [0x6E] MODE CRC16 Host reader (n-2) (n-1),n n COM-ADR [0x6E] STATUS 1 DATA CRC16 MODE: Reader diagnosis modes MODE Description 0x01 Detailed information is read for STATUS = 0x84 DATA: Response data to the reader diagnosis modes MODE = 0x01: 5 FLAGS FLAGS: Bit: Function: TEMP- ALARM - TEMP- WARN CONTROL Z > Z < NOISE RF- HW TEMP-ALARM TEMP-WARN CONTROL Z > Z < NOISE RF-HW = Maximum permissible temperature of output stage exceeded = Temperature of output stage too high = HF power outside control range = Impedance value >> 50 Ohm = Impedance value << 50 Ohm = Ambient noise too high or incorrect antenna setting = HF hardware not functioning / HF power cannot be initialized 1 See chap Index of status bytes (4)J31069-D0138-U001-A

84 Description of protocols for SLG D10 05/05 Error conditions: Error Set condition Delete condition HF power LED 5 1 TEMP-ALARM Temp. alarm value 120 C TEMP-WARN CONTROL Z > Z < NOISE Temp. warning value 100 C HF power outside control range Absolute value of impedance >> 50 Ohm Absolute value of impedance << 50 Ohm Noise 1000 mv RF-HW No HF hardware / error while initializing HF power Temp. < alarm value OFF ON Temp. < warning value Set antenna, check cable ON, reduce ON ON ON Set antenna ON ON Set antenna ON ON Noise < maximum value ON ON CPU reset OFF ON MODE = 0x02: RF-POWER 0x00 TEMP RF-POWER: Current HF output power [*0.1W] TEMP: (SLG D10 only) Temperature of the HF output stage [ C] 1 Not visible on the outside 82 (4)J31069-D0138-U001-A3-7618

85 05/05 Description of protocols for SLG D [0x6F] Basic antenna tuning This protocol is used to tune the basic antenna with the MOBY D tuning controller. Host reader COM-ADR [0xF9] CRC16 Host reader COM-ADR [0xF9] STATUS 1 CRC16 Note Only use this command to tune the basic antenna. Never use it to tune the supplemental antenna. Without readjustment the output power is set to approx. 4 Watt. If in Buffered Read Mode, the reader is turned off. No more communication is possible with the transponders. The status (0x82) command not possible appears. Flashing of LED 5 at 2 Hz indicates the antenna setting mode. If an error occurs (e.g., maximum current or voltage too high or temperature alarm), the LED flashes at 8 Hz. To exit basic antenna tuning, the host must execute the command [0x63] CPU Reset. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

86 Description of protocols for SLG D10 05/ [0x71] Set Output 1 The Set Output command lets you enable the reader outputs for a limited or unlimited length of time. Each output takes on the state of the OS byte during the time period indicated in the protocol. The flashing frequency is specified by the OSF byte. This protocol can be used to switch the outputs on or off for the specified length of time. When the reader receives the Set Output command, all times that have been active up to that point are overwritten by the new times contained in the protocol, provided they > 0. Host reader ,5 6,7 13 COM-ADR [0x71] OS OSF 8,9 10,11 12,13 0x00 OUT-TIME CRC16 Host reader ,6 6 COM-ADR [0x71] STATUS 2 CRC16 OS: The OS word ( Output State ) specifies the state of the signal transmitters (OUT1, OUT2 and REL) during the time period indicated in OUT-TIME. The signal tansmitters can be selected individually or as a group. Bit: Function: REL mode OUT2 mode OUT1 mode Mode Function b 0 0 UNCHANGED OUT-TIME does not change the state of the signal transmitter b 0 1 ON Signal transmitter during OUT-TIME = enabled b 1 0 OFF Signal transmitter during OUT-TIME = disabled b 1 1 FLASHING Signal transmitter during OUT-TIME = alternates with OSF 1 Connections have not been led out in SLG D10 2 See chap Index of status bytes 84 (4)J31069-D0138-U001-A3-7618

87 05/05 Description of protocols for SLG D10 Note If you are using read synchronization, you cannot use output OUT1 for general tasks. OSF: The OSF word ( Output State Flash, output flashing frequency) lets you assign a separate flashing frequency to each output. Bit: Function: REL frequ. OUT2 frequ. OUT1 frequ Frequ. b 1 1 b 1 0 b 0 1 b Hz 2 Hz 4 Hz 8 Hz Frequency OUT-TIME: The outputs (OUT1, OUT2, REL) can be enabled for a specific length of time or continuously using the value set in OUT-TIME. Time settings 0 and (0xFFFF) are exceptions (see the following table). Time period x 100 msec (100 ms...1:49:13 hr) (0xFFFF) OUT-TIME State unchanged Output enabled during Time Enabled continuously Note To reset a continuously enabled output, send OUT-TIME = 1 to the reader. It will switch to the idle state after 100 msec. A continuously enabled output is reset after a reset procedure or power failure. (4)J31069-D0138-U001-A

88 Description of protocols for SLG D10 05/05 Example 1 OUT1 alternates at 4 Hz for 500 msec. OUT2 is enabled for 500 msec. REL remains unchanged OS OSF OUT-TIME 0x1C00 0x0400 0x0005 Example 2 The relay is enabled for 1000 msec without influencing the other signal transmitters. OS OSF OUT-TIME 0x4000 0x0000 0x000A [0x74] Get Input 1 This protocol is used to query the current state of digital inputs IN1... IN2 and DIP1... DIP4 at any time. Host reader ,5 5 COM-ADR [0x74] CRC16 Host reader ,7 7 COM-ADR [0x74] STATUS 2 INPUTS CRC16 INPUTS: Bit: Function: DIP4 DIP3 DIP2 DIP1 0 0 IN2 IN1 Note 1 Digital input = enabled 3 If reader synchronization is used, input IN1 cannot be used for general tasks. If the trigger is activated in scan mode, input IN2 cannot be used for general tasks. 1 Connections have not been led out in SLG D10 2 See chap Index of status bytes 3 See chap CFG1: General inputs and outputs 86 (4)J31069-D0138-U001-A3-7618

89 05/05 Description of protocols for SLG D Special commands [0x1B] Reset QUIET Bit (I-CODE1 transponders only) This command resets the QUIET bit of all I-CODE1 transponders in the antenna field. Following this command, transponders that were previously in the resting mode are re-enabled. chap Memory model for I-CODE1 transponders describes how to enable the resting mode for I-CODE1 transponders. Host reader ,5 5 COM-ADR 0x1B CRC16 Host reader ,6 6 COM-ADR 0x1B STATUS 1 CRC [0x1C] EAS (I-CODE1 transponders only) This command sends an EAS request to the transponder. If the EAS function of a transponder is enabled, the transponder responds with a special EAS sequence. The transponder does not have to be selected for this command. The status byte is set in order to inform the host about whether or not the reader has received this sequence. The EAS level is set in configuration block CFG3: HF interface I. chap Memory model for I-CODE1 transponders describes how to enable the EAS function for I-CODE1 transponders. Host reader ,5 5 COM-ADR 0x1C CRC16 Host reader ,6 6 COM-ADR 0x1C STATUS 1 CRC16 1 See chap Index of status bytes (4)J31069-D0138-U001-A

90 Description of protocols for SLG D10 05/ Protocols for ISO15693 host commands Supported ISO15693 host commands for ISO15693 transponders The command codes listed in the following table support the various transponder commands and functions of each ISO15693 transponder type Infineon (my-d) IC manufacturer's ID: 0x05 Memory organization: SRF55V10P: 128 x 8 bytes = 8 Kbits SRF55V02P: 32 x 8 bytes = 2 Kbits No. of blocks 128 (user range: 3 to 127) No. of blocks 32 (user range: 3 to 31) Block length 8 bytes Block length 8 bytes Command Code Command Mode Remarks Not Addressed Addressed Selected 0x01 Inventory - - 0x02 Stay Quiet - - 0x22 Lock Multiple Blocks 1 - WR-OPTION = 0 2 0x23 Read Multiple Blocks 1 - DB-SIZE = 8 Security status is always 0x00 0x24 Write Multiple Blocks 1 - DB-SIZE = 8, WR-OPTION = 0 2 0x25 Select - - 0x26 Reset to Ready WR-OPTION = 0 2 0x27 Write AFI WR-OPTION = 0 2 0x28 Lock AFI 0x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status Customer-specific commands (0x10) read, (0x30) write and (0x90) write byte are used automatically by the reader. 2 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG8 is set to 00:automatically set. See chapter CFG8: General transponder parameters. 88 (4)J31069-D0138-U001-A3-7618

91 05/05 Description of protocols for SLG D Philips (I-Code SLI) IC manufacturer's ID: 0x04 Memory organization: 32 x 4 bytes = 1 Kbit No. of blocks 32 (user range: 0 to 27) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 0 1 0x23 Read Multiple Blocks DB-SIZE = 4 Security status is always 0x00 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 0 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 0 1 0x28 Lock AFI WR-OPTION = 0 1 0x29 Write DSFID WR-OPTION = 0 1 0x2A Lock DSFID WR-OPTION = 0 1 0x2B Get System Information 0x2C Get Multiple Block Security Status 1 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG8 is set to 00:automatically set. See chapter CFG8: General transponder parameters. (4)J31069-D0138-U001-A

92 Description of protocols for SLG D10 05/ STMicroelectronics (LRI512) IC manufacturer's ID: 0x02 Memory organization: 16 x 4 bytes = 512 bits No. of blocks 16 (user range: 0 to 15) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 0 1 0x23 Read Multiple Blocks ( ) DB-N must be 1 in "not addressed" mode. 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 0 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 0 1 0x28 Lock AFI WR-OPTION = 0 1 0x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG8 is set to 00:automatically set. See chapter CFG8: General transponder parameters. 90 (4)J31069-D0138-U001-A3-7618

93 05/05 Description of protocols for SLG D Texas Instruments (Tag-it HFI) IC manufacturer's ID: 0x07 Memory organization: 64 x 4 bytes = 2 Kbits of user data No. of blocks 64 (user range: 0 to 63) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 1 1 0x23 Read Multiple Blocks DB-SIZE = 4 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 1 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 1 1 0x28 Lock AFI WR-OPTION = 1 1 0x29 Write DSFID WR-OPTION = 1 1 0x2A Lock DSFID WR-OPTION = 1 1 0x2B Get System Information 0x2C Get Multiple Block Security Status Note The reader automatically uses the commands Write_2_Blocks and Lock_2_Blocks. This only takes effect when the block address starts with an even-number address. The command Write_2_Blocks / Lock_2_Blocks is combined with the command Write Single Block / Lock Single Block when an odd number of blocks must be written and locked. 1 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG8 is set to 00:automatically set. See chapter CFG8: General transponder parameters. In not addressed mode, the WR-OPTION must be set by hand to WR-OPTION = 1. (4)J31069-D0138-U001-A

94 Description of protocols for SLG D10 05/ Supported ISO15693 host commands for I-Code1 Transponders The command codes listed in the following table support the various transponder commands and functions of the I-Code1 transponder types. Memory organization: 16 x 4 bytes = 512 bits No. of blocks 16 (user range: 0 to 11) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet x22 Lock Multiple Blocks x23 Read Multiple Blocks - 0x24 Write Multiple Blocks - - 0x25 Select x26 Reset to Ready x27 Write AFI x28 Lock AFI x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status xA0 Read Config Block - - 0xA1 Write Config Block - - Not Addressed Addressed Selected 92 (4)J31069-D0138-U001-A3-7618

95 05/05 Description of protocols for SLG D Supported ISO15693 host commands for Tag-it HF Transponders The command codes listed in the following table support the various transponder commands and functions of the Tag-it HF transponder types. Memory organization: 8 x 4 bytes = 256 bits No. of blocks 8 (user range: 0 to 7) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet x22 Lock Multiple Blocks - 0x23 Read Multiple Blocks - 0x24 Write Multiple Blocks - 0x25 Select x26 Reset to Ready x27 Write AFI x28 Lock AFI x29 Write DSFID x2A Lock DSFID x2B Get System Information - 0x2C Get Multiple Block Security Status xA0 Read Config Block xA1 Write Config Block Not Addressed Addressed Selected (4)J31069-D0138-U001-A

96 Description of protocols for SLG D10 05/ [0xB0] Host commands for ISO15693: required and optional commands This command sends RF commands as defined by ISO15693 to the transponder. Host reader (n-2) (n-1),n n COM-ADR [0xB0] REQUEST- DATA Host reader CRC (n-2) (n-1),n n COM-ADR [0xB0] STATUS 1 RESPONSE- DATA CRC16 REQUEST-DATA: Command-specific request RESPONSE-DATA: Command-specific response Note Data are only transmitted if STATUS = {0x00, 0x83, 0x84, 0x93, 0x94, 0x95}. The command does not function if Buffered Read Mode or Scan mode is enabled. 1 See chap Index of status bytes 94 (4)J31069-D0138-U001-A3-7618

97 05/05 Description of protocols for SLG D [0x01] Inventory This command reads the UIDs of all transponders in the antenna field. When the reader detects a new transponder, it automatically switches the transponder to the idle state. In this state the transponder does not send a response to the next inventory command. The transponder always sends a response under one of the following conditions. It has exited and reentered the antenna field. A [0x69] RF Reset command was sent to the reader. The ONT bit in register ONT of configuration block CFG13: Anticollision (see chap ) is not set. Anticollision mode in CFG10: General system parameters (see chap ) is deactivated. REQUEST-DATA 4 5 0x01 MODE RESPONSE-DATA DATA-SETS TR-TYPE DSFID UID DATA-SETS repeated MODE: Bit: Function MORE MORE: MORE b0 b1 New inventory is requested Additional data is requested (More than 24 data records are available with status [0x94]. DATA-SETS: Number of transponder data sets to be transmitted in this reader response. TR-TYPE: Transponder type. (4)J31069-D0138-U001-A

98 Description of protocols for SLG D10 05/05 DSFID: (ISO15693 transponders only) Family code for data storage. If not in use, this value returns {0x00}. UID: Transponder UID (read-only access) Note This command supports all transponders. If ONT = {b1}, the UIDs are only read from those transponders that entered the antenna field after the last execution of the Inventory command. If ONT = {b0}, an RF Reset is executed to read the UIDs of all transponders in the antenna field. If the STATUS byte in the protocol frame has the value {0x94}, additional UIDs can be read out from the reader with MORE = {b1}. 96 (4)J31069-D0138-U001-A3-7618

99 05/05 Description of protocols for SLG D [0x02] Stay Quiet This command sets the transponder into the quiet state. Only needed when anticollision mode is disabled. REQUEST-DATA x02 MODE UID MODE: Bit: Function ADR ADR: ADR b001 addressed UID: Transponder UID (read-only access) Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

100 Description of protocols for SLG D10 05/ [0x22] Lock Multiple Blocks This command locks one or more data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. Note This command only functions for ISO15693 transponders and Tag-it HF. The write protection cannot be canceled again. REQUEST-DATA 4 5 (6-13) 6 / (14) 7 / (15) 0x22 MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x03}) 5 DB-ADR-E RESPONSE-DATA (STATUS = {0x95}) 5 6 ISO DB-ADR-E ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. 98 (4)J31069-D0138-U001-A3-7618

101 05/05 Description of protocols for SLG D10 DB-ADR: Number of the first block to be locked. The first block number can lie between 0 and 255. DB-N: Number of data blocks to be locked, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-ADR-E: Block number in which the error occurred (4)J31069-D0138-U001-A

102 Description of protocols for SLG D10 05/ [0x23] Read Multiple Blocks This command reads one or more data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 0x23 MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA n DB-N DB-SIZE SEC-STATUS DB DB-N repeated MODE: Bit: Function SEC ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected SEC: SEC b0 b1 SEC-STATUS always = {0x00} Security status of the followed block in SEC-STATUS UID: Transponder UID (read-only access). The UID is only required in the addressed mode. 100 (4)J31069-D0138-U001-A3-7618

103 05/05 Description of protocols for SLG D10 DB-ADR: Number of the first block to be read. The first block number can lie between 0 and 255. DB-N: Number of data blocks to be read by the transponder, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-SIZE: Number of bytes in a data block This value depends on the specifications of the transponder manufacturer. See chapter Supported ISO15693 host commands for ISO15693 transponders. SEC-STATUS: Block security status of followed data block. If not in use, this value returns {0x00}. (4)J31069-D0138-U001-A

104 Description of protocols for SLG D10 05/05 DB: Requested data block. The block size is specified in DB-SIZE. Note A read procedure out of a block sends the command for reading out a single block to the transponder. If a transponder does not support commands for reading multiple blocks, multiple blocks are read out of the transponder individually. Only one transponder can be read in the unaddressed mode. I-CODE1 and Tag-it HF transponders cannot be read in the selected mode. The command [0x01] Inventory must be executed to select the transponder before an addressed read access of an I-Code1 transponder even when the UID is known. If the transponder was already selected with an Inventory command, a nonaddressed read access of I-Code1 transponders is not possible. The selection must be canceled with the command [0x69] RF Reset. 102 (4)J31069-D0138-U001-A3-7618

105 05/05 Description of protocols for SLG D [0x24] Write Multiple Blocks This command writes one or several data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 8 / (16) 9...n / (17...n) 0x24 MODE UID DB-ADR DB-N DB-SIZE DB Repeated DB-N times RESPONSE-DATA (STATUS = {0x03}) 5 DB-ADR-E RESPONSE-DATA (STATUS = {0x95}) 5 6 ISO DB-ADR-E ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DB-ADR: Address of the first block to be written to the transponder. The first block number can lie between 0 and 255. (4)J31069-D0138-U001-A

106 Description of protocols for SLG D10 05/05 DB-N: Number of data blocks to be written to the transponder, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x DB-SIZE: Number of bytes in a data block This value depends on the specifications of the transponder manufacturer. DB: The data block to be written to the transponder. The required block size is defined in DB-SIZE. The number of expected bytes is DB-N * DB-SIZE. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-ADR-E: Number of the block in which the error occured Note A write procedure to a block sends the command for writing a single block to the transponder. The reader handles this internally. If a transponder does not support commands for writing multiple blocks, multiple blocks are written to the transponder individually. For I-CODE1 transponders, writing is only possible in the addressed mode. For Tag-it HF transponders, writing is not possible in the selected mode. 104 (4)J31069-D0138-U001-A3-7618

107 05/05 Description of protocols for SLG D [0x25] Select This command sets a transponder to the selected state. Only one ISO15693 transponder can be selected at any one time. A transponder that has already been selected is automatically set to the ready state. REQUEST-DATA x25 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

108 Description of protocols for SLG D10 05/ [0x26] Reset to Ready This command sets a transponder into the ready state. REQUEST-DATA 4 5 (6...13) 0x26 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 106 (4)J31069-D0138-U001-A3-7618

109 05/05 Description of protocols for SLG D [0x27] Write AFI This command writes a new AFI code to one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 0x27 MODE UID AFI RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. AFI: Application Family Identifier of the transponder ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

110 Description of protocols for SLG D10 05/ [0x28] Lock AFI This command locks the AFI register in one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 0x28 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 108 (4)J31069-D0138-U001-A3-7618

111 05/05 Description of protocols for SLG D [0x29] Write DSFID This command writes the DSFID to one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 0x29 MODE UID DSFID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DSFID: Data Storage Format Identifier of the transponder ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

112 Description of protocols for SLG D10 05/ [0x2A] Lock DSFID This command locks the DSFID register in one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 0x2A MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 110 (4)J31069-D0138-U001-A3-7618

113 05/05 Description of protocols for SLG D [0x2B] Get System Information This command reads out the system information from the transponder. REQUEST-DATA 4 5 (6...13) 0x2B MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA ,16 17 DSFID UID AFI MEM-SIZE IC-REF ISO Only LSB (32 bits) valid Manufacturer Code MEM-SIZE Chip Version Tag-it HF MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DSFID: Data Storage Format Identifier of the transponder (4)J31069-D0138-U001-A

114 Description of protocols for SLG D10 05/05 Only LSB: The LSB (32 bits) of the write protected UID of the transponder. AFI: Application Family Identifier of the transponder. If not supported by the transponder, this value is {0x00}. Manufacturer code: Manufacturer-specific code (Tag-it HF 0x01) MEM-SIZE: Memory size of the transponder. If not supported by the transponder, this value is {0x0000}. Byte Bit Content In res. (Block size in bytes) - 1 (Number of blocks) - 1 IC-REF: IC reference of the transponder. If not supported by the transponder, this value is {0x00}. Chip Version: Chip version of the transponder. Note This command only functions for ISO15693 transponders and Tag-it HF transponders. 112 (4)J31069-D0138-U001-A3-7618

115 05/05 Description of protocols for SLG D [0x2C] Get Multiple Block Security Status This command reads out the security status for public blocks from a transponder. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 0x2C MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA 5 6 DB-N SEC-STATUS DB-N repeated MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DB-ADR: Number of the first block whose security status is requested. Valid values range from 0 and 255. (4)J31069-D0138-U001-A

116 Description of protocols for SLG D10 05/05 DB-N: Number of security data blocks to be read, beginning with DB-ADR. The maximum value of DB-N depends on the block size. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. SEC-STATUS: Block security status. Note This command only functions for ISO15693 transponders. 114 (4)J31069-D0138-U001-A3-7618

117 05/05 Description of protocols for SLG D [0xA0] Read Config Block This command reads out a configuration block from the MOBY D memory model (see chap Memory model for I-CODE1 transponders). REQUEST-DATA xA0 MODE UID CB-ADR RESPONSE-DATA 5-8 CB MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) CB-ADR: Address of the configuration block to be read by the transponder. CB: Requested configuration block Note This command only functions for I-CODE1 transponders. (4)J31069-D0138-U001-A

118 Description of protocols for SLG D10 05/ [0xA1] Write Config Block This command writes a configuration block to the MOBY D memory model (see chap Memory model for I-CODE1 transponders). REQUEST-DATA xA1 MODE UID CB-ADR CB MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) CB-ADR: Address of the configuration block to be written to the transponder. CB: The configuration block to be written to the transponder. Note This command only functions for I-CODE1 transponders. Example of write-accessing configuration block 0 of a tag-it HF transponder Configuration block 0 activates protective functions of the transponder ( 1 : r/w, 0 : ro). The reader only evaluates bits with the value 0 in LSB (byte 0) b xxxx xxxx b xxxx xxxx b xxxx xxxx b It attempts to lock blocks 0, 2, 5 and 6. If a block is already locked, the status is set to [0x00]. With ISO15693 transponders, the command [0x22] Lock Multiple Blocks must be used. 116 (4)J31069-D0138-U001-A3-7618

119 05/05 Description of protocols for SLG D [0xB1] Host commands for ISO15693: user-specific and manufacturer-specific commands This command sends user-specific and manufacturer-specific commands to the transponder. Host reader (n-2) (n-1),n n COM-ADR [0xB1] MFR REQUEST- DATA Host reader CRC (n-2) (n-1),n n COM-ADR [0xB1] STATUS 1 RESPONSE- DATA CRC16 MFR: Manufacturer code MFR 0xXX REQUEST-DATA: Manufacturer-specific request RESPONSE-DATA: Manufacturer-specific response Note Data are only transmitted if STATUS = {0x00, 0x83, 0x84, 0x94, 0x95}. This command does not function if Buffered Read Mode or Scan mode is enabled. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

120 Description of protocols for SLG D10 05/ [0xBF] ISO15693 transparent command This command sends user-transparent commands to the transponder. Host reader ,6 n COM-ADR [0xBF] MODE RSP- LENGTH MODE 1+2 7,8 9...(n-2) (n-1),n CMD-RSP- DELAY REQUEST- DATA CRC16 MODE 3+4 7,8 9, (n-2) (n-1),n CMD-RSP- DELAY EOF-PULSE- DELAY REQUEST- DATA CRC16 Host reader MODE 5 7,8 9, (n-2) (n-1),n CMD-RSP- DELAY MULTIPLE 302 GRIDS REQUEST- DATA (n-2) (n-1),n n COM-ADR [0xBF] STATUS 1 RESPONSE- DATA CRC16 CRC16 MODE: Request options 0x01 = Read request Response is requested according to CMD-RSP-DELAY 0x02 = Write request with option 0 The reader attempts to receive a response after CMD-RSP-DELAY + a multiple of 302 µsec. If a response is not received within 20 msec, the command sends status No transponder [0x01] back. 0x03 = Write request with option 1 The reader attempts to receive a response after CMD-RSP-DELAY. If it does not receive a response, the reader sends an EOF after EOF- PULSE-DELAY and attempts to receive a response after CMD-RSP- DELAY. 1 See chap Index of status bytes 118 (4)J31069-D0138-U001-A3-7618

121 05/05 Description of protocols for SLG D10 0x04 = Inventory request The reader attempts to receive a response after CMD-RSP-DELAY. Execution depends on the Nb_slot_flag flag in accordance with ISO15693 as follows: 0 The reader sends an EOF after EOF-PULSE-DELAY and, in the next time slot, again attempts to receive a response (after CMD- RSP_DELAY). This procedure is repeated 16 times. In this case, RSP-LENGTH specifies the response length in a time slot. Transponder responses with a different response length are ignored. If there is a checksum error in one of the time slots, the protocol status is set to 0x02 [CRC error]. The user must calculate where in the transponder data the error occurred. 1 The reader sends the received data back. 0x05 = Request with grid position of the response The reader attempts to read a response in accordance with ISO CMD-RSP-DELAY. If it receives no reply, the reader reads in the time grid specified in MULTIPLE 302 µsec GRIDS. If it receives no reply, the command returns the status no transponder 0x00. The maximum value for MULTIPLE 302 µsec GRIDS is 125 (-> µsec x 125 = msec). The length of the read data varies depending on error flag in the transponder response: 4 bytes if error flag = 1 RSP-LENGTH if error flag = 0 RSP-LENGTH: Transponder response length in bits without SOF and EOF If the error flag is set in the transponder response, the length of the read data is 4 bytes. CMD-RSP-DELAY: Response delay of transponder response (ISO15693: T1) e.g. ISO15693 average value: {0x021F} * 590 nsec = µsec EOF-PULSE-DELAY: The EOF pulse delay is used in write procedures using ISO15693 write option 1. It specifies the response delay of the transponder response (ISO15693: T1). E.g. ISO15693 maximum value: {0x846A} * 590 nsec = 20 msec (4)J31069-D0138-U001-A

122 Description of protocols for SLG D10 05/05 REQUEST-DATA: Complete transponder request without SOF, CRC16 and EOF Note The FLAGS for the read and write options in REQUEST-DATA must correspond to the MODE byte in the request protocol. The reader always forces a command according to the method specified in the MODE byte of the request protocol. RESPONSE-DATA: Complete transponder response without SOF and EOF. The reader performs a CRC16 checksum test. However, it is the CRC16 of the transponder that is transmitted with the response data. Note Data are only transmitted if STATUS = {0x00, 0x02, 0x83, 0x84, 0x94}. The response data always consist of the number of data bytes specified in RSP-LENGTH. Note This command only functions for ISO15693 transponders. This command does not function if Buffered Read Mode or Scan mode is enabled. 120 (4)J31069-D0138-U001-A3-7618

123 05/05 Description of protocols for SLG D Protocols for the Buffered Read Mode Processes in the Buffered Read Mode In the Buffered Read Mode, the reader itself reads out data from each transponder within the antenna field. This operating mode must be enabled in configuration block CFG10: General system parameters and configured in configuration block CFG11: Buffered Read Mode. The requested transponder data sets are stored in a FIFO buffer. The Buffered Read Mode operates independently of any host commands and begins immediately after the device is switched on or after the [0x63] CPU Reset command. You will require two commands to read out requested transponder data sets. The figure below shows the basic processes in the Buffered Read Mode. Host reader Host reader Host reader Host reader Host reader [0x21] Read Buffer typ. 6 ms Status, e.g. = {0x92} no valid data. Command to the reader to read out data There are no data sets in the data buffer.... [0x21] Command to the reader Read Buffer to read out data typ. 6 ms Status, e.g. = OK The data buffer contains data sets. and n data sets n data sets are transmitted to the host..... [0x32] Command to the reader Clear Data Buffer to clear data sets that have already been read typ. 6 ms Host reader Status, e.g. = OK The n data sets that had already been read were deleted from the buffer. (4)J31069-D0138-U001-A

124 Description of protocols for SLG D10 05/05 : The host waits for a response from the reader : The host can perform other tasks, e.g. communicate with other readers. You can obtain additional information regarding the capacity of the data buffer using the [0x31] Read Data Buffer Info command. Note When the HF supply is turned off with command [0x6A] RF ON/OFF and reader synchronization is used, an arriving synchronization pulse is forwarded by the reader directly to the synchronization output Transponder access in the Buffered Read Mode The Buffered Read Mode only reads data blocks from transponders located in the antenna field. You can configure the anticollision procedure in configuration block CFG13: Anticollision and enable it in configuration block CFG10: General system parameters. All transponder types set in configuration block CFG3: HF interface I are used in the Buffered Read Mode. After the device is switched on or after the [0x63] CPU Reset command, the Buffered Read Mode starts with transponder type D. 122 (4)J31069-D0138-U001-A3-7618

125 05/05 Description of protocols for SLG D [0x21] Read Buffer The "Read Buffer command reads out a number of data sets from the data buffer. Host reader ,6 6 COM-ADR [0x21] DATA- SETS Host reader CRC (5) (6) 6 / (n) COM-ADR [0x21] STATUS 1 TR-DATA DATA- SETS (7...(n-2)) 5,6 / ((n-1),n) DATA CRC16 DATA-SETS: Number of data sets to be transmitted from the data buffer. If the data buffer does not contain the indicated number of data sets, all existing data sets will be transmitted and an error will be output. If the response protocol reaches the maximum length of 256 bytes, the reader reduces the number of data sets. TR-DATA: Selects the data types for the read procedure. Bit: Function - - TIMER DB UID UID = UID DB = Data block TIMER = Internal system timer (For details, see chap [0x85] Set System Timer.) 1 See chap Index of status bytes (4)J31069-D0138-U001-A

126 Description of protocols for SLG D10 05/05 DATA: Number of data sets requested from the data buffer. Only the selected data are transmitted to the host. Details are presented in chap CFG11: Buffered Read Mode. Every data set has the following structure: Data type UID Byte number TR-TYP DATA Data blocks Byte number to TIMER Byte number UID DB-ADR DB-N DB TIMER In Buffered Read Mode, the block length is always 4 bytes. If the block length of the transponder is not 4 bytes, the reader always devides the data into 4-byte blocks. Note This command continues reading the same data sets until they are deleted with the [0x32] Clear Data Buffer command. This command only functions in the Buffered Read Mode. Data are only transmitted if STATUS = {0x00, 0x83, 0x84, 0x93, 0x94}. 124 (4)J31069-D0138-U001-A3-7618

127 05/05 Description of protocols for SLG D [0x31] Read Data Buffer Info The Read Data Buffer Info command reads the current parameters in the data buffer. Host reader ,5 5 COM-ADR [0x31] CRC16 Host reader ,6 7,8 12 COM-ADR [0x31] STATUS 1 TAB-SIZE TAB- START 9,10 11,12 TAB-LEN CRC16 TAB-SIZE: Maximum number of transponder data sets in the data buffer. TAB-START: Address of the first data set in the data buffer. TAB-LEN: Number of reserved transponder data sets in the data buffer. Note Additional information on the status of the data tables is transmitted if STATUS = {0x00, 0x84, 0x85, 0x93}. The data structure may be inconsistent if some transponders leave the antenna field before all requested data blocks have been read out. Thus, TAB-LEN does not necessarily contain the number of valid data sets in the data buffer. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

128 Description of protocols for SLG D10 05/ [0x32] Clear Data Buffer The Clear Data Buffer command clears those data sets from the data buffer that you have already read using the [0x21] Read Buffer command. Host reader ,5 5 COM-ADR [0x32] CRC16 Host reader ,6 6 COM-ADR [0x32] STATUS 1 CRC [0x33] Initialize Buffer The Initialize Buffer command resets the buffer back to its basic state. It makes no difference whether or not the data sets in the buffer have already been read. Host reader ,5 5 COM-ADR [0x33] CRC16 Host reader ,6 6 COM-ADR [0x33] STATUS 1 CRC16 1 See chap Index of status bytes 126 (4)J31069-D0138-U001-A3-7618

129 05/05 Description of protocols for SLG D Appendix Codes for transponder types Value 0x00 0x01 0x03 Transponder type Philips I-CODE1 Texas Instruments Tag-it HF ISO15693 transponder (4)J31069-D0138-U001-A

130 Description of protocols for SLG D10 05/ Time response of the asynchronous interface The reaction times of the asynchronous interface depend on the following factors: Quantity of data to be read or written Type and number of transponders supported by the reader Location of the transponder at the time of the request Any existing electromagnetic interference Success or failure of the request Minimum Typical Maximum Units I-CODE1 Tag-it HF EE parameter change 5 msec 1 block (16 bytes) all (16) blocks msec msec [0x1B] Reset QUIET Bit msec [0x1C] EAS msec [0x69] RF Reset 15 msec [0xB0] Host commands for ISO15693: required and optional commands msec 1 2 [0xB1] Host commands 5 msec for ISO15693: userspecific and manufacturer-specific commands 1 2 [0xBF] ISO msec transparent command 1 Details in chap Time response of the ISO15693 host commands 2 As set in CFG2: COM interface, TR-RESPONSE-TIME 128 (4)J31069-D0138-U001-A3-7618

131 05/05 Description of protocols for SLG D Time response of the ISO15693 host commands The reaction time to the ISO15693 host commands depends on the following factors: Number of transponders in the antenna field (duration of anticollision process) Amount of data to be read or written Types of transponders supported by the reader Location of the transponder at the time of the request Any existing electromagnetic interference Time reaction of the I-CODE1 and Tag-it HF transponders (only execution time) Inventory with 1 transponder: 1 time slot 16 time slots 256 time slots Read multiple blocks: 1 block, unaddressed 1 block, addressed 4 blocks, unaddressed 4 blocks, addressed Write multiple blocks: 1 block, unaddressed 4 blocks, unaddressed Write multiple blocks (1 block, addressed): 1 time slot 16 time slots 256 time slots Write multiple blocks (4 blocks, addressed): 1 time slot 16 time slots 256 time slots Typical I-CODE1 I-CODE1 Tag-it HF (normal) 1 (fast) See table below Units msec msec msec msec msec msec msec msec msec msec msec msec msec msec msec msec msec msec 1 See chap CFG8: General transponder parameters (4)J31069-D0138-U001-A

132 Description of protocols for SLG D10 05/05 Number of blocks 1 (4 bytes) 7, (4 bytes) with SEC- 52 STATUS 2 4 (16 bytes) (16 bytes) 15 with SEC- 56 STATUS 2 Read out multiple blocks (I-CODE1 transponders) 11 Time slots Unaddressed Addressed Unaddressed Addressed Unaddressed Addressed Typical (fast) 1 msec (normal) 1 msec (fast) 1 msec (normal) 1 msec (fast) 1 msec (normal) 1 msec (fast) 1 msec (normal) 1 msec Time reactions of the ISO15693 transponders All times refer to the following parameters. ISO15693-MODE = 0x0B (see chapter CFG8: General transponder parameters). Fast mode (1 / 4) High data speed AFI deactivated Only ISO15693 transponder driver active Modulation and subcarrier have almost no measurable effect on the reaction time. 1 See chap CFG8: General transponder parameters 2 See chap [0x23] Read Multiple Blocks 130 (4)J31069-D0138-U001-A3-7618

133 05/05 Description of protocols for SLG D10 Time reactions for [0x01] Inventory The following diagram shows average values for time reactions based on the number of transponders. The times for certain UIDs may be longer or shorter than those shown below. The time reaction including the communication time is measured at 115 kbaud. Other baud rates cause a slight increase in times. Since inventory timing is primarily determined by anticollision, the communication time can be disregarded. Execution time Send Tx Receive Rx + = Communication time The measuring scenario for average values is a worst case scenario during which the transponders have all stopped near the antenna. Results improve when the transponders are moving and are located at different distances from the antenna. Only ASK or a single subcarrier can be used for configuration with a time slot. (4)J31069-D0138-U001-A

134 Zeit [ms] Zeitschlitze Datencodierung Subcarrier Description of protocols for SLG D10 05/05 The diagram for a time slot ends at approximately 30 transponders. The reason for this is that with this measuring scenario (transponders close to antenna) execution time with more than 30 transponders increases quickly. If you have more than 30 transponders, it is better to use the configuration with 16 time slots. When to switch from the configuration with one time slot to the configuration with 16 time slots depends on the application. Thirty transponders is an average value. It may be higher or lower for certain applications. You can increase the value if your application fulfills the following criteria: Small transponders in comparison to the reader antenna. Transponders are at different distances from the antenna. You should decrease the value if your application fulfills the following criteria: Large transponders in comparison to the reader antenna. Transponders are all at the same distance to the antenna. Transponders are very close to the antenna. The timing diagram with 16 time slots and one to 150 transponders shows the inventory time reactions including communication time. Buffered read mode was used von 4 - Transponder Remember that the time reaction of the Inventory (0xB0 0x01) command depends on the MORE bit. The MORE bit is set when the number of transponders exceeds 24. If the MORE bit is set by the reader in response to the Inventory command, communication time is affected by the speed of the host system. 132 (4)J31069-D0138-U001-A3-7618

135 05/05 Description of protocols for SLG D10 Execution time More data requested Send Tx Receive Rx + = Communication time Host Time reactions of general commands with independent transponder performance Command Execution time (msec) Communication time at 115 kbaud (msec) Addressed Selected Addressed Selected Stay Quiet Select Reset to Ready Get System Information Get Multiple Block Security Status 1 block blocks blocks blocks (4)J31069-D0138-U001-A

136 Description of protocols for SLG D10 05/05 Time reactions of read functions Read 1 block 8 bytes 4 blocks 32 bytes 16 blocks 128 bytes Without security block Execution time (msec) Infineon my-d With security block Communication time at 115 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (28 blocks) 112 bytes Without security block Execution time (msec) Philips I-Code SLI With security block Communication time at 115 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes 32 blocks 128 bytes Without security block Execution time (msec) Texas Instruments Tag-it HFI With security block Communication time at 115 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected (4)J31069-D0138-U001-A3-7618

137 05/05 Description of protocols for SLG D10 Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (16 blocks) 64 bytes STMicroelectronics (LRI512) Execution time (msec) Communication time at 115 kbaud (msec) Without security block With security block Addressed Selected Addressed Selected Addressed Selected (4)J31069-D0138-U001-A

138 Description of protocols for SLG D10 05/05 Time reactions of write functions Write 1 block 8 bytes 4 blocks 32 bytes 16 blocks 128 bytes Execution time (msec) Infineon my-d WR-Option = 0 Communication time at 115 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Selected Write AFI Lock AFI Write DSFID Lock DSFID Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (28 blocks) 112 bytes Execution time (msec) I-Code SLI WR-Option = 0 Communication time at 115 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Addressed Addressed Addressed Addressed Addressed Addressed Addressed Addressed Selected Write AFI Lock AFI Write DSFID Lock DSFID (4)J31069-D0138-U001-A3-7618

139 05/05 Description of protocols for SLG D10 Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes 32 blocks 128 bytes Write AFI Lock AFI Write DSFID Lock DSFID Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (16 blocks) 64 bytes Execution time (msec) STMicroelectronics (LRI512) WR-Option = 0 Communication time at 115 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Texas Instruments Tag-it HFI WR-Option = 1 Execution time (msec) Communication time at 115 kbaud (msec) Write data block Lock data block Write data block Lock data block Addressesesed Selected Addres- Selected Addres- Selected Addressed Selected Addressed Addressed Addressed Addressed Selected Write AFI Lock AFI Write DSFID Lock DSFID (4)J31069-D0138-U001-A

140 Description of protocols for SLG D10 05/ Index of status bytes Hexadecimal value 0x00 General information OK: Data / parameters correctly read or stored Control command executed Hexadecimal value 0x01 0x02 0x03 0x04 0x05 Transponder status No transponder: No transponder located in the detection field of the reader Transponder in the detection field was switched to silent Interference in communication between reader and transponder. The reader can no longer recognize the transponder. Incorrect data: CRC16 checksum error in the received data Write error: Plausibility test of the written data failed: Attempt to write to read-only area (only I-CODE1 and Tag-it HF transponders) Distance between transponder and reader antenna too large Attempt to write under excessive ambient noise conditions Addressing error: The requested data are outside of the logical or physical addressing range of transponder: The address is outside of the maximum address range of the transponder. The address is outside of the configured address range of the transponder. Incorrect transponder type: This command is not supported by this transponder: A specific command is not supported by the transponder. Hexadecimal value 0x10 0x11 0x13 Parameter status EEPROM error: It is not possible to write to the EEPROM of the reader A faulty parameter checksum occurred prior to the write procedure to the EEPROM. Parameter outside of valid range: Valid parameter range was exceeded Login required: An attempt was made to access the configuration before having logged in 138 (4)J31069-D0138-U001-A3-7618

141 05/05 Description of protocols for SLG D10 Hexadecimal value 0x14 0x15 0x16 Parameter status Login error: Attempt to log in with an incorrect password Read protection: Configuration block reserved for future use Write protection: Configuration block reserved for future use Hexadecimal value 0x80 0x81 0x82 0x83 0x84 0x85 Interface status Unknown command: Selected function not supported by reader Length error: Selected function has the wrong number of parameters Command not possible: An ISO15693 host command was sent to the reader in the Buffered Read Mode or in Scan Mode. A protocol for the Buffered Read Mode was sent to the reader in the standard mode HF communication error: An error occurred in the communication between the transponder and reader. Possible causes: Timeout during transponder communication. TR-RESPONSE-TIME in CFG2: COM interface (see chap ) is too short. Algorithm for collision handling was interrupted before no more collision were detected. Causes for the interruption: More transponders in the field than time slots HF error: Detailed status information can be read with the [0x6E] Reader Diagnostic command. Incorrect configuration of the antenna; check antenna cable and antenna setting. Ambient noise too high HF power does not match the configured value Excessive temperature of the HF output stage; HF power can be reduced or switched off altogether. Defective HF hardware Synchronization error: A timeout has occurred on the synchronization input. During the SYNC-TIMEOUT time, no synchronization pulse was detected (see chap CFG11: Buffered Read Mode). Increase the SYNC- TIMEOUT time of the readers. At least one reader in the chain is being used with synchronization mode switched off. (4)J31069-D0138-U001-A

142 Description of protocols for SLG D10 05/05 Hexadecimal value 0x92 0x93 0x94 0x95 Buffer status No valid data: No valid data in the Buffered Read Mode No transponder in the antenna field VALID-TIME 1 for the transponders in the antenna field has not yet expired. Data buffer overflow: A data buffer overflow occurred Additional data: More transponder data sets were requested than the transponder protocol can transmit simultaneously. ISO15693 error: An additional error code for ISO15693 transponders was sent with the response data 1 See chap CFG11: Buffered Read Mode 140 (4)J31069-D0138-U001-A3-7618

143 05/05 Description of protocols for SLG D Index of control bytes Control byte Description Page [0x1B] [0x1B] Reset QUIET Bit (I-CODE1 transponders only) 87 [0x1C] [0x1C] EAS (I-CODE1 transponders only) 87 [0x21] [0x21] Read Buffer 123 [0x31] [0x31] Read Data Buffer Info 125 [0x32] [0x32] Clear Data Buffer 126 [0x33] [0x33] Initialize Buffer 126 [0x52] [0x52] Baud Rate Detection 74 [0x55] [0x55] Start Flash Loader 74 [0x63] [0x63] CPU Reset 75 [0x65] [0x65] Get Software Version 75 [0x69] [0x69] RF Reset 77 [0x6A] [0x6A] RF ON/OFF 78 [0x6C] [0x6C] Set Noise Level 79 [0x6D] [0x6D] Get Noise Level 80 [0x6E] [0x6E] Reader Diagnostic 81 [0x6F] [0x6F] Basic antenna tuning 83 [0x71] [0x71] Set Output 84 [0x74] [0x74] Get Input 86 [0x80] [0x80] Read Configuration 68 [0x81] [0x81] Write Configuration 69 [0x82] [0x82] Save Configuration to EEPROM 70 [0x83] [0x83] Set Default Configuration 71 [0x85] [0x85] Set System Timer 72 [0x86] [0x86] Get System Timer 73 [0xA0] [0xA0] Reader Login 67 [0xB0] [0xB1] [0xB0] Host commands for ISO15693: required and optional commands [0xB1] Host commands for ISO15693: user-specific and manufacturer-specific commands [0xBF] [0xBF] ISO15693 transparent command (4)J31069-D0138-U001-A

144 Description of protocols for SLG D10 05/ Index of configuration parameters CFGn Description Access 1 Page Reader parameters 0 CFG0: Passwords WO 24 1 Configuration protection Access to the configuration parameters stored on the reader is protected with a 32-bit password called the "READER-ID." This means that the configuration parameters in the EEPROM of the reader can only be read or changed after you have logged in with the command [0xA0] Reader Login with a valid reader ID CFG1: General inputs and outputs R/W 25 2 CFG2: COM interface R/W 27 3 CFG3: HF interface I R/W 31 4 CFG4: HF interface II R/W 34 5 CFG5: HF interface III R/W 35 6 CFG6: Reserved RP/WP 35 7 CFG7: Reserved RP/WP 36 Transponder parameters 8 CFG8: General transponder parameters R/W 37 9 CFG9: Reserved RP/WP 42 System parameters 10 CFG10: General system parameters R/W CFG11: Buffered Read Mode R/W CFG12: Scan Mode R/W CFG13: Anticollision R/W CFG14: Reserved RP/WP CFG15: Reserved RP/WP (4)J31069-D0138-U001-A3-7618

145 05/05 Description of protocols for SLG D Memory model for I-CODE1 transponders For access, the memory is subdivided into regions with a length of 4 bytes each. I-CODE1 address I-Scan address Contents Description Remarks UID UID (8 bytes) Read only 2 C0 Configuration Conditions for write access 3 C1 Special functions (EAS, QUIET bit) 4 C2 Family code / application ID 5 D0 User User memory 6 D1 7 D2 8 D3 9 D4 10 D5 11 D6 12 D7 13 D8 14 D9 15 D10 Read / write Can be set to "read only Read / write Can be set to "read only Note When writing data to a transponder, it must be ensured that the transponder remains completely inside the antenna field while writing is taking place. If the QUIET-Bit is set in the I-Code1 memory model (see chap CFG8: General transponder parameters), the [0x24] Write Multiple Blocks command can only be used on DB block 3. (4)J31069-D0138-U001-A

146 Description of protocols for SLG D10 05/05 UID: This block contains a unique, 64-bit transponder UID (read-only access). Bit Byte Function UID, MSB UID, LSB 144 (4)J31069-D0138-U001-A3-7618

147 05/05 Description of protocols for SLG D10 Configuration block 0: This block is used to enable protective functions of the transponder. The bits can be set to 0, but can never be set back to 1. After you have enabled write protection for block C0, you cannot enable any additional protective functions (hardware write protection). Bit Byte Function 2 Procedure I-Scan block I-CODE1 block = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro C = r/w, 0 = ro C = r/w, 0 = ro C = ro S no = ro S no. 0 1 See chap [0x23] Read Multiple Blocks 2 See chap CFG11: Buffered Read Mode (4)J31069-D0138-U001-A

148 Description of protocols for SLG D10 05/05 Configuration block 1: This block is used to enable special functions (EAS / QUIET mode). If the EAS mode ("Electronic Article Surveillance ) is enabled, all transponders respond to an EAS command. If the QUIET mode is enabled, the transponder is permanently disabled. It can be re-enabled using the "Reset QUIET Bit command. The I-CODE1 transponder responds to no command other than the EAS. Bit Byte Function : enable EAS 0 : disable EAS 1 1 : enable QUIET mode 0 : disable QUIET mode Bits 2 to 31 are reserved for future use and are set to 0 Configuration block 2: The family code and the application ID can be specified in this block. This function lets you create transponder families. It is only enabled if the values are not equal to 0. Bit Byte Function Family code Application ID Bits 16 to 31 can be used for user data without restrictions. 146 (4)J31069-D0138-U001-A3-7618

149 05/05 Description of protocols for SLG D Examples of Reading Data Different values must be used for the DB-N factor regardless of whether you are using ISO15693 Host Mode or Buffered Read Mode. Depending on DB-SIZE of the transponder, they are not 4 bytes. Make sure that the data block always has 4 bytes in Buffered Read Mode (BRM). Use DB-N=2 (2 x 4 bytes) in buffered Read Mode to read a transponder with a DB-SIZE of 8 bytes. Below are four examples. The setting LSB first and MSB first specifies the order of the received data bytes in Buffered Read Mode. See below: Buffered Read Mode (BRM) (DB-SIZE of transponder = 4 bytes) and Buffered Read Mode (BRM) (DB-SIZE of transponder = 8 bytes). ISO15693 host command (DB-SIZE of transponder = 4 bytes) (4)J31069-D0138-U001-A

150 Description of protocols for SLG D10 05/05 Buffered Read Mode (BRM) (DB-SIZE of transponder = 4 bytes) 148 (4)J31069-D0138-U001-A3-7618

151 05/05 Description of protocols for SLG D10 ISO15693 host command (DB-SIZE of transponder = 8 bytes) (4)J31069-D0138-U001-A

152 Description of protocols for SLG D10 05/05 Buffered Read Mode (BRM) (DB-SIZE of transponder = 8 bytes) 150 (4)J31069-D0138-U001-A3-7618

153 05/05 SLG D11/D12 overview 4 SLG D11/D12 overview 4.1 Data transmission between MOBY D SLG D11/D12 and the host There are four different kinds of data transmission between the MOBY D reader and the host (terminal, PC). ISO15693 host commands and Scan mode are used for the exchange of data between the transponder and the host. Configuration commands and control commands are used for matching the reader parameters to various applications. The following table shows what interfaces are supported by the various kinds of data transmission: Configuration commands Control commands ISO15693 host commands Scan mode Asynchronous interface (RS 232 / RS 422) Configuration commands and control commands This kind of data transmission is used for configuring the reader and for diagnosis via the asynchronous interface or the USB interface. The reader configuration parameters are stored in the reader memory. To protect the current configuration from being lost when the device is switched off, you must store it in the EEPROM. After the reader is switched on, it reads the configuration saved in the EEPROM. The reader control is processed immediately. The reader response contains status or data information of the control command. Host (terminal / PC /...) Parameter command / control command Reader Parameters received and saved / control command processed Yes Status / data No Error status (4)J31069-D0138-U001-A

154 SLG D11/D12 overview 05/ ISO15693 host commands The ISO15693 host commands are a method of exchanging data between the host and the transponders using the reader. The transponders must remain within the detection field of the reader for this purpose. Note When writing data to a transponder, you must ensure that the transponder remains completely within the recognition field of the reader during the entire write procedure. Data will be lost if the transponder leaves the detection range during the write procedure. The reader differentiates between three modes. Addressed mode: Before data can be read or written in addressed mode, the UID of the transponder must be known. You will learn the UID when you send the protocol [0x01] Inventory. When a transponder is located in the recognition field of the reader at this moment, it replies with its UID. The transponder must then be addressed with the correct UID during all subsequent read and write commands. The following flowchart shows the steps required for communication with a transponder in addressed mode. Host (terminal / PC /...) Reader Inventory tu query the UID Transponder in the antenna field? Read data with UID from the transponder Write data with UID to the transponder Yes Status / number of selected transponders / UID No Status = no transponder Transponder with correct UID in the antenna field? Yes Status / transponder data that have been read No Status = no transponder in reader field Transponder with correct UID in the antenna field? Yes No Status OK Status = no transponder in reader field 152 (4)J31069-D0138-U001-A3-7618

155 05/05 SLG D11/D12 overview Not addressed mode: In not addressed mode, you do not need to know the UID of the transponder. This mode is recommended when only one transponder is located in the recognition field of the reader. The following flowchart shows the steps required for communication with one transponder in not addressed mode. Host (terminal / PC /...) Reader Read data Transponder in the antenna field? Yes Status / transponder data that have been read No Status = no transponder in reader field Write data Transponder in the antenna field? Yes No Status OK Status = no transponder in reader field (4)J31069-D0138-U001-A

156 SLG D11/D12 overview 05/05 Selected: In this mode, the reader only communicates with one selected transponder. Before you can read or write in select mode, the UID of the transponder must be known. You will learn the UID when you send the protocol [0x01] Inventory. In a second step, the transponder must be selected with the command [0x25] Select. This must contain the UID of the transponder. The following flowchart shows the steps required for communication with a transponder in select mode. Host (Terminal / PC /...) Reader Inventory for query of UID Transponder in antenna field? Yes Status/number of selected transponders/uids No Status = no transponders Select transponder with UID Transponder with correct UID in the antenna field? Yes Status/read transponder data No Status = no transponder in reader field Read data Selected transponder in antenna field? Yes Status/read transponder data No Status = no transponder in reader field Write data Selected transponder in antenna field? Yes No Status OK Status = no transponder in reader field 154 (4)J31069-D0138-U001-A3-7618

157 05/05 SLG D11/D12 overview Scan mode In this mode, the reader automatically sends data to the host as soon as a transponder enters the recognition field and valid data can be read. When scan mode is set, the contents of the message block (UID, data block) can be adjusted to any user application. Scan mode can be used with the asynchronous interface. The reader begins with the output of the protocol block as soon as all required data have been correctly read from the transponder. If the reader is unable to read all data of a protocol block completely and correctly, it outputs no data. If, for example, the address of the data block is invalid, the UID of the transponder is not sent. Scan mode with the asynchronous interface The data are output as shown below based on their configuration. The specified order cannot be changed. The format of the sent protocols depends on the configuration and number of transponders in the recognition field of the reader. Example 1: One transponder is located in the recognition field. UID and data block are to be read: Example 2: Three transponders are located in the recognition field. Only the UID is to be read. PR UID1 EZ UID2 EZ UID3 EZ Example 3: Three transponders are located in the recognition field. Only the data block is to be read. PR Data1 EZ Data2 EZ Data3 EZ (4)J31069-D0138-U001-A

158 SLG D11/D12 overview 05/05 Example 4: Two transponders are located in the recognition field. UID and data block are to be read. PR UID1 TZ Data1 EZ UID2 TZ Data2 EZ PR: UID: Data: TZ: EZ: ts: tr: Communication prefix (optional) Serial number (fixed) Data blocks (can be programmed as desired) Separator character (optional) End character (optional) SCAN-LOCK-TIME Time until the next new read access of the transponder Note When configuration protocols are to be sent to the reader when scan mode is active, no transponder should be located in the recognition field of the reader during this time. Only read operations are possible in scan mode. 156 (4)J31069-D0138-U001-A3-7618

159 05/05 SLG D11/D12 overview 4.2 Asynchronous interface Data format und protocol frame You can configure the SLG D11/D12 reader via an asynchronous interface and write data to and read data out from transponders. Communication between the reader and the connected host (terminal, PC, etc.) is governed by fixed protocols. These are designed for data busses and contain a bus address. The reader provides the requested data or a status byte when data is transmitted via the asynchronous interface. The response also contains the transmitted control byte. The reader does not respond if a defective protocol frame is transmitted. Protocol frame: LENGTH n: Host reader (n-2) (n-1) n COM- CONTRO PROTOCOL MSB ADR L BYTE DATA CRC16 LENGTH = n Host reader LENGTH = n LSB CRC (5...(n-2)) (n-1) n COM- STATUS 1 (PROTOCOL MSB ADR DATA) CRC16 CON- TROL BYTE LSB CRC16 Number of protocol bytes 1... n ( ), including length byte and checksum COM-ADR: , device address in bus mode Note The reader can always be accessed via device address 255! SLG D11/D12 has only been provided with a point-to-point connection (RS 232, RS 422 upon request) (no RS 485)! 1 See chap Index of status bytes (4)J31069-D0138-U001-A

160 SLG D11/D12 overview 05/05 STATUS / PROTOCOL DATA: Contains status message or protocol data from or for the reader. When the data are sent, the MSB is always transferred first when the reader is in ISO15693 host command mode (see also chapter Examples of Reading Data). CRC16: Cyclic redundancy test of the protocol bytes from 1 to (n-2), as indicated by the CCITT polynomial: x 16 + x 12 + x Starting value: 0xFFFF Data format: Start bits: 1 Data bits: 8 Stop bits: 1 Parity: Even (default) Uneven None Timing: Waiting time at start: A waiting time of at least 5 ms must be observed before sending a protocol start character (length byte). Host reader:.. Reaction time Waiting time n ms Host reader: ms min. Data timeout: The individual characters within a protocol must occur in intervals of not more than 12 ms. 12 ms max. 12 ms max. 12 ms max. Host reader: Character n Character n+1 Character n (4)J31069-D0138-U001-A3-7618

161 05/05 SLG D11/D12 overview CRC16 calculation algorithm Polynomial: x 16 + x 12 + x CRC_POLYNOM = 0x8408; Starting value: 0xFFFF CRC_PRESET = 0xFFFF; Example in C: unsigned int crc = CRC_PRESET; for (i = 0; i < cnt; i++) /* cnt = Number of protocol bytes without CRC */ { crc ^= DATA[i]; for (j = 0; j < 8; j++) { if (crc & 0x0001) crc = (crc >> 1) ^ CRC_POLYNOM; else crc = (crc >> 1); } } (4)J31069-D0138-U001-A

162 SLG D11/D12 configuration parameters (CFG) 05/05 5 SLG D11/D12 configuration parameters (CFG) The reader configuration memory is subdivided into configuration blocks of 16 bytes each. Each block consists of 14 bytes of configuration parameters and a 2-byte CRC16 checksum. Each configuration block has a number (CFG0...CFGn). Configuration block structure in the configuration memory and EEPROM of the reader (CFG): Byte Contents PARAMETERS CRC16 The parameters are stored in two separate locations within the configuration memory: Reader RAM Storage EEPROM (for storing parameters when the device is switched off) You can address multiple locations in the configuration memory via the value of the CFG-ADR parameter described in chap. 6.1 Protocols for configuring the reader. CFG-ADR: CFGn: LOC: MODE: Memory address of the required configuration block Configuration block location (RAM / EEPROM) Specifies whether one or all configuration blocks should be accessed Bit: Function LOC MODE CFGn: Configuration block address The configuration blocks in the EEPROM are protected by a 16-bit CRC checksum. These checksums are checked every time the reader is reset. If an false checksum is discovered, the reader enters into the "EE Init Mode error status and resets the defective configuration block back to its default values. The LED 1 flashes alternately red and green. The reader responds to external commands with the 0x10 EEPROM Error status. You can exit EE-Init mode by another reset (cold start or [0x63] CPU Reset command). The reader then switches to the configured operating state if the checksum of all data records is correct. Note Malfunctions may occur if parameters are configured outside of their permissible range or if unspecified parameters are changed. The EEPROM is returned to its default settings when firmware is updated. The reader enters the "EE Init Mode error status. 1 Not available with SLG D11/D (4)J31069-D0138-U001-A3-7618

163 05/05 SLG D11/D12 configuration parameters (CFG) Description of configuration parameter structure Byte n Contents concerns RAM concerns EEPROM - reserved... Any changes to this parameter become effective immediately after this configuration block is written to or stored in the RAM. Any changes to this parameter become effective only after this configuration block has been written to / stored in the EEPROM and the reader has been reset. These bits or bytes are reserved for future extensions or for internal testing and production purposes. They must not be modified, as this may lead to faulty reader operation. (4)J31069-D0138-U001-A

164 SLG D11/D12 configuration parameters (CFG) 05/ CFG0: Reserved The configuration block CFG0 is reserved for later use. Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x CFG1: Interface Byte The parameters of configuration block CFG1 contain the data transmission settings. Contents 0x00 0x00 TR- COM-ADR 0x00 BAUD 1 TRANS- FORM 1 RESPONSE- TIME Default 0x00 0x08 0x01 0x00 0x baud e,8,1 Byte Contents TR- RESPONSE- TIME 0x00 0x00 0x00 0x00 0x00 READER- MODE Default 0x1E 0x00 3 seconds 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11} 162 (4)J31069-D0138-U001-A3-7618

165 05/05 SLG D11/D12 configuration parameters (CFG) COM-ADR: Reader bus address ( ) for communication via the asynchronous interface; intended for applications with an RS 485 interface. Note Do not configure address 255. The reader can be accessed via COM address 255 in the send protocol at any time. It then responds with the address that has been set up. BAUD 1 : The baud rate of the asynchronous interface is set here. BAUD Baud rate baud baud baud baud Note A change in baud rate does not take effect until after the CFG1 configuration block is written to/stored on the EEPROM and the reader is reset. The reader sets the baud rate to baud when an invalid baud rate has been set by the user. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11} (4)J31069-D0138-U001-A

166 SLG D11/D12 configuration parameters (CFG) 05/05 TRANS-FORM 1 : This byte is used to define various parameters of the data transmission format of the asynchronous interface. Bit: Function: S D P P: Parity P b00 b01 b02 b11 D: Data bits D b0 b1 Parity None Even Uneven Do not use. Data bits 8 Do not use. S: Stop bits S b0 b1 Stop bits 1 Do not use. Note Any changes to TRANS-FORM become effective only after configuration block CFG1 has been written to / stored on the EEPROM and the reader has been reset. Eight data bits and one stop bit must always be used. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11} 164 (4)J31069-D0138-U001-A3-7618

167 05/05 SLG D11/D12 configuration parameters (CFG) TR-RESPONSE-TIME: This parameter can be used to specify the maximum response duration for transponder commands. TR-RESPONSE-TIME starts when the reader has received a new command. The reader sends a response protocol at the latest after expiration of TR-RESPONSE- TIME. In this case, execution of current commands between reader and transponder are terminated. If this time is too short, the interface status [0x83] HF communication error appears. TR-RESPONSE-TIME Max. response duration * 100 msec Note TR-RESPONSE-TIME does not affect the protocols for the configuration of the reader and the protocols for the control of the reader. TR-RESPONSE-TIME must be less than block timeout in the settings of the COM port of the host. READER-MODE: This byte is used to specify the operating mode of the reader. Bit: Function: SCAN-E SCAN-E: Scan mode can be activated with this bit. SCAN-E Reader mode b0 ISO15693 host (see chap. 6.3) b1 Scan mode (see chap. 5.6) (4)J31069-D0138-U001-A

168 SLG D11/D12 configuration parameters (CFG) 05/ CFG2: General inputs/outputs 1 By using the following parameters, you can set the LED and buzzer operating mode at any time. One byte is reserved for enabled and one byte for silent. The operating mode settings are performed using these bytes as shown below. In addition, different LED flashing frequencies and buzzer intervals can be assigned to enabled and silent. Thus, the LED is used to indicate the operating mode. Byte Contents 0x00 0x00 0x00 IDLE- IDLE- 0x00 0x00 STATE FLASH Default 0xA9 0x00 Byte Contents ACTIVE- STATE ACTIVE- FLASH ACTIVE- GRN-TIME ACTIVE- RED-TIME ACTIVE- BUZZER- TIME Default 0x26 0x00 0x0A 0x0A 0x0A 1 second 1 second 1 second 0x00 0x00 Note The readers are equipped with a two-color LED (red / green). By combining the two basic colors, the color orange may also be produced. LED color: Red Green Red 1 0 Green 0 1 Orange Not available for SLG D11/D (4)J31069-D0138-U001-A3-7618

169 05/05 SLG D11/D12 configuration parameters (CFG) IDLE-STATE / ACTIVE-STATE One byte is used for the IDLE state (free) and one byte for the ACTIVE state (active) to set the operating mode of the signal transmitter. Bit: Function: Buzzer / LED (turn on) 0 Buzzer RED GRN Turn on buzzer / LED (in free state only) If this option has been selected, the buzzer and LED are switched on for two seconds after the reader is switched on to indicate that the reader is operational. After the reader is reset by the software, both LEDs light up for two seconds. GRN / RED / buzzer Bit combination Signal transmitter b00 Unchanged b01 On b10 Off b11 Alternates between on/off IDLE-FLASH / ACTIVE-FLASH With the IDLE-FLASH and ACTIVE-FLASH bytes, you can set the signal transmitter to different flashing frequencies for "idle" and "enabled". Bit: Function: 0 0 Buzzer RED GRN Bit combination b11 b10 b01 b00 Flashing frequency 1 Hz 2 Hz 4 Hz 8 Hz ACTIVE-xxx-TIME If a transponder has been detected, you can set the signal transmitter and duration using the ACTIVE-STATE and ACTIVE-FLASH bytes. Each signal transmitter (LED, buzzer) can be enabled for a limited period of time. Signal transmitter ACTIVE-GRN-TIME ACTIVE-RED-TIME ACTIVE-BUZZER-TIME Time period x 100 ms x 100 ms x 100 ms (4)J31069-D0138-U001-A

170 SLG D11/D12 configuration parameters (CFG) 05/ CFG3: HF interface The parameters of configuration block CFG3 contain global settings for the transponder driver and the reader. Byte Contents TAG-DRV 1 0x00 0x00 0x00 0x00 0x00 Default 0x000B Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 TAG-DRV 1 : Specifies the transponder types to be processed by the reader. Byte: 0 1 Bit: Driver D 0.B.A b0 Driver for this transponder type is disabled b1 Driver for this transponder type is enabled.a: Driver for I-CODE1.B: Driver for Tag-it HF.D: Driver for ISO15693 In general, you should only enable those transponder drivers that you require for a particular application. This will reduce reader response time to transponder read/write operations and rule out the possibility of parasitic transponder access as far as possible. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. 168 (4)J31069-D0138-U001-A3-7618

171 05/05 SLG D11/D12 configuration parameters (CFG) 5.5 CFG4: Transponder parameters The parameters of configuration block CFG4 contain general transponder settings. Byte Contents I-CODE- MODE FAM- CODE APP-ID 0x00 ISO MODE ISO AFI ISO OPTION Default 0x00 0x00 0x00 0x0F 0x00 0x0C Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 I-CODE-MODE: (I-CODE1 transponders only) Bit: Function: Mapping Mapping: Mapping b0 b1 Reserved I-Code1 memory model Note If mapping is set to I-Code1 memory model, host commands [0xA0] Read Config Block and [0xA1] Write Config Block are not available. Configuration blocks 0, 1 and 2 can now be changed with the command [0x24] Write Multiple Blocks at the I-Code1 address 2, 3 and 4. FAM-CODE: (I-CODE1 transponders only) Family code for selection a transponder (4)J31069-D0138-U001-A

172 SLG D11/D12 configuration parameters (CFG) 05/05 APP-ID: (I-CODE1 transponders only) Application ID for selecting a transponder Note If FAM-CODE and APP-ID are set to zero, all I-CODE1 transponders respond. Otherwise, only those transponders with the appropriate FAM-CODE and APP-ID respond. ISO15693-MODE: Bit: Function 0 0 AFI NO-TS DATA- RATE SUB- CARRIER MOD DATA- CODING DATA-CODING DATA-CODING b0 b1 Do not use. Fast mode (1 / 4) MOD MOD b0 b1 Do not use. 10% SUB-CARRIER SUB-CARRIER b0 b1 ASK (1 subcarrier) FSK (2 subcarriers) DATA-RATE DATA-RATE b0 b1 Do not use. High NO-TS NO-TS b0 b1 16 time slots 1 time slot 170 (4)J31069-D0138-U001-A3-7618

173 05/05 SLG D11/D12 configuration parameters (CFG) AFI b0 b1 AFI Disabled Enabled ISO15693-AFI: Code for the application family for selecting a transponder ISO15693-OPTION: Bit: Function WR-OPTION 0 0 WR-OPTION (supported as of firmware 2.04) WR-OPTION b00 Set automatically b10 Transponder option = 0 b11 Transponder option = 1 Note If the WR-OPTION is set automatically, the reader sets WR-OPTION to 0 when the ISO15693 host command is in not addressed mode. If a Tag-it HF transponder is used, WR-OPTION must be set to 1. For more details on the correct WR-OPTION, see chapter Supported ISO15693 host commands for ISO15693 transponders. (4)J31069-D0138-U001-A

174 SLG D11/D12 configuration parameters (CFG) 05/ CFG5: Anticollision The parameters of configuration block CFG5 contain anticollision settings. Byte Contents TIMESLOTS 1 0x00 0x00 0x00 0x00 0x00 0x00 Default 0x02 Byte Contents 0x00 0x00 0x00 0x0F ONT 0x00 0x00 Default 0x01 TIMESLOTS 1 : (I-CODE1 transponders only) Number of time slots with which the transponders are read. TIMESLOTS Number of time slots 0x x02 8 0x01 4 0x00 1 Each I-CODE1 transponder responds in a selected time slot. If too few time slots are selected for the number of transponders in the antenna field, only a limited number of transponders can be selected simultaneously. Too many time slots lead to lengthy delays. The optimum number of time slots lies at about twice the number of I-CODE1 transponders expected to be found in the antenna field at one time. 1 A plausibility test is performed when this parameter is stored in the reader. If an error occurs, the reader responds with STATUS = {0x11}. 172 (4)J31069-D0138-U001-A3-7618

175 05/05 SLG D11/D12 configuration parameters (CFG) ONT: Specifies which transponder data is to be sent to the host. Bit: Driver ONT ONT: ONT b0 b1 Function The data of all transponders in the field are sent to the host. The reader executes an RF reset prior to each command that reads an UID. Only the data of the newly selected transponders are sent to the host. (4)J31069-D0138-U001-A

176 SLG D11/D12 configuration parameters (CFG) 05/ CFG6: Scan mode 1 The parameters of configuration block CFG6 contain the settings for the scan mode. You can activate the scan mode by setting the SCAN-MODE bit in configuration block 1 (see chap. 5.1). Byte Contents SCANNER- MODE Standard SLG D11/D12 0x00 0x00 SCAN- DATA 0x00 0x00 SCAN- LOCK- TIME 0x02 0x01 0x00 Byte Contents SCAN- LOCK-TIME Standard SLG D11/D12 0x0A 1 second 0x00 0x00 0x00 DB-ADR D-LGT D-START 0x00 0x04 0x00 SCANNER-MODE: Specifies the type of scan procedure. Bit: Function Trigger mode MODE: Bit combination Mode b000 Read once b010 Read continuously Read once: (enabled during the read procedure ends after reading was sucessful) The reader ends the scan procedure as soon as all transponders in the recognition field have been decoded. Transponders which enter the antenna field are transmitted once. Read continuously The reader provides as many transponders as it can decode, regardless of whether or not these are always the same transponders. This operating mode is primarily suitable for demonstration and diagnosis purposes. 174 (4)J31069-D0138-U001-A3-7618

177 05/05 SLG D11/D12 configuration parameters (CFG) Trigger: Trigger Function b0 Trigger deactivated b1 Trigger activated Trigger deactivated: Note The reader begins scanning when the trigger is activated by the external switch. When trigger is enabled and not activated by the external switch, the HF field is off. SCAN-DATA: Selects the data types to be sent in the scan mode. Bit: Function Byte Order The reader scans continuously. This mode increases power consumption, however. Trigger activated: COM- Prefix DB UID UID When this bit is set, the UID is output. b0 b1 UID No output of the UID Output of the UID Function DB (data block) When this bit is set, a specified data field is output. b0 b1 DB No output of a data field Output of a data field Function COM prefix: When this option is set, the reader transfers the COM-ADR before each data record. b0 b1 COM prefix Function COM-ADR of the reader is not transferred. COM-ADR of the reader is transferred. (4)J31069-D0138-U001-A

178 SLG D11/D12 configuration parameters (CFG) 05/05 Byte order: Specifies the order of the bytes within the protocol frame Byte order Function b0 MSB first b1 LSB first SCAN-LOCK-TIME: ( * 10 msec = 10 msec min) SCAN-LOCK-TIME specifies the time during which the reader does not send the transponder data a second time after the first send procedure. It makes no difference whether or not the transponder is in the recognition field of the reader during SCAN-LOCK-TIME. SCAN-LOCK-TIME begins after the data are sent from the transponder to the reader. t r : t o : t s : Time for reading the transponder data Data transmission from reader to host SCAN-LOCK-TIME During the SCAN-LOCK-TIME it makes no difference whether or not the transponder is located in the recognition field of the reader. DB-ADR: Transponder address of the first data block which is transmitted in scan mode. Range: 0x00 to 0xFF For valid addresses, see chapter Storage model for I-CODE1 transponders and chapter Supported ISO15693 host commands for ISO15693 transponders. 176 (4)J31069-D0138-U001-A3-7618

179 05/05 SLG D11/D12 configuration parameters (CFG) D-LGT: D-LGT defines the length of raw data transferred during scan mode. The number of data bytes to be transferred, starting with D-START. Example: Data block Note A maximum of 254 bytes including UID, time and so on can be transferred with the interface. If more than 254 bytes are sent, the last bytes are cut off. D-START: This parameter defines the first byte of raw data (defined by DB-ADR and D-LGT) which is transferred in scan mode. To transfer the entire data block, D-START must be set to 0. Note The size of a data block depends on the type of transponder. (4)J31069-D0138-U001-A

180 SLG D11/D12 configuration parameters (CFG) 05/ CFG7: Scan mode 2 Byte Contents DB-USE SEP-CHAR SEP-USR END- CHAR Default 0x02 0x20 0x2C 0x01 0x0D END-USR 0x00 0x00 Byte Contents 0x00 0x00 0x00 0x00 0x00 0x00 0x00 DB-USE: Specifies the format of the data and their value Bit: Function DB-FORMAT DB-FORMAT: b0000 Unformatted hexadecimal data The data are sent here as they were read from the transponder. b0010 ASCII-formatted hexadecimal data The raw data received from the transponder are converted here to ASCII code before being sent. The data bytes are separated first into nibbles and then converted in accordance with the following table to ASCII characters. Raw Data (Hex./Binary) ASCII Data (ASCII/Hex) 0x0 b x30 0x1 b x31 0x2 b x32 0x3 b x33 0x4 b x34 0x5 b x35 0x6 b x36 0x7 b x37 0x8 b x38 0x9 b x39 0xA b1010 A 0x41 0xB b1011 B 0x (4)J31069-D0138-U001-A3-7618

181 05/05 SLG D11/D12 configuration parameters (CFG) 0xC b1100 C 0x43 0xD b1101 D 0x44 0xE b1110 E 0x45 0xF b1111 F 0x46 SEP-CHAR / END-CHAR: Specifies the separation character/end character between two data types for send data. Bit: Function USER, ; TAB CR LF CR+LF ASCII Hex CR+LF 0x0D and 0x0A CR 0x0D LF 0x0A TAB 0x07 ; 0x3B, 0x2C 0x20 USER User-defined in SEP-USR/END-USR Note Only one option can be selected. SEP-USR: User-defined separation character END-USR: User-defined end character (4)J31069-D0138-U001-A

182 Description of protocols for SLG D11/D12 05/05 6 Description of protocols for SLG D11/D Protocols for configuring the reader Using the reader configuration protocols, the reader can be adapted to a wide range of specific conditions for different applications [0x80] Read Configuration >"Read Configuration lets you determine the current configuration of the reader. The configuration is read in blocks of 14 bytes each and addressed by CFGn in the CFG-ADR byte. Host reader ,6 6 COM-ADR [0x80] CFG-ADR CRC16 Host reader ,20 20 COM-ADR [0x80] STATUS 1 CFG-REC CRC16 CFG-ADR 2 : Bit: Function LOC 0 CFGn: Configuration block address CFGn: Memory address of the required configuration block LOC: Configuration block location LOC Block location 0 1 RAM EEPROM CFG-REC: Configuration block with a length of 14 bytes that was read from address CFGn in CFG-ADR. Note A read access to the EEPROM with reserved configuration blocks leads to error message 0x15. 1 See chap Index of status bytes 2 See chap. 5 SLG D11/D12 configuration parameters (CFG) 180 (4)J31069-D0138-U001-A3-7618

183 05/05 Description of protocols for SLG D11/D [0x81] Write Configuration The Write Configuration command lets you modify the reader configuration. To do so, write blocks with a length of 14 bytes each to the configuration memory. The blocks are addressed via CFGn in the CFG-ADR byte. A description of the parameters is found in chap. 5 SLG D10 configuration parameters (CFG). Host reader ,20 20 COM-ADR [0x81] CFG-ADR CFG-REC CRC16 Host reader ,6 6 COM-ADR [0x81] STATUS 1 CRC16 CFG-ADR 2 : Bit: Function LOC 0 CFGn: Configuration block address CFGn: Memory address of the required configuration block LOC: Configuration block location LOC Block location b0 b1 RAM EEPROM CFG-REC: Configuration block with a length of 14 bytes that is stored in the reader configuration memory under the CFGn address. Note A write access to the EEPROM with reserved configuration blocks leads to error code 0x16. 1 See chap Index of status bytes 2 See chap. 5 SLG D11/D12 configuration parameters (CFG) (4)J31069-D0138-U001-A

184 Description of protocols for SLG D11/D12 05/ [0x82] Save Configuration This command is used to save the configuration block in the RAM to the EEPROM. Host reader ,6 6 COM-ADR [0x82] CFG-ADR CRC16 Host reader ,6 6 COM-ADR [0x82] STATUS 1 CRC16 CFG-ADR 2 : Bit: Function 0 MODE CFGn: Configuration block address CFGn: Memory address of the required configuration block MODE: Specifies whether one or all configuration blocks should be saved MODE Save procedure b0 The configuration block defined by CFGn is saved b1 All configuration blocks are saved Note To protect the configuration in the RAM from being lost when the device is switched off, use [0x82] Save Configuration. A save procedure to the EEPROM with reserved configuration blocks leads to error code 0x16. 1 See chap Index of status bytes 2 See chap. 5 SLG D11/D12 configuration parameters (CFG) 182 (4)J31069-D0138-U001-A3-7618

185 05/05 Description of protocols for SLG D11/D [0x83] Set Default Configuration The Set Default Configuration command lets you reset each configuration block to the default settings of the manufacturer. Host reader ,6 6 COM-ADR [0x83] CFG-ADR CRC16 Host reader ,6 6 COM-ADR [0x83] STATUS CRC16 CFG-ADR: Bit: Function LOC MODE CFGn: Configuration block address CFGn: Memory address of the required configuration block MODE: Specifies whether one or all configuration blocks should be reset MODE Type b0 The configuration block defined by CFGn is reset b1 All configuration blocks are reset LOC: b0 b1 Position of the configuration block LOC Type RAM RAM and EEPROM Note To protect the configuration in the RAM from being lost when the device is switched off, use [0x82] Save Configuration. A Set Default Configuration with reserved configuration blocks will cause an error code. (4)J31069-D0138-U001-A

186 Description of protocols for SLG D11/D12 05/ Protocols for controlling the reader [0x52] Baud Rate Detection This protocol is used to determine the baud rate set for the asynchronous interface of the reader. Host reader ,6 6 COM-ADR [0x52] 0x00 CRC16 Host reader ,6 6 COM-ADR [0x52] 0x00 CRC16 Note The response protocol is only sent if the request was executed with the baud rate and correct parity of the reader [0x55] Start Flash Loader This protocol starts the flash loader of the reader. The SLG D11/D12 firmware is loaded at the factory. Host reader ,5 5 0x00 [0x55] CRC16 Host reader ,6 6 0x00 [0x55] 0x00 CRC16 Note This command is only available if the COM-ADR of the reader is set to (4)J31069-D0138-U001-A3-7618

187 05/05 Description of protocols for SLG D11/D [0x63] CPU Reset This protocol lets you reset the reader CPU. Host reader ,5 5 COM-ADR [0x63] CRC16 Host reader ,6 6 COM-ADR [0x63] STATUS 1 CRC16 Note After a CPU Reset, the HF field is off. 1 See chap Index of status bytes (4)J31069-D0138-U001-A

188 Description of protocols for SLG D11/D12 05/ [0x65] Get Software Version This protocol lets you determine the reader software version, the reader type and the transponder types supported by the software. Host reader ,5 5 COM-ADR [0x65] CRC16 Host reader , COM-ADR [0x65] STATUS 1 SW-REV D-REV ,11 12,13 0 SW-TYPE TR-TYPE CRC16 SW-REV: Firmware version D-REV: Version of development firmware. D-REV is set to "0" for customized firmware versions. SW-TYPE: Reader firmware type SW-TYPE Reader type 0x4A SLG D11/D12 TR-TYPE: Shows the transponders supported by the software. Bit: Function: Bit: Function: ISO Tag-it HF I- CODE1 1 See chap Index of status bytes 186 (4)J31069-D0138-U001-A3-7618

189 05/05 Description of protocols for SLG D11/D [0x69] RF Reset The HF field of the reader antenna can be switched off for t rf = 15 ms using the RF Reset command. This resets all transponders within the antenna field of the reader back to their basic setting. Host reader ,5 5 COM-ADR [0x69] CRC16 Host reader ,6 6 COM-ADR [0x69] STATUS 1 CRC16 Note After the RF Reset command, the reader cannot receive new transponders before time t rf has expired. After the RF Reset command, transponders that are located within the antenna field must be reselected. The response of this command is sent after the reset [0x6A] RF ON/OFF The "RF ON/OFF command switches the HF field of the reader antenna ON or OFF. Host reader ,6 6 COM-ADR [0x6A] RF CRC16 Host reader ,6 6 COM-ADR [0x6A] STATUS 1 CRC16 RF: 0x00 0x01 RF OFF ON HF field of reader antenna 1 See chap Index of status bytes (4)J31069-D0138-U001-A

190 Description of protocols for SLG D11/D12 05/ [0x71] Set Output 1 The "Set Output" command lets you enable the digital outputs or indicators (LED, buzzer) of the reader for a limited or unlimited period of time. Each output takes on the state of the OS byte druing the time period indicated in the protocol. The flashing frequency is specified by the OSF byte. This protocol can be used to switch the buzzer and the LEDs on or off for the specified length of time. When the reader receives the "Set Output" command, all times that have been active up to that point in time are overwritten by the new times contained in the protocol, provided they >0. Host reader ,5 6,7 13 COM-ADR [0x71] OS OSF 8,9 10,11 12,13 OS-TIME 0x0000 CRC16 Host reader ,6 6 COM-ADR [0x71] STATUS 2 CRC16 OS: The OS word ("Output State ) specifies the state of the signal transmitters (LEDs and buzzer) during the time period indicated in "OS-Time". The signal tansmitters can be selected individually or as a group. Bit: Function: Buzzer mode Red LED mode Green LED mode Mode Function b00 UNCHANGED OS-Time does not change the state of the signal transmitter b01 ON Signal transmitter during OS-Time = enabled b10 OFF Signal transmitter during OS-Time = disabled b11 FLASHES Signal transmitter during OS-Time = alternates with OSF 1 Connections have not been led out in SLG D12 2 See chap Index of status bytes 188 (4)J31069-D0138-U001-A3-7618

191 05/05 Description of protocols for SLG D11/D12 OSF: The OSF word ("Output State Flash, output flashing frequency) lets you assign a separate flashing or pulse frequency to each LED and buzzer. Bit: Function: Buzzer freq. (OUT1) Red LED freq. Green LED freq. b11 b10 b01 b00 Freq. 1 Hz 2 Hz 4 Hz 8 Hz Frequency OS-TIME The value set for OS-TIME lets you enable the LEDs and the buzzer for a certain time period or continuously. OS-TIME 0x0000 0x xFFFE 0xFFFF State of LEDs/Buzzer Unchanged 1 x 100 msec 100 msec active x 100 msec 1:49:13 h active Always active Note To reset a signal transmitter than is enabled continuosly, send the reader a value of 1 for "OS-Time". The reader then switches to the idle state after 100 ms. A continuously enabled signal transmitter is reset as a result of a reset procedure or power failure. (4)J31069-D0138-U001-A

192 Description of protocols for SLG D11/D12 05/ Special commands [0x1B] Reset QUIET Bit (I-CODE1 transponders only) This command resets the QUIET bit of all I-CODE1 transponders in the antenna field. Following this command, transponders that were previously in the resting mode are re-enabled. chap Memory model for I-CODE1 transponders describes how to enable the resting mode for I-CODE1 transponders. Host reader ,5 5 COM-ADR 0x1B CRC16 Host reader ,6 6 COM-ADR 0x1B STATUS 1 CRC16 1 See chap Index of status bytes 190 (4)J31069-D0138-U001-A3-7618

193 05/05 Description of protocols for SLG D11/D Protocols for ISO15693 host commands Supported ISO15693 host commands for ISO15693 transponders The command codes listed in the following table support the various transponder commands and functions of each ISO15693 transponder type Infineon (my-d) IC manufacturer's ID: 0x05 Memory organization: SRF55V10P: 128 x 8 bytes = 8 Kbits SRF55V02P: 32 x 8 bytes = 2 Kbits No. of blocks 128 (user range: 3 to 127) No. of blocks 32 (user range: 3 to 31) Block length 8 bytes Block length 8 bytes Command Code Command Mode Remarks Not Addressed Addressed Selected 0x01 Inventory - - 0x02 Stay Quiet - - 0x22 Lock Multiple Blocks 1 - WR-OPTION = 0 2 0x23 Read Multiple Blocks 1 - DB-SIZE = 8 Security status is always 0x00 0x24 Write Multiple Blocks 1 - DB-SIZE = 8, WR-OPTION = 0 2 0x25 Select - - 0x26 Reset to Ready WR-OPTION = 0 2 0x27 Write AFI WR-OPTION = 0 2 0x28 Lock AFI 0x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status Customer-specific commands (0x10) read, (0x30) write and (0x90) write byte are used automatically by the reader. 2 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG4 is set to 00:automatically set. See chapter 5.5 CFG4: Transponder parameters. (4)J31069-D0138-U001-A

194 Description of protocols for SLG D11/D12 05/ Philips (I-Code SLI) IC manufacturer's ID: 0x04 Memory organization: 32 x 4 bytes = 1 Kbit No. of blocks 32 (user range: 0 to 27) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 0 1 0x23 Read Multiple Blocks DB-SIZE = 4 Security status is always 0x00 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 0 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 0 1 0x28 Lock AFI WR-OPTION = 0 1 0x29 Write DSFID WR-OPTION = 0 1 0x2A Lock DSFID WR-OPTION = 0 1 0x2B Get System Information 0x2C Get Multiple Block Security Status 1 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG4 is set to 00:automatically set. See chapter 5.5 CFG4: Transponder parameters. 192 (4)J31069-D0138-U001-A3-7618

195 05/05 Description of protocols for SLG D11/D STMicroelectronics (LRI512) IC manufacturer's ID: 0x02 Memory organization: 16 x 4 bytes = 512 bits No. of blocks 16 (user range: 0 to 15) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 0 1 0x23 Read Multiple Blocks ( ) DB-N must be 1 in "not addressed" mode. 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 0 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 0 1 0x28 Lock AFI WR-OPTION = 0 1 0x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG4 is set to 00:automatically set. See chapter 5.5 CFG4: Transponder parameters. (4)J31069-D0138-U001-A

196 Description of protocols for SLG D11/D12 05/ Texas Instruments (Tag-it HFI) IC manufacturer's ID: 0x07 Memory organization: 64 x 4 bytes = 2 Kbits of user data No. of blocks 64 (user range: 0 to 63) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet - - Not Addressed Addressed Selected 0x22 Lock Multiple Blocks WR-OPTION = 1 1 0x23 Read Multiple Blocks DB-SIZE = 4 0x24 Write Multiple Blocks DB-SIZE = 4, WR-OPTION = 1 1 0x25 Select - - 0x26 Reset to Ready 0x27 Write AFI WR-OPTION = 1 1 0x28 Lock AFI WR-OPTION = 1 1 0x29 Write DSFID WR-OPTION = 1 1 0x2A Lock DSFID WR-OPTION = 1 1 0x2B Get System Information 0x2C Get Multiple Block Security Status Note The reader automatically uses the commands Write_2_Blocks and Lock_2_Blocks. This only takes effect when the block address starts with an even-number address. The command Write_2_Blocks / Lock_2_Blocks is combined with the command Write Single Block / Lock Single Block when an odd number of blocks must be written and locked. 1 WR-OPTION is automatically set by MOBY D readers when the WR-OPTION parameter in CFG4 is set to 00:automatically set. See chapter 5.5 CFG4: Transponder parameters. In not addressed mode, the WR-OPTION must be set by hand to WR-OPTION = (4)J31069-D0138-U001-A3-7618

197 05/05 Description of protocols for SLG D11/D Supported ISO15693 host commands for I-Code1 Transponders The command codes listed in the following table support the various transponder commands and functions of the I-Code1 transponder types. Memory organization: 16 x 4 bytes = 512 bits No. of blocks 16 (user range: 0 to 11) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet x22 Lock Multiple Blocks x23 Read Multiple Blocks - 0x24 Write Multiple Blocks - - 0x25 Select x26 Reset to Ready x27 Write AFI x28 Lock AFI x29 Write DSFID x2A Lock DSFID x2B Get System Information x2C Get Multiple Block Security Status xA0 Read Config Block - - 0xA1 Write Config Block - - Not Addressed Addressed Selected (4)J31069-D0138-U001-A

198 Description of protocols for SLG D11/D12 05/ Supported ISO15693 host commands for Tag-it HF Transponders The command codes listed in the following table support the various transponder commands and functions of the Tag-it HF transponder types. Memory organization: 8 x 4 bytes = 256 bits No. of blocks 8 (user range: 0 to 7) Block length 4 bytes Command Code Command Mode Remarks 0x01 Inventory x02 Stay Quiet x22 Lock Multiple Blocks - 0x23 Read Multiple Blocks - 0x24 Write Multiple Blocks - 0x25 Select x26 Reset to Ready x27 Write AFI x28 Lock AFI x29 Write DSFID x2A Lock DSFID x2B Get System Information - 0x2C Get Multiple Block Security Status xA0 Read Config Block xA1 Write Config Block Not Addressed Addressed Selected 196 (4)J31069-D0138-U001-A3-7618

199 05/05 Description of protocols for SLG D11/D [0xB0] Host commands for ISO15693: required and optional commands This command sends RF commands as defined by ISO15693 to the transponder. Host reader (n-2) (n-1),n n COM-ADR [0xB0] REQUEST- DATA Host reader CRC (n-2) (n-1),n n COM-ADR [0xB0] STATUS RESPONSE- DATA CRC16 REQUEST-DATA: Command-specific request RESPONSE-DATA: Command-specific response Note Data are only transmitted if STATUS = {0x00, 0x83, 0x94, 0x95}. The commands will not function when Scan mode is activated. (4)J31069-D0138-U001-A

200 Description of protocols for SLG D11/D12 05/ [0x01] Inventory This command reads the UIDs of all transponders in the antenna field. When the reader detects a new transponder, it automatically switches the transponder to the idle state. In this state the transponder does not send a response to the next inventory command. The transponder always sends a response under one of the following conditions. It has exited and reentered the antenna field. A [0x69] RF Reset command was sent to the reader. The ONT bit in register ONT of configuration block CFG5: Anticollision (see chap. 5.6) is not set. REQUEST-DATA 4 5 0x01 MODE RESPONSE-DATA DATA-SETS TR-TYPE DSFID UID DATA-SETS repeated MODE: Bit: Function MORE MORE: MORE b0 b1 New inventory is requested Additional data is requested (More than 24 data records are available with status [0x94]. DATA-SETS: Number of transponder data sets to be transmitted in this reader response. TR-TYPE: Transponder type. See chap Codes for transponder types. 198 (4)J31069-D0138-U001-A3-7618

201 05/05 Description of protocols for SLG D11/D12 DSFID: (ISO15693 transponders only) Data Storage Format Identifier of the transponder If not in use, this value returns {0x00}. UID: Transponder UID (read-only access) Note This command supports all transponders. If ONT = {b1}, the UIDs are only read from those transponders that entered the antenna field after the last execution of the "Inventory" command. If ONT = {b0}, an RF Reset is executed to read the UIDs of all transponders in the antenna field. If the STATUS byte in the protocol frame has the value {0x94}, additional UIDs can be read out from the reader with MORE = {b1}. (4)J31069-D0138-U001-A

202 Description of protocols for SLG D11/D12 05/ [0x02] Stay Quiet This command sets the transponder into the quiet state. REQUEST-DATA x02 MODE UID MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) Note This command only functions for ISO15693 transponders. 200 (4)J31069-D0138-U001-A3-7618

203 05/05 Description of protocols for SLG D11/D [0x22] Lock Multiple Blocks This command locks one or more data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. Note This command only functions for ISO15693 transponders and Tag-it HF. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 0x22 MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x03}) 5 DB-ADR-E RESPONSE-DATA (STATUS = {0x95}) 5 6 ISO DB-ADR-E ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. (4)J31069-D0138-U001-A

204 Description of protocols for SLG D11/D12 05/05 DB-ADR: Number of the first block to be locked. The first block number can lie between 0 and 255. DB-N: Number of data blocks to be locked, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-ADR-E: Block number in which the error occured. 202 (4)J31069-D0138-U001-A3-7618

205 05/05 Description of protocols for SLG D11/D [0x23] Read Multiple Blocks This command reads one or more data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 0x23 MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA n DB-N DB-SIZE SEC-STATUS DB DB-N repeated MODE: Bit: Function SEC ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected SEC: SEC b0 b1 SEC-STATUS always = {0x00} Security status of followed block in SEC-STATUS (4)J31069-D0138-U001-A

206 Description of protocols for SLG D11/D12 05/05 UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DB-ADR: Number of first block to be read. The first block number can lie between 0 and 255. DB-N: Number of data blocks to be read by the transponder, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-SIZE: Number of bytes in a data block This value depends on the specifications of the transponder manufacturer. See chapter Supported ISO15693 host commands for ISO15693 transponders. SEC-STATUS: Block security status of the last data block if supported by ISO15693 transponder. I-CODE1 transponders do not support this function. 204 (4)J31069-D0138-U001-A3-7618

207 05/05 Description of protocols for SLG D11/D12 DB: Requested data block. The block size is specified in DB-SIZE. Note A read procedure from a block sends the command for reading out a single block to the transponder. The reader handles this internally. If a transponder does not support commands for reading multiple blocks, mulitple blocks are read out of the transponder individually. Only one transponder can be read in the inaddressed mode. I-CODE1 and Tag-it HF transponders cannot be read in the selected mode. The command [0x01] Inventory must be executed to select the transponder before an addressed read access of an I-Code1 transponder even when the UID is known. If the transponder was already selected with an Inventory command, a nonaddressed read access of I-Code1 transponders is not possible. The selection must be canceled with the command [0x69] RF Reset. (4)J31069-D0138-U001-A

208 Description of protocols for SLG D11/D12 05/ [0x24] Write Multiple Blocks RESPONSE-DATA (STATUS = {0x03}) 5 DB-ADR-E This command writes one or several data blocks. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 8 / (16) 9...n / (17...n) 0x24 MODE UID DB-ADR DB-N DB-SIZE DB DB-N repeated RESPONSE-DATA (STATUS = {0x95}) 5 6 ISO DB-ADR-E ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Unaddressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DB-ADR: Address of the first block to be written to the transponder. The first block number can lie between 0 and (4)J31069-D0138-U001-A3-7618

209 05/05 Description of protocols for SLG D11/D12 DB-N: Number of data blocks to be written to the transponder, beginning with DB-ADR. The maximum value of DB-N depends on the block size. The maximum number of bytes is 128. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x DB-SIZE: Number of bytes in a data block This value depends on the specifications of the transponder manufacturer. See chapter Supported ISO15693 host commands for ISO15693 transponders. DB: The data block to be written to the transponder. The required block size is defined in DB-SIZE. The number of expected bytes is DB-N * DB-SIZE. ISO15693-ERROR: (ISO transponders only) ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DB-ADR-E: Block number in which the error occured. (4)J31069-D0138-U001-A

210 Description of protocols for SLG D11/D12 05/05 Note A write procedure to a block sends the command for writing a single block to the transponder. If a transponder does not support commands for writing multiple blocks, multiple blocks are written into the transponder individually. In I-CODE1 transponders, writing is only possible in the addressed mode. In Tag-it HF transponders, writing is not possible in the selected mode. When an error occurs during a write command, the number of the erroneous block is sent to the host. If the reader uses the I-Code1 memory model (see chap. 5.5 CFG4: Transponder parameters), the original I-Code 1 addresses must be used in DB-ADR. 208 (4)J31069-D0138-U001-A3-7618

211 05/05 Description of protocols for SLG D11/D [0x25] Select This command sets a transponder to the selected state. Only one ISO15693 transponder can be selected at any one time. A transponder that has already been selected is automatically set to the ready state. REQUEST-DATA x25 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

212 Description of protocols for SLG D11/D12 05/ [0x26] Reset to Ready This command sets a transponder to the ready state. REQUEST-DATA 4 5 (6...13) 0x26 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 210 (4)J31069-D0138-U001-A3-7618

213 05/05 Description of protocols for SLG D11/D [0x27] Write AFI This command writes a new AFI code to one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 0x27 MODE UID AFI RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. AFI: Application Family Identifier of the transponder ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

214 Description of protocols for SLG D11/D12 05/ [0x28] Lock AFI This command locks the AFI register in one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 0x28 MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 212 (4)J31069-D0138-U001-A3-7618

215 05/05 Description of protocols for SLG D11/D [0x29] Write DSFID This command writes the DSFID to one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 6 / (14) 0x29 MODE UID DSFID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DSFID: Data Storage Format Identifier of the transponder ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. (4)J31069-D0138-U001-A

216 Description of protocols for SLG D11/D12 05/ [0x2A] Lock DSFID This command locks the DSFID register in one or more transponders. Different ISO15693 host commands are supported depending on the ISO15693 transponder type. These are described in chapter Supported ISO15693 host commands for ISO15693 transponders. REQUEST-DATA 4 5 (6...13) 0x2A MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. Note This command only functions for ISO15693 transponders. 214 (4)J31069-D0138-U001-A3-7618

217 05/05 Description of protocols for SLG D11/D [0x2B] Get System Information This command reads out the system information from a transponder. REQUEST-DATA 4 5 (6...13) 0x2B MODE UID RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA ,16 17 DSFID UID AFI MEM-SIZE IC-REF ISO Only LSB (32 bits) valid Manufacturer Code MEM-SIZE Chip Version Tag-it HF MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. DSFID: Data Storage Format Identifier of the transponder Only LSB: The LSB (32 bits) of the write protected UID of the transponder. (4)J31069-D0138-U001-A

218 Description of protocols for SLG D11/D12 05/05 AFI: Application Family Identifier of the transponder If not supported by the transponder, this value is {0x00}. Manufacturer Code: MEM-SIZE: Manufacturer code (see chapter Codes for transponder types) Memory size of the transponder. If not supported by the transponder, this value is {0x00}. Byte Bit Contents In res. Block size in bytes Number of blocks IC-REF: IC reference (version) of the transponder. If not supported by the transponder, this value is {0x00}. Chip Version: Chip version of the transponder Note This command only functions for ISO15693 transponders and Tag-it HF transponders. 216 (4)J31069-D0138-U001-A3-7618

219 05/05 Description of protocols for SLG D11/D [0x2C] Get Multiple Block Security Status This command reads out the security status for public blocks from a transponder. REQUEST-DATA 4 5 (6...13) 6 / (14) 7 / (15) 0x2C MODE UID DB-ADR DB-N RESPONSE-DATA (STATUS = {0x95}) 5 ISO ERROR RESPONSE-DATA 5 6 DB-N SEC-STATUS DB-N repeated MODE: Bit: Function ADR ADR: ADR b000 b001 b010 Not addressed Addressed Selected UID: Transponder UID (read-only access). The UID is only required in the addressed mode. DB-ADR: Number of the first block whose security status is requested. Valid values range from 0 and 255. (4)J31069-D0138-U001-A

220 Description of protocols for SLG D11/D12 05/05 DB-N: The number of security data blocks to be read starting with DB-ADR. The maximum value of DB-N depends on the block size. DB-Size 4 8 x Max. DB-N 0x20 = 32 0x10 = 16 = 128 / x ISO15693-ERROR: ISO15693 error code of the transponder response. This byte is only available if STATUS = {0x95}. SEC-STATUS: Block security status. Note This command only functions for ISO15693 transponders. 218 (4)J31069-D0138-U001-A3-7618

221 05/05 Description of protocols for SLG D11/D [0xA0] Read Config Block This command reads a configuration block from the MOBY D memory model (see chap Storage model for I-CODE1 transponders). REQUEST-DATA xA0 MODE UID CB-ADR RESPONSE-DATA CB MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) CB-ADR: Address of the configuration block to be read by the transponder. CB: Requested configuration block Note This command only functions for I-CODE1 and Tag-it HF transponders. This command is not available when the reader is set to the I-Code1 memory model (see chap. 5.5 CFG4: Transponder parameters, I-CODE-MODE). Configuration blocks 0, 1, 2 can now be read with the command [0x23] Read Multiple Blocks from I-Code1 address 2, 3, 4. (4)J31069-D0138-U001-A

222 Description of protocols for SLG D11/D12 05/ [0xA1] Write Config Block This command writes a configuration block to the MOBY D memory model (see chap Storage model for I-CODE1 transponders). REQUEST-DATA xA1 MODE UID CB-ADR CB MODE: Bit: Function ADR ADR: ADR b001 Addressed UID: Transponder UID (read-only access) CB-ADR: Address of the configuration block to be written to the transponder. CB: The configuration block to be written to the transponder. Note This command only functions for I-CODE1 and Tag-it HF transponders. This command is not available when the reader is set to the I-Code1 memory model (see chap. 5.5 CFG4: Transponder parameters, I-CODE-MODE). Configuration blocks 0, 1, 2 can now be written with the command [0x24] Write Multiple Blocks to I-Code1 address 2, 3, (4)J31069-D0138-U001-A3-7618

223 05/05 Description of protocols for SLG D11/D12 Example of write-accessing configuration block 0 of a tag-it HF transponder Configuration block 0 activates protective functions of the transponder ( 1 : r/w, 0 : ro). The reader only evaluates bits with the value 0 in LSB (byte 0) b xxxx xxxx b xxxx xxxx b xxxx xxxx b It attempts to lock blocks 0, 2, 5 and 6. If a block is already locked, the status is set to [0x00]. With ISO15693 transponders, the command [0x22] Lock Multiple Blocks must be used. (4)J31069-D0138-U001-A

224 Description of protocols for SLG D11/D12 05/ [0xB1] Host commands for ISO15693: user-specific and manufacturer-specific commands This command sends user-specific and manufacturer-specific commands to the transponder. Host reader (n-2) (n-1),n n COM-ADR [0xB1] MFR REQUEST- DATA Host reader CRC (n-2) (n-1),n n COM-ADR [0xB1] STATUS RESPONSE- DATA CRC16 MFR: Manufacturer code MFR 0xXX REQUEST-DATA: Manufacturer-specific request RESPONSE-DATA: Manufacturer-specific response Note Data are only transmitted if STATUS = {0x00, 0x83, 0x94, 0x95}. This command does not function if the scan mode is enabled. 222 (4)J31069-D0138-U001-A3-7618

225 05/05 Description of protocols for SLG D11/D [0xBF] ISO15693 transparent command This command sends user-transparent commands to the transponder. Host reader ,6 n COM-ADR [0xBF] MODE RSP- LENGTH MODE 1+2 7,8 9...(n-2) (n-1),n Reserved REQUEST- DATA CRC16 MODE 3+4 7,8 9, (n-2) (n-1),n Reserved EOF-PULSE- DELAY REQUEST- DATA CRC16 Host reader MODE 5 7,8 9, (n-2) (n-1),n Reserved MULTIPLE 302 GRIDS REQUEST- DATA (n-2) (n-1),n n COM-ADR [0xBF] STATUS RESPONSE- DATA CRC16 CRC16 MODE: Request options 0x01 = Read scan Response is scanned after ISO T1 (318.6 µsec to µsec) 0x02 = Write scan with option 0 The reader attempts to scan the response after ISO T1 (318.6 µsec to µsec). If it does not receive a reply, the reader scans again after 302 µsec). When a reply does not arrive within 20 msec, the command returns the status no transponder [0x01]. Depending on the error flag in the transponder reply, the length of the scanned data is: 4 bytes with error flag = 1 RSP-LENGTH with error flag = 0 0x03 = Write scan with option 1 The reader attempts to receive a response after ISO T1 (318.6 µsec to µsec). If no response arrives, the reader sends an EOF after EOF-PULSE-DELAY and, after ISO T1 (318.6 µsec to µsec) attempts to receive the response. (4)J31069-D0138-U001-A

226 Description of protocols for SLG D11/D12 05/05 0x04 = Inventory request The reader attempts to receive a response after ISO T1 (318.6 µsec to µsec). Execution depends on the Nb_slot_flag flag in accordance with ISO15693 as follows: 0 The reader sends an EOF after EOF-PULSE-DELAY and, in the next time slot, again attempts to receive a response (after ISO T1 (318.6 µsec to µsec)). This procedure is repeated 16 times. In this case, RSP-LENGTH specifies the response length in a time slot. Transponder responses with a different response length are ignored. If there is a checksum error in one of the time slots, the protocol status is set to 0x02 [CRC error]. The user must calculate where in the transponder data the error occurred. 1 The reader sends the received data back. 0x05 = Write scan with option 0 and time interval for the response After ISO T1 (318.6 µsec to µsec), the reader attempts to read a response. If no response arrives, the reader reads at the time intervals specified in MULTIPLE 302µsec GRIDS. If no response arrives, the command returns the status no transponder 0x01. Depending on the error flag in the transponder response, the length of the read data is: 4 bytes if error flag = 1 RSP-LENGTH if error flag = 0 RSP-LENGTH: Transponder response length in bits without SOF and EOF With write operations, RSP-LENGTH depends on the error flag in the transponder response. 4 bytes if error flag = 1 RSP-LENGTH if error flag = 0 Reserved (CMD-RSP-DELAY) EOF-PULSE-DELAY: Not used in the MOBY D protocol. To avoid problems with other MOBY D readers, this value should equal the response delay of the transponder response (ISO15693: T1) and should, for example, have the ISO15693 average value: {0x021F} * 590 ns = µs The EOF pulse delay is used in write procedures with ISO15693 write option 1. It is used to specify the response delay of the transponder response (ISO15693: T1). E.g. ISO15693 maximum value: {0x846A} * 590 ns = 20 ms 224 (4)J31069-D0138-U001-A3-7618

227 05/05 Description of protocols for SLG D11/D12 REQUEST-DATA: Complete transponder request without SOF, CRC16 and EOF Note The FLAGS for the read and write options in REQUEST-DATA must correspond to the MODE byte in the request protocol. The reader always forces a command according to the method specified in the MODE byte of the request protocol. RESPONSE-DATA: Complete transponder response without SOF and EOF. The reader performs a CRC16 checksum test. However, it is the CRC16 of the transponder that is transmitted with the response data. Note Data are only transmitted if STATUS = {0x00, 0x83, 0x94, 0x95}. The response data always consist of the number of data bytes specified in RSP-LENGTH. Note This command only functions for ISO15693 transponders. This command does not function if the scan mode is enabled. (4)J31069-D0138-U001-A

228 Description of protocols for SLG D11/D12 05/ Appendix Codes for transponder types Value 0x00 0x01 0x03 Transponder type Philips I-CODE1 Texas Instruments Tag-it HF ISO15693 transponder The information is provided by executing the command [0x01] Inventory. 226 (4)J31069-D0138-U001-A3-7618

229 05/05 Description of protocols for SLG D11/D Time response of the asynchronous interface The reaction times of the asynchronous interface depend on the following factors: Quantity of data to be read or written Type and number of transponders supported by the reader Location of the transponder at the time of the request Any existing electromagnetic interference Success or failure of the request Minimum Typical Maximum Units I-CODE1 Tag-it HF EE parameter change 5 msec 1 block (16 bytes) all ( 8 ) blocks msec msec [0x1B] Reset QUIET Bit msec (only I-Code1 transponder) [0x69] RF Reset 5.1 msec [0xB0] Host commands for ISO15693: required and optional commands msec 1 2 [0xB1] Host commands 5 msec for ISO15693: userspecific and manufacturer-specific commands 1 2 [0xBF] ISO15693 transparent 5 msec command 1 For details, see chap Time response of the ISO15693 host commands 2 Same as set in CFG1: Interface, TR-RESPONSE-TIME (4)J31069-D0138-U001-A

230 Description of protocols for SLG D11/D12 05/ Time response of the ISO15693 host commands The reaction time to the ISO15693 host commands depends on the following factors: Number of transponders in the antenna field (duration of anticollision process) Quantity of data to be read or written Types of transponders supported by the reader Location of the transponder at the time of the request Any existing electromagnetic interference Time behavior of I-Code1 and Tag-it HF transponders (only reaction time) All times are based on the following parameters. See chap. 5.5 CFG4: Transponder parameters and chap. 5.6 CFG5: Anticollision. ISO15693-MODE = 0x0B Only the transponder driver being used is active. ONT = only the data of the newly selected transponder are sent to the host. Inventory with 1 transponder: 1 time slot 16 time slots Read multiple blocks: 1 block, unaddressed 1 block, addressed 4 blocks, unaddressed 4 blocks, addressed Write multiple blocks: 1 block, unaddressed 4 blocks, unaddressed Write multiple blocks (1 block, addressed): 1 time slot 16 time slots Write multiple blocks (4 blocks, addressed): 1 time slot 16 time slots Typical I-CODE1 Tag-it HF See table below Units msec msec msec msec msec msec msec msec msec msec msec msec msec msec msec 228 (4)J31069-D0138-U001-A3-7618

231 05/05 Description of protocols for SLG D11/D12 Read multiple blocks (I-CODE1 transponder) Number of Time Slots Blocks 1 16 Not Addressed Not Addressed Addressed Addressed 1 (4 bytes) (16 bytes) Time behavior of ISO15693 transponders All times are based on the following parameters. See chap. 5.5 CFG4: Transponder parameters and chap. 5.6 CFG5: Anticollision. ISO15693-MODE = 0x0B AFI deactivated 16 time slots Only ISO15693 transponder drivers active ONT = only the data of new transponders are sent to the host. Modulation and subcarrier have almost no measurable effect on the reaction time. (4)J31069-D0138-U001-A

232 Description of protocols for SLG D11/D12 05/05 Time behavior for [0x01] Inventory The following diagrams show average values for time behavior based on the number of transponders. With certain UIDs, the times may be greater or less than those shown below. Time behavior is measured including communication time at 38.4 kbaud. Other baud rates increase the times slightly. Since inventory timing is primarily based on anticollision, communication time can be disregarded. Execution time Send Tx Receive Rx + = Communication time Remember that the time behavior of the command Inventory [0xB0 0x01] depends on the MORE-Bit. MORE-Bit is set when the number of transponders exceeds 16. This means that, if MORE-Bit is set by the reader as the response to the Inventory command, communication time will be affected by the speed of the host system. 230 (4)J31069-D0138-U001-A3-7618

233 05/05 Description of protocols for SLG D11/D12 Execution time More data requested Send Tx Receive Rx + = Communication time Host Time reactions of general commands with independent transponder performance Command Execution time (msec) Communication time at 38.4 kbaud (msec) Addressed Selected Addressed Selected Stay Quiet Select Reset to Ready Get System Information Get Multiple Block Security Status 1 block blocks blocks blocks (4)J31069-D0138-U001-A

234 Description of protocols for SLG D11/D12 05/05 Time reactions of read functions Read 1 block 8 bytes 4 blocks 32 bytes 16 blocks 128 bytes All times are based on 1 time slot. Without security block Execution time (msec) Infineon my-d With security block Communication time at 38.4 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (28 blocks) 112 bytes Without security block Execution time (msec) Philips I-Code SLI With security block Communication time at 38.4 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes 32 blocks 128 bytes Without security block Execution time (msec) Texas Instruments Tag-it HFI With security block Communication time at 38.4 kbaud (msec) Addressed Selected Addressed Selected Addressed Selected (4)J31069-D0138-U001-A3-7618

235 05/05 Description of protocols for SLG D11/D12 Read 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes 16 blocks 64 bytes STMicroelectronics (LRI512) Execution time (msec) Communication time at 38.4 kbaud (msec) Without security block With security block Addressed Selected Addressed Selected Addressed Selected (4)J31069-D0138-U001-A

236 Description of protocols for SLG D11/D12 05/05 Time reactions of write functions Write 1 block 8 bytes 4 blocks 32 bytes 16 blocks 128 bytes All times are based on 1 time slot. Execution time (msec) Infineon my-d WR-Option = 0 Communication time at 38.4 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Selected Write AFI Lock AFI Write DSFID Lock DSFID Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (28 blocks) 112 bytes Execution time (msec) I-Code SLI WR-Option = 0 Communication time at 38.4 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Addressed Addressed Addressed Addressed Addressed Addressed Addressed Addressed Selected Write AFI Lock AFI Write DSFID Lock DSFID (4)J31069-D0138-U001-A3-7618

237 05/05 Description of protocols for SLG D11/D12 Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes 32 blocks 128 bytes Write AFI Lock AFI Write DSFID Lock DSFID Write 1 block 4 bytes 2 blocks 8 bytes 8 blocks 32 bytes (16 blocks) 64 bytes Execution time (msec) STMicroelectronics (LRI512) WR-Option = 0 Communication time at 38.4 kbaud (msec) Write data block Lock data block Write data block Lock data block Selected Selected Selected Texas Instruments Tag-it HFI WR-Option = 1 Execution time (msec) Communication time at 38.4 kbaud (msec) Write data block Lock data block Write data block Lock data block Addressesesed Selected Addres- Selected Addres- Selected Addressed Selected Addressed Addressed Addressed Addressed Selected Write AFI Lock AFI Write DSFID Lock DSFID (4)J31069-D0138-U001-A

238 Description of protocols for SLG D11/D12 05/ Index of status bytes Hexadecimal value 0x00 General information OK: Data / parameters correctly read or stored Control command executed Hexadecimal value 0x01 0x02 0x03 0x04 0x05 Transponder status No transponder: No transponder located in the detection field of the reader Transponder in the detection field was switched to silent Interference in communication between reader and transponder. The reader can no longer recognize the transponder. Incorrect data: CRC16 checksum error in the received data Write error: Plausibility test of the written data failed: Attempt to write to read-only area Distance between transponder and reader antenna too large Attempt to write under excessive ambient noise conditions Addressing error: The requested data are outside of the logical or physical addressing range of transponder: The address is outside of the maximum address range of the transponder. The address is outside of the configured address range of the transponder. Incorrect transponder type: This command is not supported by this transponder: Attempt to write to or read from a transponder A specific command is not supported by the transponder. Hexadecimal value 0x10 0x11 Parameter status EEPROM error: It is not possible to write to the EEPROM of the reader A faulty parameter checksum occurred prior to the write procedure to the EEPROM. Parameter outside of valid range: Valid parameter range exceeded 236 (4)J31069-D0138-U001-A3-7618

239 05/05 Description of protocols for SLG D11/D12 Hexadecimal value 0x80 0x81 0x82 0x83 0x94 0x95 Interface status Unknown command: Selected function not supported by reader Length error: Protocol is too short or too long Command not possible HF communication error: An error occurred in the communication between the transponder and reader. Possible causes: Algorithm for collision handling was interrupted before no more collision were detected. Causes for the interruption: Timeout during communication with the host Additional data: More transponder data sets were requested than the transponder protocol can transmit simultaneously. ISO15693 error: Additional error code for ISO15693 transponders was sent with the response data (4)J31069-D0138-U001-A

240 Description of protocols for SLG D11/D12 05/05 Error codes for ISO15693 transponders Hexadecimal value 0x01 0x02 0x03 0x0F 0x10 0x11 0x12 0x13 0x14 0xA0... 0xDF All other Explanation of error codes in the transponder response Command not supported (the request code is not recognized) Command not recognized (e.g. due to format error) Option not supported Unknown error Specified block does not exist Specified block has already been locked and cannot be re-locked Specificed block is locked and its contents cannot be modified Attempt to program the specified block failed Attempt to lock the specified block failed Error codes for user-specific commands Reserved for future use 238 (4)J31069-D0138-U001-A3-7618

241 05/05 Description of protocols for SLG D11/D Index of control bytes Control byte Description Page [0x52] [0x52] Baud Rate Detection 184 [0x63] [0x63] CPU Reset 185 [0x65] [0x65] Get Software Version 186 [0x69] [0x69] RF Reset 187 [0x6A] [0x6A] RF ON/OFF 187 [0x71] [0x71] Set Output 188 [0x80] [0x80] Read Configuration 180 [0x81] [0x81] Write Configuration 181 [0x82] [0x82] Save Configuration 182 [0x83] [0x83] Set Default Configuration 183 [0xB0] [0xB0] Host commands for ISO15693: required and optional commands Index of configuration parameters CFGn Description Access 1 Page 0 CFG0: Reserved RP/WP CFG1: Interface R/W CFG2: General inputs/outputs R/W CFG3: HF interface R/W CFG4: Transponder parameters R/W CFG5: Anticollision R/W CFG6: Scan mode 1 R/W CFG7: Scan mode 2 R/W WO = write only; R/W = read and write access; RP/WP = no access (4)J31069-D0138-U001-A

242 Description of protocols for SLG D11/D12 05/ Storage model for I-CODE1 transponders For access, the memory is subdivided into regions with a length of 4 bytes each. I-CODE1 address I-Scan address Contents Description Remarks UID UID (8 bytes) Read only 2 C0 Configuration Conditions for write access 3 C1 Special functions (EAS, QUIET bit) 4 C2 Family code / application ID 5 D0 User User memory 6 D1 7 D2 8 D3 9 D4 10 D5 11 D6 12 D7 13 D8 14 D9 15 D10 Read / write Can be set to "read only Read / write Can be set to "read only Note When writing data to a transponder, it must be ensured that the transponder remains completely inside the antenna field while writing is taking place. UID: This block contains a unique, 64-bit transponder UID (read-only access). Bit Byte Function UID, MSB UID, LSB 240 (4)J31069-D0138-U001-A3-7618

243 05/05 Description of protocols for SLG D11/D12 Configuration block 0: This block is used to enable protective functions of the transponder. The bits can be set to 0, but can never be set back to 1. After you have enabled write protection for block C0, you cannot enable any additional protective functions (hardware write protection) Bit Byte Function 1 I-Scan block = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro D = r/w, 0 = ro C = r/w, 0 = ro C = r/w, 0 = ro C = ro UID = ro UID 0 Procedure I-CODE1 block 1 ro = read only; r/w = read and write access (4)J31069-D0138-U001-A

244 Description of protocols for SLG D11/D12 05/05 Configuration block 1: This block is used to enable special functions (QUIET mode). If the QUIET node is enabled, the transponder is permanently disabled. It can be re-enabled using the "Reset QUIET Bit command. The I-CODE1 transponder responds to no command. Bit Byte Function 0 0 Reserved 1 1 : enable QUIET mode 0 : disable QUIET mode Bits 2 to 31 are reserved for future use and are set to "0 Configuration block 2: The family code and the application ID can be specified in this block. This function lets you create "transponder families". It is only enabled if the values are not equal to 0. Bit Byte Function Family code Application ID Bits 16 to 31 can be used for user data without restrictions. 242 (4)J31069-D0138-U001-A3-7618

245 05/05 Description of protocols for SLG D11/D Examples of Reading Data The setting LSB first and MSB first specifies the order of received data bytes. ISO15693 host command (DB-SIZE of transponder = 4 bytes) (4)J31069-D0138-U001-A

246 Description of protocols for SLG D11/D12 05/05 ISO15693 host command (DB-SIZE of transponder = 8 bytes) 244 (4)J31069-D0138-U001-A3-7618

247 05/05 Installing the FEISC-DLL 7 Installing the FEISC-DLL 7.1 Introduction The ID FEISC support package provides assistance in programming application sofware that integrates MOBY D readers and supports the ANSI-C, ANSI-C++ and Visual Basic programming languages 1 as well as basically any other language that can invoke C functions. This support package is only suited for the MS Windows 9x/ME/2000 and NT operating systems. 2. The support package provides a simple function interface to MOBY D. Each protocol described in the system manual of the MOBY D reader family has a separate function. The ID FECOM support package can be used for communication via a PC serial interface. The two support packages are perfectly coordinated with each other. However, there is no absolute necessity to use the ID FECOM. Those who wish to use their own interface functions can take advantage of the function collection of the ID FEISC for building and splitting protocols (see also chap. 8.1 Overview). The support package consists of the following components: File Use FEISC.DLL DLL with all functions FEISC.LIB LIB file for linking in C/C++ projects FEISCBOR.LIB LIB file for linking in C/C++ projects with a Borland compiler FEISC.H FEISCDEF.H FEISC.BAS FEISC.PAS Header file for C/C++ projects Header file with error codes for C/C++ projects (optional) Declare file for Visual Basic projects Declare file for Delphi projects 1 As of Visual Basic As of NT Version 3.51 (4)J31069-D0138-U001-A

248 Installing the FEISC-DLL 05/ Installation Installation is very simple: copy the following files to the corresponding directories. Copy FEISC.DLL to the application program directory or to the Windows system directory (recommended). For C/C++ programmers: Copy FEISC.LIB to the project or LIB directory or add FEISCBOR.LIB to your project Copy FEISC.H and FEISCDEF.H (optional) to the project directory or the IN- CLUDE directory For Visual Basic programmers: Copy the FEISC.BAS to the project directory For Delphi programmers: Copy FEISC.PAS to the project directory 7.3 Integration into the application program For C/C++ programmers: All functions can be used immediately once the LIB file has been made known to the development tool. Prerequisite is, of course, that the include instruction is used to declare the DLL functions within each source file that invokes FEISC functions. For Delphi programmers: Append FEISC to the USES statement in each source file of your project that invokes functions from FEISC.DLL.. For Visual Basic programmers: Add the FEISC.BAS file to your project. ID FECOM must also be integrated in your project if functions are invoked from it. 246 (4)J31069-D0138-U001-A3-7618

249 05/05 FEISC-DLL programming interface 8 FEISC-DLL programming interface 8.1 Overview For the convenience of the programmer, the FEISC-DLL encapsulates all functions and parameters necessary for simple communication with readers of the MOBY D family. With the aid of the ID FECOM support package, this makes it possible to use a function call to directly carry out all protocols contained in the system manual for the MOBY D reader family. The functions in the FEISC are only responsible for internal administration, protocol building, protocol splitting and any required error outputs. Communication with a MOBY D reader cannot be carried out using only the FEISC-DLL. However, it is possible to initiate a protocol output and to communicate with a MOBY D reader via an asynchronous serial interface using FECOM.DLL. Other interface drivers are not supported. Where it is necessary to use other asynchronous serial interface drivers, the scope of useable functions of the FEISC.DLL is severely restricted and any protocol traffic via the asynchronous serial interface must be coded by the programmer. In this case, the FEISC.DLL provides assistance in protocol building (FEISC_BuildProtocol) and protocol splitting (FEISC_SplitProtocol). Core elements of the DLL are the object manager and the reader objects generated during runtime. The object manager has a self-administration capability that frees up an application program from having to provide intermediate storage for any values, settings or other parameters. The object manager maintains a list of all generated reader objects. The reader object is the central program segment that executes the protocol functions and is assigned a connection to the serial interface if the FECOM.DLL is used. Each reader object administrates all settings relevant to its protocol tasks within its local memory. If you integrated the DLL into your project, the DLL is automatically opened at the start of the application program. This gives you immediate acess to all DLL functions. A reader object must be created prior to being used for the first time. This is carried out by the FEISC _NewReader function. In the absence of any errors, the return value contains a handle that is used by the application program as an access number. The generated reader object can only be uniquely identified using this handle. The object list can be called up using the FEISC_GetReaderList function if the self-administration capability is in use. The handles, which this function provides successively, can then be used together with the FEISC_GetReaderPara function to read out all of the settings relevant for this object. It is important that a reader object generated with FEISC_NewReader function be removed from the memory again using the FEISC_DeleteReader function. If an application program is invoked more than once, each program (instance) receives an empty object list when the FEISC_GetReaderList function is called. This prevents the access rights from becoming mixed up between different program instances. (4)J31069-D0138-U001-A

250 FEISC-DLL programming interface 05/05 The object-oriented inner structure (see Fig. 8-1) has intentionally been realized as a function interface on the outside. This brings with it the advantage of language independence. FEISC.DLL FECOM.DLL FEISC_NewReader FEISC_DeleteReader FEISC_GetReaderList FEISC_GetDLLVersion Object manager - List of ReaderHandles - Version number Reader object - ReaderHandle - PortHandle - Parameters Reader object - ReaderHandle - PortHandle - Parameters Port object FEISC_GetReaderPara FEISC_SetReaderPara FEISC_BuildProtocol FEISC_SplitProtocol FEISC_SendTransparent FEISC_GetLastSendProt FEISC_GetLastRecProt FEISC_GetLastStatus FEISC_0xA0_RdLogin Fig. 8-1: Internal structure of FEISC.DLL Fig. 8-1 illustrates that several reader objects can share a common serial interface in FECOM. Conflicts will not arise as long as access to the port object within a working thread takes place sequentially. By contrast, appropriate precautions must be taken in a multithreading or multi-process environment. These have not been implemented in FECOM or FEISC. Almost every DLL function has a return value which is always negative in the event of an error. 248 (4)J31069-D0138-U001-A3-7618

251 05/05 FEISC-DLL programming interface 8.2 Parameter passing Some functions support the passing of parameters both as null-terminated character strings and as an array of hex numbers. Both data types allow passing of parameters as character type UCHAR. The interpretation of the passed value is specified by the idatatype function parameter. idatatype Parameter passing Is interpreted as a pointer to 0 0x23, 0x56, 0xFA, 0xA6 (internally, 0x23 corresponds to the "#" character; 0x56 corresonds to the "V" character; etc.) 1 "2356FAA6" (every two characters are interpreted as a hex value: example: "23" -> 0x23) Array of UCHAR Null-terminated character string All other parameters that are to be passed as UCHAR should be specified as hex values (e.g. 0x23). Passing via a character string is not possible! Note UCHAR is an abbreviation (#define) for "unsigned char". In Visual Basic and Delphi, the compatible data type is the byte (see contents of the FEISC.BAS/ FEISC.PAS files). (4)J31069-D0138-U001-A

252 FEISC-DLL programming interface 05/ Event signaling to applications 1 Event handling measures can be installed for some events. For example, as soon as a send protocol is output via an interface, this event can also be announced to the application, asynchronously to the program procedure. An appropriate function must be available in the application for this to take place. This function is passed a pointer (cast on int) to the protocol string. The function can then, for example, display this string in a window. An event handling measure must be installed using the FEISC_AddEventHandler function. Four different signaling methods are available: message to calling process, message to a window, use of a callback function or signaling with a Windows API event. An installed event handling measure must be removed using the FEISC_DelEventHandler function. The FEISC_EVENT_INIT structure contains the parameters required for signaling: typedef struct _FEISC_EVENT_INIT { UINT uiuse; // Defines the event (e.g. FEISC_PRT_EVENT) UINT uimsg; // Message code for dwthreadid and hwndwnd (e.g. WM_USER_xyz) UINT uiflag; // Specifies the use of the union (e.g. FEISC_WND_HWND) union { }Method 2 ; } FEISC_EVENT_INIT; DWORD dwthreadid // For thread ID HWND hwndwnd; // For window handle void (*cbfct)(int, int); // For callback function HANDLE hevent; // For event handle The core element of the structure is the union, which contains either the ID of a process, the handle of a window, a function pointer or the handle of a Windows API event. The signaling form is selected using the uiflag parameter. An identifier for the event to which the handling method is to be assigned is stored in the uiuse parameter. The message code must be stored in uimsg for the message methods. Several handling methods can be installed for one event. However, each dwthreadid, hwndwnd, cbfct or hevent can only be used once for each event. 1 Useable in Visual Basic projects to a limited extent only 2 The naming of union with method is for C programmers only. C++ programmers access the union directly via the structure. 250 (4)J31069-D0138-U001-A3-7618

253 05/05 FEISC-DLL programming interface 8.4 List of functions The support package contains many functions for different tasks. They have been subdivided into groups for the sake of clarity. Please note that most functions can only be used in (direct or indirect) combination with the ID FECOM support package. Administrative functions for reader objects int FEISC_NewReader( int iporthnd ) int FEISC_DeleteReader( int ireaderhnd ) int FEISC_GetReaderList( int inext ) int FEISC_GetReaderPara( int ireaderhnd, char* cpara, char* cvalue ) int FEISC_SetReaderPara( int ireaderhnd, char* cpara, char* cvalue ) void FEISC_GetDLLVersion( char* cversion ) int FEISC_GetErrorText( int ierrorcode, char* cerrortext ) int FEISC_GetStatusText( UCHAR ucstatus, char* cstatustext ) int FEISC_AddEventHandler( int ireaderhnd, FEISC_EVENT_INIT* pinit ) int FEISC_DelEventHandler( int ireaderhnd, FEISC_EVENT_INIT* pinit ) Protocol functions int FEISC_BuildProtocol( int ireaderhnd, UCHAR cbusadr, UCHAR ccmdbyte, UCHAR* csenddata, int idatalen, UCHAR* csendprot, int idatatype ) int FEISC_SplitProtocol( int ireaderhnd, UCHAR* crecprot, int ireclen, UCHAR* cbusadr, UCHAR* ccmdbyte, UCHAR* cdata, int* idatalen, int idatatype ) Request functions int FEISC_GetLastSendProt( int ireaderhnd, UCHAR* csendprot, int idatatype ) int FEISC_GetLastRecProt( int ireaderhnd, UCHAR* crecprot, int idatatype) int FEISC_GetLastState( int ireaderhnd, char* cstatustext ) int FEISC_GetLastRecProtLen( int ireaderhnd ) int FEISC_GetLastError( int ireaderhnd, int* ierrorcode, char* cerrortext ) (4)J31069-D0138-U001-A

254 FEISC-DLL programming interface 05/05 General communication functions int FEISC_SendTransparent( int ireaderhnd, UCHAR* csendprot, int isendlen, UCHAR* crecprot, int ireclen, int ichecksum, int idatatype ) int FEISC_Transmit( int ireaderhnd, UCHAR* csendprot, int isendlen, int ichecksum, int idatatype ) int FEISC_Receive( int ireaderhnd, UCHAR* crecprot, int ireclen, int ichecksum, idatatype ) Special communication functions int FEISC_0x1B_ResetQuietBit( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x1C_EASRequest( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x21_ReadBuffer( int ireaderhnd, UCHAR cbusadr, UCHAR csets, UCHAR* ctrdata, UCHAR* crecsets, UCHAR* crecdatasets, int idatatype ) int FEISC_0x31_ReadDataBufferInfo( int ireaderhnd, UCHAR cbusadr, UCHAR* ctabsize, UCHAR* ctabstart, UCHAR* ctablen, int idatatype ) int FEISC_0x32_ClearDataBuffer( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x33_InitBuffer( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x52_GetBaud( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x55_StartFlashLoader( int ireaderhnd ) int FEISC_0x63_CPUReset( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x65_SoftVersion( int ireaderhnd, UCHAR cbusadr, UCHAR* cversion, int idatatype ) int FEISC_0x69_RFReset( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x6A_RFOnOff( int ireaderhnd, UCHAR cbusadr, UCHAR crf ) int FEISC_0x6B_InitNoiseThreshold( int ireaderhnd, UCHAR cbusadr ) int FEISC_0x6C_SetNoiseLevel( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) int FEISC_0x6D_GetNoiseLevel( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) int FEISC_0x6E_RdDiag( int ireaderhnd, UCHAR cbusadr, UCHAR cmode, UCHAR* cdata ) int FEISC_0x71_SetOutput( int ireaderhnd, UCHAR cbusadr, UCHAR coutput ) int FEISC_0x74_ReadInput( int ireaderhnd, UCHAR cbusadr, UCHAR* cinput ) int FEISC_0x75_AdjAntenna( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) int FEISC_0x80_ReadConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr, UCHAR* cconfblock, int idatatype ) 252 (4)J31069-D0138-U001-A3-7618

255 05/05 FEISC-DLL programming interface int FEISC_0x81_WriteConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr, UCHAR* cconfblock, int idatatype ) int FEISC_0x82_SaveConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr ) int FEISC_0x83_ResetConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr ) int FEISC_0x85_SetSysTimer( int ireaderhnd, UCHAR cbusadr, UCHAR* ctime, int idatatype ) int FEISC_0x86_GetSysTimer( int ireaderhnd, UCHAR cbusadr, UCHAR* ctime, int idatatype ) int FEISC_0xA0_RdLogin( int ireaderhnd, UCHAR cbusadr, UCHAR* crd_pw, int idatatype ) int FEISC_0xB0_ISOCmd( int ireaderhnd, UCHAR cbusadr, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) int FEISC_0xB1_ISOCustAndPropCmd( int ireaderhnd, UCHAR cbusadr, UCHAR cmfr, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) int FEISC_0xBF_ISOTranspCmd( int ireaderhnd, UCHAR cbusadr, int irsplength, int icmdrspdly, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) (4)J31069-D0138-U001-A

256 FEISC-DLL programming interface 05/ FEISC_NewReader Function Creates a reader object Syntax int FEISC_NewReader( int iporthnd ) Description Return value Example A reader object is generated. The protocol functions can only carried out with an object reader. iporthnd 1 is the handle of a device object generated out of the port object that was generated from FECOM.DLL using the FECOM_OpenPort. This handle allows protocols to be passed on to FECOM.DLL directly. Passing a 0 is also permissible. In general, several reader objects can execute their communication via the same serial COM interface. iporthnd uses the first byte (MSB) of the PortHandle to distinguish between the protocol outputs to FECOM: iporthnd = 0x0XXXXXXX 2 results in an output to FECOM.DLL The value of the PortHandle stored in the reader object can be changed later using the FEISC_SetReaderPara function. A reader object generated using FEISC_NewReader must (!) be removed from the memory using the FEISC_DeleteReader function. Otherwise, the memory reserved by the DLL will not be released. A handle (>0) is returned if a reader object could be generated without any errors. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "feisc.h" #include "fecom.h" char cportnr[4]; itoa( 1, cportnr, 10 ); // Convert Integer to Char int iporthnd = FECOM_OpenPort( cportnr ); // COM:1 is to be opened if( iporthnd < 0 ) { // Code in the event of an error } else { // Open reader object int ireaderhnd = FEISC_NewReader( iporthnd ); } 1 Throughout this document, iporthnd is also subsituted in for idevhnd. 2 X signifies any hex value 254 (4)J31069-D0138-U001-A3-7618

257 05/05 FEISC-DLL programming interface FEISC_DeleteReader Function Deletes a reader object. Syntax int FEISC_DeleteReader( int ireaderhnd ) Description Return value Example The function deletes the reader object specified by the ireaderhnd parameter and releases the reserved memory. The return value equals 0 if the operation was successful. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "feisc.h" int ierr; int ireaderhnd = FEISC_NewReader( 0 ); if( ireaderhnd < 0 ) { // Code in the event of an error } if( ireaderhnd > 0 ) { ierr = FEISC_DeleteReader( ireaderhnd );... } (4)J31069-D0138-U001-A

258 FEISC-DLL programming interface 05/ FEISC_GetReaderList Function Determines, dependent on the inext parameter, the first or the next reader handle from the internal list of generated reader objects. Syntax int FEISC_GetReaderList( int inext ) Description Return value Example The function returns a reader handle from the internal list of reader handles. If a value of 0 is passed with inext, the first entry in the list is returned. If a reader handle contained in the list is passed with inext, the entry that follows the reader handle is determined and returned. Thus, by successively entering the return value, the list can be scrolled through and all entries can be called up. If an entry is located, the reader handle is returned with the return value. If the end of the list is reached, i.e. the passed reader handle has no successor, a value of 0 is returned. If no reader objects have been created, FEISC_ERR_EMPTY_LIST is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "feisc.h"... // Sample function for setting up a list of reader objects void ReaderList( void ) { int inexthnd = FEISC_GetReaderList( 0 ); // Determine... the first handle while( inexthnd > 0 ) {// E.g. code for collecting the handles and reading out parameters... inexthnd = FEISC_GetReaderList( inexthnd ); // Determine the next handle }... // E.g. code for displaying a list } Hint It is convenient to use a loop, similar to that in the example above, to close all generated reader objects. However, it must be considered that the successor of a deleted reader object can no longer be determined. The following code fragment shows how to delete all generated reader objects in a loop:... int inexthnd, iclosehnd, ierror; inexthnd = FEISC_GetReaderList( 0 ); // Determine the first handle while( inexthnd > 0 ) { iclosehnd = inexthnd; inexthnd = FEISC_GetReaderList( inexthnd ); // Determine the next handle ierror = FEISC_DeleteReader( iclosehnd ); } 256 (4)J31069-D0138-U001-A3-7618

259 05/05 FEISC-DLL programming interface FEISC_GetDLLVersion Function Determines the DLL version number. Syntax void FEISC_GetDLLVersion( char* cversion ) Description Return value Example The function returns the DLL version number. cversion is an empty, null-terminated character string for retuning a version number. The character string should be able to hold at least 256 characters. In the current version, the character string is filled with " ". Newer versions could be designed to provide additional information. without... #include "feisc.h" char cversion[256]; FEISC_GetDLLVersion( cversion ); // Code for displaying the version number FEISC_GetErrorText Function Determines the error text for the error code Syntax int FEISC_GetErrorText( int ierrorcode, char* cerrortext ) Description Return value Example The function passes the English error text corresponding to ierrorcode in cerrortext. The buffer for cerrortext should be able to hold 256 characters. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The erorr codes are listed in chap #include "feisc.h" #include "feiscdef.h" char cerrortext [256];... int iback = FEISC_GetErrorText(FEISC_ERR_PROTLEN, cerrortext ) // Code for displaying the text (4)J31069-D0138-U001-A

260 FEISC-DLL programming interface 05/ FEISC_GetStatusText Function Determines the short text for the status byte Syntax int FEISC_GetStatusText( UCHAR ucstatus, char* cstatustext ) Description Return value Example The function passes the English short text corresponding to ucstatus in cstatustext. The buffer for cstatustext should be able to hold 128 characters. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The erorr codes are listed in chap #include "feisc.h" char cstatustext[128];... int iback = FEISC_GetStatusText(0x01, cstatustext ) // Code for displaying the text (4)J31069-D0138-U001-A3-7618

261 05/05 FEISC-DLL programming interface FEISC_GetReaderPara Function Determines a parameter of a reader object. Syntax int FEISC_GetReaderPara( int ireaderhnd, char* cpara, char* cvalue ) Description The function determines the current value of a parameter. cpara is a null-terminated character string that contains the parameter ID. cvalue is an empty, null-terminated character string for returning the parameter value. The character string should be able to hold at least 128 characters. ireaderhnd is the reader object handle. Parameter IDs The parameter IDs are: PortHnd 1, LogProt, BusyTO, RepCnt, ErrCode, ErrStr, SendStr, RecStr. and IsProtToAppLocked Cross reference Return value Example Additional information is found in chap. 8.5 Support for multithreading and chap List of parameter IDs The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "feisc.h" char cvalue[128]; int iporthnd;... if(!feisc_getreaderpara( handle, "PortHnd", cvalue ) ) { // change from Char to Integer iporthnd = atoi( cvalue ); // E.g. code for using the PortHandle... } } 1 Please note the remark regarding the PortHandle in chap (4)J31069-D0138-U001-A

262 FEISC-DLL programming interface 05/ FEISC_SetReaderPara Function Sets a parameter of a reader object to a new value. Syntax int FEISC_SetReaderPara( int ireaderhnd, char* cpara, char* cvalue ) Description The function passes a new parameter to a reader object. The reader object stores the new value and immediately makes it the current parameter. cpara is a null-terminated character string that contains the parameter ID. cvalue is a null-terminated character string that contains the new parameter value. ireaderhnd is the reader object handle. Parameter IDs The parameter IDs are: PortHnd 1, LogProt, BusyTO, RepCnt, LockProtToApp and UnlockProtToApp Cross reference Return value Example Additional information is found in chap. 8.5 Support for multithreading and chap List of parameter IDs If the reader object with the new parameter value could be initialized without any errors, a value of 0 is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap // The example shows that a new PortHandle can be assigned to a //reader object later on. After the assignment, communication takes place via the new port.... #include "feisc.h" #include "fecom.h" int ierr; char cporthnd[9]; char cportnr[4]; itoa( 1, cportnr, 10 ); // Convert Integer to Char... int iporthnd = FECOM_OpenPort( cportnr ); // COM:1 is to be opened if( iporthnd > 0 ) { itoa( iporthnd, cporthnd, 10 );// Convert Integer to Char ierr = FEISC_SetReaderPara( ireaderhnd, "PortHnd", cporthnd ); // Communication can take place via the new port after this point... } Please note the remark regarding the PortHandle in chap (4)J31069-D0138-U001-A3-7618

263 05/05 FEISC-DLL programming interface FEISC_AddEventHandler Function An event handling measure is installed. Syntax int FEISC_AddEventHandler( int ireaderhnd, FEISC_EVENT_INIT* pinit ) Description The function installs one of four possible event handling methods. The installed method is applied when an event takes place for which the method was installed. This makes an asynchronous reaction to events in an application program possible. The event handling method is only set up for the reader object identified with ireaderhnd. This means that this installation must be carried out for each reader object for which it is required. Event FEISC_PRT_EVENT Description FEISC_SNDPRT_EVENT Event for send protocol 9 FEISC_RECPRT_EVENT Event for receive protocol 9 1st method: Message to thread (not for Visual Basic) One event for the send protocol and one event for the receive protocol 1 This method is used to exchange messages between threads 2. Using the GetCurrent- ThreadID() Windows API function, the thread determines the thread identifier and passes it as the dwthreadid parameter in the FEISC_EVENT_INIT structure. The thread must provide a message handling function (MessageMap function) to receive the message that was sent by FEISC using the PostThreadMessage(..) Windows API function.. The message code can be selected as required. The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg = WM_USER +... // Freely selectable, but above WM_USER3 uiflag = FEISC_THREAD_ID dwthreadid = GetCurrentThreadID() The first parameter (WPARAM) passes the MessageMap function in the application the pointer to the string; the second parameter passes the status byte of the receive protocol or an error code. Please note that the pointer to the string is cast with int. Therefore, it must be converted back using the cast operator (LPCTSTR) when assigned to a CString data type or (char*) to a C character string. 2nd method: Message to window (not for Visual Basic) This method is used if a message is to be sent directly to a window. The handle for the corresponding window is determined using the GetWindow(..) Windows API function 4 and is passed as the hwndwnd parameter in the FEISC_EVENT_INIT structure. The window must provide a message handling function (MessageMap function) to receive the message sent by FEISC using the PostMessage(..) Windows API function. The message code can be selected as required. 1 The event is only triggered if the LogProt parameter was set to 1 (default: 0) 2 Parallel path of execution independent of application program. The application program is also a thread. 3 See Windows documentation for Platform SDK 4 When using the CWnd MFC class, it is also possible to use the GetSafeHwnd() method. (4)J31069-D0138-U001-A

264 FEISC-DLL programming interface 05/05 Cross reference Return value The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg = WM_USER +... // Freely selectable, but above WM_USER2 uiflag = FEISC_WND_HWND hwndwnd = GetWindow(...) The MessageMap function receives the same parameters as that of the first method. 3rd method: Calling a callback function (not for Visual Basic) The callback method is used to install a function pointer for an event. If the event takes place, the function is called by FEISC. The contents of the function can be defined as required. The passed parameters are as described for the first method. The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg wird nicht benötigt uiflag = FEISC_CALLBACK cbfct = (void*)&ihrfunctionsname1 4th method: Setting an event The event method is used to install an event handle for an event. If an event occurs, the event is set by FEISC using the SetEvent(...) Windows API function. The application side waits for the event using the WaitForSingleObject(...) Windows API function. Since parameters cannot be received, the required parameter must be requested with a suitable function. The set event must be reset by the application program using the ResetEvent(...) Windows API function. The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg wird nicht benötigt uiflag = FEISC_EVENT hevent = CreateEvent(..) Every installed event handling method must be removed using the FEISC_DelEventHandler function. When a reader object is removed, all event handling methods installed for that object are lost. Additional information is found in chap. 8.3 Event signaling to applications and chap. 8.5 Support for multithreading The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap The function has the prototype: void IhrFunctionsName(int, int) 262 (4)J31069-D0138-U001-A3-7618

265 05/05 FEISC-DLL programming interface FEISC_DelEventHandler Function An event handling measure is removed. Syntax int FEISC_DelEventHandler( int ireaderhnd, FEISC_EVENT_INIT* pinit ) Description Cross reference Return value The function removes the event handling measure that was previously installed using FEISC_AddEventHandler. The event handling measure to be removed is specified in detail in the FEISC_EVENT_INIT structure. Removing the 1st method: Message to thread (not for Visual Basic) The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines in FEISC.H uimsg wird nicht benötigt uiflag = FEISC_THREAD_ID dwthreadid = GetCurrentThreadID() Removing the 2nd method: Message to window (not for Visual Basic) The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines in FEISC.H uimsg wird nicht benötigt uiflag = FEISC_WND_HWND hwndwnd = GetWindow(...) 3rd method: Removing a callback function (not for Visual Basic) The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg wird nicht benötigt uiflag = FEISC_CALLBACK cbfct = (void*)&ihrfunctionsname 4th method: Removing an event handle The FEISC_EVENT_INIT structure is filled in as follows: uiuse = FEISC_xyz_EVENT // See Defines FEISC.H uimsg wird nicht benötigt uiflag = FEISC_EVENT hevent = IhrEventHandle; Additional information is found in chap. 8.3 Event signaling to applications and chap. 8.5 Support for multithreading The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap (4)J31069-D0138-U001-A

266 FEISC-DLL programming interface 05/ FEISC_BuildProtocol Function Syntax Description Cross reference Return value Example A protocol with a protocol frame is built from the passed parameters and data. int FEISC_BuildProtocol( int ireaderhnd, UCHAR cbusadr, UCHAR ccmdbyte, UCHAR* csenddata, UCHAR cdatalen, UCHAR* csendprot, int idatatype ) This function builds a complete send protocol with a protocol frame from the following passed parameters: bus address (cbusadr), control byte (ccmdbyte), send data (csenddata) and the information on the length of the send data (cdatalen). The protocol string is stored in csendprot as a hex array (idatatype=0) or as a character string (idatatype=1). The buffer for csendprot must be at least one value longer than the expected protocol length, since a NUL character will be appended. More detailed information on the protocol frame is found in the system manual for the ISC reader family. ireaderhnd is the reader object handle. The built protocol is not passed on to FECOM. Therefore, this function is independent of FECOM. Additional information on idatatype is found in chap. 8.2 Parameter passing and chap FEISC_SplitProtocol If no errors occur, the return value includes the length of csendprot. In the event of an error, a negative value is returned. The error codes are listed in chap int BuildTestProtocol( int ireaderhnd ) { int ierr; UCHAR cdatalen, csenddata[32], csendprot[256]; UCHAR cbusadr = 0xFF; UCHAR ccmdbyte= 0x6A;... csenddata[0]= 0x01; csenddata[1]= '\0'; cdatalen = 0x01; // Build send protocol ierr = FEISC_BuildProtocol( ireaderhnd, cbusadr, ccmdbyte, csenddata, cdatalen,csendprot, 0 );... } 264 (4)J31069-D0138-U001-A3-7618

267 05/05 FEISC-DLL programming interface FEISC_SplitProtocol Function Syntax Description Cross reference The passed protocol string is split. int FEISC_SplitProtocol( int ireaderhnd, UCHAR* crecprot, UCHAR creclen, UCHAR* cbusadr, UCHAR* ccmdbyte, UCHAR* crecdata, UCHAR* cdatalen, int idatatype ) This function splits the data contained in crecprot into bus address (cbusadr), control byte (ccmdbyte), receive data (crecdata) and the information on the length of the receive data (cdatalen). The protocol string in crecprot must be passed as a hex array (idatatype=0) or a character string (idatatype=1) with the length specified in creclen. crecdata is interpreted as a hex array (idatatype=0) or character string (idatatype=1). More detailed information on the protocol frame is found in the system manual for the ISC reader family. ireaderhnd is the reader object handle. This function is independent of FECOM. Additional information on idatatype is found in chap. 8.2 Parameter passing and chap FEISC_BuildProtocol Return value If no errors occur, the status byte of the receive protocol is returned. A value larger than 0x00 indicates an exception condition of the reader. The error codes are listed in chap // The following code fragment requires initialized port and reader objects. Example #include "feisc.h" #include "fecom.h"... int istatus, ireclen; UCHAR cbusadr, ccmdbyte, cdatalen; UCHAR csendprot[256], crecprot[256], crecdata[256]; // Build send protocol FEISC_BuildProtocol( ireaderhnd, cbusadr, ccmdbyte, csenddata, cdatalen, csendprot, 0 ); // Send and receive protocol ireclen = FECOM_Transceive( iporthnd, csendprot, csendprot[0], crecprot, 256 ); if( ireclen > 0 ) { // Split receive protocol istatus = FEISC_SplitProtocol( ireaderhnd, crecprot, (UCHAR)iRecLen, &cbusadr, &ccmdbyte, crecdata, &cdatalen, 0 ); if( istatus == 0 ) // Statusbyte == 0x00 { // Process receive data... } } (4)J31069-D0138-U001-A

268 FEISC-DLL programming interface 05/ FEISC_SendTransparent Function Syntax Description Cross reference Return value Example A protocol string is output and the receive protocol is returned directly via the interface. int FEISC_SendTransparent( int ireaderhnd, UCHAR* csendprot, int isendlen, UCHAR* crecprot, int ireclen, int ichecksum, int idatatype ) This function is suitable for sending protocol strings created by editors to a reader. However, this requires a thorough knowledge of the protocol frame. As an option, the protocol contained in csendprot with the protocol frame can be supplemented by the checksum (ichecksum = 1). The receive protocol is stored in crecprot. Both buffers are interpreted as a hex array (idatatype=0) or character string (idatatype=1). The length of the protocol (number of characters in csendprot) must be specified in the isendlen parameter. To be on the safe side, the buffer of the receive protocol should be able to hold 256 characters (idatatype=0) or 512 characters (idatatype=1). This buffer size must be specified in ireclen. ireaderhnd is the reader object handle. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the number of characters contained in crecprot is passed. The error codes are listed in chap int outlen, inlen; UCHAR csendprot[256]; UCHAR crecprot[256];... // Define send protocol csendprot[0] = 0x05; // Length byte csendprot[1] = 0xFF; // Address byte csendprot[2] = 0x80; // Control byte csendprot[3] = 0x00; // Reader configuration address csendprot[4] = 0x00; // Placeholder for checksum csendprot[5] = '\0'; outlen = 5;... // Send protocol after calculating and appending checksum inlen = FEISC_SendTransparent( ireaderhnd, csendprot, outlen, crecprot, 256, 1, 0 ); if( inlen > 0) { // Code beyond this point for evaluation of receive data... } 266 (4)J31069-D0138-U001-A3-7618

269 05/05 FEISC-DLL programming interface FEISC_Transmit Function A protocol string is output directly via the interface. Syntax int FEISC_Transmit( int ireaderhnd, UCHAR* csendprot, int isendlen, int i- CheckSum, int idatatype ) Description Cross reference Return value Example This function is suitable for sending protocol strings created by editors to a reader. However, this requires a thorough knowledge of the protocol frame. The program does not wait for a response protocol after sending the csendprot protocol. As an option, the protocol contained in csendprot with the protocol frame can be supplemented by the checksum (ichecksum=1). csendprot is interpreted as a hex array (idatatype=0) or character string (idatatype=1). The length of the protocol (number of characters in csendprot) must be specified in the isendlen parameter. If idatatype=1, then isendlen is exactly twice as large as when idatatype=0. ireaderhnd is the reader object handle. Additional information on idatatype is found in chap. 8.2 Parameter passing A 0 is passed if no errors occur. The error codes are listed in chap int outlen; UCHAR csendprot[256];... // Define send protocol csendprot[0] = 0x05; // Length byte csendprot[1] = 0xFF; // Address byte csendprot[2] = 0x80; // Control byte for read configuration csendprot[3] = 0x00; // Reader configuration address csendprot[4] = '\0'; outlen = 4; // Send protocol after calculating and appending checksum FEISC_Transmit( ireaderhnd, csendprot, outlen, 1, 0 );... (4)J31069-D0138-U001-A

270 FEISC-DLL programming interface 05/ FEISC_Receive Function A protocol string is read in directly from the interface. Syntax int FEISC_Receive( int ireaderhnd, UCHAR* crecprot, int ireclen, int idatatype ) Description Cross reference Return value Example This function read out a protocol from the receive buffer and stores it in crecprot. If a reader has already sent off several protocols, the function reads in all protocols. In this case, crecprot contains all protocols. A maximum of 256 ASCII characters can be taken up out of the receive buffer. To be on the safe side, the buffer of the receive protocol should be able to hold 256 characters (idatatype=0) or 512 characters (idatatype=1). This buffer size must be specified in ireclen. ireaderhnd is the reader object handle. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the number of characters contained in crecprot is passed. If idatatype=1, the number is exactly twice as large as when idatatype=0. The error codes are listed in chap int inlen; UCHAR crecprot[256];... // Read out protocol inlen = FEISC_Receive( ireaderhnd, crecprot, 256, 0 ); (4)J31069-D0138-U001-A3-7618

271 05/05 FEISC-DLL programming interface FEISC_GetLastSendProt Function The last protocol string to be sent is returned. Syntax int FEISC_GetLastSendProt( int ireaderhnd, UCHAR* csendprot, int idatatype ) Description Cross reference Return value This function can be used to determine the send protocol that was last output from a reader object. All functions that begin with FEISC_0x... as well as the FEISC_SendTransparent function store this protocol in the reader object. To be on the safe side, the buffer for the send protocol, csendprot, should be able to hold at least 256 characters (idatatype=0) or 512 characters (idatatype=1). csend- Prot is interpreted as a hex array (idatatype=0) or character string (idatatype=1). ireaderhnd is the reader object handle. Additional information on idatatype is found in chap. 8.2 Parameter passing In the event of an error, the return value contains the character number contained in csendprot. The error codes are listed in chap FEISC_GetLastRecProt Function The last protocol string to be received is returned. Syntax int FEISC_GetLastRecProt( int ireaderhnd, UCHAR* crecprot, int idatatype ) Description Cross reference Return value This function can be used to determine the last receive protocol from a reader object. All functions that begin with FEISC_0x... as well as the FEISC_SendTransparent function store this protocol in the reader object. To be on the safe side, the buffer for the receive protocol, crecprot, should be able to hold 256 characters (idatatype=0) or 512 characters (idatatype=1). crecprot is interpreted as a hex array (idatatype=0) or character string (idatatype=1). ireaderhnd is the reader object handle. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the character number contained in crecprot. The error codes are listed in chap (4)J31069-D0138-U001-A

272 FEISC-DLL programming interface 05/ FEISC_GetLastState Function The status byte contained in the last receive protocol is returned. Syntax int FEISC_GetLastStatus( int ireaderhnd, char* cstatustext ) Description Return value This function can be used to determine the status byte and a short text for the status byte that are contained in the last receive protocol from the reader object. All functions that begin with FEISC_0x... as well as the FEISC_SendTransparent function store the last status byte in the reader object. The buffer for the short text, cstatetext, should be able to hold 256 characters. ireaderhnd is the reader object handle. If no errors occur, the return value contains the status byte. The error codes are listed in chap FEISC_GetLastRecProtLen Function The length of the last receive protocol is determined. Syntax int FEISC_GetLastRecProtLen( int ireaderhnd ) Description Return value At times it is useful to be able to use the protocol length to determine the length of data contained in the protocol. This function is used to determine the protocol length. Example: The FEISC_0x21_ReadBuffer returns several data sets of a data structure. While it is possible to determine the total length of data by analyzing the data sets, but it is much easier to take the protocol length, delete 6 bytes for the protocol frame and an additional 2 bytes for the ctrdata and crecdatasets parameters. ireaderhnd is the reader object handle. If no errors occur, the return value contains the protocol length. The error codes are listed in chap (4)J31069-D0138-U001-A3-7618

273 05/05 FEISC-DLL programming interface FEISC_GetLastError Function Determines the last error code and passes the error text. Syntax int FEISC_GetLastError( int ireaderhnd, int* ierrorcode, char* cerrortext ) Description Return value Example The function returns the last error code of the reader object selected with ireaderhnd in ierrorcode and passes the corresponding English error text in cerrortext. The buffer for cerrortext should be able to hold at least 256 characters. The last error of the object manager is returned if ireaderhnd is set to 0. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "feisc.h" char cerrortext [256]; int ierrorcode = 0;... int iback = FEISC_GetLastError( ireaderhnd, &ierrorcode, cerrortext ) // Code for displaying the text FEISC_0x1B_ResetQuietBit Function Function for resetting the Quiet bits. Syntax int FEISC_0x1B_ResetQuietBit( int ireaderhnd, UCHAR cbusadr ) Description The function resets the Quiet bits in the I-Code transponder type. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x1C_EASRequest Function Function for sending the EAS request. Syntax int FEISC_0x1C_EASRequest( int ireaderhnd, UCHAR cbusadr ) Description The function sends an EAS request to the I-Code transponder type. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

274 FEISC-DLL programming interface 05/ FEISC_0x21_ReadBuffer Function Syntax Description Note Cross reference Return value Function for data transfer with a transponder int FEISC_0x21_ReadBuffer( int ireaderhnd, UCHAR cbusadr, UCHAR csets, UCHAR* ctrdata, UCHAR* crecsets, UCHAR* crecdatasets, int idatatype ) The function reads out the number of data sets, csets, from the internal data table and stores the data in crecdatasets. ctrdata defines the structure of a data set in crecdatasets. The number of returned data sets in crecdatasets is specified in crecsets. The idatatype parameter specifies whether the receive data in crecdatasets are to be interpreted as a hex array or character string. crecsets and ctrdata always consist of one hex character. The buffer of crecdatasets should be sized as follows: idatatype=0: 256 characters (incl. 1 NUL character) idatatype=1: 512 character (incl. 1 NUL character) The sequence in which the data contained in crecdatasets are entered is documented in the system manual of the ISC family. ireaderhnd is the reader object handle. cbusadr is the bus address set in the multijob reader. The function does not perform a data verification in crecdatasets on the basis of the data structure specified in ctrdata. Additional information on idatatype is found in chap. 8.2 Parameter passing and chap FEISC_0x33_InitBuffer, chap FEISC_0x31_ReadDataBufferInfo, chap FEISC_ClearDataBuffer If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A3-7618

275 05/05 FEISC-DLL programming interface FEISC_0x31_ReadDataBufferInfo Function Syntax Description Cross reference Return value Function for determining the table parameters of the internal DataBuffer int FEISC_0x31_ReadDataBufferInfo( int ireaderhnd, UCHAR cbusadr, UCHAR* ctabsize, UCHAR* ctabstart, UCHAR* ctablen, int idatatype ) The function reads out the table parameters for the internal buffer table and stores them in ctabsize, ctabstart and ctablen. The idatatype parameter specifies whether the table parameters are interpreted as a hex aray or character string. The buffers of ctabsize, ctabstart and ctablen must be sized as follows: idatatype=0: 3 characters (incl. 1 NUL character) idatatype=1: 5 characters (incl. 1 NUL character) ireaderhnd is the reader object handle. cbusadr is the bus address set in the multijob reader. Additional information on idatatype is found in chap. 8.2 Parameter passing and chap FEISC_0x21_ReadBuffer, chap FEISC_0x33_InitBuffer, chap FEISC_0x32_ClearDataBuffer, If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x32_ClearDataBuffer Function Function for clearing the read entries out of the internal DataBuffer Syntax int FEISC_0x32_ClearDataBuffer( int ireaderhnd, UCHAR cbusadr ) Description Cross reference Return value The function clears all entries read out using FEISC_0x01_MultiJobPollAndState, FEISC_0x03_MultiJobState or FEISC_0x21_ReadBuffer from the DataBuffer in the reader. ireaderhnd is the reader object handle. cbusadr is the bus address set in the multijob reader. chap FEISC_0x21_ReadBuffer, chap FEISC_0x33_InitBuffer, chap FEISC_0x31_ReadDataBufferInfo, If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

276 FEISC-DLL programming interface 05/ FEISC_0x33_InitBuffer Function Function for initializing the data table in the reader Syntax int FEISC_0x33_InitBuffer( int ireaderhnd, UCHAR cbusadr ) Description Cross reference Return value The function initializes the internal data table for the Buffered Read Mode. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. chap FEISC_0x21_ReadBuffer, chap FEISC_0x31_ReadDataBufferInfo If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x52_GetBaud Function Test function for determining baud rate and parity. Syntax int FEISC_0x52_GetBaud( int ireaderhnd, UCHAR cbusadr ) Description Return value If it is possible to receive the response telegram, the specified baud rate and parity are identical to those of the reader. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x55_StartFlashLoader Function The function starts the flash loader. Syntax int FEISC_0x55_StartFlashLoader( int ireaderhnd ) Description The function starts the flash loader of the reader. The reader must have bus address 0. ireaderhnd is the reader object handle. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A3-7618

277 05/05 FEISC-DLL programming interface FEISC_0x63_CPUReset Function Function triggers a reset in the reader CPU. Syntax int FEISC_0x63_CPUReset( int ireaderhnd, UCHAR cbusadr ) Description Function triggers a reset in the reader CPU. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x65_SoftVersion Function Syntax Description Cross reference Return value Function reads out the version number of the reader. int FEISC_0x65_SoftVersion( int ireaderhnd, UCHAR cbusadr, UCHAR* cversion, int idatatype ) The version number of the reader is determined and stored in cversion. The idatatype parameter specifies whether the version number in cversion is interpreted as hex array or character string. The buffer for the version must be able to hold at least 8 bytes (idatatype=0) or 15 bytes (idatatype=1). One byte is provided for the NUL character. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

278 FEISC-DLL programming interface 05/ FEISC_0x69_RFReset Function Function triggers a reset for the reader antenna field. Syntax int FEISC_0x69_RFReset( int ReaderHnd, UCHAR cbusadr ) Description Return value Function triggers a reset for the reader antenna field. All transponders that were previously switched off using the FEISC_0x1A_Halt function are re-enabled. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x6A_RFOnOff Function Function for switching on/off the antenna field. Syntax int FEISC_0x6A_RFOnOff( int ireaderhnd, UCHAR cbusadr, UCHAR crf ) Description A value of 0 in crf switches the antenna field off. A value of 1 in crf switches the antenna field on. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x6B_InitNoiseThreshold1 Function Function for initializing the noise threshold. Syntax int FEISC_0x6B_InitNoiseThreshold( int ireaderhnd, UCHAR cbusadr ) Description ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Return value If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap Not available for SLG D1x 276 (4)J31069-D0138-U001-A3-7618

279 05/05 FEISC-DLL programming interface FEISC_0x6C_SetNoiseLevel Function Syntax Description Cross reference Return value Function for setting the noise level. int FEISC_0x6C_SetNoiseLevel( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) clevel contains 3 level values that are passed as a hex array with a total of 6 bytes (idatatype=0) or as a character string with a total of 12 bytes (idatatype=1). ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x6D_GetNoiseLevel Function Syntax Description Cross reference Return value Function for reading the noise level. int FEISC_0x6D_GetNoiseLevel( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) The 3 level values that are read out are stored in clevel. The buffer for clevel must be sized as follows: idatatype=0: 7 bytes (incl. NUL character) idatatype=1: 13 bytes (incl. NUL character) ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

280 FEISC-DLL programming interface 05/ FEISC_0x6E_RdDiag Function Syntax Description Cross reference Return value Function for reader diagnosis. int FEISC_0x6E_RdDiag( int ireaderhnd, UCHAR cbusadr, UCHAR cmode, UCHAR* cdata ) The function returns diagnosis values for the identifier stored in cmode. The receive data buffer, cdata, must be of a sufficient size. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x75_AdjAntenna1 Function Syntax Description Cross reference Return value Function for reading the antenna level. int FEISC_0x75_AdjAntenna( int ireaderhnd, UCHAR cbusadr, UCHAR* clevel, int idatatype ) The level value that is read out is stored in clevel. The buffer for clevel must be sized as follows: idatatype=0: 3 bytes (incl. NUL character) idatatype=1: 5 bytes (incl. NUL character) ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap not available for SLG D1x 278 (4)J31069-D0138-U001-A3-7618

281 05/05 FEISC-DLL programming interface FEISC_0x71_SetOutput Function Syntax Description Return value Function activates the reader outputs. int FEISC_0x71_SetOutput( int ireaderhnd, UCHAR cbusadr, int ios, int iosf, int iostime, int iouttime ) The function activates the reader outputs. All times are multiplied by 100 internally in the reader and the values are given in ms. The value ranges specified in the system manual of the ISC reader family apply. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x74_ReadInput Function Function reads the status of the digital inputs. Syntax int FEISC_0x74_ReadInput( int ireaderhnd, UCHAR cbusadr, UCHAR* cinput ) Description Return value The function reads the digital inputs and stores the status in cinput. The length of cinput is 1. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

282 FEISC-DLL programming interface 05/ FEISC_0x80_ReadConfBlock Function Syntax Description Cross reference Return value Function reads out a configuration block from the reader. int FEISC_0x80_ReadConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr, UCHAR* cconfblock, int idatatype ) This function can be used to read out a configuration block from the cconfadr address of the reader. The data in cconfblock that are read out are interpreted as hex array (idatatype=0) or character string (idatatype=1). The configuration data buffer, cconfblock, must be sized as follows: idatatype=0: 15 bytes (incl. 1 NUL character) idatatype=1: 29 bytes (incl. 1 NUL character) ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x81_WriteConfBlock Function Syntax Description Cross reference Return value Function writes a configuration block to the reader. int FEISC_0x81_WriteConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr, UCHAR* cconfblock, int idatatype ) This function can be used to write a configuration block to the cconfadr address of the reader. The configuration data must be stored as a hex array (idatatype=0) or character string (idatatype=1) in cconfblock. The configuration data buffer must contain 14 bytes (idatatype=0) or 28 bytes (idatatype=1). ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A3-7618

283 05/05 FEISC-DLL programming interface FEISC_0x82_SaveConfBlock Function Syntax Description Return value Function saves a configuration block in the reader. int FEISC_0x82_SaveConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr ) This function can be used to write a configuration block with address cconfadr from the RAM memory to the EEPROM memory, thereby saving it permanently. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x83_ResetConfBlock Function Syntax Description Return value Function loads the factory settings to a configuration block in the reader. int FEISC_0x83_ResetConfBlock( int ireaderhnd, UCHAR cbusadr, UCHAR cconfadr ) This function can be used to load the parameters of the factory settings into a configuration block with the address cconfadr. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

284 FEISC-DLL programming interface 05/ FEISC_0x85_SetSysTimer Function Syntax Description Cross reference Return value Sets the system time in the reader. int FEISC_0x85_SetSysTimer( int ireaderhnd, UCHAR cbusadr, UCHAR* ctime, int idatatype ) The function initializes the system time in the reader. The ctime buffer must contain 4 bytes (idatatype=0) or be a character string with 8 characters (idatatype=1). ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap FEISC_0x86_GetSysTimer Function Syntax Description Cross reference Return value Reads out the system time from the reader int FEISC_0x86_GetSysTimer( int ireaderhnd, UCHAR cbusadr, UCHAR* ctime, int idatatype ) This function determines the system time of the reader. The buffer for ctime must be sized as follwows: idatatype=0: 5 characters (incl. 1 NUL character) idatatype=1: 9 characters (incl. 1 NUL character) ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A3-7618

285 05/05 FEISC-DLL programming interface FEISC_0xA0_RdLogin Function Syntax Description Cross reference Return value Function performs a login in the reader. int FEISC_0xA0_RdLogin( int ireaderhnd, UCHAR cbusadr, UCHAR* crd_pw, int idatatype ) The function carries out a reader login with the password crd_pw. The idatatype parameter specifies whether the password in crd_pw is interpreted as a hex array or character string. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. The error codes are listed in chap (4)J31069-D0138-U001-A

286 FEISC-DLL programming interface 05/ FEISC_0xB0_ISOCmd Function Syntax Description Cross reference Return value Function initiates data transfer with an ISO15693 transponder. int FEISC_0xB0_ISOCmd( int ireaderhnd, UCHAR cbusadr, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) The function initiates a data transfer for multiple ISO15693 transponders located in the read field of the ISC reader. The data required for the data transfer are to be stored in creqdata. The number of characters contained in creqdata must be specified in ireqlen. The data read from the ISO15693 transponder are contained in crspdata. irsplen indicates the number of characters in crspdata. The idatatype parameter specifies whether creqdata and crspdata are interpreted as a hex array or character string. Please note the following: the buffer for the receive data, crspdata, must be sized so that it can store all receive data. If idatatype=1, this means that the size of the buffer, crspdata, is twice as large as when idatatype=0. The length of the send data (number of characters in creqdata) must be specified in the ireqlen parameter. If idatatype=1, ireqlen is exactly twice as large as when idatatype=0. The length specification for the receive buffer (crspdata) is to be determined in the same manner. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. 284 (4)J31069-D0138-U001-A3-7618

287 05/05 FEISC-DLL programming interface FEISC_0xB1_ ISOCustAndPropCmd Function Syntax Description Cross reference Return value Function initiates data transfer with an ISO15693 transponder int FEISC_0xB1_ISOCustAndPropCmd( int ireaderhnd, UCHAR cbusadr, UCHAR cmfr, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) The function initiates data transfer for multiple ISO15693 transponders located in the read field of the ISC reader. The cmfr parameter contains the manufacturer code and determines the structures of the send data, creqdata, and receive data, crspdata. The data required for the data transfer are to be stored in creqdata. The number of characters contained in creqdata must be specified in ireqlen. The data read from the ISO15693 transponder are contained in crspdata. irsplen indicates the number of characters in crspdata. The idatatype parameter specifies whether creqdata and crspdata are interpreted as a hex array or character string. Please note the following: the buffer for the receive data, crspdata, must be sized so that it can store all receive data. If idatatype=1, this means that the size of the buffer, crspdata, is twice as large as when idatatype=0. The length of the send data (number of characters in creqdata) must be specified in the ireqlen parameter. If idatatype=1, ireqlen is exactly twice as large as when idatatype=0. The length specification for the receive buffer (crspdata) is to be determined in the same manner. ireaderhnd is the reader object handle. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. (4)J31069-D0138-U001-A

288 FEISC-DLL programming interface 05/ FEISC_0xBF_ ISOTranspCmd Function Syntax Description Cross reference Return value Function initiates data transfer with an ISO15693 transponder int FEISC_0xBF_ISOTranspCmd( int ireaderhnd, UCHAR cbusadr, int irsplength, int icmdrspdly, UCHAR* creqdata, int ireqlen, UCHAR* crspdata, int* irsplen, int idatatype ) The function initiates a data transfer for multiple ISO15693 transponders located in the read field of the ISC reader. The irsplength parameter contains the expected length (number of bits) of receive data crspdata. The icmdrspdly parameter contains the response delay value. The data required for the data transfer are to be stored in creqdata. The number of characters contained in creqdata must be specified in ireqlen. The data read from the ISO15693 transponder are contained in crspdata. irsplen indicates the number of characters in crspdata. The idatatype parameter specifies whether creqdata and crspdata are interpreted as a hex array or character string. Please note the following: the buffer for the receive data, crspdata, must be dimensioned so that it can store all receive data. If idatatype=1, this means that the size of the buffer, crspdata, is twice as large as when idatatype=0. The length of the send data (number of characters in creqdata) must be specified in the ireqlen parameter. If idatatype=1, ireqlen is exactly twice as large as when idatatype=0. The length specification for the receive buffer (crspdata) is to be determined in the same manner. ireaderhnd is the reader object handle. cbusadr is the bus address set in the reader. Additional information on idatatype is found in chap. 8.2 Parameter passing If no errors occur, the return value contains the status byte of the response protocol. 286 (4)J31069-D0138-U001-A3-7618

289 05/05 FEISC-DLL programming interface 8.5 Support for multithreading The functions in FEISC.DLL are basically thread-safe, meaning that function calls to the DLL from multiple threads are possible, provided that a communications procedure of a thread is never interrupted by a communications procedure of another thread. There are no protective measures within the DLL that prevent the displacing behavior of another thread. A protective mechanism must be implemented at the application level. A problem arises when the event handling method implemented (via the FEISC_AddEventHandler function) passes a protocol string to the application and is displayed in the protocol window. Displaying the string in the window directly from the thread can cause the program to crash (e.g. when using MFC in C++). This can be avoided through intermediate storage in a buffer and sending a Windows message to the window using the SendMessage(..) API function. This uncouples the threads. In such cases, it is preferable to select the message methods of the FEISC_AddEventHandler from the very start. However, closing the window while the protocol is being displayed can also lead to a program crash. The FEISC.DLL offers support by deliberately stopping the protocol output in the DLL in all reader objects. This is initiated by the FEISC_SetReaderPara(0, "LockProtToApp, " ) function call. Then the FEISC_GetReaderPara(0, "IsProtToAppLocked, " ) function is used to continue checking until all protocol outputs coming from the DLL are completed. If the function returns a 0, protocol output is not yet complete. If a 1 is returned, the window may be closed. Contrary to convention, the return values are selected in such a way that they can undergo a true or false condition test (at least for C). C++ example with MFC: The member function, OnClose, is called if the window (View) is to be closed by clicking the mouse on the close symbol. The FELogChildFrame class derived from CMDIChildWnd is the frame window of the Doc/View pair for the protocol output window. By using a cyclic call-up of a WM_CLOSE message to itself, a time loop is generated giving the FEISC.DLL time to complete the protocol output. The window may only be closed with CMDIChildWnd::OnClose() after the FEISC_GetReaderPara(0, "IsProtToAppLocked, " ) function no longer returns a 0. (4)J31069-D0138-U001-A

290 FEISC-DLL programming interface 05/05 void FELogChildFrame::OnClose() { // Notification of the DLL that any further protocol outputs are to be locked FEISC_SetReaderPara(0, "LockProtToApp", ""); // Query of the DLL whether all protocol outputs have been completed int iback = FEISC_GetReaderPara(0, "IsProtToAppLocked", ""); if(iback==0) { // No, i.e. with message to this renewed call of OnClose this->sendmessage(wm_close, 0, 0); return; } } // When this point is reached, all protocol outputs of the DLL are completed // There is no longer a danger of a crash when closing the Doc/View pair CMDIChildWnd::OnClose(); 288 (4)J31069-D0138-U001-A3-7618

291 05/05 FEISC-DLL programming interface 8.6 Appendix ID FEISC error codes Error constant Value Description EISC_ERR_NEWREADER_FAILURE Error when generating a new reader object FEISC_ERR_EMPTY_LIST Reader handle list is empty (no reader objects created) FEISC_ERR_POINTER_IS_NULL Pointer to passed parameter is NULL FEISC_ERR_NO_MORE_MEM Out of memory FEISC_ERR_UNKNOWN_COMM_PORT Unknown COM port FEISC_ERR_UNSUPPORTED_FUNCTION Unsupported function FEISC_ERR_OLD_FECOM Old FECOM.DLL detected FEISC_ERR_UNKNOWN_HND The passed reader handle is unknown FEISC_ERR_HND_IS_NULL The passed reader handle is 0 FEISC_ERR_HND_IS_NEGATIVE The passed reader handle is negative FEISC_ERR_NO_HND_FOUND No reader handle was found in the reader handle list FEISC_ERR_PORTHND_IS_NEGATIVE The passed port handle is negative FEISC_ERR_HND_UNVALID Invalid port handle; the first byte (MSB) in the port handle is invalid FEISC_ERR_PROTLEN Protocol length error FEISC_ERR_CHECKSUM Checksum error FEISC_ERR_BUSY_TIMEOUT Timeout after continuous busy messages FEISC_ERR_UNKNOWN_STATUS Unknown status byte FEISC_ERR_CMD_BYTE Incorrect control byte in receive protocol FEISC_ERR_UNKNOWN_PARAMETER Passed parameter is unknown FEISC_ERR_PARAMETER_OUT_OF_RANGE Passed parameter is too large or too small FEISC_ERR_ODD_PARAMETERSTRING The passed character string contains an uneven number of characters FEISC_ERR_UNKNOWN_ERRORCODE Unknown error code (4)J31069-D0138-U001-A

292 FEISC-DLL programming interface 05/ List of parameter IDs Parameter ID Value range Default Units Description PortHnd PortHandle for communication with ID FECOM LogProt 0, 1 0 If 1, then it is possible to pass the protocol strings to the application via event signaling 2 BusyTO S Timeout for continuous busy status of reader SendStr Returns last send protocol with leading date and time RecStr Returns last receive protocol with leading date and time LockProtToApp without - Support for multithreading: Locks the protocol output via event signaling in all reader objects See chap. 8.5 Support for multithreading UnlockProtToApp without - Support for multithreading: Lifts the lock for the protocol output See chap. 8.5 Support for multithreading IsProtToAppLocked without - Support for multithreading: Queries whether all reader objects have finished with the protocol output See chap. 8.5 Support for multithreading The FEISC_GetLastError function should be used in place of the following parameter IDs ErrCode Returns last error code ErrStr Returns text for last error 1 Please note the instructions in chap FEISC_NewReader 2 See chap. 8.3 Event signaling to applications and chap FEISC_AddEventHandler 290 (4)J31069-D0138-U001-A3-7618

293 05/05 FEISC-DLL programming interface List of constants for the FEISC_EVENT_INIT structure The definitions for the constants are contained in the FEISC.H, FEISC.BAS or FEISC.PAS file. Constant Value Use Description FEISC_THREAD_ID 1 uiflag Event signaling with thread message FEISC_WND_HWND 2 uiflag Event signaling with window message FEISC_CALLBACK 3 uiflag Event signaling with callback function FEISC_EVENT 4 uiflag Event signaling with Windows API event FEISC_PRT_EVENT 1 uiuse Signaling for send and receive protocols FEISC_SNDPRT_EVENT 2 uiuse Signaling for send protocols FEISC_RECPRT_EVENT 3 uiuse Signaling for receive protocols (4)J31069-D0138-U001-A

294 Installing the FECOM-DLL 05/05 9 Installing the FECOM-DLL 9.1 Introduction The ID FECOM support package provides assistance in programming communications-oriented software and supports the ANSI-C, ANSI-C++ and Microsoft Visual Basic programming languages 1 and basically any other language that can call C functions. The support package provides a simple function interface for the serial interface of the PC under Windows 95/98/ME/NT 2 and The support package consists of the following components: File Use FECOM.DLL DLL with all functions FECOM.LIB LIB file for linking in C/C++ projects FECOMBOR.LIB LIB file for linking in C/C++ projects with the Borland compiler FECOM.H Header file for C/C++ projects FECOMDEF.H Header file with error codes for C/C++ projects (optional) FECOM.BAS Declare file for Visual Basic projects FECOM.PAS Declare file for Delphi projects 9.2 Installation The installation must be performed manually: Copy FECOM.DLL to the application program directory or to the Windows system directory. For C/C++ programmers: Copy FECOM.LIB to the project or LIB directory or add FECOMBOR.LIB to your project Copy FECOM.H and (optional) FECOMDEF.H to the project or INCLUDE directory For Visual Basic programmers: Copy FECOM.BAS to the proejct directory For Delphi programmers: Copy FECOM.PAS to the project directory 1 As of Visual Basic As of NT Version (4)J31069-D0138-U001-A3-7618

295 05/05 Installing the FECOM-DLL 9.3 Integration into the application program For C/C++ programmers: All functions can be used immediately once the LIB file has been made known to the development tool. Prerequisite is, of course, that the include instruction is used to declare the DLL functions within each source file that invokes FECOM functions. For Delphi programmers: Add FECOM to the USES Statement in any source file of your project that calls functions from FECOM.DLL. For Visual Basic programmers: Add the FECOM.BAS file to your project. (4)J31069-D0138-U001-A

296 FECOM-DLL programming interface 05/05 10 FECOM-DLL programming interface 10.1 Overview For the convenience of the programmer, the FECOM-DLL encapsulates all functions and parameters necessary for administrating one or more serial interfaces that are open simultaneously. The object-oriented internal structure (see Fig. 10-1) is intentionally realized as a function interface on the outside. This brings with it the advantage of language independence. The DLL has a self-adminstration capability that frees up the application program from having to provide intermediate storage for any values, settings or other parameters: The driver manager in FECOM.DLL keeps a list of all generated port objects and each port object administrates all settings relevant to its interface within its local memory. Fig.10-1: Internal structure of FECOM.DLL FECOM.DLL FECOM_OpenPort FECOM_ClosePort FECOM_GetPortList FECOM_GetPortHnd FECOM_GetDLLVersion Treiber-Manager - Liste der PortHandle - Versionsnummer Port-Objekt - PortHandle - Parameter - Event-Handler Port-Objekt - PortHandle - Parameter - Event-Handler Treiber Treiber COM:1 COM:2 FECOM_GetPortPara FECOM_SetPortPara FECOM_Transceive FECOM_Transmit FECOM_Receive Port-Objekt - PortHandle - Parameter - Event-Handler Treiber COM:n The DLL is automatically opened at the start of the application program if you have integrated the DLL into your project. This gives you immediate acess to all DLL functions. A port object must be created prior to the first communication procedure. This is automatically carried out by the FECOM_OpenPort function. If this function was carried out without any errors, a return value provides a handle that can be administrated by the application program. The opened port object can only be uniquely identified with this handle. However, the handle or handles do not have to be stored in the application program because the DLL driver manager internally administrates a list of all opened COM ports. This list can be called using the FE- COM_GetPortList function. Using the handles that are successively received in this way, all settings that pertain to this port, including the port number, can then be read out using the FECOM_GetPortPara function. 294 (4)J31069-D0138-U001-A3-7618

297 05/05 FECOM-DLL programming interface A port object generated using FECOM_OpenPort absolutely must be removed from the memory using the FECOM_ClosePort function that also closes the COM port. If an application program is called several times, each program (instance) receives an empty port list with the FECOM_GetPortList function call. This prevents access rights from being mixed up between different program instances. However, a COM port can only be opened once since it is actually physically present only once. Each DLL function (exception: FECOM_GetDLLVersion) has a return value that is always negative in the event of an error. (4)J31069-D0138-U001-A

298 FECOM-DLL programming interface 05/ Event signaling for control lines Event handling measures can be installed for the DTR, RTS, CTS, DCD and DSR control lines. They are installed separately for each control line of each open port. As soon as a control line changes its status, the appropriate signaling is carried out. In this way, an application can be notified of the event asynchronously to the program procedure. An event handling measure must be installed using the FECOM_AddEventHandler function. Three different signaling methods are available: message to calling process, message to a window or use of a callback function. An installed event handling measure must be removed using the FECOM_DelEventHandler function. The FECOM_EVENT_INIT structure contains the parameters required for signaling: typedef struct _FECOM_EVENT_INIT { UINT uiuse; // Defines an event (e.g. FECOM_CTS_EVENT) UINT uimsg; // Message code for dwthreadid and hwndwnd (e.g. WM_USER_xyz) UINT uiflag; // Specifies the use of the union (e.g. FECOM_WND_HWND) union { }Method 1 ; } FECOM_EVENT_INIT; DWORD dwthreadid; // For thread ID HWND hwndwnd; // For window handle void (*cbfct)(int, int); // For callback function HANDLE hevent; // For event handle The core element of the structure is the union, which contains either the ID of a process, the handle of a window, a function pointer or the handle of a Windows API event. The uiflag parameter is used to select the signaling form. The identifier for the control line to which the handling method is to be assigned is stored in the uiuse parameter. For the message methods, the message code must be stored in uimsg. Several handling methods can be installed for a single control line. But each dwthreadid, hwndwnd, cbfct or hevent can only be used once per control line and port. The state of each control line can be queried using the FECOM_DoPortCmd function independent of event signaling. 1 The naming of the union with method is for C programmers only. C++ programmers access the union directly via the structure. 296 (4)J31069-D0138-U001-A3-7618

299 05/05 FECOM-DLL programming interface 10.3 List of functions Note UCHAR is an abbreviation (#define) for "unsigned char". In Visual Basic and Delphi, the compatible data type is the byte (see contents of FECOM.BAS/FECOM.PAS). int FECOM_OpenPort( char* cportnr ) int FECOM_ClosePort( int iporthnd ) int FECOM_GetPortList( int inext ) void FECOM_GetDLLVersion( char* cversion ) int FECOM_GetErrorText( int ierrorcode, char* cerrortext ) int FECOM_GetLastError( int iporthnd, int* ierrorcode, char* cerrortext ) int FECOM_GetPortHnd( char* cportnr ) int FECOM_GetPortPara( int iporthnd, char* cpara, char* cvalue ) int FECOM_SetPortPara( int iporthnd, char* cpara, char* cvalue ) int FECOM_DoPortCmd( int iporthnd, char* ccmd, char* cvalue ) int FECOM_AddEventHandler( int iporthnd, FECOM_EVENT_INIT* pinit ) int FECOM_DelEventHandler( int iporthnd, FECOM_EVENT_INIT* pinit ) int FECOM_Transceive( int iporthnd, UCHAR* csendprot, int isendlen, UCHAR* crecprot, int ireclen ) int FECOM_Transmit( int iporthnd, UCHAR* csendprot, int isendlen ) int FECOM_Receive( int iporthnd, UCHAR* crecprot, int ireclen ) (4)J31069-D0138-U001-A

300 FECOM-DLL programming interface 05/ FECOM_OpenPort Function Opens a serial interface for communication with a MOBY D reader. Syntax int FECOM_OpenPort( char* cportnr ) Description Return value Standard parameters Example The function opens a serial interface using default parameters and generates an internal interface structure for administrating the parameters. The FE- COM_SetPortPara function can be used to subsequently change these parameters. These parameters can be read out using FECOM_GetPortPara. The returned iporthnd handle identifies the interface on the outside. cportnr is a null-terminated character string with the address of the serial interface (e.g. "1" for COM:1). Values ranging from "1" to "256" are acceptable. The serial interface opened with FECOM_OpenPort must (!) be closed with the FE- COM_ClosePort function. Otherwise, the memory reserved by the DLL will not be released. If the serial interface could be opened without any errors, a handle (>0) is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap The default parameters of the serial interface are: Baud: 9600; Frame: 8E1; Timeout: 600ms... #include "fecom.h" char cportnr[4]; itoa( 1, cportnr, 10 ); // Convert Integer to Char... int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle < 0 ) { // Code in the event of an error } else { // Communication via COM:1; if successful, the receive data are located in RecBut } // Code for communication or other 298 (4)J31069-D0138-U001-A3-7618

301 05/05 FECOM-DLL programming interface FECOM_ClosePort Function Closes a serial interface. Syntax int FECOM_ClosePort( int iporthnd ) Description Return value Example The function closes the serial interface specified by the iporthnd parameter and releases the reserved memory. The return value is 0 if the serial interface was closed. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "fecom.h" int Err; char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle < 0 ) { // Code in the event of an error } if( handle > 0 ) { Err = FECOM_ClosePort( handle );... } (4)J31069-D0138-U001-A

302 FECOM-DLL programming interface 05/ FECOM_GetPortList Function Determines the first or the next PortHandle from the internal list of opened serial interfaces depending on the inext parameter. Syntax int FECOM_GetPortList( int inext ) Description The function returns a PortHandle from the internal list of PortHandles. If a value of 0 is passed with inext, the first entry in the list is returned. If a PortHandle from the list is passed with inext, the entry following the PortHandle is determined and returned. Thus, by successively entering the return value, the list can be worked through from front to back and all entries can be called up. Return value Example If an entry is found, the PortHandle is provided in the return value. A value of 0 is returned when the end of the internal list is reached, i.e. if the passed PortHandle has no successor. If no port is open, FECOM_ERR_EMPTY_LIST is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "fecom.h"... // Function determines the settings of all open COM ports void COMList( void ) { int inexthnd = FECOM_GetPortList( 0 ); // Determine the first handle while( inexthnd > 0 ) { // E.g. code for reading the COM parameters using FECOM_GetPortPara(...)... inexthnd = FECOM_GetPortList( inexthnd ); // Determine the next handle }... // E.g. code for displaying the list... } Tip It is convenient to use a loop, similar to that in the example above, for closing all opened COM ports. However, it must be considered that the successor of a closed port can no longer be determined. The following code fragment shows how to delete all opened ports in a loop:... inexthnd = FECOM_GetPortList( 0 ); // Determine the first handle while( inexthnd > 0 ) { iclosehnd = inexthnd; inexthnd = FECOM_GetPortList( inexthnd ); // Determine the next handle ierror = FECOM_ClosePort( iclosehnd ); }... // Now close the port 300 (4)J31069-D0138-U001-A3-7618

303 05/05 FECOM-DLL programming interface FECOM_GetDLLVersion Function Determines the DLL version number. Syntax void FECOM_GetDLLVersion( char* cversion ) Description Return value Example The function returns the DLL version number. cversion is an empty, null-terminated character string for retuning a version number. The character string should be able to hold at least 256 characters. In the current version, the character string is filled with " ". Newer versions could be designed to provide additional information. without... #include "fecom.h" char cversion[256]; FECOM_GetDLLVersion( cversion ) // Code for displaying version number FECOM_GetErrorText Function Determines the error text for the error code Syntax int FECOM_GetErrorText( int ierrorcode, char* cerrortext ) Description Return value Example The function passes the English error text corresponding to ierrorcode in cerrortext. The buffer for cerrortext should be able to hold at least 256 characters. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "fecom.h" #include "fecomdef.h" char cerrortext [256];... int iback = FECOM_GetErrorText(FECOM_ERR_EMPTY_LIST, cerrortext ) // Code for displaying the text (4)J31069-D0138-U001-A

304 FECOM-DLL programming interface 05/ FECOM_GetLastError Function Determines the last error code and passes the error text. Syntax int FECOM_GetLastError( int iporthnd, int* ierrorcode, char* cerrortext ) Description Return value Example The function returns the last error code of the interface selected with iporthnd in ierrorcode and passes the matching English error text in cerrortext. The buffer for cerrortext should be able to hold at least 256 characters. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "fecom.h" char cerrortext [256]; int ierrorcode = 0;... int iback = FECOM_GetLastError( iporthnd, &ierrorcode, cerrortext ) // Code for displaying the text (4)J31069-D0138-U001-A3-7618

305 05/05 FECOM-DLL programming interface FECOM_GetPortHnd Function Determines the port handle of a serial interface opened with FECOM.DLL. Syntax int FECOM_GetPortHnd( char* cportnr ) Description Return value Example In general, the number of the COM port is set in the program, while the handle is used internally in the program. This function is a simple method for determining the Port- Handle of a serial interface that was previously opened. This function is an "inverse function" of FECOM_GetPortPara( handle, "PortNr", Value ). It determines the number of the COM port associated with the PortHandle. cportnr is a null-terminated character string with the address of the serial interface (e.g. "1" for COM:1). Values ranging from "1" to "256" are permissible. If the serial interface to the passed cportnr is found, the PortHandle (>0) is returned. If the port number that is being searched for is not found in the port list, a value of 0 is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap #include "fecom.h"... char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char int handle = FECOM_OpenPort( cportnr ); if( handle < 0 ) { // Code in the event of an error } else { // Handle is determined again using the PortNr handle = FECOM_GetPortHnd( cportnr ); } (4)J31069-D0138-U001-A

306 FECOM-DLL programming interface 05/ FECOM_GetPortPara Function Determines a parameter of the serial interface specified by iporthnd. Syntax int FECOM_GetPortPara( int iporthnd, char* cpara, char* cvalue ) Description Parameter IDs Return value The function determines the current value of a parameter. cpara is a null-terminated character string containing the parameter ID cvalue is an empty, null-terminated character string for returning the parameter value. The character string should be able to hold at least 128 characters. The parameter IDs are: Baud, Frame, Timeout, ErrCode, ErrStr, TxTimeControl, TxDelayTime, CharTimeoutMpy, PortNr. The latter returns the physical number of the serial interface. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap Cross reference Additional information is found in chap List of parameter IDs.... Example #include "fecom.h" char cvalue[128];... if(!fecom_getportpara( handle, "Baud", cvalue ) ) { // Code for displaying the COM parameter... } } 304 (4)J31069-D0138-U001-A3-7618

307 05/05 FECOM-DLL programming interface FECOM_SetPortPara Function Sets a parameter of a serial interface to a new value. Syntax int FECOM_SetPortPara( int iporthnd, char* cpara, char* cvalue ) Description Return value Cross reference Example The function passes a new parameter to the serial interface specified by iporthnd. This causes the affected serial interface to be reinitialized and the send and receive buffers to be cleared. cpara is a null-terminated character string containing the parameter ID. cvalue is a null-terminated character string containing the new parameter value. Parameter ID Value range Default value Units Baud bit/s Frame 7N1, 7E1, 7O1, 7N2, 7E2, 7O2, 8N1, 8E1, 8O1 8E1 Timeout ms TxTimeControl 0, 1 1 TxDelayTime ms CharTimeoutMpy If it was possible to initialize the serial interface with the new parameter value without any errors, a value of 0 is returned. In the event of an error, the function returns a value less than zero. The error codes are listed in chap Additional information is found in chap List of parameter IDs.... #include "fecom.h" int Err; char cportnr[4];... itoa( 1, cportnr, 10 ); // Conver Integer to Char int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle > 0 ) { Err = FECOM_SetPortPara( handle, "Baud", "4800" );... } (4)J31069-D0138-U001-A

308 FECOM-DLL programming interface 05/ FECOM_DoPortCmd Function Carries out a command at a serial interface. Syntax int FECOM_DoPortCmd( int iporthnd, char* ccmd, char* cvalue ) Description Return value Example 1 Example 2l The function carries out a command at the serial interface specified by iporthnd. ccmd is a null-terminated character string containing the command ID. cvalue is a null-terminated character string that contains the new parameter value or is used for the return value (e.g. status of a control line). If a return value is expected in cvalue, the buffer should be able to hold at least 16 characters. Command Function cvalue FlushInQ Input buffer is flushed Unused FlushOutQ Output buffer is flushed Unused SetDTR Sets the DTR line "ON or "OFF "ON or "OFF SetRTS Sets the RTS line "ON or "OFF "ON or "OFF GetDTR Determines the DTR status Status {"ON, "OFF } GetRTS Determines the RTS status Status {"ON, "OFF } GetCTS Determines the CTS status Status {"ON, "OFF } GetDCD Determines the DCD status Status {"ON, "OFF } GetDSR Determines the DSR status Status {"ON, "OFF } If the command is carried out without any errors, a value of 0 is returned. In the event of an error, the function returns a value less than zero. #include "fecom.h" int Err; char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char int handle = FECOM_OpenPort( cportnr ); if( handle > 0 ) { Err = FECOM_DoPortCmd( handle, "FlushInQ", "" );... }... #include "fecom.h"... int Err; char cvalue[16];... Err = FECOM_DoPortCmd( handle, "GetCTS", cvalue ); if( strcmp(cvalue, ÑONì)==0) // Comparison of character strings { // CTS is set } (4)J31069-D0138-U001-A3-7618

309 05/05 FECOM-DLL programming interface FECOM_AddEventHandler Function An event handling measure is installed. Syntax int FECOM_AddEventHandler( int iporthnd, FECOM_EVENT_INIT* pinit ) Description The function installs one of four possible event handling methods. This method is applied when the state of the control line for which the method was installed changes. This makes an asynchronous reaction to events in an application program possible. The event handling method is only set up for the interfaced identified by iporthnd. This means that this installation must be carried out for each opened interface for which it is required 1st method: Message to thread (not for Visual Basic) This method is used for exchanging messages between threads 1. Using the GetCurrentThreadID() API function, the thread determines the thread identifier and passes it as the dwthreadid parameter in the FECOM_EVENT_INIT structure. The thread must provide a message handling function for receiving the message that was sent by FECOM using the PostThreadMessage(..) API function. The message code can be selected as required. The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines FECOM.H uimsg = WM_USER +... // Freely selectable but above WM_USER 2 uiflag = FECOM_THREAD_ID dwthreadid = GetCurrentThreadID() The first parameter (WPARAM) passes the port number to the MessageMap function in the application; the second parameter (LPARAM) passes the state of the control line (0 = not set; 1 = set). 2nd method: Message to window (not for Visual Basic) This method is used if a message is to be sent directly to a window. The handle of the respective window is determined using the GetWindow(..) API function 3 and is passed as the hwndwnd parameter in the FECOM_EVENT_INIT structure. The window must provide a message handling function for receiving the message that was sent by FECOM using the API-Function PostMessage(..). The message code can be selected as required. The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT uimsg = WM_USER +... // See Defines FECOM.H // Freely selectable, but above WM_USER 2 uiflag = FECOM_WND_HWND hwndwnd = GetWindow(...) The first parameter (WPARAM) passes the port number to the MessageMap function in the application; the second parameter (LPARAM) passes the state of the control line (0 = not set; 1 = set). 1 Parallel path of execution independent of application program. The application program is also a thread. 2 See Windows documentation for Platform SDK 3 When using the CWnd MFC class, it is also possible to use the GetSafeHwnd(). (4)J31069-D0138-U001-A

310 FECOM-DLL programming interface 05/05 3rd method: Calling a callback function The callback method installs a function pointer for an event. This function must be declared as follows: void IhrFunctionsName(int, int); If a change in state takes place on the respective control line, the function is called by FECOM. The contents of the function can be defined as required. However, the passed parameters are fixed: the port number is passed in the 1st parameter (int) and the state of the control line is passed in the 2nd parameter (int) (0 = not set; 1 = set). The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines FECOM.H uimsg wird nicht benˆtigt uiflag = FECOM_CALLBACK cbfct = (void*)&ihrfunctionsname 1 4th method: Setting an event The event method is used to install an event handle for an event. If a change in state takes place at the respective control line, the event is set by FECOM using the SetEvent(...) API function. The application side waits for the event using the Wait- ForSingleObject(...) API function. Since it is not possible to determine how the state of the respective control line has changed, the state is queried using the FE- COM_DoPortCmd function. The set event must be reset by the application program using the ResetEvent(...) API function. The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines FECOM.H uimsg wird nicht benˆtigt uiflag = FECOM_EVENT hevent = CreateEvent(...); An installed event handling method must be deleted using the FECOM_DelEventHandler function All event handling methods installed for an interface are lost when the interface is closed. Cross reference Additional information is found in chap Event signaling for control lines, chap FECOM_DelEventHandler, chap List of constants for the FECOM_EVENT_INIT structure. Return value The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap The function has the prototype: void IhrFunctionsName(int, int) 308 (4)J31069-D0138-U001-A3-7618

311 05/05 FECOM-DLL programming interface FECOM_DelEventHandler Function An event handling measure is removed. Syntax int FECOM_DelEventHandler( int iporthnd, FECOM_EVENT_INIT* pinit ) Description Querverweis Return value The function removes an event handling measure previous installed using FE- COM_AddEventHandler. The event handling measure to be removed is specified in detail in the FECOM_EVENT_INIT structure. Removing the 1st method: Message to thread (not for Visual Basic) The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines in FECOM.H uimsg wird nicht benötigt uiflag = FECOM_THREAD_ID dwthreadid = GetCurrentThreadID() Removing the 2nd method: Message to window (not for Visual Basic) The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines in FECOM.H uimsg wird nicht benötigt uiflag = FECOM_WND_HWND hwndwnd = GetWindow(...) Removing the 3rd method: Call of a callback function The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines FECOM.H uimsg wird nicht benötigt uiflag = FECOM_CALLBACK cbfct = (void*)&ihrfunctionsname Removing the 4th method: Setting an event The FECOM_EVENT_INIT is filled out as follow: uiuse = FECOM_xyz_EVENT // See Defines FECOM.H uimsg wird nicht benötigt uiflag = FECOM_EVENT hevent = IhrEventHandle; Additional information is found in chap Event signaling for control lines, chap FECOM_AddEventHandler, chap List of constants for the FECOM_EVENT_INIT structure. The function returns a value of zero if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap (4)J31069-D0138-U001-A

312 FECOM-DLL programming interface 05/ FECOM_Transceive Function Syntax Description Return value Example Function for communicating (transmitting and receiving) via the port. int FECOM_Transceive( int iporthnd, UCHAR* csendprot, int isendlen, UCHAR* crecprot, int ireclen ) The function transmits the data contained in csendprot to a connected device via the serial interface and stores the received data in crecprot. The number of characters must be passed in the isendlen parameter. The maximum length of the crecprot buffer must be specified in the ireclen parameter. If the number of received characters exceeds the value passed in ireclen, the function is terminated with an error. Characters received prior to termination are stored in crecprot. The send and receive buffers are cleared prior to communication. Using the TxDelayTime parameter, 1 the send protocol can be delayed until the TxDelayTime time period since the last receive protocol has expired. The function returns the length of the receive protocol if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "fecom.h"... int isendlen; int irecprotlen; char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char UCHAR csendbuf[256]; // Buffer size may have to be matched to the send data UCHAR crecbuf[256]; // Buffer size may have to be matched to the receive data... int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle < 0 ) { // Code in the event of an error } else { // For example, the send protocol is determined using a function and stored in the SendBuf isendlen = GetSendProtocol( csendbuf ); // Communication via COM:1; if successful, the receive data are located in RecBuf irecprotlen = FECOM_Transceive( handle, csendbuf, isendlen, crecbuf, 256 ); if( crecprotlen < 0 ) { // Communication error } } 1 See chap FECOM_SetPortPara 310 (4)J31069-D0138-U001-A3-7618

313 05/05 FECOM-DLL programming interface FECOM_Transmit Function Function for outputting a protocol via the port. Syntax int FECOM_Transmit( int iporthnd, UCHAR* csendprot, int isendlen ) Description Return value Example The function sends the data contained in csendprot to a connected device via the serial interface and does not wait for a response protocol. The number of characters must be passed in the isendlen parameter. The send buffer is cleared before the protocol is sent. Characters still waiting to be output are lost as a consequence. The function only returns after all characters have been output via the interface. The function returns a value of 0 if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "fecom.h" int ierr; int isendlen; char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char UCHAR csendbuf[256]; // Buffer size may have to be matched to the send data... int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle < 0 ) { // Code in the event of an error } else { // For example, the send protocol is determined using a function and stored in the SendBuf isendlen = GetSendProtocol( csendbuf ); // Communication via COM:1 ierr = FECOM_Transmit( handle, csendbuf, isendlen ); if( ierr < 0 ) { // Communication error } } (4)J31069-D0138-U001-A

314 FECOM-DLL programming interface 05/ FECOM_Receive Function Function for receiving a protocol via the port. Syntax int FECOM_Receive( int iporthnd, UCHAR* crecprot, int ireclen ) Description Return value Example The function expects to receive data over the serial interface within the time period Timeout (see chap List of parameter IDs), reads them out and stores them in the crecprot receive buffer. The maximum length of the crecprot buffer must be specified in the ireclen parameter. If the number of received characters exceeds the value passed in ireclen, the function is terminated with an error. Characters received prior to termination are stored in crecprot. The function does not delete the receive buffer. This ensures that characters that arrived previously are not lost. The function returns the length of the receive protocol if there are no errors and a value less than zero if errors did occur. The error codes are listed in chap #include "fecom.h" #include "fecomdef.h" int irecprotlen; char cportnr[4];... itoa( 1, cportnr, 10 ); // Convert Integer to Char UCHAR crecbuf[256]; // Buffer size may have to be matched to the receive data... int handle = FECOM_OpenPort( cportnr ); // COM:1 is opened if( handle < 0 ) { // Code in the event of an error } else { // Communication via COM:1; if successful, the receive data are located in RecBut } irecprotlen = FECOM_Receive( handle, crecbuf, 256 ); if( irecprotlen < 0 ) { // Communication erorr or buffer overflow if( irecprotlen == FECOM_ERR_OVL_RECBUF ) { // Buffer overflow: data in RecBuf are valid receive data... } } 312 (4)J31069-D0138-U001-A3-7618

315 05/05 FECOM-DLL programming interface 10.4 Appendix ID FECOM error codes Error constant Value Description FECOM_ERR_NEWPORT_FAILURE Error while generating a new port object. May be caused by memory shortage. FECOM_ERR_EMPTY_LIST Port handle list is empty (no port object generated) FECOM_ERR_POINTER_IS_NULL A pointer is null and therefore invalid FECOM_ERR_NO_MEMORY Out of memory FECOM_ERR_UNSUPPORTED_HARDWARE Unsupported hardware. This error is generated when the hardware in use does not support pointers with a high resolution FECOM_ERR_NO_PORT Port could not be opened FECOM_ERR_NO_CONNECT Timeout when opening the port. Port was not opened. FECOM_ERR_LINK_ID The cportnr parameter of the FE- COM-OpenPort function is defective FECOM_ERR_PORT_IS_OPEN The port is already open FECOM_ERR_UNKNOWN_HND The passed port handle is unknown FECOM_ERR_HND_IS_NULL The passed port handle is 0 FECOM_ERR_HND_IS_NEGATIVE The passed port handle is negative FECOM_ERR_NO_HND_FOUND No port handle was found in the port handle list FECOM_ERR_TIMEOUT Timeout when reading the port FECOM_ERR_NO_SENDPROTOCOL No send protocol passed FECOM_ERR_RECEIVE_PROCESS Error in receive process FECOM_ERR_INIT_COMM_PROCESS Error in initializing the port FECOM_ERR_FLUSH_INPUT_BUFFER Error flushing receive buffer FECOM_ERR_FLUSH_OUTPUT_BUFFER Error flushing send buffer FECOM_ERR_CHANGE_PORT_PARA Error when changing a port parameter FECOM_ERR_TRANSMIT_PROCESS Error in send process FECOM_ERR_UNKNOWN_PARAMETER Passed parameter is unknown (4)J31069-D0138-U001-A

316 FECOM-DLL programming interface 05/05 Error constant Value Description FECOM_ERR_PARAMETER_OUT_OF_RANGE Passed parameter is too large or too small FECOM_ERR_ODD_PARAMETERSTRING An unsupported option was called via the passed parameter FECOM_ERR_PORTNR_OUT_OF_RANGE The passed port number is outside of the valid range of FECOM_ERR_UNKNOWN_ERRORCODE Unknown error code FECOM_ERR_OVL_RECBUF Receive buffer overflow 314 (4)J31069-D0138-U001-A3-7618

317 05/05 FECOM-DLL programming interface List of parameter IDs Parameter ID Value range Default Units Description Baud bit/s Interface baud rate Frame 7N1, 7E1, 7O1, 7N2, 7E2, 7O2, 8N1, 8E1, 8O1 8E1 Character frame (data bits, parity, stop bits) Timeout ms Maximum waiting time for receive protocol PortNr COM port number TxTimeControl 0, 1 1 If set (1), the output of the next send protocol is delayed until at least TxDelayTime (ms) has elapsed since the last receive protocol. If not set (0), the send protocol is always output as fast as possible. TxDelayTime ms Minimum time period between the last receive protocol and the next send protocol. Only taken into account if TxTimeControl=1 CharTimeoutMpy Since V , the character timeout is calculated internally. The character timeout determines how long after receipt of the last character the receive process is ended. Some PCs may experience frequent protocol length errors because the waiting time is too short. In this case, this parameter can be used to multiply the waiting time. (4)J31069-D0138-U001-A

318 FECOM-DLL programming interface 05/05 The FECOM_GetLastError function should be used in place of the following parameter IDs ErrCode Returns last error code ErrStr Returns text for last error Obsolete parameters CharTimeout ms Maximum waiting time for next character in the receive protocol SleepTime ms Waiting time after the send protocol and before reading in the receive protocol 1 PortOpenTimeout ms Maximum waiting time for opening a COM port 1 See chap FECOM_Transceive 316 (4)J31069-D0138-U001-A3-7618

319 05/05 FECOM-DLL programming interface List of constants for the FECOM_EVENT_INIT structure The definitions of the constants are contained in the FECOM.H, FECOM.BAS or FECOM.PAS file. Constant Value Use Description FECOM_THREAD_ID 1 uiflag Event signaling with thread message FECOM_WND_HWND 2 uiflag Event signaling with window message FECOM_CALLBACK 3 uiflag Event signaling with callback function FECOM_EVENT 4 uiflag Event signaling with Windows API event FECOM_CTS_EVENT 1 uiuse Signaling for CTS change FECOM_DCD_EVENT 2 uiuse Signaling for DCD change FECOM_DSR_EVENT 3 uiuse Signaling for DSR change FECOM_RTS_EVENT 4 uiuse Signaling for RTS change FECOM_DTR_EVENT 5 uiuse Signaling for DTR change (4)J31069-D0138-U001-A

320 Class library overview 05/05 11 Class library overview 11.1 Introduction The C++ class library, ID FEDM, is another component provided by MOBY D designed to simplify the development of application programs for our SLG D1x reader. The C++ class library, ID FEDM, support all MOBY D reader families and can be considered to be an additional protocol layer above the MOBY D function library. The C++ class library, ID FEDM, introduces an organizational principle for all MOBY D reader families that makes it possible to generate similar program structures for all MOBY D readers, independent of the readers actually in use. This organizational principle, which was also implemented in the MOBY D function libraries in the form of similar function interfaces, is extended here to include the data container and the control of the data flow and protocol traffic. In spite of the consistent organizational principle, the storable data of the readers and transponders are still handled at a very low level. This means that the programmer is confronted with reader parameters in bits and bytes and that transponder data are only provided as unorganized data quantities. On the one hand, this has the advantage that the programmer is given universal access. On the other hand, multiple operations must be carried out sequentially even if, for example, only a few data are to be written to a transponder. Further simplification by abstracting data flow and actions is reserved for an overlying module layer. For the first time, the C++ class library, ID FEDM, provides a simple method of serializing data 1. This makes it possible, for example, to store a complete reader configuration in a file, reload it later and transer it to the reader. The documentation for the C++ class library is presented in two parts: this document only describes the base classes and the shared characteristics of the specialized reader classes. Detailed documentation of the reader classes is contained in separate handbooks. 1 ForMicrosoft Visual C++ only at this time.currently being developed for the Borland C++ Builder 318 (4)J31069-D0138-U001-A3-7618

321 05/05 Class library overview Overview of all MOBY D components The C++ class library, ID FEDM, builds on other MOBY D components. The overview below shows what other components are required for each reader family and the provided interface. The function libraries are all structured in the form of dynamic link libraries (DLL). FEDM class library FEDM_Base FEDM_DataBase FEDM_ISCReader Function library FEISC Application level FECOM Kernel level Windows- Drivers RS 232 RS 422 The layering of libraries as seen in the overview reflects the degree of specialization in each layer. The lowest (physical) layer with the kernel drivers is responsible for protocol transfer at the hardware level. The overlying protocol transfer layer with FECOM.DLL provides an application with its first function interface to the physical interfaces. The MOBY D reader-specific protocol layer (FEISC.DLL) is located in yet another overlying layer. This layer allows a simple communication with MOBY D readers. In complex applications, organizational structures must be generated for data transferred using the protocols. This is the task of the C++ class library, ID FEDM. It is located one layer above the MOBY D reader-specific protocol layer. It must provide organizational structures for all MOBY D reader families. This goal is realized using base classes, the specialized reader classes and the use of objectoriented methods, such as overloaded functions, abstract base class (FEDM_DataBase) and the use of the Standard Template Library (STL). (4)J31069-D0138-U001-A

322 Class library overview 05/05 The C++ class library, ID FEDM, does not have to be integrated in the application in its complete form. Depending on the MOBY D reader family being used, only the specialized reader class, the base classes and the global functions and constants are used. However, the underlying function libraries for the reader class being used are absolutely necessary for the functionality of the reader class within the C++ class library, ID FEDM Supported operating systems and development environments Microsoft Visual C++ under Windows 9x/ME/NT4/2000 Borland C++Builder under Windows 9x/ME/NT4/ (4)J31069-D0138-U001-A3-7618

323 05/05 Class library overview 11.2 Installation FEDM.h Installation is very simple: Copy all files of the C++ class library to a directory and add this directory to your development environment as an additional INCLUDE directory. The following files are part of the scope of delivery: File FEDM_Base.h/.cpp FEDM_DataBase.h/.cpp FEDM_Functions.h/.cpp Description Contains includes, constants and macros Base class Abstract base class derived from FEDM_Base Global functions FEDM_xyzReader.h/.cpp Specialized reader class derived from FEDM_DataBase (see chap. 15) Any further files if present (4)J31069-D0138-U001-A

324 Class library overview 05/ Class overview Depending on the requirements of the given situation, the user either needs a base class on which the special reader class can be built, or the existing reader class is used as a component with a defined interface as a black box object, so to speak. A brief overview of both application types is provided in the following diagrams Class structure diagram The structure diagram shows the static structure of the C++ class library. Class tree, FEDM-specific data types and auxiliary classes are shown. The classes shown in the diagram contain only a few important attributes and functions. Static class structure ID FEDM Base class FEDM_Base #SetData() #GetData() Data type «Datentyp» FEDM_BYTE_ARRAY Abstract base class FEDM_DataBase +EEData : FEDM_BYTE_ARRAY +RAMData : FEDM_BYTE_ARRAY +TmpData : FEDM_BYTE_ARRAY +MjpData : FEDM_BYTE_ARRAY +SN_Mem : FEDM_BYTE_ARRAY +ID_Mem : FEDM_BYTE_ARRAY +AC_Mem : FEDM_BYTE_ARRAY +SecMem : FEDM_BYTE_ARRAY +ConfMem : FEDM_BYTE_ARRAY +DateMem : FEDM_BYTE_ARRAY +SetData() +GetData() +SendProtocol() «Datentyp» FEDM_ISCTAB_ARRAY Reader class FEDM_ISCReader -m_table : FEDM_ISCTAB_ARRAY +SendProtocol() +SetPortHnd() +GetPortHnd() +GetErrorText() +GetLastError() +GetLastStatus() Auxiliary class «Hilfsklasse» FEDM_ISCTable 322 (4)J31069-D0138-U001-A3-7618

325 05/05 Class library overview Component diagram The component diagram shows the C++ class library, ID FEDM, from a different angle. Only the most important functions are displayed. Attributes are not shown. A detailed and complete component diagram is contained in the documentation of each reader class. Most member functions form a type-independent interface that is consistent for all reader classes. This makes it possible to operate different reader families in one application with the same algorithm. SendProtocol Reader class SetReaderHnd GetReaderHnd Function library (e.g.feisc) SetPortHnd GetPortHnd SetBusAddress GetBusAddress Serialize SetData GetData SetTableData GetTableData FindTableIndex GetTableSize Container (e.g. RAMData) Container (e.g. TmpData) Container (e.g. EEData) Table (e.g. ISCTable) (4)J31069-D0138-U001-A

326 Basic features of the class library 05/05 12 Basic features of the class library 12.1 Internal structure The function of a reader class to which we can limit our view when using the class library is clearly illustrated in the following sketch: the vertical axis shows the direction in which data flows as it is moved by the (overloaded) GetData and SetData functions, the GetTableData 1 function and SetTableData function. In addition, the serialize function enables data flow between an instance of the reader class and a file. GetData SetData GetTableDat SetTableData SendProtoco Function library (e.g. FEISC) EEData TmpData ISCTable Reader class (e.g. FEDM_ISCReader) Serialize The horizontal axis shows the control flow triggered by the SendProtocol function, which is the only communication function. Before the send protocol is output, the function automatically retrieves all required data from the integrated data containers and also stores the received protocol data back to those locations. Thus, before SendProtocol is called, the application program must write all data required for this protocol to the correct location in the respective data containers. Similarly, the receive data are also stored in specific location in the respective data containers. 1 GetTabelData and SetTableData is not implemented in all reader classes because those classes to not have an integrated table. 324 (4)J31069-D0138-U001-A3-7618

327 05/05 Basic features of the class library The keys to the protocol data are so-called access constants. Each reader parameter and all transponder data have their own access constants. From several dozen to a hundred constants can be defined for each reader class. Their structure is identical for all reader classes and is particularly important. It is described in detail in chap Access constants. Since the access constants are of fundamental importance for the entire function of the reader class, they are closely described in the documentation for the various reader classes in that context. (4)J31069-D0138-U001-A

328 Basic features of the class library 05/ Data containers Data containers are responsible for the structured administration of all parameters or transponder data. All data containers are internally organized as byte arrays in Motorola format (Big Endian). This format corresponds to every MOBY D reader. Translation of the format into the Intel format required for Intel-based PCs (Little Endian) is accomplished by the overloaded access functions. The byte arrays are organized in blocks of 16 byte or 4 byte each. This organization also matches that of the reader or transponder. A total of 11 data containers are integrated in the abstract base class, FEDM_DataBase. All have size 0. The size of the required data containers is determined by the derived reader class. Unused data containers remain at size 0. Data container EEData RAMData TmpData MjpData SN_Mem ID_Mem AC_Mem PubMem SecMem ConfMem DateMem Description For configuration parameters of the reader For temp. configuration parameters of the reader For general temp. protocol data For temp. protocol data of a multijob poll For transponder UID For ID numbers of the transponder For account data of the transponder For public data blocks of the transponder For secret data blocks of the transponder For configuration data of the transponder For date data of the transponder Access to the data is primarily possible using the overloaded functions SetData and GetData. With each function call, exactly one parameter that is identified through an access constant can be read or written. Alternatively, the bytes of the data containers can be directly accessed because they have been specified as public in the FEDM_DataBase class. This method should only be used for byte access. 326 (4)J31069-D0138-U001-A3-7618

329 05/05 Basic features of the class library The following examples show the use of GetData (SetData analog). Function overloading makes it possible to use the data type required at that time. 1. UCHAR ucbusadr = 0; int ierr = GetData(FEDM_ISCM_EE_COM_BUSADR, &ucbusadr); 2. UINT uibusadr = 0; int ierr = GetData(FEDM_ISCM_EE_COM_BUSADR, &uibusadr); 3. CString sbusadr; int ierr = GetData(FEDM_ISCM_EE_COM_BUSADR, sbusadr); 4. UCHAR ucbusadr = 0; int imemid = GetMemIDOfID(FEDM_ISCM_EE_COM_BUSADR); int iadr = GetAdrOfID(FEDM_ISCM_EE_COM_BUSADR); int ierr = GetData(iAdr, &ucbusadr, imemid); (4)J31069-D0138-U001-A

330 Basic features of the class library 05/ Access constants Access constants play a central role in data traffic between the application program and the data container of the class library, and within the class library between the protocol function and the data container. They identify the parameter and, at the same time, contain the code for the storage location in one of the data containers. An access constant is a string and is structured as follows: MM BN BY NB BI Nb #define FEDM_ISCM_EE_COM_BUSADR Parameter name Storage type Reader Component name MM Storage type (s. FEDM) BN Block number BY 1st byte in the block NB Number of bytes BI 1st bit in the byte Nb Number of bits These access constants are solely used with the SetData and GetData functions. The access constant provides no information on the data type of a parameter. The data type is determined solely by the data type of the access function. Thus, the bus address shown in the above example can either be read out as an integer, as a string or as any other plausible data type. Access to data in a table contained in the reader class using the SetTableData and GetTableData functions also takes place via unique constants, but these constants do not represent a string and thus do not contain a location code. 328 (4)J31069-D0138-U001-A3-7618

331 05/05 Basic features of the class library 12.4 Protocol traffic Protocol traffic is triggered using the only SendProtocol function. The only parameter it is passed is the control byte of the required protocol. All data required for protocol transfer are taken from the data containers or the tables. Thus, it must be ensured that all protocol data are previously updated. SendProtocol is contained in FEDM_DataBase as an abstract function and is not implemented until it is in the reader class. Most reader families are capable of handling busses and require the bus address in the protocol. This should be set using the SetBusAddress member function of the FEDM_DataBase class. The implementation of SendProtokoll calls DLL functions that always require a reader handle as their first parameter. These reader handles must be initialized using the SetReaderHnd member function before the SendProtocol is called for the first time Serialization The integrated serialization function, serialize, allows the storage of data from the data container in a file or loads data from a file to the data containers. The contents of only one data container can be serialized each time serialize is called. The serialize function is currently only available for Visual C++. (4)J31069-D0138-U001-A

332 Basic features of the class library 05/ Error handling Almost all functions of the class library carry out internal error checks and return a negative value in the event of an error. The error codes of the class library, ID FEDM, and MOBY D function libraries are organized in ranges in such a way that they cannot overlap. The following ranges are reserved for the ID FEDM class library and the MOBY D function libraries: Library ID FEDM ID FECOM ID FEISC Value range for error codes Using the GetErrorText function of the reader class, the English text corresponding to an error code can be called up. The passed error code can also come from the area of a MOBY D function library. The last error code is stored in the TmpData data container and can be called using the GetLastError member function. 330 (4)J31069-D0138-U001-A3-7618

333 05/05 Base classes of the class library 13 Base classes of the class library 13.1 FEDM_Base The FEDM_Base base class forms the base class of the C++ class library, ID FEDM. It only contains functions for the derived classes Functions (public) GetData SetData Function Description The executing (overloaded) function for reading a parameter value out of the data container. This function can only be used by the derived class, FEDM_DataBase, or from the reader class derived from it. The executing (overloaded) function for writing a parameter value to a data container. This function can only be used by the derived class, FEDM_DataBase, or from the reader class derived from it Functions (protected) GetErrorText Function Description Returns the English text for the passed error code. The error code must be taken from the list of FEDM error codes (see chap ). (4)J31069-D0138-U001-A

334 Base classes of the class library 05/ FEDM_DataBase The FEDM_DataBase class is a base class derived from FEDM_Base, that provides data containers and overloaded access functions matched to the data types of the data containers. The size of the data container is 0. The size is fixed in the reader class derived from the FEDM_DataBase. Furthermore, the class contains a series of abstract functions that must be implemented in each reader class. Abstract functions allow algorithms to be written independently of the reader type if the functions that are called are those from the FEDM_DataBase rather than those from the reader class of the same name. In this way, a type-independent interface is implemented Attributes (protected) Attribute m_ireaderhnd m_ucbusadr m_sfamid Description Handle of an object library that is created in the function library lying in the protocol layer specific to the MOBY D (FEISC.DLL,...). Communication is not possible without this handle. Bus address of the reader. Address 255 is used by default because every reader responds with this address. The bus address must be set if the reader has one of 255 different bus addresses. Short string that identifies the reader class as a class from the MOBY D reader family. This string is automatically set by the reader class and should be read only. Valid string is "ISC. 332 (4)J31069-D0138-U001-A3-7618

335 05/05 Base classes of the class library Attributes (public) Attribute Description Reader family Organization FEDM_BYTE_ARRAY EEData FEDM_BYTE_ARRAY RAMData FEDM_BYTE_ARRAY TmpData FEDM_BYTE_ARRAY MjpData For configuration parameters of the reader For temporary configuration parameters of the reader For general temporary protocol data For temporary protocol data of a multijob poll ISC ISC ISC ISC 16 bytes per block 16 bytes per block 16 bytes per block 16 bytes per block FEDM_BYTE_ARRAY SN_Mem For transponder UID ISC (ISCM01) 16 bytes per block FEDM_BYTE_ARRAY ID_Mem FEDM_BYTE_ARRAY PubMem FEDM_BYTE_ARRAY ConfMem For ID numbers of the transponder For public data blocks of the transponder For configuration data of the transponder ISC (ISCM01) ISC (ISCM01) ISC (ISCM01) 16 bytes per block 4 bytes per block 4 bytes per block (4)J31069-D0138-U001-A

336 Base classes of the class library 05/ Functions (public) Function SetReaderHnd GetReaderHnd SetBusAddress GetBusAddress GetFamilyCode SetData GetData Description Sets the handle received from the function library (FEISC.DLL,...) that is specific to the MOBY D reader. Returns the handle received from the function library (FEISC.DLL,...) that is specific to the MOBY D reader. Sets the bus address for the protocol traffic. Determines the bus address of the protocol traffic. Determines the short string for the classification of the reader classes. The central (overloaded) function for reading a parameter value from a data container. The call is forwarded to the FEDM_Base base function after the data container type (storage type constant) is determined from the access constant. SetData supports the following data types: bool, BOOL, UCHAR, UCHAR-Array, UINT, int64, CString or AnsiString, STL-string and C-character string. A second variable allows read access if the exact index and storage type constants are specified. This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. The central (overloaded) function for writing a parameter value to a data container. The call is forwarded to the FEDM_Base base function after the data container type (storage type constant) is determined from the access constant. SetData supports the following data types: bool, BOOL, UCHAR, UCHAR-Array, UINT, int64, CString or AnsiString, STL-string and C-character string. A second version allows write access if the the exact index and the storage type constant are specified. This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. 334 (4)J31069-D0138-U001-A3-7618

337 05/05 Base classes of the class library Abstract functions (public) Function SendProtocol GetLastProt SetPortHnd GetPortHnd GetLastError GetLastStatus GetErrorText GetStatusText Serialize GetTableData SetTableData FindTableIndex GetTableSize GetTableLength ResetTable The central communication function. Description Function for calling up the last send or receive protocol. Transfers the handle received from the function library (FECOM.DLL, FEUSB.DLL,...) lying in the protocol transfer layer to the function library (FEISC.DLL,...) lying in the MOBY D reader-specific protocol layer. Determines the handle received from the function library (FECOM.DLL, FEUSB.DLL,...) lying in the protocol transfer layer from the function library (FEISC.DLL,...) lying in the MOBY D reader-specific protocol layer. Returns the last error code and text. Returns the status value of the last protocol. Returns the error text corresponding to each error code. Returns the status text corresponding to each status byte. Allows serialization of the container data in files. The central (overloaded) function for reading a parameter value or data blocks out of a table. This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. The central (overloaded) function for writing a parameter value or data blocks to a table. This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. The central (overloaded) function for determining the table index on the basis of a value. This version supports the following data types: UCHAR, UINT, int64 and CString or AnsiString. Determines the static size of a table. Determines the number of valid table entries Resets a table. (4)J31069-D0138-U001-A

338 Global functions of the class library 05/05 14 Global functions of the class library 14.1 FEDM_Functions Function FEDM_GetMemIDOfID FEDM_GetAdrOfID FEDM_GetByteCntOfID FEDM_ConvHexStrToInt FEDM_ConvHexStrToUInt FEDM_ConvHexStrToInt64 FEDM_ConvHexStrToUChar FEDM_ConvHexUCharToInt FEDM_ConvHexUCharToUInt FEDM_ConvHexUCharToInt64 FEDM_ConvHexUCharToHexStr FEDM_ConvIntToHexStr FEDM_ConvIntToHexUChar FEDM_ConvUIntToHexStr Description Determines the storage type constant from the access constant. Determines the address of a parameter from the access constant. Determines the number of bytes in a parameter from the access constant. Converts a hexadecimal string into an integer value. The string may contain a maximum of 8 characters. All characters except 0..9, a..f, A..F are removed first. Example: sin = "1122F05E" -> iout = Converts a hexadecimal string into an unsigned integer value. The string may contain a maximum of 8 characters. All characters except 0..9, a..f, A..F are removed first. Example: sin = "1122F05E" -> uiout = Converts a hexadecimal string into a 64-bit integer value. The string may contain a maximum of 16 characters. All characters except 0..9, a..f, A..F are removed first. Example: sin = "1122F05E1122F05E" -> i64out = Converts a hexadecimal string into a C character string. All characters except 0..9, a..f, A..F are removed first. Example: sin = 1122F05E" --> ucoutbuf = {0x11, 0x22, 0xF0, 0x5E} Converts a C character string into an integer value. The C character string may have a maximum of 4 characters. Example: ucinbuf = {0x11, 0x22, 0xF0, 0x5E} -> iout = Converts a C character string into an unsigned integer value. The C character string may have a maximum of 4 characters. Example: ucinbuf = {0x11, 0x22, 0xF0, 0x5E} -> uiout = Converts a C-character string into a 64-bit integer value. The C-character string may have a maximum of 8 characters. Example: ucinbuf = {0x11, 0x22, 0xF0, 0x5E, 0x11, 0x22, 0xF0, 0x5E } -> iout = Converts a C character string into a hexadecimal string. Example: ucinbuf = {0x11, 0x22, 0xF0, 0x5E} -> sout = 1122F05E Converts an integer value into a hexadecimal string. Example: iin = > sout = "1122F05E" Converts an integer value into a C character string. Example: iin = > ucoutbuf = {0x11, 0x22, 0xF0, 0x5E} Converts an unsigned integer value into a hexadecimal string. Example: uiin = > sout = "1122F05E" 336 (4)J31069-D0138-U001-A3-7618

339 05/05 Global functions of the class library Function FEDM_ConvUIntToHexUChar FEDM_ConvInt64ToHexStr FEDM_ConvInt64ToHexUChar FEDM_ConvTwoAsciiToUChar FEDM_RemNoHexChar FEDM_IsHex Description Converts an unsigned integer value into a C character string. Example: uiin = > ucoutbuf = {0x11, 0x22, 0xF0, 0x5E} Converts a 64-bit integer value into a hexadecimal string. Example: i64in = > sout = "1122F05E1122F05E" Converts a 64-bit integer value into a C character string. Example: i64in = > ioutbuf = {0x11, 0x22, 0xF0, 0x5E, 0x11, 0x22, 0xF0, 0x5E } Builds a char value from two ASCII characters (0..9, a..f, A..F). Removes all non-ascii characters from a string and copies the result into a C character string.. Tests string for ASCI characters (0..9, a..f, A..F). (4)J31069-D0138-U001-A

340 Global functions of the class library 05/ Appendix FEDM error codes Error constant Value Description FEDM_OK 0 No error FEDM_ERROR_BLOCK_SIZE -101 The block size in the access constant is incorrect FEDM_ERROR_BIT_BOUNDARY -102 The bit boundary of the access constant is incorrect FEDM_ERROR_BYTE_BOUNDARY -103 The byte boundary of the access constant is incorrect FEDM_ERROR_ARRAY_BOUNDARY -104 The array boundary of a data container was exceeded FEDM_ERROR_BUFFER_LENGTH -105 The length of the data buffer is too short FEDM_ERROR_PARAMETER -106 A passed parameter is unknown FEDM_ERROR_STRING_LENGTH -107 The passed string is too long FEDM_ERROR_ODD_STRING_LENGTH -108 The passed string contains an odd number of characters FEDM_ERROR_NO_DATA -109 No data in protocol FEDM_ERROR_NO_READER_HANDLE -110 No reader handle set FEDM_ERROR_NO_PORT_HANDLE -111 No port handle set FEDM_ERROR_UNKNOWN_CONTROL_BYTE -112 Unknown control byte FEDM_ERROR_UNKNOWN_MEM_ID -113 Unknown memory ID FEDM_ERROR_UNKNOWN_POLL_MODE -114 Unknown poll mode FEDM_ERROR_NO_TABLE_DATA -115 No data in the table FEDM_ERROR_UNKNOWN_ERROR_CODE -116 Unknown error code FEDM_ERROR_UNKNOWN_COMMAND -117 Unknown command FEDM_ERROR_UNSUPPORTED -118 Function unsupported FEDM_ERROR_NO_MORE_MEM -119 Out of program memory FEDM_ERROR_NO_READER_FOUND -120 No reader found FEDM_ERROR_NULL_POINTER -121 The passed pointer is NULL 338 (4)J31069-D0138-U001-A3-7618

341 05/05 Global functions of the class library List of storage type constants Storage type constant Value Description FEDM_EEDATA_MEM 3 For configuration parameters of the reader FEDM_RAMDATA_MEM 4 For temporary configuration parameters of the reader FEDM_TMPDATA_MEM 10 For general temporary protocol data FEDM_MJPDATA_MEM 11 For temporary protocol data of a multijob poll FEDM_SN_MEM 20 For transponder UID FEDM_ID_MEM 21 For ID numbers of the transponder FEDM_AC_MEM 22 For account data of the transponder FEDM_PUB_MEM 23 For public data blocks of the transponder FEDM_SEC_MEM 24 For secret data blocks of the transponder FEDM_CONF_MEM 25 For configuration data of the transponder FEDM_DATE_MEM 26 For date data of the transponder Macros Macro FEDM_CHK1 FEDM_CHK2 FEDM_CHK3 FEDM_RETURN Description Checks whether the return value of a function is negative. Function can only be used in the reader class. Checks whether the return value of a function is negative and, if so, sets the global error variable in FEDM_TMPDATA_MEM. Function can only be used in the reader class. Checks whether a pointer is NULL. Sets the global error variable in FEDM_TMPDATA_MEM. Function can only be used in the reader class. (4)J31069-D0138-U001-A

342 FEDM_ISCReader reader class of the class library 05/05 15 FEDM_ISCReader reader class of the class library 15.1 Overview Support for MOBY D readers consists of the FEDM_ISCReader reader class derived from the FEDM_DataBase base class and a table integrated in this reader class that has been created as an array of classes of the FEDM_ISCTable type. The following files are part of the realization of the reader class: FEDM_ISCReader.cpp, FEDM_ISCReader.h and the collection of constants in FEDM_ISCReaderID.h. The component diagram shows an overview of all functions and data containers as well as of the table. All functions with a colored background and in bold are components of the type-independent interface. SendProtocol GetLastProt FindBaudrate Leserklasse FEDM_ISCReader Funktionsbibliothek ID FEISC SetReaderHnd GetReaderHnd SetPortHnd GetPortHnd SetBusAddress GetBusAddress SetPollAndState GetLastError GetLastStatus GetErrorText GetStatusText GetFamilyCode Serialize Container RAMData Container EEData Container MjpData Container TmpData SetData GetData Container SN Mem Container PubMem Container ConfMem SetTableData GetTableData FindTableIndex GetTableSize GetTableLength ResetTable GetTableType SetBrmData SetMjpData SetIsoData GetIsoData FEDM_ISCTable m_table The reader class supports all MOBY D readers, which is why not all options of the class are useable with all reader types. 340 (4)J31069-D0138-U001-A3-7618

343 05/05 FEDM_ISCReader reader class of the class library The FEDM_ISCReader reader class and the FEDM_ISCTable table class support the multijob poll as a procedure for the exchange of data with transponders. This protocol type will not be maintained in the future. It will gradually be replaced by the ISO15693 host protocols. The multijob poll should no longer be used for new projects. (4)J31069-D0138-U001-A

344 FEDM_ISCReader reader class of the class library 05/ FEDM_ISCReader The FEDM_ISCReader class is based on the abstract FEDM_DataBase base class and therefore inherits the general, type-independent interface. The abstract interface functions are implemented in FEDM_ISCReader, so that it is possible to work with an instance of this class. Alternatively, a new reader class can be built on the basis of this class and designed in such a way that additional functionalities can be added or functions overwritten in order to implement different behavior Implemented data containers EEData RAMData TmpData MjpData SN_Mem PubMem ConfMem Data container Description For configuration parameters of the reader (for all MOBY D reader types) For temporary configuration parameters of the reader (for all MOBY D reader types) For general temporary protocol data (for all MOBY D reader types) For temporary protocol data of a multijob poll (no longer available) For transponder UID (for SLG D11/D12 only) For public data blocks of the transponder (for SLG D11/D12 only) For configuration data of the transponder (for SLG D11/D12 only) The data container size is statically defined in the constructor of the class. All data containers are initialized in the constructor with 0x00. All data containers not listed here stay at length 0 and are not useable Attributes (protected) Attribute m_bpollandstate m_table m_itabletype m_itablelength Description If TRUE, the FEISC_0x01MultiJobPollAndState function of the ID FEISC function library is used for a multijob poll. Thus, a multijob state protocol is automatically sent after the multijo poll protocol. Table with 128 entries for holding transponder data with [0x21] Read Buffer, [0x01] multijob poll or [0xB0] ISO15693 host protocols. The table can only be used for one protocol type at a time. Details on the table are found in chap FEDM_ISCTable. Specifies the table type. The following are possible: FEDM_ISC_NONE_TABLE, FEDM_ISC_BRM_TABLE, FEDM_ISC_MJP_TABLE or FEDM_ISC_ISO15693_TABLE. Contains the number of valid table entries. 342 (4)J31069-D0138-U001-A3-7618

345 05/05 FEDM_ISCReader reader class of the class library Functions (public) Function SendProtocol GetLastProt FindBaudrate SetPortHnd GetPortHnd SetPollAndState GetLastError GetLastStatus GetErrorText GetStatusText Serialize SetTableData Description The central communications function. A more detailed description is found in chap Examples for the use of the SendProtocol function. Function for calling up the last send or receive protocol. sid="send" returns the last send protocol sid="sendstr" returns the last send protocol with leading date/time sid="rec" returns the last receive protocol sid="recstr" returns the last receive protocol with leading date/time Function searches for a reader at the interface identified by the port handle (stored in FEISC in the reader object) and determines the baud rate and the protocol frame. This function cannot be used with the USB port. Sets the port handle as a parameter in the reader object in the FEISC.DLL. Determines the port handle of the reader object in the FEISC.DLL. Sets m_bpollandstate to TRUE or FALSE. Determines the last error code stored at the FEDM_ISC_TMP_LAST_ERROR location in the TmpDat data container. Determines the status byte of the last protocol stored at the FEDM_ISC_TMP_LAST_STATE location in the TmpData data container. Determines an English text for the passed error code. The error code can also come from the area of the ID FEISC function collection. Determines an English text for the passed status byte. Allows serialization of the container data in files. Each time serialize is called, the complete contents of a data container can be written to a file or read out of a file. The function is implemented for Microsoft Visual C++ only. The central (overloaded) function for reading a parameter value or data blocks out of a table. This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. The function expects a table as a parameter, but this ID is not evaluated here and can always be set to 0. The uidataid parameter contains an identifier for the value to be written. All access IDs are listed in the FEDM_ISCReaderID.h file. Which access IDs are supported can be seen in the source code. (4)J31069-D0138-U001-A

346 FEDM_ISCReader reader class of the class library 05/05 Function GetTableData FindTableIndex GetTableSize GetTableLength ResetTable GetTableType Description The central (overloaded) function for writing a parameter value or data blocks in the m_table table This version supports the following data types: UCHAR, UCHAR-Array, UINT, int64 and CString or AnsiString. The function expects a table as a parameter, but this ID is not evaluated here and can always be set to 0. The uidataid parameter contains an identifier for the value to be read. All access IDs are listed in the FEDM_ISCReaderID.h file. Which access IDs are supported can be seen in the source code. The central (overloaded) function for determining the table index on the basis of a value beginning with a start index. This version supports the following data types: UCHAR, UINT, int64 and CString or AnsiString. The function expects a table as a parameter, but this ID is not evaluated here and can always be set to 0. The uidataid parameter contains an identifier for the value being searched. All access codes are listed in the FEDM_ISCReaderID.h file. Which access IDs are supported can be seen in the source code. Determines the static size of the m_table table. A value of 128 is returned. Determines the number of valid table entries in m_table. Values between 0 and 128 are possible. Resets the m_table table. The data in the table are not deleted. Rather, the m_itablelength variable is set to 0. Returns the current table type of m_table. See m_itabletype Functions (protected) Function SetLastError SetBrmTableData SetMjpTableData SetIsoTableData GetMjpData GetIsoData Description Sets the internal error variable in FEDM_ISC_TMP_LAST_ERROR. Writes all protocol data from a [0x21] Read Buffer to the m_table table. Writes all protocol data from a [0x02] Multijob State to the m_table table. Writes all protocol data from a [0xB0] ISO15693 Command to the m_table table. Gets the send data for the next multijob poll protocol from the data containers. Gets the send data for the next ISO15693 host protocol from the data containers and the m_table table. 344 (4)J31069-D0138-U001-A3-7618

347 05/05 FEDM_ISCReader reader class of the class library Examples for the use of the SendProtocol function The SendProtocol function is of central importance for protocol transfer. Therefore, an example is presented here for each control byte to illustrate which data with which access constants are to be stored in data containers prior to each protocol transfer, and which data are available after each protocol transfer. Some protocols allow the transfer of different data. In these cases, a model example is presented. All access constants are listed in the FEDM_ISCReaderID.h file and should be closely studied together with the explanation of the protocol data contained in the reader system manual. For reasons of clarity, we will not discuss the evaluation of the function return value hier. However, it should always be performed in applications. [Control byte] protocol [0x11] Read Serial-No UCHAR uctrtype = 0; CString sserno; SendProtocol(0x11); GetData (FEDM_ISC_SN_TR_TYPE, &uctrtype); GetData (FEDM_ISC_SN_SER_NO, sserno); Example // Read UID of transponder // Get transponder type as byte // Get UID as string [0x14] Write Data Block UCHAR ucdbadr = 0; UCHAR ucdbn = 1; CString sdata; sdata = A0B0C0D0E0F ; SetData // Address (FEDM_ISC_TMP_14_DB_ADR, ucdbadr); SetData // Number of data blocks (FEDM_ISC_TMP_14_DB_N, ucdbn); SetData // Data bytes in DB0 (FEDM_ISC_PUB_DB0, sdata); SendProtocol(0x14); // Write data blocks to // transponder (4)J31069-D0138-U001-A

348 FEDM_ISCReader reader class of the class library 05/05 [Control byte] protocol Example [0x15] Read Data Block UCHAR ucdbadr = 0; UCHAR ucdbn = 1; CString sdata; SetData (FEDM_ISC_TMP_15_DB_ADR, ucdbadr); SetData (FEDM_ISC_TMP_15_DB_N, ucdbn); SendProtocol(0x15); [0x16] Write Transponder Configuration [0x17] Read Transponder Configuration [0x1A] Halt [0x1B] Reset QUIET Bit [0x1C] EAS GetData (FEDM_ISC_PUB_DB0, sdata); // Address // Number of data blocks // Read data blocks of // transponder // Get data bytes from // DB0 as string // CAUTION!! The transponder can be made unserviceable with this protocol. UCHAR ucdbadr = 0; CString sdata; sdata = ; // These are sample // data only. Please do not // use as presented here!! SetData // Address (FEDM_ISC_TMP_16_DB_ADR, ucdbadr); SetData // Set data bytes in // CB0 (FEDM_ISC_CONF_DB0, sdata); SendProtocol(0x16); // Write data blocks to // transponder UCHAR ucdbadr = 0; Cstring sdata; SetData (FEDM_ISC_TMP_17_DB_ADR, ucdbadr); SendProtocol(0x17); GetData (FEDM_ISC_CONF_DB0, sdata); SendProtocol(0x1A); SendProtocol(0x1B); SendProtocol(0x1C); // Address // Read data blocks from // transponder // Data bytes from CB0 346 (4)J31069-D0138-U001-A3-7618

349 05/05 FEDM_ISCReader reader class of the class library [Control byte] protocol Example [0x21]Read Buffer UCHAR ucdatasets = 1; // Number of requested // data sets UCHAR uctrdata = 0; // Data set structure UCHAR ucrecsets = 0; SetData (FEDM_ISCLR_TMP_BRM_SETS, ucdatasets); SendProtocol(0x21); [0x31] Read Data Buffer Info UCHAR uctabsize = 0; UCHAR uctabstart = 0; [0x32] Clear Data Buffer [0x33] Initialize Buffer [0x52] Baud Rate Detection [0x55] Start Flash Loader [0x63] CPU Reset // Number of data sets in // protocol // Read data blocks from // transponder using // Buffered Read Mode GetData (FEDM_ISCLR_TMP_BRM_TRDATA, &uctrdata); GetData (FEDM_ISCLR_BRM_RECSETS, &ucrecsets); // All other transponder data are contained in m_table. Example of data access in // chap // FEDM_ISCTable // Data buffer size // Start address for first // data set UCHAR uctablen = 0; // Number of data sets in // data buffer SendProtocol(0x31); GetData(FEDM_ISCLR_TMP_TAB_SIZE, &uctabsize); GetData(FEDM_ISCLR_TMP_TAB_START, &uctabstart); GetData(FEDM_ISCLR_TMP_TAB_LEN, &uctablen); SendProtocol(0x32); SendProtocol(0x33); SendProtocol(0x52); SendProtocol(0x55); SendProtocol(0x63); [0x65] Get Software Version Cstring ssoftver; // Software version as // string SendProtocol(0x65); GetData(FEDM_ISC_TMP_SOFTVER, ssoftver); [0x69] RF Reset SendProtocol(0x69); [0x6A] RF ON/OFF UCHAR ucrf = 1; // RF ON SetData(FEDM_ISC_TMP_RF_ONOFF, ucrf); SendProtocol(0x6A); [0x6B] Init Noise Level SendProtocol(0x6B); (4)J31069-D0138-U001-A

350 FEDM_ISCReader reader class of the class library 05/05 [Control byte] protocol Example [0x6C] Set Noise Level UINT uinlmin = 500; // Minimum noise level UINT uinlavg = 1000; // Medium noise level UINT uinlmax = 1500; // Maximum noise level SetData(FEDM_ISC_TMP_NOISE_LEVEL_MIN, uinlmin); SetData(FEDM_ISC_TMP_NOISE_LEVEL_AVG, uinlavg); SetData(FEDM_ISC_TMP_NOISE_LEVEL_MAX, uinlmax); SendProtocol(0x6C); [0x6D] Get Noise Level UINT uinlmin = 0; // Minimum noise level UINT uinlavg = 0; // Medium noise level UINT uinlmax = 0; // Maximum noise level SendProtocol(0x6D); GetData(FEDM_ISC_TMP_NOISE_LEVEL_MIN, &uinlmin); GetData(FEDM_ISC_TMP_NOISE_LEVEL_AVG, &uinlavg); GetData(FEDM_ISC_TMP_NOISE_LEVEL_MAX, &uinlmax); [0x6E] Reader Diagnostic UCHAR ucdiagmode = 1; // Diagnosis mode SetData(FEDM_ISCLR_TMP_DIAG_MODE, ucdiagmode); SendProtocol(0x6E); [0x71] Set Output // Example of SLG D10 SetData // Reset OS bytes (FEDM_ISCM_TMP_OUT_OS, 0); SetData // Enable output 1 (FEDM_ISCM_TMP_OUT_OS_OUT1, (UCHAR)0x01); SetData // Green LED off (FEDM_ISCM_TMP_OUT_OS_ LED_G, (UCHAR)0x10); SetData // Red LED on (FEDM_ISCM_TMP_OUT_OS_ LED_R, (UCHAR)0x01); SetData // Beeper on intermittently (FEDM_ISCM_TMP_OUT_OS_ BEEPER, (UCHAR)0x11); SetData // Reset OSF bytes (FEDM_ISCM_TMP_OUT_OSF, 0); SetData // Beeper at 4Hz (FEDM_ISCM_TMP_OUT_OSF_BEEPER, (UCHAR)0x01); SetData // 500ms active time, beeper (FEDM_ISCM_TMP_OUT_OSTIME, 5); // and LEDs SetData // Output 1, active 300ms (FEDM_ISCM_TMP_OUT_OUTTIME, 3); SendProtocol(0x71); 348 (4)J31069-D0138-U001-A3-7618

351 05/05 FEDM_ISCReader reader class of the class library [Control byte] protocol [0x74] Get Input Example // Example of SLG D10 BOOL bin1 = FALSE; // Input 1 BOOL bin2 = FALSE; // Input 2 BOOL bdip1 = FALSE; // DIP switch 1 BOOL bdip2 = FALSE; // DIP switch 2 BOOL bdip3 = FALSE; // DIP switch 3 BOOL bdip4 = FALSE; // DIP switch 4 SendProtocol(0x74); GetData(FEDM_ISC_TMP_ INP_STATE_IN1, &bin1); GetData(FEDM_ISC_TMP_ INP_STATE_IN2, &bin2); GetData(FEDM_ISC_TMP_ INP_STATE_DIP1, &bdip1); GetData(FEDM_ISC_TMP_ INP_STATE_DIP2, &bdip2); GetData(FEDM_ISC_TMP_ INP_STATE_DIP3, &bdip3); GetData(FEDM_ISC_TMP_ INP_STATE_DIP4, &bdip4); [0x75] Adjust antenna UINT uiantvalue = 0; // Antenna voltage SendProtocol(0x75); GetData(FEDM_ISCM_TMP_ ANTENNA_VALUE, &uiantvalue); [0x80] Read Configuration and [0x81] Write Configuration // This example shows how a reader configuration block is read and written back. UCHAR uccfgadr = 2; // Address of the // configuration block BOOL beeprom = TRUE; // Configuration data // out of / into EEPROM of // reader UCHAR ucbusadress; // Bus address of the ISC.LR- // reader from block 2 SetData // Reset all (FEDM_ISC_TMP_READ_CFG, 0); SetData // Set address (FEDM_ISC_TMP_READ_CFG_ADR, uccfgadr); SetData // Set storage location to (FEDM_ISC_TMP_READ_CFG_LOC, beeprom); // EEPROM SendProtocol(0x80); GetData (FEDM_ISCLR_EE_COM_BUSADR, &ucbusadr); SetData (FEDM_ISC_TMP_WRITE_CFG, 0); SetData (FEDM_ISC_TMP_WRITE_CFG_ADR, uccfgadr); SetData (FEDM_ISC_TMP_WRITE_CFG_LOC, beeprom); SendProtocol(0x81); // Read configuration // data // E.g. use bus // address // Reset all // Set address [0x82] Save Configuration SetData // Reset all // Set storage location to // EEPROM // Write configuration data // back (4)J31069-D0138-U001-A

352 FEDM_ISCReader reader class of the class library 05/05 [Control byte] protocol [0x83] Set Default Configuration Example (FEDM_ISC_TMP_SAVE_CFG, 0); SetData (FEDM_ISC_TMP_SAVE_CFG_ADR, (UCHAR)0x00); SetData (FEDM_ISC_TMP_SAVE_CFG_MODE, TRUE); SendProtocol(0x82); from SetData (FEDM_ISC_TMP_RESET_CFG, 0); SetData (FEDM_ISC_TMP_RESET_CFG_ADR, (UCHAR)0x02); SetData (FEDM_ISC_TMP_RESET_CFG_LOC, FALSE); SetData (FEDM_ISC_TMP_RESET_CFG_MODE, FALSE); SendProtocol(0x83); // Set address // Save all blocks // Save configuration data // RAM to EEPROM // Reset all // Set address // Select RAM // Default, block 2 only // Set configuration data of // block 2 in RAM to // default [0x85] Set System Timer SetData(FEDM_ISCLR_TMP_TIME_H, (UINT)16); // 16 hours SetData(FEDM_ISCLR_TMP_TIME_M, (UINT)20); // 20 minutes SetData(FEDM_ISCLR_TMP_TIME_MS, (UINT)2000); // 2000 milliseconds SendProtocol(0x85); // Set timer [0x86] Get System Timer UINT uihour = 0; // Hours UINT uiminute = 0; // Minutes UINT uimillisec = 0; // Milliseconds SendProtocol(0x86); // Read out timer GetData(FEDM_ISCLR_TMP_TIME_H, &uihour); // Take over hours GetData(FEDM_ISCLR_TMP_TIME_M, &uiminute); // Take over minutes GetData(FEDM_ISCLR_TMP_TIME_MS, &uimillisec); // Take over // milliseconds [0xA0] Reader Login UCHAR ucpw[] = {0x00, 0x00, 0x00, 0x00}; // Password SetData(FEDM_ISCLR_TMP_READER_PW, ucpw, 4); // Set password SendProtocol(0xA0); // Send password to // reader [0xB0] ISO15693 Mandatory and Optional Commands // This example shows the [0x01] Inventory SetData(FEDM_ISC_TMP_B0_CMD, (UCHAR)0x01); SetData(FEDM_ISC_TMP_B0_MODE, (UCHAR)0x00); SendProtocol(0xB0); // Inventory // No More flag // The inventory data are found in m_table. Example of data access in chap // FEDM_ISCTable 350 (4)J31069-D0138-U001-A3-7618

353 05/05 FEDM_ISCReader reader class of the class library 15.3 FEDM_ISCTable The [0x02] multijob-state, [0x21] Read Buffer and [0xB0] ISO15693-Command protocols can provide transponder data from multiple transponders. For the structured storage of these transponder data, a table (protected) is provided within the FEDM_ISCReader reader class that administrates the protocol data of a transponder as a table entry. For example, if data from three transponders come in with a protocol, three new table entries are created. The table has a static size of 128 entries. Data are always inserted beginning with index 0. The m_itablelength variable of the reader class provides information on the number of valid entries. The [0x02] multijob-state and [0x21] Read Buffer protocols destroy the old data before inserting new data. Thus, the table is of a temporary nature. An application program must read out the table data prior to the next protocol. For [0x0B] ISO15693-Command, a distinction must be made between the various commands: the [0x01] Inventory command enters new transponder data. Almost all other commands, especially [0x23] Read Multiple Blocks and [0x24] Write Multiple Blocks, use the table for data exchange with an application program. At this time, the FEDM_ISCTable table can only be used for the ISO Command in the addressed mode. Implementation of the unaddressed mode and selected mode is planned for the future. Access to the table data is always indirect via the GetTableData and SetTableData functions of the FEDM_ISCReader reader class. The FindTableIndex function is available for finding certain table entries, e.g. using the UID. Other query functions are: GetTableType, GetTableSize and GetTableLength. ResetTable deletes the table. All functions mentioned here are described in chap on the FEDM_ISCReader reader class. Separate data buffers are integrated in the table for data blocks from receive protocols and data blocks from send protocols. This makes it easy to verify written data blocks with read data blocks. (4)J31069-D0138-U001-A

354 FEDM_ISCReader reader class of the class library 05/ Examples for the use of the table The following examples demonstrate the data exchange with the FEDM_ISCTable table. For reasons of clarity, we do not present the evaluation of the return values of the functions. However, it should always be performed in applications. [Control byte] protocol [0x21] Read Buffer Example // This example shows how data sets are read with UID, data block and timer value. UCHAR ucdatasets = 1; // Number of requested // data sets UCHAR ucrecsets = 0; // Number of data sets in // protocol UCHAR ucdb[4]; // Buffer for one // data block UINT uitimer = 0; // For timer value int64 i64snr = 0; // For UID BOOL bsnr = FALSE; // Flag for UID // in data set BOOL bdb = FALSE; // Flag for data block in // data set BOOL btimer = FALSE; // Flag for timer in // data set SetData(FEDM_ISCLR_TMP_BRM_SETS, ucdatasets); SendProtocol(0x21); // Read data blocks from // transponder using // Buffered Read Mode GetData(FEDM_ISCLR_TMP_BRM_TRDATA_UID, &bsnr); GetData(FEDM_ISCLR_TMP_BRM_TRDATA_DB, &bdb); GetData(FEDM_ISCLR_TMP_BRM_TRDATA_TIMER, &btimer); GetData(FEDM_ISCLR_BRM_RECSETS, &ucrecsets); // All transponder data are contained in the table. For(int icnt=0; icnt<gettablelength(0); icnt++) { if(bsnr) // Get UID GetTableData(iCnt, 0, FEDM_ISC_DATA_UID, &i64snr); if(bdb) // Get data block 1 GetTableData(iCnt, 0, FEDM_ISC_DATA_RxDB, 1, ucdb, 4); } if(btimer) // Get timer value GetTableData(iCnt, 0, FEDM_ISC_DATA_TIMER, uitimer); 352 (4)J31069-D0138-U001-A3-7618

355 05/05 FEDM_ISCReader reader class of the class library [Control byte] protocol [0xB0] ISO15693 Mandatory and Optional Commands [0x01] Inventory [0xB0] ISO15693 Mandatory and Optional Commands [0x23] Read Multiple Blocks Example // This example shows the [0x01] Inventory. UCHAR uctrtype = 0; Cstring ssnr; SetData(FEDM_ISC_TMP_B0_CMD, (UCHAR)0x01); SetData(FEDM_ISC_TMP_B0_MODE, (UCHAR)0x00); SendProtocol(0xB0); // For transponder type // For UID // Inventory // No More flag // Communication with // reader/transponder // All transponder data are contained in the table. For(int icnt=0; icnt<gettablelength(0); icnt++) { GetTableData(iCnt, 0, FEDM_ISC_DATA_UID, ssnr); // Get UID as string } //... Do something with the UID GetTableData(iCnt, 0, FEDM_ISC_DATA_TRTYPE, &uctrtype); // Get transponder type //... Do something with the transponder type // This example shows the [0x23] Read Multiple Blocks. A [0x01] Inventory must be carried out // first. UCHAR ucdb[32]; // Buffer for a // data block (max. // block size 32) UCHAR ucdbadr = 5; // Data block address 5 Cstring ssnr; // For UID //... Get UID, e.g. from text field // Set UID for addressed mode SetData(FEDM_ISC_TMP_B0_REQ_UID, ssnr); SetData(FEDM_ISC_TMP_B0_CMD, (UCHAR)0x23); // Read Multiple Blocks SetData(FEDM_ISC_TMP_B0_MODE, (UCHAR)0x00); // Reset mode byte SetData // Addressed mode (FEDM_ISC_TMP_B0_MODE_ADR, (UCHAR)0x01); SetData // Read data block (FEDM_ISC_TMP_B0_REQ_DBN, (UCHAR)0x01); SetData // Set data block- (FEDM_ISC_TMP_B0_REQ_DB_ADR, ucdbadr); // address SendProtocol(0xB0); // Communication with // reader/transponder // All transponder data are contained in the table. // First determine table index of UID int iidx = FindTableIndex(0, 0, FEDM_ISC_DATA_UID, ssnr); // Get the data block size (block size) GetTableData(iIdx, 0, FEDM_ISC_DATA_BLOCKSIZE, &ucblocksize); //... Do something with the block size (4)J31069-D0138-U001-A

356 FEDM_ISCReader reader class of the class library 05/05 [Control byte] protocol Example // Get a data block (ucdb will contain only ucblocksize data bytes) GetTableData(iIdx, 0, FEDM_ISC_DATA_RxDB, ucdbadr, ucdb, 32); //... Do something with the data block [0xB0] ISO15693 Mandatory and Optional Commands [0x24] Write Multiple Blocks /* This example shows the [0x24] Write Multiple Blocks. A [0x01] Inventory must be carried out first. Attention: If a [0x23] Read Multiple Blocks has not been carried out yet, the block size is preset to 4. However, if the transponder in the reader field supports a different block size, it must first be set in the table for this transponder.!! GetTable- Data(.., FEDM_ISC_DATA_IS_BLOCK_SIZE_SET,..) can be used to query whether the block size has already been read using [0x23] Read Multiple Blocks. */ UCHAR ucdb[32]; // Buffer for a // data block (max. // block size 32) UCHAR ucdbadr = 5; // Data block address 5 Cstring ssnr; // For UID //... Get UID, e.g. from the text field, and store in ssnr //... Get data block, e.g. from a text field, and store in ucdb[] // Determine table index of UID int iidx = FindTableIndex(0, 0, FEDM_ISC_DATA_UID, ssnr); // Set UID for addressed mode SetData(FEDM_ISC_TMP_B0_REQ_UID, ssnr); SetData(FEDM_ISC_TMP_B0_CMD, (UCHAR)0x24); // Read Multiple Blocks SetData(FEDM_ISC_TMP_B0_MODE, (UCHAR)0x00); // Reset mode byte SetData // Addressed mode (FEDM_ISC_TMP_B0_MODE_ADR, (UCHAR)0x01); SetData // One data block (FEDM_ISC_TMP_B0_REQ_DBN, (UCHAR)0x01); // write SetData // Set data block- (FEDM_ISC_TMP_B0_REQ_DB_ADR, ucdbadr); // address SetTableData // Set block size to 8 (iidx, 0, FEDM_ISC_DATA_BLOCK_SIZE, 8); // Write a data block to the table SetTableData (iidx, 0, FEDM_ISC_DATA_TxDB, ucdbadr, ucdb, 8); SendProtocol(0xB0); // Communication with // reader/transponder 354 (4)J31069-D0138-U001-A3-7618

357 05/05 FEDM_ISCReader reader class of the class library 15.4 List of constants All constants listed here are defined in FEDM_ISCReader.h. Constant FEDM_ISC_MAX_EEDATA_MEM FEDM_ISC_MAX_RAMDATA_MEM FEDM_ISC_MAX_TMPDATA_MEM FEDM_ISC_MAX_MJPDATA_MEM FEDM_ISC_MAX_SN_MEM FEDM_ISC_MAX_PUBLIC_MEM FEDM_ISC_MAX_CONFIG_MEM Description Size of data container EEData Size of data container RAMData Size of data container TmpData Size of data container MjpData Size of data container SN_Mem Size of data container PubMem Size of data container ConfMem FEDM_ISC_MAX_TABSIZE Size of m_table table in FEDM_ISCReader FEDM_ISC_TABLE_TxDB_SIZE FEDM_ISC_TABLE_RxDB_SIZE Size of data buffer for transmit data blocks Size of data buffer for receive data blocks FEDM_ISC_DATA_TRTYPE FEDM_ISC_DATA_UID FEDM_ISC_DATA_RxDB FEDM_ISC_DATA_TxDB FEDM_ISC_DATA_TIMER FEDM_ISC_DATA_RxCB FEDM_ISC_DATA_TxCB FEDM_ISC_DATA_AFI FEDM_ISC_DATA_DSFID FEDM_ISC_DATA_SEC_STATUS FEDM_ISC_DATA_BLOCK_SIZE FEDM_ISC_DATA_TAB_ADR FEDM_ISC_DATA_ MEM_SIZE FEDM_ISC_DATA_ IC_REF FEDM_ISC_DATA_ IS_BLOCK_SIZE_SET FEDM_ISC_NONE_TABLE FEDM_ISC_BRM_TABLE FEDM_ISC_MJP_TABLE FEDM_ISC_ISO15693_TABLE Transponder type UID Data blocks from receive protocol Data blocks for send protocol Timer value from recieve protocol [0x21] Read Buffer or [0x02] multijob state Configuration data block from receive protocol Configuration data block for send protocol AFI from 0] [0x2B] Get System Information DSFID from receive data [0xB0] [0x01] Inventory Security status from receive data [0xB0] [0x23] Read Multiple Blocks Block size from receive data [0xB0] [0x23] Read Multiple Blocks Table address from [0x02] multijob poll Memory size from [0xB0] [0x2B] Get System Information IC reference from [0xB0] [0x2B] Get System Information Flag, whether block size set with [0xB0] [0x23] Read Multiple Blocks Table type undefined Table contains data from [0x21] Read Buffer Table contains data from [0x02] multijob poll Table contains data from [0xB0] ISO15693 Host Commands (4)J31069-D0138-U001-A

358 First steps in programming MOBY D 05/05 A First steps in programming MOBY D A series of settings (parameterization of host and SLG) must be made before work with a MOBY D-SLG and transponders can begin: Configuration of the serial interface of host (PC) and SLG (both identical) Setting of the required SLG mode Further configuration of the SLG (RF power, anticollision, transponder types,...) A.1 Available SLG modes Buffered Read Mode SLG D10 (long range) x SLG D11/D12 (proximity) ISO15693 host commands x x Scan mode x x Buffered Read Mode Advantages: Data areas (UID, data blocks) of transponders entering the HF field that were previously defined once are automatically read by the SLG. The host does not have to control the read procedure. The read data sets are collected in a FIFO data buffer and can be retrieved by the SLG at any time. This requires very little programming. Disadvantages: Transponders can only be read but not written to. The Buffered Read Mode is only supported by the long range type (D10). The Buffered Read Mode is particularly suited for the identification of objects: a larger number of transponders can be handled easily. 356 (4)J31069-D0138-U001-A3-7618

359 05/05 First steps in programming MOBY D ISO15693 host commands Advantages: Trasponders can be read and written to. ISO15693 host commands are supported by both reader types. Disadvantages: More programming is required than for the Buffered Read Mode if data blocks are to be read in addition to UIDs. Scan mode Advantage: The SLG automatically sends previously-defined data areas of a transponder to the host (PC) as soon as the transponder enters the HF field. The read procedure does not have to be controlled. Disadvantages: Only reading is possible. The scan mode is only supported by the proximity type (D12). The host must always be ready for reception. (4)J31069-D0138-U001-A

360 First steps in programming MOBY D 05/05 A.2 Serial interface settings Communication between host (PC) and SLG is handled via an asynchronous serial interface (RS 232 or RS 422 on request). The same interface parameters (baud, parity, stop bits) must be set on both sides. The DLL-Function, FECOM_SetPortPara, is used for host settings. Prior to that the respective COM port must be opened using FECOM_OpenPort. The factory settings of the SLG are 38400, 8, e, 1. These settings usually do not need to be changed. If another value is required, configuration block CFG2 (COM-Interface) for SLG D10, or configuration block CFG2 (COM-Interface) for SLG D11/D12, must be written to the EEPROM of the SLG using DLL function FEISC_0x81_WriteConfBlock. Subsequently, a CPU reset (DLL function FEISC_0x63_CPUReset) must be executed. However, this requires that communication between the host and SLG is already taking place (= matching interface parameters). 358 (4)J31069-D0138-U001-A3-7618

361 05/05 First steps in programming MOBY D A.3 Parameterization of the SLG After communication between the host and SLG is working, the SLG can be fully parameterized via the communication interface. First, a reader object must be generated using the DLL function, FEISC_NewReader function, which returns a handle to the reader (SLG). This handle is required for nearly all reader functions. The bus address required for the reader functions ( cbusadr ) must be fixed at 255 (0xFF), since connections for all MOBY D-SLGs are point-to-point connections (only one SLG per COM port). For parameterization, the SLG has a two-part memory area (RAM and EEPROM) into which the parameter data sets are written. The RAM contents is lost after the power supply is switched off which is why all required changes to the parameterization must be written to the EEPROM memory area. After any changes to the parameter data sets, a CPU reset must be executed to activate the changes. For SLG D10, the parameter data set consists of 16 blocks (CFG0...CFG15) at 14 bytes each (CFGx[0]...CFGx[13]). Only some of the blocks are required; the remainder is reserved (RFU). SLG D11/D12 has only 7 parameter blocks. Please note that the parameter blocks have different meanings in SLG D10 and D12. Parameter blocks: 16x14 bytes (SLG D10) DLL function FEISC_0x81_WriteConfBlock is for writing a parameter block; FEISC_0x80_ReadConfBlock is for reading a parameter block. (4)J31069-D0138-U001-A

History of Firmware Revisions. i-scan. Standard-Reader ID ISCLR200. SWRN ISCLR200 V5.04.doc

History of Firmware Revisions. i-scan. Standard-Reader ID ISCLR200. SWRN ISCLR200 V5.04.doc History of Firmware Revisions i-scan Standard-Reader ID ISCLR200 SWRN ISCLR200 V5.04.doc NOTE Copyright 2000-2006 by FEIG ELECTRONIC GmbH Lange Strasse 4 35781 Weilburg-Waldhausen http://www.feig.de Edition:

More information

MANUAL ID ISC.MR102. Standard-Reader. from Firmware-Version 0.4 or higher. Preliminary public (B) H e-ID-B.doc

MANUAL ID ISC.MR102. Standard-Reader. from Firmware-Version 0.4 or higher. Preliminary public (B) H e-ID-B.doc MANUAL ID ISC.MR102 Standard-Reader from Firmware-Version 0.4 or higher Preliminary public (B) 2011-04-12 H01113-0e-ID-B.doc Copyright 2011 by FEIG ELECTRONIC GmbH Lange Strasse 4 D-35781 Weilburg-Waldhausen

More information

MANUAL. OBID i-scan ID ISC.MR200. Standard-Reader. from Firmware-Version final public (B) H e-ID-B.doc

MANUAL. OBID i-scan ID ISC.MR200. Standard-Reader. from Firmware-Version final public (B) H e-ID-B.doc OBID i-scan MANUAL ID ISC.MR200 Standard-Reader from Firmware-Version 1.12 final public (B) 2008-05-26 H40801-5e-ID-B.doc Copyright 2004-2008 by FEIG ELECTRONIC GmbH Lange Strasse 4 D-35781 Weilburg-Waldhausen

More information

FPGA ACC

FPGA ACC MANUAL ID ISC.LR2000 Standard-Reader from Firmware-Version RFC 1.17.00 FPGA 2.00.04 ACC 2.02.00 final public (B) 2011-04-21 H60700-3e-ID-B.doc Copyright 2006-2011 by FEIG ELECTRONIC GmbH Lange Strasse

More information

ID ISC.LRU1000 MANUAL. OBID i-scan. Standard-Reader. Firmware-Version 1.09 RF Controller. and 1.04 ACC. and higher

ID ISC.LRU1000 MANUAL. OBID i-scan. Standard-Reader. Firmware-Version 1.09 RF Controller. and 1.04 ACC. and higher OBID i-scan MANUAL ID ISC.LRU1000 Standard-Reader Firmware-Version 1.09 RF Controller and 1.04 ACC and higher final public (B) 2006-05-31 H40802-3e-ID-B.doc Copyright 2004-2006 by FEIG ELECTRONIC GmbH

More information

JMY505G User's Manual

JMY505G User's Manual JMY505G User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/28 Please read this manual carefully before using. If any problem, please mail to: jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

ID CPR40.xx-Family. Desktop Reader: ID CPR40.30-USB ID CPR40.30-SUSB ID CPR40.30-A. Reader Module:

ID CPR40.xx-Family. Desktop Reader: ID CPR40.30-USB ID CPR40.30-SUSB ID CPR40.30-A. Reader Module: MANUAL ID CPR40.xx-Family Desktop Reader: ID CPR40.30-USB ID CPR40.30-SUSB ID CPR40.30-A Reader Module: ID CPR40.00-CD 3.3 ID CPR40.01-CD 3.3 ID CPR40.00-A ID CPR40.01-A ID CPR40.00-CDUSB ID CPR40.01-CDUSB

More information

JMY501H User's Manual

JMY501H User's Manual JMY501H User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/27 Please read this manual carefully before using. If any problem, please mail to: Jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

S7-300 Programmable Controller

S7-300 Programmable Controller S7-300 Programmable Controller This description belongs to the following documentation packages with the order numbers given: S7 300 Programmable Controller 6ES7 398 8AA02 8BA0 ET 200M Distributed I/O

More information

B Interface description 12.01/

B Interface description 12.01/ B 95.3530.2 Interface description 12.01/00340396 Contents 1 Introduction 1.1 Preface... 3 1.2 Typographical conventions... 4 1.2.1 Warning signs... 4 1.2.2 Note signs... 4 1.2.3 Presentation... 4 2 Protocol

More information

JMY607H User's Manual

JMY607H User's Manual JMY607H User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/27 Please read this manual carefully before using. If any problem, please mail to: Jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

PPrerelimin. Reader Series ISO Library Reference Guide. S4100 Multi-Function Reader Module RF-MGR-MNMN

PPrerelimin. Reader Series ISO Library Reference Guide. S4100 Multi-Function Reader Module RF-MGR-MNMN PPrerelimin Reader Series 4000 S4100 Multi-Function Reader Module RF-MGR-MNMN ISO 15693 Library Reference Guide 11-06-21-707 Rev 1 July 2004 1 Second Edition - July 2004 This is the second edition of this

More information

DataVU 5 - Interface Manual Modbus

DataVU 5 - Interface Manual Modbus DataVU 5 - Interface Manual Modbus 59482 Contents 1 Introduction 5 1.1 Preface... 5 1.2 Typographical conventions... 6 1.2.1 Warning signs... 6 1.2.2 Note signs... 6 1.2.3 Representation modes... 6 2

More information

DataVU 5 - Interface Manual Modbus

DataVU 5 - Interface Manual Modbus DataVU 5 - Interface Manual Modbus 59482 Contents 1 Introduction 5 1.1 Preface... 5 1.2 Typographical conventions... 6 1.2.1 Warning signs... 6 1.2.2 Note signs... 6 1.2.3 Representation modes... 6 2

More information

Siemens Drives & PLCs

Siemens Drives & PLCs SIMATIC HMI Configuring Text-based Displays Table of Contents Introduction Commissioning Operating Units Product Brief Basic Steps for a Configuration Extend Configuration with Simple Elements Edition

More information

Communication FU UHF

Communication FU UHF OBID i-scan MANUAL Communication FU UHF Communication Function Unit UHF Function Unit Commands Reader FU (Function Unit) final public (B) 2008-05-30 H80302-0e-ID-B.doc Copyright 2008 by FEIG ELECTRONIC

More information

H1PROT.PDF 14 Pages Last Revised 02/11/06. Micro RWD H1/S Protocol

H1PROT.PDF 14 Pages Last Revised 02/11/06. Micro RWD H1/S Protocol Data Sheet H1PROT.PDF 14 Pages Last Revised 02/11/06 Micro RWD H1/S Protocol The MicroRWD H1/S version is a complete reader and tag acceptance solution for Hitag 1 RF transponders (including Hitag S256

More information

PROFIsafe SITRANS. Pressure transmitter SITRANS P, DS III PROFIsafe series. Product Information 7MF4*34 04/2008 A5E

PROFIsafe SITRANS. Pressure transmitter SITRANS P, DS III PROFIsafe series. Product Information 7MF4*34 04/2008 A5E 1 SITRANS Pressure transmitter SITRANS P, DS III PROFIsafe series Product Information 7MF4*34 04/2008 A5E00732533-02 Safety Guidelines This manual contains notices you have to observe in order to ensure

More information

Aotewell SIMATIC S7-PDIAG for S7-300 and S Configuring Process Diagnostic Getting St

Aotewell   SIMATIC S7-PDIAG for S7-300 and S Configuring Process Diagnostic Getting St SIMATIC S7-PDIAG for S7-300 and S7-400 - Configuring Process Diagnostic Getting Started Edition 01/2003 First Steps with S7-PDIAG and ProAgent The Getting Started for This product is not a stand-alonedescription.

More information

HARTING Ha-VIS RFID RF-R400. System Manual

HARTING Ha-VIS RFID RF-R400. System Manual HARTING Ha-VIS RFID RF-R400 System Manual Ha-VIS RFID RF-R400 System Manual All brand and product names are trademarks or registered trademarks of the owner concerned. 1st Edition 2017, revised 02/17 HARTING

More information

Transponder Reader Family T4/T5

Transponder Reader Family T4/T5 Transponder Reader Family T4/T5 Technical Handbook Document Release 2.03 Content 1. INTRODUCTION 3 2. SERIAL COMMUNICATION 3 2.1 HARDWARE LEVEL 3 2.2 PACKET LEVEL 3 3. BASIC READER BEHAVIOUR 4 3.1 SEARCHING

More information

ID CPR40.xx-xx. History of Firmware Revisions. Desktop Reader: ID CPR40.30-USB ID CPR40.30-SUSB ID CPR40.30-A. Reader Module:

ID CPR40.xx-xx. History of Firmware Revisions. Desktop Reader: ID CPR40.30-USB ID CPR40.30-SUSB ID CPR40.30-A. Reader Module: RELEASE-NOTE ID CPR40.xx-xx History of Firmware Revisions Desktop Reader: Reader Module: final public 2012-03-06 SWRN CPR40xx.doc Copyright 2012 by FEIG ELECTRONIC GmbH Lange Strasse 4 D-35781 Weilburg-Waldhausen

More information

Application Note: Using Modbus With the Conext CL Series. Important Safety Instructions

Application Note: Using Modbus With the Conext CL Series. Important Safety Instructions : Using Modbus With the Conext CL Series 976-0317-01-01 Rev A Important Safety Instructions READ AND SAVE THESE INSTRUCTIONS - DO NOT DISCARD This document contains important safety instructions that must

More information

MOD-RFID1356 User Manual. All boards produced by Olimex are ROHS compliant. Rev.A, May 2008 Copyright(c) 2008, OLIMEX Ltd, All rights reserved

MOD-RFID1356 User Manual. All boards produced by Olimex are ROHS compliant. Rev.A, May 2008 Copyright(c) 2008, OLIMEX Ltd, All rights reserved MOD-RFID1356 User Manual All boards produced by Olimex are ROHS compliant Rev.A, May 2008 Copyright(c) 2008, OLIMEX Ltd, All rights reserved INTRODUCTION: FEATURES: MOD-RFID1356 is an RFID station, able

More information

15693-RW-TTL-PCB1 CONTENT 1. MAIN FEATURES PINNING INFORMATION BAUD RATE SETTING COMMUNICATION PROTOCOL...5

15693-RW-TTL-PCB1 CONTENT 1. MAIN FEATURES PINNING INFORMATION BAUD RATE SETTING COMMUNICATION PROTOCOL...5 15693-RW-TTL-PCB1 13.56Mhz ISO15693 reader/writer module with TTL interface RFID MODULE CONTENT 1. MAIN FEATURES...3 2. PINNING INFORMATION......4 3. BAUD RATE SETTING......5 4. COMMUNICATION PROTOCOL......5

More information

SIMATIC. Communications processor CP 340 first commissioning steps. Getting Started 04/2005 A5E

SIMATIC. Communications processor CP 340 first commissioning steps. Getting Started 04/2005 A5E SIMATIC Communications processor Getting Started 04/2005 A5E00442606-01 Safety Guidelines This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent

More information

ID ISC.MR101 ID ISC.PR101 ID ISC.PRH101

ID ISC.MR101 ID ISC.PR101 ID ISC.PRH101 OBID i-scan MANUAL ID ISC.MR101 ID ISC.PR101 ID ISC.PRH101 History of Firmware Revisions final public 2010-03-11 SWRN MR_PR_PRH101.doc Copyright 2010 by FEIG ELECTRONIC GmbH Lange Strasse 4 D-35781 Weilburg-Waldhausen

More information

Operating instructions RFID read/write head with IO-Link DTIxxx

Operating instructions RFID read/write head with IO-Link DTIxxx Operating instructions RFID read/write head with IO-Link DTIxxx 706470 / 00 04 / 2018 Contents 1 Preliminary note................................................. 4 1.1 Symbols used...............................................

More information

UHF RFID serial Interface protocol V2.2

UHF RFID serial Interface protocol V2.2 YR903 UHF RFID serial Interface protocol V2.2 1 SPECIFICATION OF THE DATA PACKET 3 1.1 RS-232 CONFIGURATION 3 1.2 DATA PACKET DEFINITION 3 1.2.1 HOST COMMAND DATA PACKET DEFINITION 3 1.2.2 RESPONSE PACKET

More information

Conto D2 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION

Conto D2 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION PR 121 rev. 0 11/11/2011 Pagina 1 di 9 ELECTRICITY ENERGY METER FIRMWARE 1.6 Conto D2 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION 2.0 DATA MESSAGE DESCRIPTION 2.1 Data field description 2.2 Data format

More information

EHAG 125 khz Multitag Reader Module ME-H10101xx

EHAG 125 khz Multitag Reader Module ME-H10101xx EHAG 125 khz Multitag Reader Module ME-H10101xx Firmware: 0.12b 4/9/2004 Table of Content 1 Scope...2 2 Definitions and abbreviations...3 2.1 Definitions... 3 2.1.1 Hex notation... 3 2.1.2 ASCII notation...

More information

Preface 1. Main Management System 2. Contact Information 3 SIPLUS CMS. SIPLUS CMS4000 X-Tools - User Manual Main Management System.

Preface 1. Main Management System 2. Contact Information 3 SIPLUS CMS. SIPLUS CMS4000 X-Tools - User Manual Main Management System. 4000 X-Tools - User Manual - 03 - Main Management System Preface 1 Main Management System 2 Contact Information 3 4000 X-Tools User Manual - 03 - Main Management System Release 2011-09 Release 2011-09

More information

Preface 1. Product Characteristics 3 SIPLUS CMS4000 ION SIMATIC TDC T001 Manual Software Installation 4

Preface 1. Product Characteristics 3 SIPLUS CMS4000 ION SIMATIC TDC T001 Manual Software Installation 4 4000 ION SIMATIC TDC T001 Manual Preface 1 Scope of Delivery 2 Product Characteristics 3 4000 ION SIMATIC TDC T001 Manual Software Installation 4 Software Engineering 5 Block Description 6 References 7

More information

ID ISOStart HANDBUCH V7.02. Demo Program for OBID i-scan and OBID classic-pro Reader. (Windows 98/NT/2000/XP)

ID ISOStart HANDBUCH V7.02. Demo Program for OBID i-scan and OBID classic-pro Reader. (Windows 98/NT/2000/XP) OBID HANDBUCH ID ISOStart V7.02 Demo Program for OBID i-scan and OBID classic-pro Reader (Windows 98/NT/2000/XP) final public (B) 2006-10-09 H81291-8e-ID.doc Copyright 2002-2006 by FEIG ELECTRONIC GmbH

More information

JMY504M User's Manual

JMY504M User's Manual JMY504M User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/28 Please read this manual carefully before using. If any problem, please mail to: Jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

ModBus Communication protocol. The ModBus protocol is an industrial communications and distributed control system

ModBus Communication protocol. The ModBus protocol is an industrial communications and distributed control system ModBus Communication protocol ModBus Communication Standards The ModBus protocol is an industrial communications and distributed control system to integrate PLCs, computers, terminals, and other monitoring,

More information

SKYEWARE PROTOCOL V3 REFERENCE GUIDE VERSION

SKYEWARE PROTOCOL V3 REFERENCE GUIDE VERSION SKYEWARE PROTOCOL V3 REFERENCE GUIDE VERSION 040218 SkyeWare Protocol V3 Reference Guide P a g e 2 COPYRIGHT INFORMATION: Copyright 2018 Novanta Corporation. All rights reserved. Version 040218 This product

More information

Micro RWD H2 Protocol

Micro RWD H2 Protocol Data Sheet H2PROT.PDF 9 Pages Last Revised 04/11/09 Micro RWD H2 Protocol The MicroRWD H2 version is a complete reader and tag acceptance solution for Hitag 2 RF transponders. The solution only needs a

More information

Preface 1. Storage System 2. Contact Information 3 SIPLUS CMS. SIPLUS CMS X-Tools - User Manual Storage System. English.

Preface 1. Storage System 2. Contact Information 3 SIPLUS CMS. SIPLUS CMS X-Tools - User Manual Storage System. English. X-Tools - User Manual - 07 - Storage System Preface 1 Storage System 2 Contact Information 3 X-Tools User Manual - 07 - Storage System Release 2012-09 Release 2012-09 1 / 44 X-Tools - User Manual - 07

More information

SIMATIC. RFID systems User application for RF610M Mobile Reader. Introduction. Description 2. Installing Software 3. Parameterization of the software

SIMATIC. RFID systems User application for RF610M Mobile Reader. Introduction. Description 2. Installing Software 3. Parameterization of the software SIMATIC RFID systems SIMATIC RFID systems User application for RF610M Mobile Reader Operating Instructions Introduction 1 Description 2 Installing Software 3 Parameterization of the software 4 Read and

More information

JUMO ctron 04/08/16. Compact controller with timer and ramp function. B Interface Description Modbus /

JUMO ctron 04/08/16. Compact controller with timer and ramp function. B Interface Description Modbus / JUMO ctron 04/08/16 Compact controller with timer and ramp function 702071 702072 702074 B 70.2070.2.0 Interface Description Modbus 2008-08-11/00492538 Contents 1 Introduction 5 1.1 Preface... 5 1.2 Typographical

More information

LMV2 / LMV3... Modbus. User Documentation. Building Technologies Division

LMV2 / LMV3... Modbus. User Documentation. Building Technologies Division LMV2 / LMV3... Modbus User Documentation The LMV2... / LMV3... burner management system and this User Documentation are intended for OEMs and system integrators which integrate the system in their products!

More information

Supplementary device manual EtherCAT interface in the AS-i controllere A AC1391 AC1392

Supplementary device manual EtherCAT interface in the AS-i controllere A AC1391 AC1392 Supplementary device manual EtherCAT interface in the AS-i controllere A AC1391 AC139 firmware version RTS.x target from 15 for CoDeSys from version.3 English 739071_00_UK 01-0- Contents Revision: 16 December

More information

SL2 ICS50/SL2 ICS General description I CODE SLI-L/I CODE SLI-L HC. 1.1 Anticollision. 1.2 Contactless energy and data transfer

SL2 ICS50/SL2 ICS General description I CODE SLI-L/I CODE SLI-L HC. 1.1 Anticollision. 1.2 Contactless energy and data transfer Rev. 3.0 14 March 2007 Product data sheet 136430 1. General description The IC is a dedicated chip for smart label applications with the need for a leaner custom-specific command set, smaller memory and/or

More information

SIMATIC HMI. Configuring Graphics Displays. Product Brief. Edition 12/01. Table of Contents. Introduction. Commissioning Operating Units

SIMATIC HMI. Configuring Graphics Displays. Product Brief. Edition 12/01. Table of Contents. Introduction. Commissioning Operating Units SIMATIC HMI Configuring Graphics Displays Table of Contents Introduction Commissioning Operating Units Product Brief Basic Steps for a Configuration Extend Configuration with Simple Elements Edition 12/01

More information

Automationdirect.com. D i r e c t L o g i c S D S N e t w o r k M a s t e r. S m a r t D i s t r i b u t e d. S y s t e m M o d u l e

Automationdirect.com. D i r e c t L o g i c S D S N e t w o r k M a s t e r. S m a r t D i s t r i b u t e d. S y s t e m M o d u l e Automationdirect.com D i r e c t L o g i c 4 0 5 S D S N e t w o r k M a s t e r S m a r t D i s t r i b u t e d S y s t e m M o d u l e F 4 - S D S Order Number: F4-SDS-M TRADEMARKS Automationdirect.com

More information

User Manual version 1.04 TLM8 COMMUNICATION PROTOCOLS

User Manual version 1.04 TLM8 COMMUNICATION PROTOCOLS User Manual version 1.04 TLM8 COMMUNICATION PROTOCOLS Load Cell Systems reserves the right to change specifications without notice. 2018 Web: https://loadcellsys.com Email: sales@loadcellsys.com Phone:

More information

1. Implemented CM11 protocol

1. Implemented CM11 protocol 1. Implemented CM11 protocol 1.1. Housecodes and Device Codes. The housecodes and device codes range from A to P and 1 to 16 respectively although they do not follow a binary sequence. The encoding format

More information

JUMO di 308. Digital Indicator. B Interface Description Modbus 12.07/

JUMO di 308. Digital Indicator. B Interface Description Modbus 12.07/ JUMO di 308 Digital Indicator B 70.1550.2.0 Interface Description Modbus 12.07/00485372 Contents 1 Introduction 5 1.1 Preface... 5 1.2 Typographical conventions... 6 1.2.1 Warning signs... 6 1.2.2 Note

More information

MOBY F-SIM C-Library MFWAPI for Windows 95/NT 4.0 and Protocol Description. Programming Guide Release 03.98

MOBY F-SIM C-Library MFWAPI for Windows 95/NT 4.0 and Protocol Description. Programming Guide Release 03.98 MOBY F-SIM C-Library MFWAPI for Windows 95/NT 4.0 and Protocol Description Programming Guide Release 03.98 Introduction 1 Host Software Modules 2 MOBY F-SIM Communication Read/Write Device-Host 3 C-Library

More information

VPGate Manual PROFIBUS to serial

VPGate Manual PROFIBUS to serial VPGate Manual PROFIBUS to serial Important information Purpose of the Manual This user manual provides information how to work with the VPGate PROFIBUS to serial. Document Updates You can obtain constantly

More information

U9809 UHF RFID Reader User's Manual V1.2

U9809 UHF RFID Reader User's Manual V1.2 U9809 UHF RFID Reader User's Manual V1.2 Content 1 COMMUNICATION INTERFACE SPECIFICATION... 4 2 PROTOCOL DESCRIPTION... 4 3 DATA BLOCK FORMAT... 5 3.1 COMMAND DATA BLOCK... 5 3.2 RESPONSE DATA BLOCK...

More information

Manual 09/11 MN Z-EN. NZM-XATS-C Automatic Transfer Switch-Controller Modbus Communication Protocol

Manual 09/11 MN Z-EN. NZM-XATS-C Automatic Transfer Switch-Controller Modbus Communication Protocol Manual 09/11 MN01219007Z-EN NZM-XATS-C Automatic Transfer Switch-Controller Modbus Communication Protocol All brand and product names are trademarks or registered trademarks of the owner concerned. Emergency

More information

MANUAL PCV Parameterization Tool

MANUAL PCV Parameterization Tool FACTORY AUTOMATION MANUAL Configuration software With regard to the supply of products, the current issue of the following document is applicable: The General Terms of Delivery for Products and Services

More information

One-Way Serial Data RF Module Developer Guide

One-Way Serial Data RF Module Developer Guide One-Way Serial Data RF Module Developer Guide Revision G Preface Notice Copyright 2011 Inovonics Inovonics intends this manual for use by Inovonics customers only. All comments concerning the contents

More information

General Information 1. Connection 2. User Interface 3 ATC5300. Menus 4. Automatic Transfer Controller. Remote Control Software Manual A5E

General Information 1. Connection 2. User Interface 3 ATC5300. Menus 4. Automatic Transfer Controller. Remote Control Software Manual A5E s General Information 1 Connection 2 Automatic Transfer Controller User Interface 3 Menus 4 Remote Control Software Manual Edition 01/2010 A5E02469028-01 Legal information Warning notice system This manual

More information

JDICON 1000 JDICON B Interface Description 3.99/ Universal Process Controller. Universal Profile Controller

JDICON 1000 JDICON B Interface Description 3.99/ Universal Process Controller. Universal Profile Controller JDICON 1000 Universal Process Controller JDICON 1001 Universal Profile Controller B 70.3560.2 Interface Description 3.99/00316584 Contents 1 Introduction 1.1 Preliminary remarks... 3 1.2 Typographical

More information

0.1. [0x8A] Read Configuration

0.1. [0x8A] Read Configuration 0.1. [0x8A] Read Configuration The Read Configuration Protocol is defined to query the complete or parts of reader configuration. This protocol is an extension of [0x80] Read Configuration and realizes

More information

Elotech Standard Protocol. for Single R8200 SC

Elotech Standard Protocol. for Single R8200 SC Elotech Standard Protocol interface description / network protocol for Single R8200 SC ELOTECH Industrieelektronik GmbH Verbindungsstraße 27 D - 40723 HILDEN FON +49 2103 / 255 97 0 FAX +49 2103 / 255

More information

COMMUNICATION MODBUS PROTOCOL

COMMUNICATION MODBUS PROTOCOL COMMUNICATION MODBUS PROTOCOL BOZZA_V04 Conto D6-Pd 05/12/2017 Pag. 1/15 CONTENTS 1.0 ABSTRACT... 2 2.0 DATA MESSAGE DESCRIPTION... 3 2.1 Parameters description... 3 2.2 Data format... 4 2.3 Description

More information

Preface Master Data System Contact Information SIPLUS CMS

Preface Master Data System Contact Information SIPLUS CMS Preface 1 Master Data System 2 Contact Information 3 X-Tools User Manual - 02 - Master Data System Release 2012-09 Release 2012-09 1 / 17 Safety Guidelines This document contains notices which you should

More information

DF FA SE. SIPLUS RIC IEConS7. Advanced Buffer Version V1.6. Siemens Parts

DF FA SE. SIPLUS RIC IEConS7. Advanced Buffer Version V1.6. Siemens Parts DF FA SE SIPLUS RIC IEConS7 Advanced Buffer Version V1.6 Siemens Parts Advanced Buffer DF FA SE Safety instructions Warning notices These Operating Instructions contain information that you should observe

More information

Type Type Type Type Type B Interface Description /

Type Type Type Type Type B Interface Description / Type 202530 Type 202535 Type 202540 Type 202545 Type 202550 B 20.2530.2 Interface Description 02.03 / 00415372 Please read these operating instructions before commissioning the instrument. Keep this manual

More information

USER S MANUAL Enhanced Communication Function

USER S MANUAL Enhanced Communication Function UM-TS02E -E003 PROGRAMMABLE CONTROLLER PROSEC T2E/T2N USER S MANUAL Enhanced Communication Function Main Menu Contents TOSHIBA CORPORATION Important Information Misuse of this equipment can result in property

More information

HART 710. User s Manual Version HART-710 User Manual (Version 1.00, July/2010) PAGE: 1

HART 710. User s Manual Version HART-710 User Manual (Version 1.00, July/2010) PAGE: 1 TM HART 710 User s Manual Version 1.00 HART-710 User Manual (Version 1.00, July/2010) PAGE: 1 Warranty All products manufactured by ICP DAS are under warranty regarding defective materials for a period

More information

FACTORY AUTOMATION MANUAL IQT-F116-R4-V1 IQT-F116-R4M-V1

FACTORY AUTOMATION MANUAL IQT-F116-R4-V1 IQT-F116-R4M-V1 FACTORY AUTOMATION MANUAL IQTF116R4V1 IQTF116R4MV1 Read/write station (13,56 MHz) With regard to the supply of products, the current issue of the following document is applicable: The General Terms of

More information

JUMO Quantrol LC100/LC200/LC300

JUMO Quantrol LC100/LC200/LC300 JUMO Quantrol LC100/LC200/LC300 Universal PID Controller Series B 702030.2.0 Interface Description Modbus 2013-05-27/00600589 Content 1 Introduction................................................ 5 1.1

More information

Supports ISO14443A Mifare Classic 1K, Mifare Classic 4K, Mifare Ultralight. Fast data transfer - Contactless communication up to 106 KHz

Supports ISO14443A Mifare Classic 1K, Mifare Classic 4K, Mifare Ultralight. Fast data transfer - Contactless communication up to 106 KHz SM132-USB 13.56 MHz RFID Mifare Read / Write USB Module DATA SHEET Complete Read/Write module including antenna Supports ISO14443A Mifare Classic 1K, Mifare Classic 4K, Mifare Ultralight USB Interface

More information

SIMATIC Easy Motion Control. Getting Started Edition 02/2003. First Steps in Commissioning

SIMATIC Easy Motion Control. Getting Started Edition 02/2003. First Steps in Commissioning SIMATIC Edition 02/2003 First Steps in Commissioning Safety Guidelines This manual contains notices intended to ensure personal safety, as well as to protect the products and connected equipment against

More information

CE4DMID01 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION

CE4DMID01 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION 11/11/2011 Pagina 1 di 11 ELECTRICITY ENERGY METER FIRMWARE 1.3 CE4DMID01 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION 2.0 DATA MESSAGE DESCRIPTION 2.1 Data field description 2.2 Data format 2.3 Description

More information

SIMATIC. ET 200S IM CPU Interface Module. Introduction. New features 2. Technical specifications 3. Product Information 06/2007 A5E

SIMATIC. ET 200S IM CPU Interface Module. Introduction. New features 2. Technical specifications 3. Product Information 06/2007 A5E SIMATIC ET 200S SIMATIC Introduction 1 New features 2 Technical specifications 3 ET 200S Product Information 06/2007 A5E01159154-01 Safety Guidelines Safety Guidelines This manual contains notices you

More information

Micro RWD Quad-Tag Reader

Micro RWD Quad-Tag Reader Data Sheet RWD_QT.pdf 19 Pages Last Revised 09/08/11 Micro RWD Quad-Tag Reader The MicroRWD QT (Quad-Tag) version is a complete 125kHz reader solution for Hitag 1, Hitag S256/S2048 (Plain Memory mode),

More information

DF FA SE. SIPLUS RIC IEConS7. File Transfer Version V1.6

DF FA SE. SIPLUS RIC IEConS7. File Transfer Version V1.6 DF FA SE SIPLUS RIC IEConS7 File Transfer Version V1.6 Functional description File Transfer DF FA SE Safety instructions Warning notices These Operating Instructions contain information that you should

More information

EEPROM Emulation with the ez80f91 MCU. Discussion

EEPROM Emulation with the ez80f91 MCU. Discussion Application Note EEPROM Emulation with the ez80f91 MCU AN015803-0608 Abstract This Application Note describes a method to utilize a portion of Zilog s ez80acclaimplus! MCU s Flash memory to emulate the

More information

EGON FAMILY PROGRAMMING NOTES

EGON FAMILY PROGRAMMING NOTES EGON FAMILY PROGRAMMING NOTES REV. January 2013 Welcome Thank you for choosing NAVIOP EGON Series products. We invite you to read this manual in full before proceeding to use the product. The purpose of

More information

CHAPTER 3. Possible Responses. Series 2000 Reader System. ASCII Protocol. Reference Guide

CHAPTER 3. Possible Responses. Series 2000 Reader System. ASCII Protocol. Reference Guide CHAPTER 3 Possible Responses Series 2000 Reader System ASCII Protocol Reference Guide 11-06-21-052 May 2000 1 May 00 Preface Edition One - May 2000 This is the first edition of this manual, it describes

More information

Micro RWD MF-IC (Mifare/ICODE/ISO14443B) Reader (low power version with auxiliary outputs)

Micro RWD MF-IC (Mifare/ICODE/ISO14443B) Reader (low power version with auxiliary outputs) Data Sheet MF_ICBprot_030518.pdf 43 Pages Last Revised 03/05/2018 Micro RWD MF-IC (Mifare/ICODE/ISO14443B) Reader (low power version with auxiliary outputs) The MicroRWD MF-IC module is a complete contactless

More information

AsReader DeskTop UHF RFID Reader Command Reference v1.11

AsReader DeskTop UHF RFID Reader Command Reference v1.11 AsReader DeskTop UHF RFID Reader Command Reference v1.11 Asterisk, Inc. 2017-12-15 Content 1. COMMUNICATION INTERFACE SPECIFICATION... 3 2. PROTOCOL DESCRIPTION... 3 3. DATA BLOCK FORMAT... 4 3.1 COMMAND

More information

COMMUNICATION MODBUS PROTOCOL

COMMUNICATION MODBUS PROTOCOL COMMUNICATION MODBUS PROTOCOL MFD4E06 - NEMO-D4e PR146 08/03/2018 Pag. 1/16 CONTENTS 1.0 ABSTRACT... 2 2.0 DATA MESSAGE DESCRIPTION... 3 2.1 Parameter description... 3 2.2 Data format... 4 2.3 Description

More information

MPU-32 AND FPU-32 TIA-485 NETWORK

MPU-32 AND FPU-32 TIA-485 NETWORK 3714 Kinnear Place Saskatoon, SK Canada S7P 0A6 Ph: (306) 373-5505 Fx: (306) 374-2245 www.littelfuse.com/protectionrelays MPU-32 AND FPU-32 TIA-485 NETWORK SEPTEMBER 5, 2006 PRELIMINARY Publication: MPU-32/FPU-32

More information

SIMATIC HMI. Software RemoteOperate V2. Preface. Overview 1. Range of functions of the RemoteOperate software. Hardware and software requirements

SIMATIC HMI. Software RemoteOperate V2. Preface. Overview 1. Range of functions of the RemoteOperate software. Hardware and software requirements Preface SIMATIC HMI Software SIMATIC HMI Software Programming Manual Overview 1 Range of functions of the RemoteOperate software 2 Hardware and software requirements 3 Installing RemoteOperate 4 Server

More information

ASSP ISO/IEC Compliant FRAM Embedded

ASSP ISO/IEC Compliant FRAM Embedded FUJITSU SEMICONDUCTOR DATA SHEET DS411-00002-2v0-E ASSP ISO/IEC 15693 Compliant FRAM Embedded TM High-speed RFID LSI MB89R119B DESCRIPTION The MB89R119B is a vicinity type of RFID LSI device embedded with

More information

Micro RWD Quad-Tag Reader

Micro RWD Quad-Tag Reader Data Sheet RWD_QT.pdf 8 Pages Last Revised 08/05/06 Micro RWD Quad-Tag Reader The MicroRWD QT (Quad-Tag) version is a complete 125kHz reader solution for Hitag 1 (including Hitag S in Plain Memory mode),

More information

ENGLISH ENGLISH ENGLISH ENGLISH

ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH User Manual version 1.04 TLM8 COMMUNICATION PROTOCOLS Protocols for instruments CE-M APPROVED EN45501:2015-2014/31/UE-OIML R76:2006 KEY TO SYMBOLS Below are the symbols

More information

INTELLIS. Modbus Direct Network Monitor

INTELLIS. Modbus Direct Network Monitor INTELLIS Modbus Direct Network Monitor System Installation and Operation Manual Phone: (201) 794-7650 Fax: (201)794-0913 Chapter 1 Modbus Protocol Revision History Revision 1.0 30 April, 2002 Initial Version

More information

Programming Interface Description of the Functions

Programming Interface Description of the Functions SIMATIC NET Programming Interface DP-Base Master Class 2 for CP 5613/CP 5614 Preface, Contents of the Functions of the DP Master Class 2 1 Manual C79000-G8976-C165-01 Release 07/2001 Classification of

More information

COMMUNICATION MODBUS PROTOCOL

COMMUNICATION MODBUS PROTOCOL COMMUNICATION MODBUS PROTOCOL CE4DMID31 / CE4DMID21 CONTO D4 Pd MID PR123 20/10/2016 Pag. 1/9 Contents 1.0 ABSTRACT... 2 2.0 DATA MESSAGE DESCRIPTION... 3 2.1 Parameters description... 3 2.2 Data format...

More information

BM4-O-PRO-01 Profibus DP Slave for b maxx Controller Programming manual

BM4-O-PRO-01 Profibus DP Slave for b maxx Controller Programming manual BM4-O-PRO-01 Profibus DP Slave for b maxx Controller Programming manual E 5.03045.03 Title Programming manual Product BM4-O-PRO-01 Slave for b maxx Controller Version 5.03045.03 Status 2004-03-11 Article

More information

ENGLISH ENGLISH ENGLISH ENGLISH

ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH User Manual version 1.03 TLM8 COMMUNICATION PROTOCOLS KEY TO SYMBOLS Below are the symbols used in the manual to draw the reader's attention: Caution! High Voltage. Caution!

More information

UHF RFID Reader UHFReader18

UHF RFID Reader UHFReader18 UHF RFID Reader UHFReader18 User's Manual V2.0 Content 1. COMMUNICATION INTERFACE SPECIFICATION... 4 2. PROTOCOL DESCRIPTION......4 3. DATA BLOCK FORMAT......5 3.1 COMMAND DATA BLOCK... 5 3.2 RESPONSE

More information

JUMO dtron 304/308/316 JUMO dtron 304/308/316 plast

JUMO dtron 304/308/316 JUMO dtron 304/308/316 plast JUMO dtron 304/308/316 JUMO dtron 304/308/316 plast Compact Controller with program function Compact Controller for the plactics industry B 70.3041.2 Interface Description Modbus 2009-10-20/00442143 Contents

More information

REV2 Mifare RS-485 OEM Proximity Reader Data Sheet

REV2 Mifare RS-485 OEM Proximity Reader Data Sheet 783-52 REV2 Mifare RS-485 OEM Proximity Reader Data Sheet Overview The 783-52 RS-485 OEM proximity reader consists of three parts: a potted unit containing the electronics, a front cover, and an optional

More information

DULCOMETER Multi-parameter Controller dialog DACa

DULCOMETER Multi-parameter Controller dialog DACa Software manual DULCOMETER Multi-parameter Controller dialog DACa Modbus RTU EN Valid only in combination with the operating instructions for the Multi-parameter Controller dialog DACa. A2100 Please carefully

More information

English. SIMATIC Sensors. RFID-Systems RF600. Getting Started. Edition 11/2005; J31069-D0172-U001-A1-7618

English. SIMATIC Sensors. RFID-Systems RF600. Getting Started. Edition 11/2005; J31069-D0172-U001-A1-7618 English SIMATIC Sensors RFID-Systems Getting Started Edition 11/2005; J31069-D0172-U001-A1-7618 Safety Guidelines This manual contains notices you have to observe in order to ensure your personal safety,

More information

ISO/IEC INTERNATIONAL STANDARD

ISO/IEC INTERNATIONAL STANDARD INTERNATIONAL STANDARD ISO/IEC 15693-3 Second edition 2009-04-15 Identification cards Contactless integrated circuit cards Vicinity cards Part 3: Anticollision and transmission protocol Cartes d'identification

More information

UHF RFID Reader VI-88C User's Manual V2.0

UHF RFID Reader VI-88C User's Manual V2.0 UHF RFID Reader VI-88C User's Manual V2.0 Content 1. COMMUNICATION INTERFACE SPECIFICATION...4 2. PROTOCOL DESCRIPTION...4 3. DATA BLOCK FORMAT...5 3.1 COMMAND DATA BLOCK...5 3.2 RESPONSE DATA BLOCK...5

More information

LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide. Copyright 2008 IMS

LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide. Copyright 2008 IMS LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide Copyright 2008 IMS CONTENTS 1 INTRODUCTION... 3 2 MODULE CONNECTION... 3 2.1 I2C/Serial interface connector...4 2.2

More information

DI 8x24VDC ST digital input module SIMATIC. ET 200SP DI 8x24VDC ST digital input module (6ES7131-6BF00-0BA0) Preface. Documentation guide

DI 8x24VDC ST digital input module SIMATIC. ET 200SP DI 8x24VDC ST digital input module (6ES7131-6BF00-0BA0) Preface. Documentation guide DI 8x24VDC ST digital input module (6ES7131-6BF00-0BA0) SIMATIC ET 200SP DI 8x24VDC ST digital input module (6ES7131-6BF00-0BA0) Manual Preface Documentation guide 1 Product overview 2 Connecting 3 Parameter

More information

CaMate Series User s Manual

CaMate Series User s Manual CaMate Series User s Manual 2017/11/17 Rev0.1 1. Introduction... 4 1.1 Configuration & Control... 4 2. Windows Application Software... 6 2.1 Configuration/Status Page... 9 2.1.1 Apply change... 9 2.1.2

More information

YHY630CTU ISO15693 RFID Reade/Write module

YHY630CTU ISO15693 RFID Reade/Write module DATASHEET 1. Supported cards: ISO 15693:Tag_it(2k) HF-1/I.CODE SLI / I.CODE SLI-S/ I.CODE SLI-L, SRF55V10P 2. Special Features: Complete Read/Write module with built-in transceiver antenna Contactless

More information