Convergence Systems CS101C1GEN2 Handheld Reader User Manual appendix 9 cover
Convergence Systems Limited Handheld Reader appendix 9 cover
User manual
www.tuv.com Report No.14018170 001 Appendix 9: User Manual FCCID: UB4CS101C1GEN2 (Total: 213 pages, include this page) CSL CS101-2 EPC Class 1 Gen 2 RFID Handheld Reader User’s Manual Version 1.0 CSL: The One-Stop-Shop for RFID Solutions CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Content CONTENT .......................................................................................................................... 2 FCC STATEMENT ............................................................................................................ 6 INTRODUCTION.............................................................................................................. 7 3.1 CS101-2 HANDHELD RFID READER ............................................................................. 7 3.2 HOW TO USE THIS MANUAL .......................................................................................... 7 3.3 PRODUCT PACKAGE ....................................................................................................... 8 3.3.1 Basic Package Content......................................................................................... 8 3.3.2 Unpacking Instructions ........................................................................................ 8 3.4 PRODUCT SPECIFICATION .............................................................................................. 9 INSTALLATION.............................................................................................................. 11 4.1 DEVICES ...................................................................................................................... 11 4.1.1 Reader ................................................................................................................ 11 4.1.2 Charger .............................................................................................................. 14 4.2 POWER UP SEQUENCE ................................................................................................. 15 4.3 USAGE RECOMMENDATION ......................................................................................... 17 4.3.1 Strap: Wrist Strap and Shoulder Strap ............................................................... 17 4.3.2 IO Connection .................................................................................................... 17 4.4 VERIFICATION AND VALIDATION .................................................................................. 18 4.5 CAUTIONS ................................................................................................................... 20 QUICK START ................................................................................................................ 21 5.1 5.2 5.3 READER LOGIN ........................................................................................................... 21 SYSTEM CONFIGURATION ............................................................................................ 22 SETUP RFID CONFIGURATION ..................................................................................... 23 5.4 READ TAGS ................................................................................................................. 24 DEMO APPLICATION................................................................................................... 25 6.1 INTRODUCTION ............................................................................................................ 25 6.2 SPLASH SCREEN .......................................................................................................... 26 6.3 ID AND PASSWORD PAGE ............................................................................................. 27 6.4 APPLICATIONS SELECTOR SCREEN .............................................................................. 28 6.4.1 Tag Read............................................................................................................. 30 6.4.2 Tag Write ............................................................................................................ 31 6.4.3 Tag Inventory...................................................................................................... 34 Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.4 6.4.5 6.4.6 6.4.7 6.4.8 6.4.9 6.4.10 6.4.11 6.4.12 6.4.13 USER'S MANUAL, VERSION 1.0 Tag Ranging ....................................................................................................... 35 Tag Search .......................................................................................................... 36 Tag Commissioning ............................................................................................ 37 Tag Authentication ............................................................................................. 38 Database Management....................................................................................... 39 RFID Configuration ........................................................................................... 40 Scan Barcode...................................................................................................... 46 Tag Security........................................................................................................ 47 System Configuration ......................................................................................... 49 Factory Defaults................................................................................................. 54 SOFTWARE DEVELOPMENT KIT............................................................................. 55 7.1 SOFTWARE SPECIFICATIONS......................................................................................... 56 7.1.1 CS101-2 RFID Libraries.................................................................................... 56 7.1.2 CS101-2 Demonstration Application ................................................................. 56 7.1.3 CS101-2 Keep Alive Monitor ............................................................................. 57 7.1.4 CS101-2 Server Side Application....................................................................... 57 7.2 BLOCK DIAGRAMS ...................................................................................................... 58 7.3 APPLICATION PROGRAMMING INTERFACE (API) DEFINITIONS .................................... 63 7.4 APPLICATION SCENARIOS WITH PROGRAM SOURCE CODES....................................... 155 7.5 UNIT TESTS ............................................................................................................... 156 7.6 BUILD ENVIRONMENT ............................................................................................... 157 7.7 DEBUG METHODS ..................................................................................................... 158 7.7.1 Log File ............................................................................................................ 158 7.7.2 Error Message List........................................................................................... 158 PC SIDE DEMO PROGRAMS .................................................................................... 159 8.1 INTRODUCTION .......................................................................................................... 159 8.2 DATABASE FILES MANIPULATION DEMO ................................................................... 159 8.2.1 Installing Demo Program................................................................................. 159 8.2.2 Using Demo Program ...................................................................................... 159 USAGE TIPS FOR CS101-2 ......................................................................................... 160 9.1 9.2 9.3 9.4 10 INTRODUCTION .......................................................................................................... 160 GENERAL TIPS ........................................................................................................... 160 SYSTEM TIPS ............................................................................................................. 160 WRITE TAG TIPS ........................................................................................................ 160 RFID COOKBOOK................................................................................................... 161 10.1 INTRODUCTION .......................................................................................................... 161 Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2 APPLICATION DETAILS .............................................................................................. 164 10.2.1 Business Process Analysis................................................................................ 164 10.2.2 Technology Selection........................................................................................ 167 10.2.3 Customer Expectation Management ................................................................ 168 10.2.4 Hardware Configuration .................................................................................. 169 10.2.5 Software Configuration .................................................................................... 170 10.2.6 System Integration............................................................................................ 172 10.2.7 Pilot Test........................................................................................................... 173 10.2.8 Optimization ..................................................................................................... 175 10.2.9 Customization................................................................................................... 176 10.2.10 Training ........................................................................................................ 177 10.2.11 Test & Commissioning...................................................................................... 178 10.2.12 Maintenance & Statistics.............................................................................. 179 10.3 READERS FOR DIFFERENT BUSINESS APPLICATIONS .................................................. 180 10.4 ANTENNAS FOR DIFFERENT BUSINESS APPLICATIONS ............................................... 181 11 RFID BEST PRACTICES............................................................................................. 182 11.1 INTRODUCTION .......................................................................................................... 182 11.2 INTEGRATION PROCESS DETAILS ............................................................................... 184 11.2.1 Familiarization Process ................................................................................... 184 11.2.1.1 Familiarizing with Browser Interface .......................................................... 184 11.2.1.2 Familiarizing with Programming Interface ................................................. 184 11.2.1.3 Full Scale Programming and Integration .................................................... 185 11.2.1.4 Reader Capability Envelope Discovery ....................................................... 185 11.2.2 Integration Process .......................................................................................... 187 11.2.2.1 Use Cases and Requirements Gathering...................................................... 187 11.2.2.2 Draft Solution and In-House Testing............................................................ 187 11.2.2.3 API Programming ........................................................................................ 187 11.2.2.4 Pilot Testing.................................................................................................. 187 11.2.2.5 Middleware Testing ...................................................................................... 188 11.2.2.6 11.2.2.7 12 12.1 12.2 12.3 12.4 12.5 Finalizing Solution ....................................................................................... 188 Scaling.......................................................................................................... 188 RFID USE CASES ..................................................................................................... 190 WAREHOUSE REAL TIME INVENTORY TRACKING ...................................................... 190 HIGH TRAFFIC HUMAN ACCESS CONTROL ................................................................ 191 REUSABLE PALLET TRACKING ................................................................................... 192 WORK-IN-PROGRESS MONITORING ........................................................................... 193 HUMAN ACCESS CONTROL BY AUTONOMOUS TAG GROUPS IN READER .................... 194 Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.6 12.7 12.8 12.9 12.10 12.11 USER'S MANUAL, VERSION 1.0 PALLET/CARTON TAGGING VERIFICATION ................................................................. 195 BLOOD BAG TRACKING ............................................................................................. 196 PHARMACEUTICAL BOTTLES TRACKING AND ANTI-COUNTERFEIT ............................ 197 VEHICLE TRACKING IN MAINTENANCE DEPOT.......................................................... 198 VEHICLE INFORMATION SYSTEM ........................................................................... 199 DOCUMENT TRACKING .......................................................................................... 200 APPENDIX A. RFID BASICS......................................................................................... 201 APPENDIX B. GLOSSARY ............................................................................................ 202 APPENDIX C.FEDERAL COMMUNICATION COMMISSIONS COMPLIANCE..... 208 APPENDIX D. MAXIMUM PERMISSIBLE EXPOSURE ......................................... 209 Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 FCC Statement FCC NOTICE: To comply with FCC part 15 rules in the United States, the system must be professionally installed to ensure compliance with the Part 15 certification. It is the responsibility of the operator and professional installer to ensure that only certified systems are deployed in the United States. The use of the system in any other combination (such as co-located antennas transmitting the same information) is expressly forbidden. Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Introduction 3.1 CS101-2 Handheld RFID Reader The CS101-2 handheld RFID reader is a ruggedized reader designed from the drawing board to have extremely long read range and high read rate – in that it is designed to replace fixed reader in many applications where fixed reader is a non-portable and therefore non-viable option. In fact it is nicknamed “Fixed Reader in Your Hand”. CS101-2 is a product that arises out of popular requests for applications such as: 1. 2. 3. 4. 5. 3.2 Dock Door applications where the handheld reader is used to complement fixed reader when tags are not 100% read by the fixed reader. Loading Bay applications where the fixed reader is not allowed because there is no place to put a permanent reader stand. Warehouse applications where the handheld is used to do long read range inventory of all the shelves – apparently not a good idea to use a fixed reader and move it around up and down. Special applications where long read range is a MUST because the operator does not want to go near the tagged item, example police inspecting the electronic license plate of a suspect vehicle with a suspicious driver inside. Retail shop inventory applications where high read rate is most useful – workers can go home earlier!! How to Use this Manual This manual provides a comprehensive introduction to the CSL CS101-2 EPC Class1 Gen 2 handheld RFID reader (chapter 1), Installation Guide (chapter 2), Quick Start Guide (chapter 3), Applications Interface (chapter 4), CSL Demo Programs (chapter 5), Software Development Environment (chapter 6), Usage Tips for CS101-2(chapter 7), and Troubleshooting Guide (chapter 11). Some other information such as RFID Cook Book (chapter 8), RFID Best Practices (chapter 9) and RFID Use Cases (chapter 10) are also provided for reference. Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 3.3 Product Package 3.3.1 Basic Package Content USER'S MANUAL, VERSION 1.0 The reader package contains: • • • • • • • Handheld reader Charger with power adapter and country specific power cord Batteries – 2 pieces Wrist strap Shoulder strap Sample tags User Manual (in CD format) 3.3.2 Unpacking Instructions Unpacking of the reader is very simple. Just open up the box and take out the content to a The charger should be connected and the 2 batteries charged for a minimum of 10 hours before first use. table. Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 3.4 USER'S MANUAL, VERSION 1.0 Product Specification Figure 3-1 CS101-2Reader Features: ISO 18000-6C and EPCglobal Class 1 Gen 2 UHF RFID protocol compliant including dense reader mode Ultra long read range – peak at 5 to 7 meters for Banjole tag Ultra high read rate – peak at 200 tags per second Sophisticated data handling for efficient management of large streams of tag data. Highly configurable buffering and tag filtering modes to eliminate the redundant tag data so as to reduce wireless LAN traffic and server loading 400 kbps tag-to-reader data rate profile Robust performance in dense-reader environments Excellent in transmit and receive mode – generates a different combination of unique reader-to-tag command rate, tag-to-reader backscatter rate, modulation format, and backscatter type Configurable parameters offer maximum throughput and optimal performance Supports all Gen 2 commands, including write, lock and kill Copyright © Convergence Systems Limited, All Rights Reserved CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Specifications: Physical Characteristics: Environment: Antenna: Power: RFID Frequency Ranges: Interfaces Operating System: Maximum Tag Read Rate: Maximum Speed of Tag: Accessories: Order Code: Restrictions on Use: Length: 20 cm; Width: 12.5 cm; Height: 22.5 cm; Weight: 1.2 Kg Operating Temp: 00C to 500C Storage Temp: -400C to 850C Humidity: 5% to 95% non-condensing Enclosure: IP-63 Linear with excellent polarization diversity 14.8 Volt 1400 mAh Lithium Polymer battery 902-928 MHz band Wi Fi 802.11b/g with WPA Configurable to use fixed IP address or DHCP USB RS-232 Maximum 2GB SD card storage WinCE Profession 5.0 200 tag/sec. 660 ft/min Charger, batteries, wrist strap, shoulder strap CS101-2 Approvals, features and parameters may vary depending on country legislation and may change without notice Copyright © Convergence Systems Limited, All Rights Reserved 10 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER Installation 4.1 Devices 4.1.1 Reader USER'S MANUAL, VERSION 1.0 The CSL CS101-2 handheld RFID Reader is an EPCglobal Class 1 Gen 2 handheld reader product. Status LED LCD Touch Screen 58 Keys Keyboard Programmable LED Figure 1-2 CS101-2Reader front view Copyright © Convergence Systems Limited, All Rights Reserved 11 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Handle and Battery SD Card Slot Figure 1-3 CS101-2Reader side view Barcode Reader RFID Antenna Inside Figure 1-4 CS101-2Reader plan view Copyright © Convergence Systems Limited, All Rights Reserved 12 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 The reader is connected to the network via Wi Fi. The reader can have a static IP address or can obtain an IP address using DHCP. Normally, a static IP address is more convenient to use because it does not change when the reader reboots, but the user has to make sure there is no collision with other network devices in the network. If the reader is configured to be DHCP, then a separate discovery program that runs on the PC side can help the user find all readers in the same local area network. Wi Fi READER Any Server/PC in the network READER READER OR Static IP Address DHCP Granted IP Address USB PC (Running Active Syn Explore) RS232 PC (Running Active Syn Explore) READER READER Copyright © Convergence Systems Limited, All Rights Reserved 13 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 4.1.2 USER'S MANUAL, VERSION 1.0 Charger Figure 4-1 CS101-2Charger with AC Adaptor Copyright © Convergence Systems Limited, All Rights Reserved 14 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 4.2 USER'S MANUAL, VERSION 1.0 Power Up Sequence The reader can be turned on to run RFID operation in a most simple manner: 1. Insert battery into the handle of the handheld reader with the metal contact inward. Also, make sure it is in the correct direction in terms of front and back. If the front-back direction is reversed, the battery cannot go in – in that case do not force it in, just reverse the battery and it should slide in effortlessly. 2. Press the power button on the upper right corner of the keypad continuously until LCD screen display appears. 3. Wait till WinCE screen shows up. 4. On the WinCE screen, there is an application called CS101. application. Double click it to start the 5. A screen will show up asking for ID and password. For ID, input root, for password, input root. (You can change that later, either setting it to NO ID/PASSWORD mode so that the software will not ask for ID and password, or change to ID and password to whatever name you want) Figure 4-2 User Login Copyright © Convergence Systems Limited, All Rights Reserved 15 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 6. After that, the screen will enter the application selection page and you can start reading and writing tags, inventory of tags, search of tags, etc. Copyright © Convergence Systems Limited, All Rights Reserved 16 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 4.3 Usage Recommendation 4.3.1 Strap: Wrist Strap and Shoulder Strap The wrist strap and shoulder strap should be attached to the handheld reader to allow additional weight support during use. 4.3.2 IO Connection The IO connector consists of one USB connector (mini-USB) and an RS232 Serial connector (Firewire) with dedicated cables that come with the reader. RS232 (Firewire connector) USB (Mini USB connector) Reset Figure 4-3 IO Interface Copyright © Convergence Systems Limited, All Rights Reserved 17 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 4.4 USER'S MANUAL, VERSION 1.0 Verification and Validation The reader comes with standard demo application to read tag and write tag: Figure 4-4 WinCE Screen Double click the application CS101: Figure 4-5 Main Menu page 1 Copyright © Convergence Systems Limited, All Rights Reserved 18 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Figure 4-6 Main Menu page 2 Take the sample tags and put them in front of the handheld reader: Figure 4-7 Tag Inventory Copyright © Convergence Systems Limited, All Rights Reserved 19 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 4.5 USER'S MANUAL, VERSION 1.0 Cautions The reader default IP address is printed on the reader label. To change this IP address, please go to System Configuration page of the demo application to do that: Copyright © Convergence Systems Limited, All Rights Reserved 20 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER Quick Start 5.1 Reader Login • • USER'S MANUAL, VERSION 1.0 Press the power button to power up the reader. To login, input the “User Name” and “Password”, then click the “Login” button. The default administrator login name and password are as follows: Login: root Password: root Figure 5-1 Login Screen Copyright © Convergence Systems Limited, All Rights Reserved 21 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 5.2 USER'S MANUAL, VERSION 1.0 System Configuration System configuration allows user to set basic properties of the overall system, such as identity of the reader (reader name), authentication requirement of the application (ID and password), etc. Figure 5-2 System Configuration Screen Copyright © Convergence Systems Limited, All Rights Reserved 22 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 5.3 USER'S MANUAL, VERSION 1.0 Setup RFID Configuration One can set up operation profile of the RFID reading and writing operation by going to the RFID Configuration screen. Please set above parameters to default operation profile. • Please open page “Link Profile” as shown in Figure 5-3. You can reach the page by clicking “RFID Config -> Link Profile”. • Select correct values and then click “Apply” button. Figure 5-3 Reader Configuration Screen Copyright © Convergence Systems Limited, All Rights Reserved 23 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 5.4 USER'S MANUAL, VERSION 1.0 Read Tags To read tags one can use the Tag Read demo application. Firstly, select “Tag Read” in the main menu, then select “Scan First”, all Tag’s EPC ID within the readable range can be read into the handheld reader. Figure 5-4 Tag Read Operation Copyright © Convergence Systems Limited, All Rights Reserved 24 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.1 USER'S MANUAL, VERSION 1.0 Demo Application Introduction The WinCE screen contains a short cut called CSL 101 Demo App, as shown in Figure 4-1. Please double click that short cut to start the application. Figure 6-1 WinCE Screen Copyright © Convergence Systems Limited, All Rights Reserved 25 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.2 USER'S MANUAL, VERSION 1.0 Splash Screen The splash screen will display, wait until the application start up. Figure 6-2 Splash Screen Copyright © Convergence Systems Limited, All Rights Reserved 26 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.3 USER'S MANUAL, VERSION 1.0 ID and Password Page The ID and Password page, as shown in Figure 4-3, allows controlled access to this application. Figure 6-3 ID and Password Page Figure 6-4 ID and Password Page Copyright © Convergence Systems Limited, All Rights Reserved 27 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4 USER'S MANUAL, VERSION 1.0 Applications Selector Screen The Applications Selector Screen contains buttons that carry out different CS101-2functions. This is a multiple screen interface, where user can navigate to the next screen using the “More…” button. Figure 6-5 Applications Selector Screen 1 Copyright © Convergence Systems Limited, All Rights Reserved 28 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER Figure 6-6 USER'S MANUAL, VERSION 1.0 Applications Selector Screen 2 Copyright © Convergence Systems Limited, All Rights Reserved 29 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.1 USER'S MANUAL, VERSION 1.0 Tag Read To read tags one can use the Tag Read demo application. Firstly, select “Tag Read” in the main menu, then select “Scan First”, all tag’s EPC ID within the readable range will be read into the handheld reader. If one want to read further information from the desirable tag, such as access password or kill tag password, select the tag EPC ID from the EPC list, then press “Read Selected”. If the tag memory banks are locked, access password is required to provide. Figure 6-7 Tag Read Copyright © Convergence Systems Limited, All Rights Reserved 30 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.2 USER'S MANUAL, VERSION 1.0 Tag Write To write tag by using the Tag Write demo application, firstly, select “Tag Write” in the main menu, then select “Scan First” to read all tags IDs into the reader, now, you can read further tag information by selecting any tag EPC ID from the EPC list and then clicking the button of “Read Selected”. Different memory band can be selected to be written by highlighting the memory bank and then keying in a new value, click “Write Selected” to start write tag at once. Figure 6-8 Tag Write Copyright © Convergence Systems Limited, All Rights Reserved 31 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 You can also rewrite any tag’s EPC ID regardless of its original EPC ID. Configure the reader settings by entering the new ID in “EPC Value” and then click “Write Any” button. If your just want to write one tag only, tick the option of “Stop at first tag”, or tick the “Auto-increment” box to write more than one tag with the EPC value is automatically increment. Figure 6-9 Tag Write – Auto-Increment We can check the original ID on the left column and the corresponding written ID on the right column. Figure 6-10 Tag Write – Result Copyright © Convergence Systems Limited, All Rights Reserved 32 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Enter the masking value in the “Tag Group Mask” so that the tag EPC ID will not be written when the prefix of tag EPC ID is same as the masking value. Figure 6-11 Figure 6-12 Tag Write – Masking Tag Write – Result Copyright © Convergence Systems Limited, All Rights Reserved 33 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.3 USER'S MANUAL, VERSION 1.0 Tag Inventory You can read all tags at a time by using the function of tag inventory. Besides the EPC ID, you can also read the ambient temperature and internal temperature of the handheld reader. Figure 6-13 Inventory Main Figure 6-14 Inventory Result Copyright © Convergence Systems Limited, All Rights Reserved 34 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.4 USER'S MANUAL, VERSION 1.0 Tag Ranging The Tag Ranging provides the function for the user to read the tags with RSSI (RF Signal Strength Indicator) in a list, so that RSSI value will keep changing when the handheld move to and from the tags. Figure 6-15 Tag Ranging Main Figure 6-16 Tag Ranging Result Copyright © Convergence Systems Limited, All Rights Reserved 35 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.5 USER'S MANUAL, VERSION 1.0 Tag Search The Tag Search application allows user to zero in onto tag using a Geiger like buzzer pattern. Figure 6-17 Tag Search Figure 6-18 Tag Search Copyright © Convergence Systems Limited, All Rights Reserved 36 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.6 USER'S MANUAL, VERSION 1.0 Tag Commissioning The Tag Commissioning allows the user to associate the Bar Code ID and Tag ID and then save it into a file in CSV format Figure 6-19 Figure 6-20 Tag Commissioning – tag read Tag Commissioning – association Copyright © Convergence Systems Limited, All Rights Reserved 37 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.7 USER'S MANUAL, VERSION 1.0 Tag Authentication The Tag Authentication allows the user to compare the Barcode/EPC ID based on a CSV file saved in the handheld reader with the Barcode/EPC ID that can be read currently. Figure 6-21 Tag Authentication – Main Figure 6-22 Tag Authentication – Result Copyright © Convergence Systems Limited, All Rights Reserved 38 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.8 USER'S MANUAL, VERSION 1.0 Database Management Figure 6-23 Database Management Copyright © Convergence Systems Limited, All Rights Reserved 39 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 6.4.9 USER'S MANUAL, VERSION 1.0 RFID Configuration The RFID Configuration allows the user to set parameters for the Inventory, Tag Memory, Frequency, Link Profile, Antenna and Overheat Protection. Inventory Setup: Session: Session number must be different from reader to reader if they are pointing into the same zone. Est. Tag Population Size: it is the estimated population of tags to be read at a time. Tag Filter Mask: Set the filter to select the tags that you want to read/write in the tag inventory submenu. Figure 6-24 RFID Configuration – Inventory Setup Copyright © Convergence Systems Limited, All Rights Reserved 40 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Tag Memory: Vendors: Select the vendor type to determine the size of the memory bank Tag Bank Sizes: Beside the predefine memory size from different vendors, you can also change the size depending on the tag type. Figure 6-25 RFID Configuration – Tag Memory Copyright © Convergence Systems Limited, All Rights Reserved 41 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Link Profile: Different modulation profile can be selected by the user for different situation Figure 6-26 Figure 6-27 RFID Configuration – Link Profile RFID Configuration – Link Profile Details Copyright © Convergence Systems Limited, All Rights Reserved 42 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Antenna: Depending on the read range and the tag type, you can adjust the antenna power range from 0 to 30dBm Figure 6-28 RFID Configuration – Antenna Copyright © Convergence Systems Limited, All Rights Reserved 43 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 OverHeat Protection: The function in this page lets the user to set the Antenna on/off duty cycle and transceiver temperature to protect the handheld reader to avoid overheat Duty Cycle: The function of duty cycle prevents the user to read/write for a long time. When tag read/write is working over the predefined period, it will stop to do the tag read/write and then start it again for another predefined period. Overheat Protection: Set a temperature value here so that the reader will show an overheat warning when the handheld internal temperature is reached to this value. Figure 6-29 RFID Configuration – OverHeat Protection Copyright © Convergence Systems Limited, All Rights Reserved 44 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Temperature: when the handheld reader temperature reaches the predefine temperature value on this page, it will display the warning message and stop tag read/write function. Figure 6-30 RFID Configuration – Temperature Copyright © Convergence Systems Limited, All Rights Reserved 45 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 6.4.10 Scan Barcode The Scan Barcode allows the user to scan barcode and then save it into a file in CSV format Figure 6-31 Figure 6-32 Scan Barcode - Main Scan Barcode - Scanning Copyright © Convergence Systems Limited, All Rights Reserved 46 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 6.4.11 Tag Security Tag Security: You can use the tag security to set the protection feature of the tag. Firstly, click “Choose another Tag” to scan the available tag that is within the coverage of the handheld reader, then select the tag from the tag list. The handheld reader can let the user to set the protection of kill password, access password, EPC ID, TID and user bank depending on the tag type. Figure 6-33 Tag Permission Copyright © Convergence Systems Limited, All Rights Reserved 47 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Allow: allow read/write the memory bank Always Allow: Tag can never be locked Password Protect: need password when access the tag memory bank Always Deny: tag cannot be read even correct password is provided No Change: keep previous status Figure 6-34 Tag Permission Copyright © Convergence Systems Limited, All Rights Reserved 48 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 6.4.12 System Configuration The System Configuration contains the submenu for Identity the reader, user login in/out, beep sound for different user function. Identity: Set the unique name/ID for the reader Figure 6-35 System Configuration - Identity Copyright © Convergence Systems Limited, All Rights Reserved 49 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 User: Set login name and password can restrict the unauthorized user to run the demo program in this handheld reader. Figure 6-36 System Configuration - User Copyright © Convergence Systems Limited, All Rights Reserved 50 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Sounds: Different sound melody can assign to different usage to the handheld reader. Figure 6-37 System Configuration - Sounds Copyright © Convergence Systems Limited, All Rights Reserved 51 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Diagnostics: The Diagnostics submenu allows the user to check the version of current RFID driver and MAC, user can also set the trace log for debugging. Figure 6-38 System Configuration - Diagnostics Copyright © Convergence Systems Limited, All Rights Reserved 52 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Time Synchronization: This page allows you to set the NTP server so that the system time can synchronize with NTP server when you press the “Sync. Now” button. Figure 6-39 System Configuration – Time Synchronization Copyright © Convergence Systems Limited, All Rights Reserved 53 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 6.4.13 Factory Defaults Factory Defaults: User can use the factory defaults to reset the RFID Config, System Config and data Folders into the default settings. Figure 6-40 Factory Defaults Copyright © Convergence Systems Limited, All Rights Reserved 54 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Software Development Kit The CSL CS101-2handheld reader software development kit provides the following components for quick and easy application development: 1. 2. 3. 4. 5. 6. 7. Software specifications Block diagrams Application Programming Interface (API) definitions Application scenarios with program source codes Unit test plan and results Build environment Debug methods Copyright © Convergence Systems Limited, All Rights Reserved 55 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.1 USER'S MANUAL, VERSION 1.0 Software Specifications The overall software architecture consists of CS101-2 RFID Libraries on the WinCE OS inside the handheld reader, CS101-2 Demonstration Application (which consists of a whole series of applications, such as tag read, tag write, tag inventory, tag search, tag authentication, tag commissioning, barcode scanning, RFID configuration, system configuration, database file manipulation, network database file transfer, etc.), CS101-2 Keep Alive Monitor, all of the above inside the handheld device; and then also CS101-2 Server Side Database Administration Application, which resides on the WinXP server side. 7.1.1 CS101-2 RFID Libraries The CS101-2 RFID Libraries consists of 3 parts: 1. 2. 3. RfidSp PosSp ClsSys Util These calls are designed to be called by C# applications with the PInvoke (Platform Invoke) method. 7.1.2 CS101-2 Demonstration Application The CS101-2 Demonstration Application is a comprehensive C# demonstration program that demonstrates how to write an application on the CS101-2platform. It offers all possible RFID related and barcode related functionalities. The functions include: 1. 2. 3. 4. 5. 6. 7. 8. Tag Read Tag Write Tag Inventory Tag Ranging Tag Search Tag Commissioning Tag Authentication Database Management Copyright © Convergence Systems Limited, All Rights Reserved 56 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 9. 10. 11. 12. 13. 7.1.3 USER'S MANUAL, VERSION 1.0 RFID Configuration Scan Barcode Tag Security System Configuration Factory Defaults CS101-2 Keep Alive Monitor CS101-2 Keep Alive Monitor is an independent application that is turned on during WinCE boot up to monitor health situations, including: 1. 2. 3. 4. 5. 6. 7. 7.1.4 Battery Monitoring and Alert Memory (RAM) Monitoring and Alert Disk Space (Internal Flash) Monitoring and Alert Disk Space (SD Card) Monitoring and Alert SD Card Physical Action Monitoring and Alert (insertion and ejection) Network Condition Monitoring and Alert Automatic Files Backup CS101-2 Server Side Application The CS101-2 Server Side Application handles collection of tag data and converting them to typical formats. Copyright © Convergence Systems Limited, All Rights Reserved 57 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.2 USER'S MANUAL, VERSION 1.0 Block Diagrams The software architecture is illustrated by the following block diagram: Interactive User Input WinXP WinCE 5.0 on CS101-2 Handheld Reader Datalog Files soap http protocol C# Ref App Web Service with post & push over WiFi C# Ref App Web Service Proxy Main Program Rfid User Interface Notification Monitor Db Access Db Manager Sqlce Db Replicator Database Replication Sqlce Battery Low Indication Web Server RfidSp Access Battery Sensing Datalogger LED & Buzzer PInvoke Function Call & Message Response Datalogger Mfc RfidSp dll Intel Rfid Lib LED Buzzer LED Buzzer Lib CSL RFID Module Copyright © Convergence Systems Limited, All Rights Reserved 58 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 On the WinCE machine: The PDA is connected to the intranet through the WiFi Access Point. The PDA has a DHCP IP-address. It has a local SqlCe database storing all the known information (e.g. Known Inventory, TagGroup to Lock). It should never goto the suspend state. A) The Db Replicator is a standalone program that replicates the database data between the WinCE & WinXP machine. B)C# RefApp on WinCE is a reference application. It provides 2 user interfaces, 1 database interface, 3 sub-system interfaces: 1) The Web Service: This provides the network communication services to the Web Service on the WinXP. 2) The Rfid User Interface: This provides the GUI (Window-Forms) on the LCD 3) The Db Access: This connects to the local SqlCe Database (Microsoft SqlCe3.1). It has access to the data using sql commands. 4) The RfidSp Access: This setup the RfidSp.dll. This controls the Rfid Reader & get back raw data from the reader &/ the post-processed data from the Rfid Middleware. 5) The LED & Buzzer Control: This controls the 7-color LED & the buzzer (volume & frequency). 6) The Notification Monitor: This alert the main program that the “battery-low” notification is signaled, & the main program should alert the user to exit the Rfid application immediately (in order to terminate the connections gracefully & has the latest data stored locally). 7) The Datalogger: This, when enabled, writes the datalog text to the logfiles. 8) The Main Program: This is the central unit of the application. It controls the calling sequence to all the modules described above. On the WinXP machine: The PC has a fixed IP & it is in the intranet. C) C# RefApp on WinXP provides 2 features, namely the web services & the database management: 1) The Web Services: This provides Soap (xml-text & binary) data over the HTTP GET, HTTP POST, or SOAP Copyright © Convergence Systems Limited, All Rights Reserved 59 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 protocol to the client upon request or web-push. 2) The Database Manager: This allows the user to edit/import/export/review the Master Database, & setup the Sql Data (by stored procedures) for each WinCE Rfid Reader to get. To Probe Further: 1) If there is only 1 WinCE & WinXP machine, the database file (\Program Files\Rfid\Db.sdf) can also be copied between WinCE & WinXP through ActiveSync or ftp. In general, the database Replication between the SqlCe server on WinCE & WinXP is done by the RDASync ( the Remote Data Access Synchronization) technique from Microsoft. Synchronization between Sql2005 & SqlCe on WinXP is not included in the reference solution. 2) The required 802.11 a/b/g WiFi Access Point provides intranet connection & assign DHCP IP address for the WinCE devices. WEP/ WPA/WPA2 Encryption is recommended. 3) Encryption (using Microsoft Windows CE Enhanced Cryptographic Provider) can be added to the C# programs for the WinXP-to-WinCE Soap data stream, if the additional loading is acceptable. Copyright © Convergence Systems Limited, All Rights Reserved 60 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 WinXP Pro, .NET2.0 msmq service WinCE Db Client Msmqdb lib Main App RxThd Atomic msg C# App Msmq Msg Handling Client Mgr DlgSetup_M Main App Msmqdb Sql 2005 lib Express RxThd Dataset Db access cfg Msmqdb.xml WinXP Admin Datagrid View DlgSetup_M cfg Msmqdb.xml Copyright © Convergence Systems Limited, All Rights Reserved 61 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 WinXP SP2 Existing WinCE5.0 Pro (.xsd) Backend System Data Acquisition App GUI for Sqlce Db export Session based data update Sqlce Db (=sdf file) Db File (.sdf) Periodically Backup Card Reader ActiveSync http1.1 client Data 2GB SDCard Card Reader usb1.1 ActiveSyn Wireless Router IIS web Update Data to Server at the End Of Day Copyright © Convergence Systems Limited, All Rights Reserved 62 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.3 Application Programming USER'S MANUAL, VERSION 1.0 Interface (API) Definitions Interface Definition for CSL C# libraries RfidSp: Overview: RfidSp is a C# class in the that provide a C# managed interface of the Rfid Reader Threads. RfidSp dll is designed to be used by our reference applications, which provides a wrapper class for function calls & a Message Window class to receive messages. C# namespace: ClslibRfidSp . Dependencies: Program Files\W_RfidSp.dll; Type Definitions: HRESULT_RFID_STATUS Prototype: using HRESULT_RFID_STATUS = ClslibRfidSp.HRESULT_RFID; //= System.Int32; Description: This enumerates the status in the response messages. RFID_RADIO_HANDLE Prototype: using RFID_RADIO_HANDLE = System.UInt32; Description: This is the handle to the RFID radio object. A zero or negative is an invalid value. e.g. A valid value is 0x00010000. Constants: ( member variables in class RfidSp ) RFID_PACKET_18K6C_TAG_ACCESS__DATA_MAXSIZ Prototype: public const int RFID_PACKET_18K6C_TAG_ACCESS__DATA_MAXSIZ = 32;. Description: This is the maximum number of UINT32 in tag_access a message defined in the Rfid library. Copyright © Convergence Systems Limited, All Rights Reserved 63 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_PACKET_18K6C_INVENTORY__DATA_MAXSIZ Prototype: public const int RFID_PACKET_18K6C_INVENTORY__DATA_MAXSIZ = 24; Description: This is the maximum number of UINT32 in a tag_inventory message defined in the Rfid library. WM_USER Prototype: public const int WM_USER = 0x0400; Description: This is the starting index for user-defined message on WinCE. RFID_INVALID_RADIO_HANDLE Prototype: public const RFID_RADIO_HANDLE RFID_INVALID_RADIO_HANDLE = ((RFID_RADIO_HANDLE)0);. Description: This is the invalid radio handle. SELECTCRITERIA_COUNT Prototype: public const int SELECTCRITERIA_COUNT Description: This is the number of selectcriteria to set. = 4;. POSTMATCHCRITERIA_COUNT Prototype: public const int POSTMATCHCRITERIA_COUNT = 4; Description: This is the number of postmatchcriteria to set. RFID_18K6C_SELECT_MASK_BYTE_LEN Prototype: public const int RFID_18K6C_SELECT_MASK_BYTE_LEN = 32; Description: This is the size(in byte) of the select mask for partitioning a tag population. RFID_18K6C_SINGULATION_MASK_BYTE_LEN Copyright © Convergence Systems Limited, All Rights Reserved 64 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public const int RFID_18K6C_SINGULATION_MASK_BYTE_LEN Description: This is the size(in byte) of the single post-singulation match mask. = 62; USHORTSEQNUMINVALID Prototype: public const int USHORTSEQNUMINVALID = 0xffff; Description: This is the value of the invalid RfidMw sequence number. Enumerations: HRESULT_RFID Prototype: public enum HRESULT_RFID : uint { S_OK = 0x00000000, // Success E_ABORT = 0x80004004, // Operation aborted E_ACCESSDENIED = 0x80070005, // General access denied error E_FAIL = 0x80004005, // Unspecified failure E_HANDLE = 0x80070006, // Handle that is not valid E_INVALIDARG = 0x80070057, // One or more arguments are not valid E_NOINTERFACE = 0x80004002, // No such interface supported E_NOTIMPL = 0x80004001, // Not implemented E_OUTOFMEMORY = 0x8007000E, // Failed to allocate necessary memory E_POINTER = 0x80004003, // Pointer that is not valid E_UNEXPECTED = 0x8000FFFF, // Unexpected failure S_RFID_STATUS_OK = 0x00040000, // RFID Success E_RFID_ERROR_ALREADY_OPEN = 0x8004D8F1, // Attempted to open a radio that is already open E_RFID_ERROR_BUFFER_TOO_SMALL = 0x8004d8f2, //Buffer supplied is too small E_RFID_ERROR_FAILURE = 0x8004d8f3, //General failure E_RFID_ERROR_DRIVER_LOAD = 0x8004d8f4, //Failed to load radio bus driver E_RFID_ERROR_DRIVER_MISMATCH = 0x8004d8f5, //Library cannot use version of radio bus driver E_RFID_ERROR_EMULATION_MODE = 0x8004d8f6, //Operation cannot be performed in emulation mode E_RFID_ERROR_INVALID_ANTENNA = 0x8004d8f7, //Antenna number is invalid E_RFID_ERROR_INVALID_HANDLE = 0x8004d8f8, //Radio handle provided is invalid E_RFID_ERROR_INVALID_PARAMETER = 0x8004d8f9, //One of the parameters is invalid E_RFID_ERROR_NO_SUCH_RADIO = 0x8004d8fa, //Attempted to open a non-existent radio Copyright © Convergence Systems Limited, All Rights Reserved 65 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 E_RFID_ERROR_NOT_INITIALIZED = 0x8004d8fb, //Library has not been successfully initialized E_RFID_ERROR_NOT_SUPPORTED = 0x8004d8fc, //Function not supported E_RFID_ERROR_OPERATION_CANCELLED = 0x8004d8fd, //Operation was cancelled by call to cancel operation, close radio, or shut down the library E_RFID_ERROR_OUT_OF_MEMORY = 0x8004d8fe, //Library encountered an error allocating memory E_RFID_ERROR_RADIO_BUSY = 0x8004d8ff, //The operation cannot be performed, radio is busy E_RFID_ERROR_RADIO_FAILURE = 0x8004d900, //The underlying radio module encountered an error E_RFID_ERROR_RADIO_NOT_PRESENT = 0x8004d901, //The radio has been detached from the system E_RFID_ERROR_CURRENTLY_NOT_ALLOWED = 0x8004d902, //library function is not allowed at this time. E_RFID_ERROR_RADIO_NOT_RESPONDING = 0x8004d903 //The radio module's MAC firmware is not responding to requests. }; . Description: This enumerates the Success / Error status. RFID_PACKET_TYPE Prototype: public enum RFID_PACKET_TYPE:uint{ RFID_PACKET_TYPE_COMMAND_BEGIN = 0x0000, RFID_PACKET_TYPE_COMMAND_END , RFID_PACKET_TYPE_ANTENNA_CYCLE_BEGIN RFID_PACKET_TYPE_ANTENNA_BEGIN RFID_PACKET_TYPE_18K6C_INVENTORY_ROUND_BEGIN, RFID_PACKET_TYPE_18K6C_INVENTORY, RFID_PACKET_TYPE_18K6C_TAG_ACCESS, RFID_PACKET_TYPE_ANTENNA_CYCLE_END, RFID_PACKET_TYPE_ANTENNA_END, RFID_PACKET_TYPE_18K6C_INVENTORY_ROUND_END, RFID_PACKET_TYPE_INVENTORY_CYCLE_BEGIN, RFID_PACKET_TYPE_INVENTORY_CYCLE_END, RFID_PACKET_TYPE_CARRIER_INFO, RFID_PACKET_TYPE_NONCRITICAL_FAULT = 0x2000 }; Description: These are message types for the Rfid Packets. RFID_MSGID Copyright © Convergence Systems Limited, All Rights Reserved 66 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public enum RFID_MSGID : uint { RFID_REQUEST_TYPE_MSGID_Startup = RfidSp.WM_USER +0x0040, //=RFID_REQUEST_TYPE_MSGID_START, RFID_REQUEST_TYPE_MSGID_Shutdown, RFID_REQUEST_TYPE_MSGID_RetrieveAttachedRadiosList, RFID_REQUEST_TYPE_MSGID_RadioOpen, RFID_REQUEST_TYPE_MSGID_RadioClose, RFID_REQUEST_TYPE_MSGID_RadioSetConfigurationParameter, RFID_REQUEST_TYPE_MSGID_RadioGetConfigurationParameter, RFID_REQUEST_TYPE_MSGID_RadioSetOperationMode, RFID_REQUEST_TYPE_MSGID_RadioGetOperationMode, RFID_REQUEST_TYPE_MSGID_RadioSetPowerState, RFID_REQUEST_TYPE_MSGID_RadioGetPowerState, RFID_REQUEST_TYPE_MSGID_RadioSetCurrentLinkProfile, RFID_REQUEST_TYPE_MSGID_RadioGetCurrentLinkProfile, RFID_REQUEST_TYPE_MSGID_RadioGetLinkProfile, RFID_REQUEST_TYPE_MSGID_RadioWriteLinkProfileRegister, RFID_REQUEST_TYPE_MSGID_RadioReadLinkProfileRegister, RFID_REQUEST_TYPE_MSGID_AntennaPortGetStatus, RFID_REQUEST_TYPE_MSGID_AntennaPortSetState, RFID_REQUEST_TYPE_MSGID_AntennaPortSetConfiguration, RFID_REQUEST_TYPE_MSGID_AntennaPortGetConfiguration, RFID_REQUEST_TYPE_MSGID_18K6CSetSelectCriteria, RFID_REQUEST_TYPE_MSGID_18K6CGetSelectCriteria, RFID_REQUEST_TYPE_MSGID_18K6CSetPostMatchCriteria, RFID_REQUEST_TYPE_MSGID_18K6CGetPostMatchCriteria, RFID_REQUEST_TYPE_MSGID_18K6CSetQueryTagGroup, RFID_REQUEST_TYPE_MSGID_18K6CGetQueryTagGroup, RFID_REQUEST_TYPE_MSGID_18K6CSetCurrentSingulationAlgorithm, RFID_REQUEST_TYPE_MSGID_18K6CGetCurrentSingulationAlgorithm, RFID_REQUEST_TYPE_MSGID_18K6CSetQueryParameters, RFID_REQUEST_TYPE_MSGID_18K6CGetQueryParameters, RFID_REQUEST_TYPE_MSGID_18K6CTagInventory, RFID_REQUEST_TYPE_MSGID_18K6CTagRead, RFID_REQUEST_TYPE_MSGID_18K6CTagWrite, RFID_REQUEST_TYPE_MSGID_18K6CTagKill, RFID_REQUEST_TYPE_MSGID_18K6CTagLock, Copyright © Convergence Systems Limited, All Rights Reserved 67 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_REQUEST_TYPE_MSGID_RadioCancelOperation, RFID_REQUEST_TYPE_MSGID_RadioAbortOperation, RFID_REQUEST_TYPE_MSGID_RadioSetResponseDataMode, RFID_REQUEST_TYPE_MSGID_RadioGetResponseDataMode, RFID_REQUEST_TYPE_MSGID_MacUpdateFirmware, RFID_REQUEST_TYPE_MSGID_MacGetVersion, RFID_REQUEST_TYPE_MSGID_MacReadOemData, RFID_REQUEST_TYPE_MSGID_MacWriteOemData, RFID_REQUEST_TYPE_MSGID_MacReset, RFID_REQUEST_TYPE_MSGID_MacClearError, RFID_REQUEST_TYPE_MSGID_MacBypassWriteRegister, RFID_REQUEST_TYPE_MSGID_MacBypassReadRegister, RFID_REQUEST_TYPE_MSGID_MacSetRegion, RFID_REQUEST_TYPE_MSGID_MacGetRegion, RFID_REQUEST_TYPE_MSGID_RadioSetGpioPinsConfiguration, RFID_REQUEST_TYPE_MSGID_RadioGetGpioPinsConfiguration, RFID_REQUEST_TYPE_MSGID_RadioReadGpioPins, RFID_REQUEST_TYPE_MSGID_RadioWriteGpioPins, RFID_REQUEST_TYPE_MSGID_END = RFID_REQUEST_TYPE_MSGID_RadioWriteGpioPins, //////// 43 Request ACK MsgId RFID_REQEND_TYPE_MSGID_START = RFID_REQUEST_TYPE_MSGID_END + 0x01, RFID_REQEND_TYPE_MSGID_Startup = RFID_REQEND_TYPE_MSGID_START, RFID_REQEND_TYPE_MSGID_Shutdown, RFID_REQEND_TYPE_MSGID_RetrieveAttachedRadiosList, RFID_REQEND_TYPE_MSGID_RadioOpen, RFID_REQEND_TYPE_MSGID_RadioClose, RFID_REQEND_TYPE_MSGID_RadioSetConfigurationParameter, RFID_REQEND_TYPE_MSGID_RadioGetConfigurationParameter, RFID_REQEND_TYPE_MSGID_RadioSetOperationMode, RFID_REQEND_TYPE_MSGID_RadioGetOperationMode, RFID_REQEND_TYPE_MSGID_RadioSetPowerState, RFID_REQEND_TYPE_MSGID_RadioGetPowerState, RFID_REQEND_TYPE_MSGID_RadioSetCurrentLinkProfile, RFID_REQEND_TYPE_MSGID_RadioGetCurrentLinkProfile, RFID_REQEND_TYPE_MSGID_RadioGetLinkProfile, RFID_REQEND_TYPE_MSGID_RadioWriteLinkProfileRegister, RFID_REQEND_TYPE_MSGID_RadioReadLinkProfileRegister, RFID_REQEND_TYPE_MSGID_AntennaPortGetStatus, Copyright © Convergence Systems Limited, All Rights Reserved 68 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_REQEND_TYPE_MSGID_AntennaPortSetState, RFID_REQEND_TYPE_MSGID_AntennaPortSetConfiguration, RFID_REQEND_TYPE_MSGID_AntennaPortGetConfiguration, RFID_REQEND_TYPE_MSGID_18K6CSetQueryTagGroup, RFID_REQEND_TYPE_MSGID_18K6CGetQueryTagGroup, RFID_REQEND_TYPE_MSGID_18K6CSetCurrentSingulationAlgorithm, RFID_REQEND_TYPE_MSGID_18K6CGetCurrentSingulationAlgorithm, RFID_REQEND_TYPE_MSGID_18K6CSetSelectCriteria, RFID_REQEND_TYPE_MSGID_18K6CGetSelectCriteria, RFID_REQEND_TYPE_MSGID_18K6CSetPostMatchCriteria, RFID_REQEND_TYPE_MSGID_18K6CGetPostMatchCriteria, RFID_REQEND_TYPE_MSGID_18K6CSetQueryParameters, RFID_REQEND_TYPE_MSGID_18K6CGetQueryParameters, RFID_REQEND_TYPE_MSGID_18K6CTagInventory, RFID_REQEND_TYPE_MSGID_18K6CTagRead, RFID_REQEND_TYPE_MSGID_18K6CTagWrite, RFID_REQEND_TYPE_MSGID_18K6CTagKill, RFID_REQEND_TYPE_MSGID_18K6CTagLock, RFID_REQEND_TYPE_MSGID_RadioCancelOperation, RFID_REQEND_TYPE_MSGID_RadioAbortOperation, RFID_REQEND_TYPE_MSGID_RadioSetResponseDataMode, RFID_REQEND_TYPE_MSGID_RadioGetResponseDataMode, RFID_REQEND_TYPE_MSGID_MacUpdateFirmware, RFID_REQEND_TYPE_MSGID_MacGetVersion, RFID_REQEND_TYPE_MSGID_MacReadOemData, RFID_REQEND_TYPE_MSGID_MacWriteOemData, RFID_REQEND_TYPE_MSGID_MacReset, RFID_REQEND_TYPE_MSGID_MacClearError, RFID_REQEND_TYPE_MSGID_MacBypassWriteRegister, RFID_REQEND_TYPE_MSGID_MacBypassReadRegister, RFID_REQEND_TYPE_MSGID_MacSetRegion, RFID_REQEND_TYPE_MSGID_MacGetRegion, RFID_REQEND_TYPE_MSGID_RadioSetGpioPinsConfiguration, RFID_REQEND_TYPE_MSGID_RadioGetGpioPinsConfiguration, RFID_REQEND_TYPE_MSGID_RadioReadGpioPins, RFID_REQEND_TYPE_MSGID_RadioWriteGpioPins, RFID_REQEND_TYPE_MSGID_END = RFID_REQEND_TYPE_MSGID_RadioWriteGpioPins, //////// Packets Copyright © Convergence Systems Limited, All Rights Reserved 69 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_PACKET_TYPE_MSGID_START = RFID_REQEND_TYPE_MSGID_END + 0x01, /// 12 Pkt MsgId. 0x0000+ MSGID_START RFID_PACKET_TYPE_MSGID_COMMAND_BEGIN = RFID_PACKET_TYPE.RFID_PACKET_TYPE_COMMAND_BEGIN + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_COMMAND_END = RFID_PACKET_TYPE.RFID_PACKET_TYPE_COMMAND_END + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_ANTENNA_CYCLE_BEGIN = RFID_PACKET_TYPE.RFID_PACKET_TYPE_ANTENNA_CYCLE_BEGIN + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_ANTENNA_BEGIN = RFID_PACKET_TYPE.RFID_PACKET_TYPE_ANTENNA_BEGIN + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_18K6C_INVENTORY_ROUND_BEGIN = RFID_PACKET_TYPE.RFID_PACKET_TYPE_18K6C_INVENTORY_ROUND_BEGIN + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_18K6C_INVENTORY = RFID_PACKET_TYPE.RFID_PACKET_TYPE_18K6C_INVENTORY + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_18K6C_TAG_ACCESS = RFID_PACKET_TYPE.RFID_PACKET_TYPE_18K6C_TAG_ACCESS + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_ANTENNA_CYCLE_END = RFID_PACKET_TYPE.RFID_PACKET_TYPE_ANTENNA_CYCLE_END +RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_ANTENNA_END = RFID_PACKET_TYPE.RFID_PACKET_TYPE_ANTENNA_END RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_18K6C_INVENTORY_ROUND_END = RFID_PACKET_TYPE.RFID_PACKET_TYPE_18K6C_INVENTORY_ROUND_END + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_INVENTORY_CYCLE_BEGIN = RFID_PACKET_TYPE.RFID_PACKET_TYPE_INVENTORY_CYCLE_BEGIN + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_INVENTORY_CYCLE_END = RFID_PACKET_TYPE.RFID_PACKET_TYPE_INVENTORY_CYCLE_END + RFID_PACKET_TYPE_MSGID_START, Copyright © Convergence Systems Limited, All Rights Reserved 70 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_PACKET_TYPE_MSGID_CARRIER_INFO = RFID_PACKET_TYPE.RFID_PACKET_TYPE_CARRIER_INFO RFID_PACKET_TYPE_MSGID_START, // non for the diagnostics pkt., for the status pkt. 0x2000+ MSGID_START RFID_PACKET_TYPE_MSGID_NONCRITICAL_FAULT = RFID_PACKET_TYPE.RFID_PACKET_TYPE_NONCRITICAL_FAULT + RFID_PACKET_TYPE_MSGID_START, RFID_PACKET_TYPE_MSGID_END = RFID_PACKET_TYPE_MSGID_NONCRITICAL_FAULT, RFIDMW_REQUEST_TYPE_MSGID_START= RFID_PACKET_TYPE_MSGID_END + 0x01, RFIDMW_REQUEST_TYPE_MSGID_TagInv_SetAllTaglist = RFIDMW_REQUEST_TYPE_MSGID_START, RFIDMW_REQUEST_TYPE_MSGID_TagInv_AddATag, RFIDMW_REQUEST_TYPE_MSGID_TagInv_FindATag, RFIDMW_REQUEST_TYPE_MSGID_TagInv_ClearAllTaglist, RFIDMW_REQUEST_TYPE_MSGID_TagInv_UpdateAllTaglistToFile, RFIDMW_REQUEST_TYPE_MSGID_TagInv_GetUpdateTaglist, RFIDMW_REQUEST_TYPE_MSGID_TagInv_GetAllTaglist, RFIDMW_REQUEST_TYPE_MSGID_END = RFIDMW_REQUEST_TYPE_MSGID_TagInv_GetAllTaglist, RFIDMW_REQEND_TYPE_MSGID_START = RFIDMW_REQUEST_TYPE_MSGID_END + 0x01, RFIDMW_REQEND_TYPE_MSGID_TagInv_SetAllTaglist = RFIDMW_REQEND_TYPE_MSGID_START, RFIDMW_REQEND_TYPE_MSGID_TagInv_AddATag, RFIDMW_REQEND_TYPE_MSGID_TagInv_FindATag, RFIDMW_REQEND_TYPE_MSGID_TagInv_ClearAllTaglist, RFIDMW_REQEND_TYPE_MSGID_TagInv_UpdateAllTaglistToFile , RFIDMW_REQEND_TYPE_MSGID_TagInv_GetUpdateTaglist, RFIDMW_REQEND_TYPE_MSGID_TagInv_GetAllTaglist, RFIDMW_REQEND_TYPE_MSGID_END = RFIDMW_REQEND_TYPE_MSGID_TagInv_GetAllTaglist }; Description: These are message types for the Rfid request, response & packet messages. N.B. Rfid request message is not required by the application, request are done by calling the corresponding functions. Copyright © Convergence Systems Limited, All Rights Reserved 71 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_RADIO_OPERATION_MODE Prototype: public enum RFID_RADIO_OPERATION_MODE : uint { RFID_RADIO_OPERATION_MODE_CONTINUOUS, RFID_RADIO_OPERATION_MODE_NONCONTINUOUS }; Description: This is the operation mode of the radio. RFID_RADIO_POWER_STATE Prototype: public enum RFID_RADIO_POWER_STATE : uint { RFID_RADIO_POWER_STATE_FULL, RFID_RADIO_POWER_STATE_STANDBY }; Description: This is the power state of the radio. RFID_ANTENNA_PORT_STATE Prototype: public enum RFID_ANTENNA_PORT_STATE : uint { RFID_ANTENNA_PORT_STATE_DISABLED, RFID_ANTENNA_PORT_STATE_ENABLED }; Description: This gives the state of a logical antenna port. RFID_18K6C_SELECTED Prototype: public enum RFID_18K6C_SELECTED : uint { RFID_18K6C_SELECTED_ALL = 0, RFID_18K6C_SELECTED_OFF = 2, RFID_18K6C_SELECTED_ON = 3 }; Description: This defines the states for SL flag of a tag. Copyright © Convergence Systems Limited, All Rights Reserved 72 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6C_INVENTORY_SESSION Prototype: public enum RFID_18K6C_INVENTORY_SESSION : uint { RFID_18K6C_INVENTORY_SESSION_S0 = 0, RFID_18K6C_INVENTORY_SESSION_S1 = 1, RFID_18K6C_INVENTORY_SESSION_S2 = 2, RFID_18K6C_INVENTORY_SESSION_S3 = 3 }; Description: This defines the valid states for a tag's ISO 18000-6C inventory flags. RFID_18K6C_INVENTORY_SESSION_TARGET Prototype: public enum RFID_18K6C_INVENTORY_SESSION_TARGET : uint { RFID_18K6C_INVENTORY_SESSION_TARGET_A = 0, RFID_18K6C_INVENTORY_SESSION_TARGET_B = 1 }; Description: This defines the valid states for a tag's ISO 18000-6C inventory flags. RFID_18K6C_MODULATION_TYPE Prototype: public enum RFID_18K6C_MODULATION_TYPE : uint { RFID_18K6C_MODULATION_TYPE_DSB_ASK, RFID_18K6C_MODULATION_TYPE_SSB_ASK, RFID_18K6C_MODULATION_TYPE_PR_ASK }; Description: This defines ISO 18000-6C modulation types. RFID_18K6C_DATA_0_1_DIFFERENCE Prototype: public enum RFID_18K6C_DATA_0_1_DIFFERENCE : uint { RFID_18K6C_DATA_0_1_DIFFERENCE_HALF_TARI, RFID_18K6C_DATA_0_1_DIFFERENCE_ONE_TARI }; Description: This is the Tari between data zero. Copyright © Convergence Systems Limited, All Rights Reserved 73 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6C_DIVIDE_RATIO Prototype: public enum RFID_18K6C_DIVIDE_RATIO : uint { RFID_18K6C_DIVIDE_RATIO_8, RFID_18K6C_DIVIDE_RATIO_64DIV3 }; Description: This is the ISO 18000-6C divide ratios. RFID_18K6C_MILLER_NUMBER Prototype: public enum RFID_18K6C_MILLER_NUMBER : uint { RFID_18K6C_MILLER_NUMBER_FM0, RFID_18K6C_MILLER_NUMBER_2, RFID_18K6C_MILLER_NUMBER_4, RFID_18K6C_MILLER_NUMBER_8 }; Description: This is the ISO 18000-6C Miller encoding sub-carrier. RFID_RADIO_PROTOCOL Prototype: public enum RFID_RADIO_PROTOCOL : uint { RFID_RADIO_PROTOCOL_ISO18K6C }; Description: The is the tag protocol. RFID_18K6C_MEMORY_BANK Prototype: public enum RFID_18K6C_MEMORY_BANK : uint { RFID_18K6C_MEMORY_BANK_RESERVED, RFID_18K6C_MEMORY_BANK_EPC, RFID_18K6C_MEMORY_BANK_TID, RFID_18K6C_MEMORY_BANK_USER }; Description: Copyright © Convergence Systems Limited, All Rights Reserved 74 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 This is the RFID tag's memory bank. RFID_18K6C_TARGET Prototype: public enum RFID_18K6C_TARGET : uint { RFID_18K6C_TARGET_INVENTORY_S0, RFID_18K6C_TARGET_INVENTORY_S1, RFID_18K6C_TARGET_INVENTORY_S2, RFID_18K6C_TARGET_INVENTORY_S3, RFID_18K6C_TARGET_SELECTED }; Description: This defines the tag's flags that will be modified. RFID_18K6C_ACTION Prototype: public enum RFID_18K6C_ACTION : uint { RFID_18K6C_ACTION_ASLINVA_DSLINVB, RFID_18K6C_ACTION_ASLINVA_NOTHING, RFID_18K6C_ACTION_NOTHING_DSLINVB, RFID_18K6C_ACTION_NSLINVS_NOTHING, RFID_18K6C_ACTION_DSLINVB_ASLINVA, RFID_18K6C_ACTION_DSLINVB_NOTHING, RFID_18K6C_ACTION_NOTHING_ASLINVA, RFID_18K6C_ACTION_NOTHING_NSLINVS }; Description: This is the action performed upon the tag populations (i.e, matching and non-matching) during the select operation. The constants are named RFID_18K6C_ACTION_xxx_yyy where "xxx" is the action to be applied to matching tags and "yyy" is the action to be applied to non-matching tags. Actions are: ASL - Assert SL INVA - Set inventoried flag to A DSL - Deassert SL INVB - Set inventoried flag to B NSL - Negate SL INVS - Switch inventoried flag (A -> B, B -> A) Copyright © Convergence Systems Limited, All Rights Reserved 75 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 NOTHING - Do nothing. RFID_18K6C_SELECTED Prototype: public enum RFID_18K6C_SELECTED: uint { RFID_18K6C_SELECTED_ALL = 0, RFID_18K6C_SELECTED_OFF = 2, RFID_18K6C_SELECTED_ON = 3 }; Description: This is the states for a tag's SL flag. RFID_18K6C_INVENTORY_SESSION Prototype: public enum RFID_18K6C_INVENTORY_SESSION : uint { RFID_18K6C_INVENTORY_SESSION_S0, RFID_18K6C_INVENTORY_SESSION_S1, RFID_18K6C_INVENTORY_SESSION_S2, RFID_18K6C_INVENTORY_SESSION_S3 }; Description: This is the ISO 18000-6C inventory session flags that are available. RFID_18K6C_INVENTORY_SESSION Prototype: public enum RFID_18K6C_INVENTORY_SESSION_TARGET : uint { RFID_18K6C_INVENTORY_SESSION_TARGET_A, RFID_18K6C_INVENTORY_SESSION_TARGET_B }; Description: This is the valid states for a tag's ISO 18000-6C inventory flags. RFID_18K6C_SINGULATION_ALGORITHM Prototype: public enum RFID_18K6C_SINGULATION_ALGORITHM : uint{ RFID_18K6C_SINGULATION_ALGORITHM_FIXEDQ = 0, RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ = 1, RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_ADJUST = 2, Copyright © Convergence Systems Limited, All Rights Reserved 76 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_THRESH =3 }; Description: This is the valid singulation algorithms. RFID_18K6C_WRITE_TYPE Prototype: public enum RFID_18K6C_WRITE_TYPE: uint { RFID_18K6C_WRITE_TYPE_SEQUENTIAL, RFID_18K6C_WRITE_TYPE_RANDOM }; Description: This is the type of tag write operation to be performed.. RFID_18K6C_TAG_PWD_PERM Prototype: public enum RFID_18K6C_TAG_PWD_PERM : uint { RFID_18K6C_TAG_PWD_PERM_ACCESSIBLE, RFID_18K6C_TAG_PWD_ALWAYS_ACCESSIBLE, RFID_18K6C_TAG_PWD_SECURED_ACCESSIBLE, RFID_18K6C_TAG_PWD_ALWAYS_NOT_ACCESSIBLE, RFID_18K6C_TAG_PWD_PERM_NO_CHANGE }; Description: This is the ISO 18000-6C tag password permission values.. RFID_18K6C_TAG_MEM_PERM Prototype: public enum RFID_18K6C_TAG_MEM_PERM : uint { RFID_18K6C_TAG_MEM_PERM_WRITEABLE, RFID_18K6C_TAG_MEM_ALWAYS_WRITEABLE, RFID_18K6C_TAG_MEM_SECURED_WRITEABLE, RFID_18K6C_TAG_MEM_ALWAYS_NOT_WRITEABLE, RFID_18K6C_TAG_MEM_NO_CHANGE }; Description: This is the ISO 18000-6C tag memory bank permission values. Copyright © Convergence Systems Limited, All Rights Reserved 77 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_RESPONSE_TYPE Prototype: public enum RFID_RESPONSE_TYPE: uint { RFID_RESPONSE_TYPE_DATA = 0xFFFFFFFF }; Description: This is the tag-access operation response type. RFID_RESPONSE_MODE Prototype: public enum RFID_RESPONSE_MODE: uint { RFID_RESPONSE_MODE_COMPACT = 0x00000001, RFID_RESPONSE_MODE_NORMAL = 0x00000003, RFID_RESPONSE_MODE_EXTENDED = 0x00000007 }; Description: This is the tag-access operation data-reporting mode. RFID_MAC_RESET_TYPE Prototype: public enum RFID_MAC_RESET_TYPE: uint { RFID_MAC_RESET_TYPE_SOFT }; Description: This is the types of resets available on the MAC. RFID_MAC_REGION Prototype: public enum RFID_MAC_REGION: uint{ RFID_MAC_REGION_FCC_GENERIC, RFID_MAC_REGION_ETSI_GENERIC }; Description: This is the regulatory mode regions. RFID_RADIO_GPIO_PIN Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 78 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public enum RFID_RADIO_GPIO_PIN: uint { RFID_RADIO_GPIO_PIN_0 = 0x00000001<< 0, // SET_BIT(0), RFID_RADIO_GPIO_PIN_1 = 0x00000001<< 1, // SET_BIT(1), RFID_RADIO_GPIO_PIN_2 = 0x00000001<< 2, // SET_BIT(2), RFID_RADIO_GPIO_PIN_3 = 0x00000001<< 3, // SET_BIT(3), RFID_RADIO_GPIO_PIN_4 = 0x00000001<< 4, // SET_BIT(4), RFID_RADIO_GPIO_PIN_5 = 0x00000001<< 5, // SET_BIT(5), RFID_RADIO_GPIO_PIN_6 = 0x00000001<< 6, // SET_BIT(6), RFID_RADIO_GPIO_PIN_7 = 0x00000001<< 7, // SET_BIT(7), RFID_RADIO_GPIO_PIN_8 = 0x00000001<< 8, // SET_BIT(8), RFID_RADIO_GPIO_PIN_9 = 0x00000001<< 9, // SET_BIT(9), RFID_RADIO_GPIO_PIN_10 = 0x00000001<<10, // SET_BIT(10), RFID_RADIO_GPIO_PIN_11 = 0x00000001<<11, // SET_BIT(11), RFID_RADIO_GPIO_PIN_12 = 0x00000001<<12, // SET_BIT(12), RFID_RADIO_GPIO_PIN_13 = 0x00000001<<13, // SET_BIT(13), RFID_RADIO_GPIO_PIN_14 = 0x00000001<<14, // SET_BIT(14), RFID_RADIO_GPIO_PIN_15 = 0x00000001<<15, // SET_BIT(15), RFID_RADIO_GPIO_PIN_16 = 0x00000001<<16, // SET_BIT(16), RFID_RADIO_GPIO_PIN_17 = 0x00000001<<17, // SET_BIT(17), RFID_RADIO_GPIO_PIN_18 = 0x00000001<<18, // SET_BIT(18), RFID_RADIO_GPIO_PIN_19 = 0x00000001<<19, // SET_BIT(19), RFID_RADIO_GPIO_PIN_20 = 0x00000001<<20, // SET_BIT(20), RFID_RADIO_GPIO_PIN_21 = 0x00000001<<21, // SET_BIT(21), RFID_RADIO_GPIO_PIN_22 = 0x00000001<<22, // SET_BIT(22), RFID_RADIO_GPIO_PIN_23 = 0x00000001<<23, // SET_BIT(23), RFID_RADIO_GPIO_PIN_24 = 0x00000001<<24, // SET_BIT(24), RFID_RADIO_GPIO_PIN_25 = 0x00000001<<25, // SET_BIT(25), RFID_RADIO_GPIO_PIN_26 = 0x00000001<<26, // SET_BIT(26), RFID_RADIO_GPIO_PIN_27 = 0x00000001<<27, // SET_BIT(27), RFID_RADIO_GPIO_PIN_28 = 0x00000001<<28, // SET_BIT(28), RFID_RADIO_GPIO_PIN_29 = 0x00000001<<29, // SET_BIT(29), RFID_RADIO_GPIO_PIN_30 = 0x00000001<<30, // SET_BIT(30), RFID_RADIO_GPIO_PIN_31 = 0x80000000 //1<<31 // SET_BIT(31) }; Description: This is the bit mask values for the radio module GPIO pins. RFID_Startup_EMULATION_FLAG Copyright © Convergence Systems Limited, All Rights Reserved 79 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public enum RFID_Startup_EMULATION_FLAG{ RFID_FLAG_LIBRARY_EMULATION = 0x00000001 }; Description: This is the flag for the RFID_Startup function. User can set to system emulation mode during RfidStartup. RFID_RadioOpen_EMULATION_FLAG Prototype: public enum RFID_RadioOpen_EMULATION_FLAG{ RFID_FLAG_MAC_EMULATION = 0x00000001 }; Description: This is the flag for the RFID_RadioOpen function. In system emulation mode, user can set to MAC emulation mode while calling RadioOpen . RFID_18K6CTag_FLAG Prototype: public enum RFID_18K6CTag_FLAG{ RFID_FLAG_PERFORM_SELECT = 0x00000001, RFID_FLAG_PERFORM_POST_MATCH = 0x00000002 }; Description: This is the flag for the RFID_18K6CTag* functions. Structures: RFID_Startup_T Prototype: public struct RFID_Startup_T{ public RFID_VERSION LibraryVersion; //[out] RFID_VERSION* public UInt32 flags; public HRESULT_RFID_STATUS status; //[ret] }; Fields: [out] LibraryVersion: [in] flags: emulation mode or live. Copyright © Convergence Systems Limited, All Rights Reserved 80 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This is the data structure for f_RfidDev_Startup operation. RFID_Shutdown_T Prototype: public struct RFID_Shutdown_T{ public HRESULT_RFID_STATUS status; }; Fields: -Description: This is the data structure for f_RfidDev_Shutdown operation. RFID_RetrieveAttachedRadiosList_T Prototype: public struct RFID_RetrieveAttachedRadiosList_T{ public RFID_RADIO_ENUM_T radio_enum; public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] radio_enum: enum of radio object. [in] flags: 0. reserved. Description: This is the data structure for f_RfidDev_RetrieveAttachedRadiosList operation. CS101 only has a single radio object for RFID_RADIO_ENUM, array of objects is not required. RFID_RadioOpen_T Prototype: public struct RFID_RadioOpen_T{ public UInt32 public RFID_RADIO_HANDLE public UInt32 public HRESULT_RFID_STATUS }; Fields: [in] cookie: cookie in radio_enum above. [out] handle: the rfid_handle to be returned. cookie; handle; //[out] flags; status; Copyright © Convergence Systems Limited, All Rights Reserved 81 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] flags: MAC emulation mode or live. Description: This is the data structure for f_RfidDev_RadioOpen operation. RFID_RadioClose_T Prototype: public struct RFID_RadioClose_T{ public RFID_RADIO_HANDLE handle; public HRESULT_RFID_STATUS status; }; Fields: -Description: This is the data structure for f_RfidDev_RadioClose operation. RFID_RadioGetSetConfigurationParameter_T Prototype: public struct RFID_RadioGetSetConfigurationParameter_T{ public RFID_RADIO_HANDLE handle; public UInt16 parameter; public UInt32 value; //[out/in] public HRESULT_RFID_STATUS status; }; Fields: [in] parameter: The parameter address to set. [out/in] value: The value content to get/set. Description: This is the data structure for f_RfidDev_RadioGetConfigurationParameter / f_RfidDev_RadioSetConfigurationParameter operation. RFID_RadioGetSetOperationMode_T Prototype: public struct RFID_RadioGetSetOperationMode_T{ public RFID_RADIO_HANDLE handle; public RFID_RADIO_OPERATION_MODE mode; public HRESULT_RFID_STATUS status; }; Copyright © Convergence Systems Limited, All Rights Reserved 82 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Fields: [out/in] mode: continuous or non-continuous. Description: This is the data structure for f_RfidDev_RadioGetOperationMode / f_RfidDev_RadioSetOperationMode operation. RFID_RadioGetSetPowerState_T Prototype: public struct RFID_RadioGetSetPowerState_T{ public RFID_RADIO_HANDLE public RFID_RADIO_POWER_STATE public HRESULT_RFID_STATUS }; Fields: [out/in] state: power on/off state. Description: This is the data structure for f_RfidDev_RadioGetPowerState / f_RfidDev_RadioSetPowerState operation. handle; state; status; RFID_RadioGetSetCurrentLinkProfile_T Prototype: public struct RFID_RadioGetSetCurrentLinkProfile_T{ public RFID_RADIO_HANDLE handle; public UInt32 profile; public HRESULT_RFID_STATUS status; }; Fields: [out/in] profile: profile 0--5 . Description: This is the data structure for f_RfidDev_RadioGetCurrentLinkProfile / f_RfidDev_RadioSetCurrentLinkProfile operation. RFID_RadioGetLinkProfile_T Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 83 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public struct RFID_RadioGetLinkProfile_T{ public RFID_RADIO_HANDLE handle; public UInt32 profile; public RFID_RADIO_LINK_PROFILE linkProfileInfo; //[out] public HRESULT_RFID_STATUS status; }; Fields: [in] profile: profile 0-- 5. [out/in] linkProfileInfo: link profile information. Description: This is the data structure for f_RfidDev_RadioGetLinkProfile operation. RFID_RadioReadWriteLinkProfileRegister_T Prototype: public struct RFID_RadioReadWriteLinkProfileRegister_T{ public RFID_RADIO_HANDLE handle; public UInt32 profile; public UInt16 address; public UInt16 value; public HRESULT_RFID_STATUS status; }; Fields: [in] profile: profile id (0--5) for the link-profile register to be accessed. [in] address: address of the register. [out/in] value: content. Description: This is the data structure for f_RfidDev_RadioRead(/Write)LinkProfileRegister operation. RFID_AntennaPortGetStatus_T Prototype: public struct RFID_AntennaPortGetStatus_T{ public RFID_RADIO_HANDLE public UInt32 public RFID_ANTENNA_PORT_STATUS public HRESULT_RFID_STATUS }; Fields: handle; antennaPort; portStatus; //[out] status; Copyright © Convergence Systems Limited, All Rights Reserved 84 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] antennaPort: always = 0 for CS101. [out] portStatus: enabled/disabled. Description: This is the data structure for f_RfidDev_AntennaPortGetStatus operation. RFID_AntennaPortSetState_T Prototype: public struct RFID_AntennaPortSetState_T{ public RFID_RADIO_HANDLE handle; public UInt32 antennaPort; public RFID_ANTENNA_PORT_STATE state; public HRESULT_RFID_STATUS status; }; Fields: [in] antennaPort: always = 0 for CS101. [in] state: enabled / disabled. Description: This is the data structure for f_RfidDev_AntennaPortSetState operation. RFID_AntennaPortGetSetConfiguration_T Prototype: public struct RFID_AntennaPortGetSetConfiguration_T{ public RFID_RADIO_HANDLE handle; public UInt32 antennaPort; public RFID_ANTENNA_PORT_CONFIG config; // [const struct*] public HRESULT_RFID_STATUS status; }; Fields: [in] antennaPort: always 0 for CS101 . [in/out] config: the structure to be configured. Description: This is the data structure for f_RfidDev_AntennaPortGetConfiguration / f_RfidDev_AntennaPortSetConfiguration operation. RFID_18K6CSetSelectCriteria__T Prototype: public struct RFID_18K6CSetSelectCriteria__T{ Copyright © Convergence Systems Limited, All Rights Reserved 85 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public RFID_RADIO_HANDLE handle; public UInt32 countCriteria; public RFID_18K6C_SELECT_CRITERIA criteria; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] countCriteria: criteria count. [in] criteria: criteria to set. [in] flags: flags. Description: This is the data structure for f_RfidDev_18K6CSetSelectCriteria… operation. RFID_18K6CGetSelectCriteria__T Prototype: public struct RFID_18K6CGetSelectCriteria__T{ public RFID_RADIO_HANDLE handle; public UInt32 countCriteria; public RFID_18K6C_SELECT_CRITERIA criteria; public HRESULT_RFID_STATUS status; }; Fields: [in] countCriteria: criteria count. [in] criteria: criteria to get. Description: This is the data structure for f_RfidDev_18K6CGetSelectCriteria… operation. RFID_18K6CSetPostMatchCriteria__T Prototype: public struct RFID_18K6CSetPostMatchCriteria__T{ public RFID_RADIO_HANDLE handle; public UInt32 countCriteria; public RFID_18K6C_SINGULATION_CRITERIA criteria; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] countCriteria: criteria count. Copyright © Convergence Systems Limited, All Rights Reserved 86 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] criteria: criteria to set. Description: This is the data structure for f_RfidDev_18K6CSetPostMatchCriteria… operation. RFID_18K6CGetPostMatchCriteria__T Prototype: public struct RFID_18K6CGetPostMatchCriteria__T{ public RFID_RADIO_HANDLE handle; public UInt32 countCriteria; public RFID_18K6C_SINGULATION_CRITERIA criteria; public HRESULT_RFID_STATUS status; }; Fields: [in] countCriteria: criteria count. [in] criteria: criteria to get. Description: This is the data structure for f_RfidDev_18K6CGetPostMatchCriteria… operation. RFID_18K6CGetSetQueryTagGroup_T Prototype: public struct RFID_18K6CGetSetQueryTagGroup_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_TAG_GROUP group; public HRESULT_RFID_STATUS status; }; Fields: [out / in] Group: the tag group for subsequent tag-protocol operations applied to it. This is not NULL. Description: This is the data structure for f_RfidDev_18K6CGet(/Set)QueryTagGroup operation. RFID_18K6CGetSetCurrentSingulationAlgorithm_T Prototype: public struct RFID_18K6CGetSetCurrentSingulationAlgorithm_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_SINGULATION_ALGORITHMalgorithm; public HRESULT_RFID_STATUS status; }; Copyright © Convergence Systems Limited, All Rights Reserved 87 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Fields: [out/ in] Algorithm: enum of the Q type of interest. 0 = fixedQ; 1 = dynamicQ 2 = dynamicQAdjust 3 = dynamicQThresh; Description: This is the data structure for f_RfidDev_18K6CGet(/Set)CurrentSingulationAlgorithm operation. RFID_18K6CGetSetSingulationAlgorithmParameters_T Prototype: public struct RFID_18K6CGetSetSingulationAlgorithmParameters_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_SINGULATION_ALGORITHM_PARMS_T singulationParms; public HRESULT_RFID_STATUS status; }; Fields: [in] parms: singulation algorithm parameters Description: This is the data structure for f_RfidDev_18K6CGet(/Set)SingulationAlgorithmParameters operation. RFID_18K6CSetQueryParameters_T Prototype: public struct RFID_18K6CSetQueryParameters_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_QUERY_PARMS parms; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] parms: structure containing the query parameters.. [in] flags: flags. Description: This is the data structure for f_RfidDev_18K6CSetQueryParameters operation. RFID_18K6CGetQueryParameters_T Prototype: public struct RFID_18K6CGetQueryParameters_T{ Copyright © Convergence Systems Limited, All Rights Reserved 88 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public RFID_RADIO_HANDLE handle; public RFID_18K6C_QUERY_PARMS parms; public HRESULT_RFID_STATUS status; }; Fields: [in] parms: structure obtaining the query parameters.. Description: This is the data structure for f_RfidDev_18K6CGetQueryParameters operation. RFID_18K6CTagInventory_T Prototype: public struct RFID_18K6CTagInventory_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_INVENTORY_PARMS invenParms; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] invenParms: INVENTORY_PARMS [in] flags: 0 | RFID_FLAG_PERFORM_SELECT |& RFID_FLAG_PERFORM_POST_MATCH Description: This is the data structure for f_RfidDev_18K6CTagInventory operation. RFID_18K6CTagRead_T Prototype: public struct RFID_18K6CTagRead_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_READ_PARMS readParms; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] readParms: READ_PARMS [in] flags: 0 | RFID_FLAG_PERFORM_SELECT |& RFID_FLAG_PERFORM_POST_MATCH Description: This is the data structure for f_RfidDev_18K6CTagRead operation. Copyright © Convergence Systems Limited, All Rights Reserved 89 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6CTagWrite_T Prototype: public struct RFID_18K6CTagWrite_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_WRITE_PARMS_T writeParms; //[in] const* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] writeParms: PARMS [in] flags: 0 | RFID_FLAG_PERFORM_SELECT |& RFID_FLAG_PERFORM_POST_MATCH Description: This is the data structure for f_RfidDev_18K6CTagWrite operation. RFID_18K6CTagKill_T Prototype: public struct RFID_18K6CTagKill_T{ public RFID_RADIO_HANDLE handle; public RFID_18K6C_KILL_PARMS killParms; //[in] const public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] killParms: PARMS [in] flags: 0 | RFID_FLAG_PERFORM_SELECT |& RFID_FLAG_PERFORM_POST_MATCH Description: This is the data structure for f_RfidDev_18K6CTagKill operation. RFID_18K6CTagLock_T Prototype: public struct RFID_18K6CTagLock_T{ public RFID_RADIO_HANDLE public RFID_18K6C_LOCK_PARMS public UInt32 public HRESULT_RFID_STATUS }; Fields: handle; lockParms; //[in] const* flags; status; Copyright © Convergence Systems Limited, All Rights Reserved 90 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] lockParms: PARMS [in] flags: 0 | RFID_FLAG_PERFORM_SELECT |& RFID_FLAG_PERFORM_POST_MATCH Description: This is the data structure for f_RfidDev_18K6CTagLock operation. RFID_RadioGetSetResponseDataMode_T Prototype: public struct RFID_RadioGetSetResponseDataMode_T { public RFID_RADIO_HANDLE handle; public UInt32 responseType; //RFID_RESPONSE_TYPE public UInt32 responseMode; //[in] |[out] RFID_RESPONSE_MODE public HRESULT_RFID_STATUS status; }; Fields: [in] responseType: currently always RFID_RESPONSE_TYPE_DATA (0xffffffff) [out,in] responseMode: Compact, Normal(default), extended. Description: This is the data structure for f_RfidDev_RadioGetResponseDataMode / f_RfidDev_RadioSetResponseDataMode operation. RFID_MacUpdateFirmware_T Prototype: public struct RFID_MacUpdateFirmware_T { public RFID_RADIO_HANDLE handle; public UInt32 length; public UIntPtr pImage; //const INT8U* public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: To Be Designed . Description: This is the data structure for f_RfidDev_MacUpdateFirmware operation. RFID_MacGetVersion_T Prototype: public struct RFID_MacGetVersion_T { Copyright © Convergence Systems Limited, All Rights Reserved 91 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public RFID_RADIO_HANDLE handle; public RFID_VERSION version; public HRESULT_RFID_STATUS status; }; Fields: [out] version: Rfid MAC version. Description: This is the data structure for f_RfidDev_MacGetVersion operation. RFID_MacReadWriteOemData_T Prototype: public struct RFID_MacReadWriteOemData_T { public RFID_RADIO_HANDLE handle; public UInt32 address; public UInt32 count; public UIntPtr pData; //UI32* ptr to an BYTE-array[count*4+1] public HRESULT_RFID_STATUS status; }; Fields: To Be Designed. Description: This is the data structure for f_RfidDev_MacReadOemData / f_RfidDev_MacWriteOemData operation. RFID_MacReset_T Prototype: public struct RFID_MacReset_T { public RFID_RADIO_HANDLE handle; public RFID_MAC_RESET_TYPE resetType; // public HRESULT_RFID_STATUS status; }; Fields: [in] resetType: soft_reset. Description: This is the data structure for f_RfidDev_MacReset operation. RFID_MacClearError_T Copyright © Convergence Systems Limited, All Rights Reserved 92 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public struct RFID_MacClearError_T { public RFID_RADIO_HANDLE handle; public HRESULT_RFID_STATUS status; }; Fields: -- . Description: This is the data structure for f_RfidDev_MacClearError operation. RFID_MacBypassReadWriteRegister_T Prototype: public struct RFID_MacBypassReadWriteRegister_T{ public RFID_RADIO_HANDLE handle; public UInt16 address; public UInt16 value; public HRESULT_RFID_STATUS status; }; Fields: [in] address: UINT16 register address. [out,in] value: UINT32 value. Description: This is the data structure for f_RfidDev_MacBypassReadRegister / f_RfidDev_MacBypassWriteRegister operation. RFID_MacGetSetRegion_T Prototype: public struct RFID_MacGetSetRegion_T { public RFID_RADIO_HANDLE handle; public UInt32 region; //RFID_MAC_REGION public IntPtr pRegionConfig; //void* public HRESULT_RFID_STATUS status; }; Fields: To Be Designed. Description: This is the data structure for Copyright © Convergence Systems Limited, All Rights Reserved 93 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 f_RfidDev_MacGetRegion / f_RfidDev_MacSetRegion operation. RFID_RadioSetGpioPinsConfiguration_T Prototype: public struct RFID_RadioSetGpioPinsConfiguration_T { public RFID_RADIO_HANDLE handle; public UInt32 mask; public UInt32 configuration; public HRESULT_RFID_STATUS status; }; Fields: [in] mask: bit mask of GPIO’s Ids. [in] configuration: GPIO In or Out. Description: This is the data structure for f_RfidDev_RadioSetGpioPinsConfiguration operation. RFID_RadioGetGpioPinsConfiguration_T Prototype: public struct RFID_RadioGetGpioPinsConfiguration_T { public RFID_RADIO_HANDLE handle; public UInt32 configuration; public HRESULT_RFID_STATUS status; }; Fields: configuration: bit masked status of the 32 GPIOs (as Input or Output pin). Description: This is the data structure for f_RfidDev_RadioGetGpioPinsConfiguration operation. RFID_RadioReadWriteGpioPins_T Prototype: public struct RFID_RadioReadWriteGpioPins_T { public RFID_RADIO_HANDLE handle; public UInt32 mask; public UInt32 value; public HRESULT_RFID_STATUS status; }; Copyright © Convergence Systems Limited, All Rights Reserved 94 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Fields: [in] mask: bit mask of GPIOs to be affected. [out,in] value: values Description: This is the data structure for f_RfidDev_RadioReadGpioPins / f_RfidDev_RadioWriteGpioPins operation. RFID_RadioCancelOperation_T Prototype: public struct RFID_RadioCancelOperation_T { public RFID_RADIO_HANDLE handle; public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] flags: unreferenced. Description: This is the data structure for f_RfidDev_RadioCancelOperation operation. RFID_RadioAbortOperation_T Prototype: public struct RFID_RadioAbortOperation_T { public RFID_RADIO_HANDLE handle; public UInt32 flags; public HRESULT_RFID_STATUS status; }; Fields: [in] flags: unreferenced. Description: This is the data structure for f_RfidDev_RadioAbortOperation operation. RFID_RadioIssueCommand_T Prototype: public struct RFID_RFID_RadioIssueCommand_T { public RFID_RADIO_HANDLE handle; public UInt32 command; //e.g. 0x17 public HRESULT_RFID_STATUS status; Copyright © Convergence Systems Limited, All Rights Reserved 95 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 }; Fields: [in] flags: unreferenced. Description: This is the data structure for f_RfidDev_RadioAbortOperation operation. Note: {RFID_PACKET_CALLBACK_FUNCTION Callback; void* context; INT32S* pCallbackCode;} is handled in rfid lib. RFID_PACKETMSG_COMMON_T Prototype: public struct RFID_PACKETMSG_COMMON_T { public Byte pkt_ver; //INT8U Packet specific version number public Byte flags; // Packet specific flags public UInt16 pkt_type; // Packet type identifier public UInt16 pkt_len; // Packet length preamble: number of 32-bit words that follow the common public UInt16 res0; // Reserved for future use }; Fields: pkt_ver: Packet specific version number flags: Packet specific flags pkt_type: Packet type identifier pkt_len: Packet length preamble: number of 32-bit words that follow the common res0: Reserved for future use Description: This is the common packet preamble that contains fields that are common to all packets. RFID_PACKETMSG_COMMAND_BEGIN_T Prototype: public struct RFID_PACKETMSG_COMMAND_BEGIN_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 command; public UInt32 ms_ctr; }; Fields: cmn: The command context command: The command for which the packet sequence is in response to ms_ctr: Current millisecond counter. Copyright © Convergence Systems Limited, All Rights Reserved 96 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This is the command-begin packet. RFID_PACKETMSG_COMMAND_END_T Prototype: public struct RFID_PACKETMSG_COMMAND_END_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr; // Current millisecond counter public UInt32 status; // Command status indicator }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. Description: This is the command-end packet. RFID_PACKETMSG_ANTENNA_CYCLE_BEGIN_T Prototype: public struct RFID_PACKETMSG_ANTENNA_CYCLE_BEGIN_T { public RFID_PACKETMSG_COMMON_T cmn; // No other packet specific fields }; Fields: cmn: The command context. Description: This is the antenna-cycle-begin packet. RFID_PACKETMSG_ANTENNA_CYCLE_END_T Prototype: public struct RFID_PACKETMSG_ANTENNA_CYCLE_END_T { public RFID_PACKETMSG_COMMON_T cmn; // No other packet specific fields }; Fields: cmn: The command context. Description: This is the antenna-cycle-begin packet.. Copyright © Convergence Systems Limited, All Rights Reserved 97 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_PACKETMSG_ANTENNA_BEGIN_T Prototype: public struct RFID_PACKETMSG_ANTENNA_BEGIN_T { public RFID_PACKETMSG_COMMON_T cmn; // The logical antenna ID public UInt32 antenna; }; Fields: cmn: The command context. antenna: The antenna id . Description: This is the antenna-begin packet. RFID_PACKETMSG_ANTENNA_END_T Prototype: public struct RFID_PACKETMSG_ANTENNA_END_T { public RFID_PACKETMSG_COMMON_T cmn; // No other packet specific fields }; Fields: cmn: The command context. Description: This is the antenna-end packet. RFID_PACKETMSG_INVENTORY_CYCLE_BEGIN_T Prototype: public struct RFID_PACKETMSG_INVENTORY_CYCLE_BEGIN_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr;. Fields: cmn: The command context. ms_ctr: Current millisecond counter. Description: This is the inventory-cycle-begin packet. RFID_PACKETMSG_INVENTORY_CYCLE_END_T Prototype: public struct RFID_PACKETMSG_INVENTORY_CYCLE_END_T { public RFID_PACKETMSG_COMMON_T cmn; Copyright © Convergence Systems Limited, All Rights Reserved 98 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public UInt32 ms_ctr; }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. Description: This is the inventory-cycle-end packet. RFID_PACKETMSG_18K6C_INVENTORY_ROUND_BEGIN_T Prototype: public struct RFID_PACKETMSG_18K6C_INVENTORY_ROUND_BEGIN_T { public RFID_PACKETMSG_COMMON_T cmn; // No packet specific fields }; Fields: cmn: The command context. Description: This is the data structure in the message. RFID_PACKETMSG_18K6C_INVENTORY_ROUND_END_T Prototype: public struct RFID_PACKETMSG_18K6C_INVENTORY_ROUND_END_T { public RFID_PACKETMSG_COMMON_T cmn; // No packet specific fields }; Fields: cmn: The command context. Description: This is the ISO 18000-6C inventory round end packet. RFID_PACKETMSG_18K6C_TAG_ACCESS_T Prototype: // Pointers and fixed size buffers may only be used in an unsafe context public unsafe struct RFID_PACKETMSG_18K6C_TAG_ACCESS_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr; //UInt32 public Byte command; //INT8U Copyright © Convergence Systems Limited, All Rights Reserved 99 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public Byte error_code; //INT8U Error code from tag access public UInt16 res0; //public UInt16 public UInt32 res1; //UInt32 public fixed UInt32 tag_data[ RfidSp.RFID_PACKET_18K6C_TAG_ACCESS__DATA_MAXSIZ ]; // Variable length access data; 2 +16Byte for EPC Gen2 }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. command: The command for which the packet sequence is in response to. error_code: Error code from tag access: 0=NoError, RFID_18K6C_TAG_ACCESS_CRC_INVALID;ACCESS_TIMEOUT; BACKSCATTER_ERROR;ACCESS_ERROR res0: reserved. res1: reserved. tag_data[]: Variable length access data; 2+16Byte for EPC Gen2 Description: This is the ISO 18000-6C tag-access packet. RFID_PACKETMSG_18K6C_INVENTORY_AND_DATA_T Prototype: public unsafe struct RFID_PACKETMSG_18K6C_INVENTORY_AND_DATA_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr; public UInt16 rssi; //public UInt16 public UInt16 ana_ctrl1; public UInt32 res0; //UInt32 public fixed UInt32 inv_data[4]; //_18K6C_INVENTORY__DATA_MAXSIZ }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. rssi: RSSI ana_ctrl1: The antenna control data res0: Always 0; reserved. inv_data[4]: integer array of data. Copyright © Convergence Systems Limited, All Rights Reserved 100 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This is the ISO 18000-6C inventory packet. It is Obsolete to the App, since RfidMw sends AddTag messages to App instead. RFID_PACKETMSG_NONCRITICAL_FAULT_T Prototype: public struct RFID_PACKETMSG_NONCRITICAL_FAULT_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr; // Current millisecond counter public UInt16 fault_type; // Fault type public UInt16 fault_subtype; // Fault subtype public UInt32 context; // Context specific data for fault }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. fault_type: Fault type. fault_subtype: Fault subtype. context: Context specific data for fault. Description: This is the non-critical-fault packet. RFID_PACKETMSG_CARRIER_INFO_T Prototype: public struct RFID_PACKETMSG_CARRIER_INFO_T { public RFID_PACKETMSG_COMMON_T cmn; public UInt32 ms_ctr; // Current millisecond counter public UInt32 plldivmult; // current plldivmult setting public UInt16 chan; // channel public UInt16 cw_flags; // carrier flags }; Fields: cmn: The command context. ms_ctr: Current millisecond counter. plldivmult: Current plldivmult setting. chan: Channel number. cw_flags: Carrier flags. Description: Copyright © Convergence Systems Limited, All Rights Reserved 101 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 This contains info related to the transmitted carrier. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ( The following RfidSp’ structures are used by the structures above, see RfidSp_enums.cs ) RFID_VERSION Prototype: public struct RFID_VERSION { public UInt32 major; public UInt32 minor; public UInt32 patch; }; Fields: major: The major version (i.e, in 1.x.x, the 1) minor: The minor version (i.e., in x.1.x, the 1) patch: The patch level (i.e., in x.x.1, the 1) Description: This represents the version information for components in the system. RFID_RADIO_INFO Prototype: public struct RFID_RADIO_INFO { public UInt32 length; public RFID_VERSION driverVersion; public UInt32 cookie; public UInt32 idLength; public IntPtr pUniqueId; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_RADIO_INFO)). driverVersion: The version information for the radio's bus driver. cookie: The unique cookie for the radio. This cookie is passed to RFID_RadioOpen() when the application wishes to take control of the radio. pUniqueId: A pointer to a byte array (ansi string) that contain the radio module's unique ID (=serial number). Description: This is used to represent the information for the attached radio. RFID_RADIO_ENUM_T Copyright © Convergence Systems Limited, All Rights Reserved 102 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public struct RFID_RADIO_ENUM_T { public UInt32 length; public UInt32 totalLength; public UInt32 countRadios; public RFID_RADIO_INFO _RadioInfo; }; Fields: length: The length of the structure in bytes (= sizeof(RFID_RADIO_ENUM)). totalLength: The total length, in bytes, of radio enumeration structure. Application should fill in this with the length of the radio enumeration buffer. countRadios: The number of radio objects that are attached to the system. _RadioInfo: The RFID_RADIO_INFO structure. Description: This is used in the RetrieveAttachedRadiosList function. The data that will be returned from a request to list the radios that are attached to the system On CS101, a process should only able to get a single radio object. RFID_RADIO_LINK_PROFILE_ISO18K6C_CONFIG Prototype: public struct RFID_RADIO_LINK_PROFILE_ISO18K6C_CONFIG { public UInt32 length; public RFID_18K6C_MODULATION_TYPE modulationType; public UInt32 tari; public RFID_18K6C_DATA_0_1_DIFFERENCE data01Difference; public UInt32 pulseWidth; public UInt32 rtCalibration; public UInt32 trCalibration; public RFID_18K6C_DIVIDE_RATIO divideRatio; public RFID_18K6C_MILLER_NUMBER millerNumber; public UInt32 trLinkFrequency; public UInt32 varT2Delay; public UInt32 rxDelay; public UInt32 minT2Delay; public UInt32 txPropagationDelay; }; Fields: length: The length of the structure in bytes. Copyright © Convergence Systems Limited, All Rights Reserved 103 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 modulationType: The modulation type used by the link profile. tari: The duration, in nanoseconds, of the Tari. data01Difference: The difference, in Taris, between a data zero and a data one. pulseWidth: The duration, in nanoseconds, of the low-going portion of the radio-to-tag PIE symbol rtCalibration: The width, in nanoseconds, of the radio-to-tag calibration. trCalibration: The width, in nanoseconds, of the tag-to-radio calibration. divideRatio: The divide ratio used. millerNumber: The miller number (i.e., cycles per symbol); trLinkFrequency: The tag-to-radio link frequency in Hz. varT2Delay: The delay, in microseconds, inserted to ensure meeting the minimum T2 timing. rxDelay:: The amount of time, in 48MHz cycles, a radio module will wait between transmitting and then attempting to receive the backscattered signal from tags. minT2Delay: The minimum amount of ISO 18000-6C T2 time, in microseconds, after receiving a tag response, before a radio may transmit again. txPropagationDelay: The number of microseconds for a signal to propagate through the radio's transmit chain. Description: This is used in the RFID_RadioGetLinkProfile function. RFID_RADIO_LINK_PROFILE Prototype: public struct RFID_RADIO_LINK_PROFILE { public UInt32 length; public UInt32 enabled; // BOOL32 public UInt64 profileId; public UInt32 profileVersion; public RFID_RADIO_PROTOCOL profileProtocol; public UInt32 denseReaderMode; // BOOL32 public UInt32 widebandRssiSamples; public UInt32 narrowbandRssiSamples; public UInt32 realtimeRssiEnabled; public UInt32 realtimeWidebandRssiSamples; public UInt32 realtimeNarrowbandRssiSamples; public RFID_RADIO_LINK_PROFILE_ISO18K6C_CONFIG iso18K6C; }; Fields: length: The length of the structure in bytes (= sizeof(RFID_RADIO_LINK_PROFILE)). enabled: This indicates if the profile is active. A zero value indicates that the profile is inactive. Copyright © Convergence Systems Limited, All Rights Reserved 104 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 profileId: This is the identifier for the profile. This, in combination with profileVersion, provides a unique identifier for the profile. profileVersion: This is the version for the profile. This field, in combination with profileId, provides a unique identifier for the profile. profileProtocol: This is the tag protocol for which this profile was configured. This value is the discriminator for the profileConfig union. denseReaderMode: This indicates if the profile is a dense-reader-mode (DRM) profile. A zero value indicates a non-DRM profile. widebandRssiSamples: Number of wide band Receive Signal Strength Indication (RSSI) samples to be averaged. narrowbandRssiSamples: Number of narrow band Receive Signal Strength Indication (RSSI) samples to be averaged. realtimeRssiEnabled: Reserved for future use. realtimeWidebandRssiSamples: Reserved for future use. realtimeNarrowbandRssiSamples: Reserved for future use. iso18K6C : This is the link profile configuration information. A union of { RFID_RADIO_LINK_PROFILE_ISO18K6C_CONFIG iso18K6C;}; Description: This is used in the RadioGetLinkProfile function. This has the information about a radio link profile. This is returned in repsonse to a request for link profile information. RFID_ANTENNA_PORT_STATUS Prototype: public struct RFID_ANTENNA_PORT_STATUS{ public UInt32 length; public RFID_ANTENNA_PORT_STATE state; public UInt32 antennaSenseValue; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_ANTENNA_PORT_STATUS)). state: The state (enabled/disabled) of the antenna port. antennaSenseValue: The last measurement of the antenna-sense resistor for the logical antenna port physical transmit antenna port. Description: This is the status of an logical antenna port. RFID_ANTENNA_PORT_CONFIG Copyright © Convergence Systems Limited, All Rights Reserved 105 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public struct RFID_ANTENNA_PORT_CONFIG { public UInt32 length; public UInt32 powerLevel; public UInt32 dwellTime; public UInt32 numberInventoryCycles; public UInt32 physicalRxPort; public UInt32 physicalTxPort; public UInt32 antennaSenseThreshold; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_ANTENNA_PORT_CONFIG)). powerLevel: The power level for the logical antenna port physical transmit antenna. This is specified in 0.1 (i.e., 1/10th) dBm. dwellTime: The number of milliseconds to spend on this antenna port during a cycle. Zero indicates that antenna usage will be controlled by the numberInventoryCycles field. numberInventoryCycles: The number of inventory rounds to perform with this antenna port. Zero indicates that the antenna usage will be controlled by the dwellTime field. physicalRxPort: The physical receive antenna port associated with the logical antenna port (between 0 and 3). physicalTxPort: The physical transmit antenna port associated with the logical antenna port (between 0 and 3). antennaSenseThreshold: The measured resistance, specified in ohms, above which the antenna-sense resistance should be considered to be an open circuit: . Description: This is the configuration parameters for a logical antenna port. RFID_18K6C_SELECT_MASK Prototype: public unsafe struct RFID_18K6C_SELECT_MASK { public RFID_18K6C_MEMORY_BANK bank; public UInt32 offset; public UInt32 count; public fixed Byte mask[RfidSp.RFID_18K6C_SELECT_MASK_BYTE_LEN]; }; Fields: bank: The memory bank to match against offset: The offset of the first bit to match Copyright © Convergence Systems Limited, All Rights Reserved 106 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 count: The number of bits in the mask mask[RFID_18K6C_SELECT_MASK_BYTE_LEN]: The bit pattern to match. Description: This is the select mask for partitioning a tag population. RFID_18K6C_SELECT_ACTION Prototype: public struct RFID_18K6C_SELECT_ACTION { public RFID_18K6C_TARGET target; public RFID_18K6C_ACTION action; public UInt32 enableTruncate; //BOOL32 }; Fields: target: The target affected by the action. action: The actions to be performed on the tag populations (i.e., matching and non-matching.) enableTruncate: truncate EPC when the tag is singulated. A non-zero value requestes that the EPC is truncated. A zero value requests the entire EPC. Description: This is the matching and non-matching action to take when a selection mask matches/doesn't match RFID_18K6C_SELECT_CRITERION Prototype: public struct RFID_18K6C_SELECT_CRITERION { public RFID_18K6C_SELECT_MASK mask; public RFID_18K6C_SELECT_ACTION action; }; Fields: mask: The selection mask to test for RFID_18K6C_SELECT_MASK. action: The actions to perform: . Description: This is the single selection criterion, as a combination of selection mask and action. RFID_18K6C_SINGULATION_MASK Prototype: public unsafe struct RFID_18K6C_SINGULATION_MASK { public UInt32 offset; Copyright © Convergence Systems Limited, All Rights Reserved 107 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public UInt32 count; public fixed Byte mask[ RfidSp.RFID_18K6C_SINGULATION_MASK_BYTE_LEN ]; }; Fields: offset: count: Offset in bits, from the start of the EPC, of the first bit to match against the mask. The number of bits in the mask. A length of zero causes all tags to match. If (offset + count) falls beyond the end of the mask, the tag is considered non-matching. mask[]: The bit pattern to match. Description: This is a single post-singulation match mask. RFID_18K6C_SINGULATION_CRITERION Prototype: public struct RFID_18K6C_SINGULATION_CRITERION { public UInt32 match; //BOOL32 public RFID_18K6C_SINGULATION_MASK mask; //UCHAR[32] }; Fields: match: Indicates if the associated tag-protocol operation will be applied to matching or non-matching tags. A non-zero value indicates that the tag-protocol operation is applied to matching tags. A zero value of indicates that tag-protocol operation is applied to non- matching tags. mask: The mask to be applied to EPC. Description: This is a single post-singulation match criterion. RFID_18K6C_TAG_GROUP Prototype: public struct RFID_18K6C_TAG_GROUP{ public RFID_18K6C_SELECTED selected; public RFID_18K6C_INVENTORY_SESSION session; public RFID_18K6C_INVENTORY_SESSION_TARGET target; }; Fields: selected: The state of the SL flag. session: The inventory session (S0, S1, etc.). target: The state of the inventory session specified by the session field . Copyright © Convergence Systems Limited, All Rights Reserved 108 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This specifies which tag population will be singulated. RFID_18K6C_COMMON_PARMS Prototype: public struct RFID_18K6C_COMMON_PARMS{ public UInt32 tagStopCount; public IntPtr pCallback; //RFID_PACKET_CALLBACK_FUNCTION public IntPtr context; //void* //Nullable public IntPtr pCallbackCode; //INT 32S* }; Fields: tagStopCount: The maximum number of tags to which the tag-protocol operation will be applied. If this number is zero, then the operation is applied to all tags that match the selection, and optionally post-singulation, match criteria. If this number is non-zero, the antenna-port dwell-time and inventory-round-count constraints still apply, however the operation will be prematurely terminated if the maximum number of tags have the tag-protocol operation applied to them. pCallback: Callback function assigned in the library. context: An value that is passed through unmodified to the application-specified callback function. It is usually = 0 . pCallbackCode: A pointer to a 32-bit integer that upon return will contain the return code from the last call to the application-supplied callback function. This can be set to NULL. Description: This is the common parameters for ISO 18000-6C tag-protocol operation RFID_18K6C_SINGULATION_FIXEDQ_PARMS Prototype: public struct RFID_18K6C_SINGULATION_FIXEDQ_PARMS{ public UInt32 length; public UInt32 qValue; public UInt32 retryCount; public UInt32 toggleTarget; //BOOL32 public UInt32 repeatUntilNoTags; //BOOL32 }; Fields: length: The length of the structure in bytes. When calling Copyright © Convergence Systems Limited, All Rights Reserved 109 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6CSetQueryParameters, RFID_18K6CSetSingulationAlgorithmParameters, or RFID_18K6CGetSingulationAlgorithmParameters the application must set this to sizeof(RFID_18K6C_SINGULATION_FIXEDQ_PARMS). When calling RFID_18K6CGetQueryParameters, the library will fill in this field. qValue: The Q value to use. Valid values are 0 to 15. retryCount: Specifies the number of times to try another execution of the singulation algorithm for the specified session / target before either toggling the target (if toggleTarget is non-zero) or terminating the inventory / tag access operation. Valid values are 0-255. toggleTarget: A flag that indicates if, after performing the inventory cycle for the specified target (i.e., A or B), if the target should be toggled (i.e., A to B or B to A) and another inventory cycle run. A non-zero value indicates that the target should be toggled. Note that if the target is toggled, retryCount and repeatUntilNoTags will also apply to the new target. repeatUntilNoTags: A flag that indicates whether or not the singulation algorithm should continue performing inventory rounds until no tags are singulated. A non-zero value indicates that, for each execution of the singulation algorithm, inventory rounds should be performed until no tags are singulated. A zero value indicates that a single inventory round should be performed for each execution of the singulation algorithm. Description: This is the parameters for the fixed Q (i.e., RFID_18K6C_SINGULATION_ALGORITHM_FIXEDQ) algorithm. RFID_18K6C_SINGULATION_DYNAMICQ_PARMS Prototype: public struct RFID_18K6C_SINGULATION_DYNAMICQ_PARMS{ public UInt32 length; public UInt32 startQValue; public UInt32 minQValue; public UInt32 maxQValue; public UInt32 retryCount; public UInt32 maxQueryRepCount; public UInt32 toggleTarget; //BOOL32 }; Fields: length: The length of the structure in bytes. When calling RFID_18K6CSetQueryParameters, Copyright © Convergence Systems Limited, All Rights Reserved 110 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6CSetSingulationAlgorithmParameters, or RFID_18K6CGetSingulationAlgorithmParameters the application must set this to sizeof(RFID_18K6C_SINGULATION_DYNAMICQ_PARMS). When calling RFID_18K6CGetQueryParameters, the library will fill in this field startQValue: The starting Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue minQValue: The minimum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue maxQValue: The maximum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue retryCount: Specifies the number of times to try another execution of the singulation algorithm for the specified session/target before either toggling the target (if toggleTarget is non-zero) or terminating the inventory/tag access operation. Valid values are 0-255. maxQueryRepCount: The maximum number of ISO 18000-6C QueryRep commands that will follow the ISO 18000-6C Query command during a single inventory round. Valid values are 0-255 toggleTarget: A flag that indicates if, after performing the inventory cycle for the specified target (i.e., A or B), if the target should be toggled (i.e.A to B or B to A) and another inventory cycle run. A non-zero value indicates that the target should be toggled. A zero value indicates that the target should not be toggled. Note that if the target is toggled, retryCount and maxQueryReps will also apply to the new target. Description: This is for the parameters for the dynamic Q (i.e., RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ) algorithm. RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS Prototype: public struct RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS { public UInt32 length; public UInt32 startQValue; public UInt32 minQValue; public UInt32 maxQValue; public UInt32 retryCount; public UInt32 maxQueryRepCount; public UInt32 toggleTarget; //BOOL32 }; Fields: length: sizeof(RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS) The length of the structure in bytes. Copyright © Convergence Systems Limited, All Rights Reserved 111 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 When calling RFID_18K6CSetQueryParameters, RFID_18K6CSetSingulationAlgorithmParameters, or RFID_18K6CGetSingulationAlgorithmParameters the application must set this to sizeof(RFID_18K6C_SINGULATION_DYNAMICQ_PARMS). When calling RFID_18K6CGetQueryParameters, the library will fill in this field startQValue: The starting Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue minQValue: The minimum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue maxQValue: The maximum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue retryCount: Specifies the number of times to try another execution of the singulation algorithm for the specified session/target before either toggling the target (if toggleTarget is non-zero) or terminating the inventory/tag access operation. Valid values are 0-255. maxQueryRepCount: The maximum number of ISO 18000-6C QueryRep commands that will follow the ISO 18000-6C Query command during a single inventory round. Valid values are 0-255 toggleTarget: A flag that indicates if, after performing the inventory cycle for the specified target (i.e., A or B), if the target should be toggled (i.e.A to B or B to A) and another inventory cycle run. A non-zero value indicates that the target should be toggled. A zero value indicates that the target should not be toggled. Note that if the target is toggled, retryCount and maxQueryReps will also apply to the new target. Description: This is for the dynamic Q (adjust) algorithm operation; RFID_18K6C_SINGULATION_DYNAMICQ_THRESH_PARMS Prototype: public struct RFID_18K6C_SINGULATION_DYNAMICQ_THRESH_PARMS { public UInt32 length; public UInt32 startQValue; public UInt32 minQValue; public UInt32 maxQValue; public UInt32 retryCount; public UInt32 maxQueryRepCount; public UInt32 toggleTarget; //BOOL32 public UInt32 thresholdMultiplier; }; Copyright © Convergence Systems Limited, All Rights Reserved 112 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Fields: length: sizeof(RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS) The length of the structure in bytes. When calling RFID_18K6CSetQueryParameters, RFID_18K6CSetSingulationAlgorithmParameters, or RFID_18K6CGetSingulationAlgorithmParameters the application must set this to sizeof(RFID_18K6C_SINGULATION_DYNAMICQ_PARMS). When calling RFID_18K6CGetQueryParameters, the library will fill in this field startQValue: The starting Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue minQValue: The minimum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue maxQValue: The maximum Q value to use. Valid values are 0 to 15. minQValue <= startQValue <= maxQValue retryCount: Specifies the number of times to try another execution of the singulation algorithm for the specified session/target before either toggling the target (if toggleTarget is non-zero) or terminating the inventory/tag access operation. Valid values are 0-255. maxQueryRepCount: The maximum number of ISO 18000-6C QueryRep commands that will follow the ISO 18000-6C Query command during a single inventory round. Valid values are 0-255 toggleTarget: A flag that indicates if, after performing the inventory cycle for the specified target (i.e., A or B), if the target should be toggled (i.e.A to B or B to A) and another inventory cycle run. A non-zero value indicates that the target should be toggled. A zero value indicates that the target should not be toggled. Note that if the target is toggled, retryCount and maxQueryReps will also apply to the new target. thresholdMultiplier: The multiplier, specified in units of fourths (i.e., 0.25), that will be applied to the Q-adjustment threshold as part of the dynamic-Q algorithm. Valid values are 0-255, inclusive. Description: This is for the dynamic Q with Q-threshold adjustment algorithm operation; RFID_18K6C_SINGULATION_ALGORITHM_PARMS_T Prototype: public struct RFID_18K6C_SINGULATION_ALGORITHM_PARMS_T{ public RFID_18K6C_SINGULATION_ALGORITHM singulationAlgorithm; public RFID_18K6C_SINGULATION_FIXEDQ_PARMS fixedQ; public RFID_18K6C_SINGULATION_DYNAMICQ_PARMS dynamicQ; public RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS dynamicQAdjust; /// Copyright © Convergence Systems Limited, All Rights Reserved 113 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Aug2007 public RFID_18K6C_SINGULATION_DYNAMICQ_THRESH_PARMS dynamicQThresh; /// }; Fields: singulationAlgorithm: enum of the singulation algorithm to use. This value is a discriminator that determines the exact structure that pSingulationParms points to. 0 = fixedQ; 1 = dynamicQ 2 = dynamicQAdjust 3 = dynamicQThresh fixedQ: this contains the FixedQ singulation algorithm parameters. dynamicQ: this contains the DynamicQ singulation algorithm parameters. dynamicQAdjust: this contains the DynamicQ singulation algorithm parameters with adjust. dynamicQThresh: this contains the DynamicQ singulation algorithm parameters with threshold. Description: This is the ISO 18000-6C tag singulation algorithm parameters. RFID_18K6C_QUERY_PARMS Prototype: public struct RFID_18K6C_QUERY_PARMS{ public RFID_18K6C_TAG_GROUP tagGroup; public RFID_18K6C_SINGULATION_ALGORITHM_PARMS_T singulationParms; }; Fields: tagGroup: tag group to be used. singulationParms: parameters to be used. Description: This is for the query tag singulation algorithm parameters. RFID_18K6C_INVENTORY_PARMS Prototype: public struct RFID_18K6C_INVENTORY_PARMS{ public UInt32 length; //= sizeof(RFID_18K6C_INVENTORY_PARMS); public RFID_18K6C_COMMON_PARMS common; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_18K6C_INVENTORY_PARMS)). common: The ISO 18000-6C tag-protocol operation common parameters. Copyright © Convergence Systems Limited, All Rights Reserved 114 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This is the parameters for ISO 18000-6C 18K6CTagInventory operation. RFID_18K6C_READ_PARMS Prototype: public struct RFID_18K6C_READ_PARMS{ public UInt32 length; public RFID_18K6C_COMMON_PARMS common; public RFID_18K6C_MEMORY_BANK bank; public UInt16 offset; public UInt16 count; public UInt32 accessPassword; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_18K6C_READ_PARMS)). common: The ISO 18000-6C tag-protocol operation common parameters. bank: The memmory bank to read from. offset: The offset of the first 16-bit word to read. count: The nubmer of 16-bit words to read. If this value is zero and bank is RFID_18K6C_MEMORY_BANK_EPC, the read will return the contents of the tag EPC memory starting at the 16-bit word specified by offset through the end of the EPC. If this value is zero and bank is not RFID_18K6C_MEMORY_BANK_EPC, the read will return, for the chosen memory bank, data starting from the 16-bit word specified by offset to the end of the memory bank. accessPassword: The access password. A value of zero indicates no access password. Description: This is the parameters for ISO 18000-6C tag-read (18K6CTagRead) operation. RFID_18K6C_WRITE_SEQUENTIAL_PARMS_T Prototype: public unsafe struct RFID_18K6C_WRITE_SEQUENTIAL_PARMS_T{ public UInt32 length; //= sizeof(RFID_18K6C_WRITE_SEQUENTIAL_PARMS); public RFID_18K6C_MEMORY_BANK bank; public UInt16 count; //1-8 public UInt16 offset; public fixed ushort pData[8]; //fixed }; Copyright © Convergence Systems Limited, All Rights Reserved 115 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Fields: length: The length of this structure (=sizeof(RFID_18K6C_WRITE_SEQUENTIAL_PARMS)). bank: The memory bank to write to. count: The number of 16-bit words that will be written. Valid values are 1 to 8. offset: The offset, in the memory bank, of the first 16-bit word to write. pData[]: Array of values to write to the tag's memory bank.: . Description: This is the parameters for specifying the data for a sequential tag write. RFID_18K6C_WRITE_RANDOM_PARMS_T Prototype: public unsafe struct RFID_18K6C_WRITE_RANDOM_PARMS_T { public UInt32 length; //= sizeof(RFID_18K6C_WRITE_RANDOM_PARMS) (typo); public RFID_18K6C_MEMORY_BANK bank; public UInt16 count; //1-8 public UInt16 reserved;//=0 public fixed ushort pOffset[8]; //fixed public fixed ushort pData[8]; }; Fields: length: The length of this structure (= sizeof(RFID_18K6C_WRITE_SEQUENTIAL_PARMS)). bank: The memory bank to write to. count: The number of 16-bit words that will be written. Valid values are 1 to 8. reserved: Reserved. Set to zero. pOffset: Pointer to an array of 16-bit offsets in the tag's memory bank where the corresponding array entry in pData will be written. pData: Pointer to an array of 16-bit values that will be written to the tag memory offset specified in the corresponding array entry in pOffset. Description: This is the parameters for specifying the data for a random, single-memory-bank tag write. RFID_18K6C_WRITE_PARMS_T Prototype: public struct RFID_18K6C_WRITE_PARMS_T{ public UInt32 length; //= sizeof(RFID_18K6C_WRITE_PARMS); public RFID_18K6C_COMMON_PARMS common; Copyright © Convergence Systems Limited, All Rights Reserved 116 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public RFID_18K6C_WRITE_TYPE writeType; /// public UInt32 verify; //BOOL32 0 write-only; >0 w+r verify data public UInt32 verifyRetryCount; //0-7 public UInt32 accessPassword; public RFID_18K6C_WRITE_SEQUENTIAL_PARMS_T sequential; public RFID_18K6C_WRITE_RANDOM_PARMS_T random; }; Fields: length: The length of the structure in bytes (= sizeof(RFID_18K6C_WRITE_PARMS)). common: The ISO 18000-6C tag-protocol operation common parameters. writeType: The type of write. verify: A flag to indicate if write should be verified by reading back the data written to the tag. A non-zero value indicates that a verify should be performed. verifyRetryCount: If verify is non-zero, this is the number of retries in the event of a verification failure. Valid values are 0 to 7. accessPassword: The access password. A value of zero indicates no access password. sequential: random tag-write parameters. random: random tag-write parameters. Description: This is the parameter for ISO 18000-6C tag-write operation. RFID_18K6C_KILL_PARMS Prototype: public struct RFID_18K6C_KILL_PARMS{ public UInt32 length; //= sizeof(RFID_18K6C_KILL_PARMS); public RFID_18K6C_COMMON_PARMS common; public UInt32 accessPassword; public UInt32 killPassword; }; Fields: length: The length of the structure in bytes (=sizeof(RFID_18K6C_KILL_PARMS)). common: The ISO 18000-6C tag-protocol operation common parameters. accessPassword: The access password. A value of zero indicates no access password. killPassword: The kill password. Must not be zero. Description: This is the parameter for ISO 18000-6C tag-kill operation. Copyright © Convergence Systems Limited, All Rights Reserved 117 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID_18K6C_LOCK_PARMS Prototype: public struct RFID_18K6C_LOCK_PARMS{ public UInt32 length; //= sizeof(RFID_18K6C_LOCK_PARMS) public RFID_18K6C_COMMON_PARMS common; public RFID_18K6C_TAG_PERM permissions; public UInt32 accessPassword; }; Fields: length: The length of the structure in bytes (=(RFID_18K6C_LOCK_PARMS)). common: The ISO 18000-6C tag-protocol operation common parameters. permissions: The access permissions for the tag. accessPassword: The access password. A value of zero indicates no access password. Description: This is the parameter for ISO 18000-6C tag-lock operation. RFID_18K6C_TAG_PERM Prototype: public struct RFID_18K6C_TAG_PERM{ public RFID_18K6C_TAG_PWD_PERM killPasswordPermissions; public RFID_18K6C_TAG_PWD_PERM accessPasswordPermissions; public RFID_18K6C_TAG_MEM_PERM epcMemoryBankPermissions; public RFID_18K6C_TAG_MEM_PERM tidMemoryBankPermissions; public RFID_18K6C_TAG_MEM_PERM userMemoryBankPermissions; }; Fields: killPasswordPermissions: Permissions for the tag's kill password accessPasswordPermissions: Permissions for the tag's access password epcMemoryBankPermissions: Permissions for the tag's EPC memory bank tidMemoryBankPermissions: Permissions for the tag's TID memory bank userMemoryBankPermissions: Permissions for the tag's user memory bank. Description: This is the permission values for performing an ISO18000-6C tag lock operation. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RfidMw_CmdCommon_T Prototype: }. Fields::Description: Copyright © Convergence Systems Limited, All Rights Reserved 118 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 This is a structure used by RfidMw_Cmd_T. RfidMw_Cmd_T Prototype: Fields: : . Description: This is the Cmd structure to be used in the further. UINT96_T Prototype: public struct UINT96_T{ public UInt32 m_MSB; public UInt32 m_CSB; public UInt32 m_LSB; }; Fields: m_MSB: most significant QWord. m_CSB: center significant QWord. m_LSB: least significant QWord. Description: This is a structure used by PECRECORD_T. e.g. if the 96 bits Gen2 EPC contains 0x30101234 56789012 12345678 then m_MSB = 0x30101234; m_CSB = 0x56789012; m_LSB = 0x12345678; PECRECORD_T Prototype: public struct PECRECORD_T{ public ushort m_seqnum; public ushort m_Pc; public UINT96_T m_Epc; public ushort m_Crc; public ushort m_Cnt; public ushort m_Flg; //Byte 0- 1 local time-sequence // 2- 3 // 4-15 //16-17 optional ini 0x0000 //20-21 ini from Db //valid states 0(00):exist 2(10):exist,Cnt_chg 3(11):new,Cnt_chg Copyright © Convergence Systems Limited, All Rights Reserved 119 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public ushort m_Rssi; //22-23 ini 0x0000 public ushort m_AntCtrl; //24-25 ini 0x0000 }; ///26B Fields: m_seqnum: time-sequence number, local to RfidMw internal use only m_Pc: PC m_Epc: EPC m_Crc: optionally filled CRC, initialize 0x0000 m_Cnt: Count m_Flg: currently, the valid states are: 0(00):exist 2(10):exist,Cnt_chg 3(11):new,Cnt_chg m_Rssi: unnormalized RSSI value m_AntCtrl: unnormalized Antenna Control values, initialize as 0x0000 Description: This PEC (PC-EPC-CRC & inventory data) record is used in the middleware data list. C# App communicates (find, read, write) with RfidMw using this PEC record format. Function Definitions: f_RfidSpDll_Initialize Prototype: public static extern HRESULT_RFID f_RfidSpDll_Initialize( IntPtr hWnd ); Parameters: (Inputs/ Outputs/ ReturnValue) [in] IntPtr hWnd: handle of the Message Window of the C# Application. Message: None. Description: This initializes the RfidSp. e.g. Create C++ threads. f_RfidSpDll_Uninitialize Prototype: public static extern HRESULT_RFID f_RfidSpDll_Uninitialize(); Parameters: Copyright © Convergence Systems Limited, All Rights Reserved 120 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 None. Message: None. Description: This uninitializes the RfidSp. e.g. Un-initialize & Delete C++ threads. f_RfidMw_Initialize Prototype: public static extern HRESULT_RFID f_RfidMw_Initialize(); Message: None. Description: No operation. Reserved for further use. f_RfidMw_Uninitialize Prototype: public static extern HRESULT_RFID f_RfidMw_Uninitialize(); Message: None. Description: No operation. Reserved for further use. f_RfidMw_PostCmd Prototype: public static extern HRESULT_RFID f_RfidMw_PostCmd( ref RfidMw_Cmd_T sRfidMw_cmd ); . Message: None. Description: No operation. Reserved for further use. f_RfidMw_TagInv_SetAllTaglist Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_SetAllTaglist( UInt32 siz, ref IntPtr parylist ); Copyright © Convergence Systems Limited, All Rights Reserved 121 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Parameters: [in] UInt32 siz: [in] ref IntPtr parylist: Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_SetAllTaglist notification. Description: This set multiple tags to the RfidMw in the format defined by RfidMw. f_RfidMw_TagInv_AddATag Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_AddATag( ref PECRECORD_T st_PecRec ); Parameters: [in] ref PECRECORD_T st_PecRec: Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_AddATag notification. Description: This adds a single tag to the RfidMw in the format defined by RfidMw. f_RfidMw_TagInv_FindATag Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_FindATag( ref PECRECORD_T st_PecRec);. Parameters: [in] ref PECRECORD_T st_PecRec: . Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_FindATag notification. Description: This finds a tag in the RfidMw cached data list. f_RfidMw_TagInv_ClearAllTaglist Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_ClearAllTaglist(); Parameters: None. Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ClearAllTaglist notification. Description: Copyright © Convergence Systems Limited, All Rights Reserved 122 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 This empties the RfidMw cached data list. f_RfidMw_TagInv_UpdateAllTaglistToFile Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_UpdateAllTaglistToFile(); Parameters: None. Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_UpdateAllTaglistToFile notification. Description: This writes all data in RfidMw to a text file. f_RfidMw_TagInv_GetUpdateTaglist Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_GetUpdateTaglist( ); Parameters: None. Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_GetUpdateTaglist notification. Description: This gets only rows of updated tags from RfidMw. f_RfidMw_TagInv_GetAllTaglist Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_GetAllTaglist( ). Parameters: None. Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: This gets all rows of tags from RfidMw. f_RfidMw_TagInv_SetMsgMode Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_SetMsgMode( int mode ); Parameters: [in] int mode: . if mode == 0 all tags’ notifications are sent; Copyright © Convergence Systems Limited, All Rights Reserved 123 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 if mode == 1, only the “1st read” of each tag is sent. Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: This is optional… This sets the RfidMw into an message output mode, where only the 1st read tag data is sent to the C# App. This reduces the number of messages & the amount of data to be processed by C#, in both normal or compact response mode. f_RfidMw_TagInv_PecRssiMin_Set Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_PecRssiMin_Set ( ref UInt16 val ); Parameters: [in] ref UInt16 val: Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: This sets the Rssi Threshold of the RfidMw module; Tag data is not added to the cached data-list if its Rssi element is below threshold. f_RfidMw_TagInv_PecRssiMin_Get Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_PecRssiMin_Get ( ref UInt16 val ); Parameters: [out] ref UInt16 val: Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: This gets the Rssi Threshold of the RfidMw module. f_RfidMw_TagInv_PecAntCtrlMin_Set Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_PecAntCtrlMin_Set( ref UInt16 val ); Parameters: [in] ref UInt16 val: . Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: Copyright © Convergence Systems Limited, All Rights Reserved 124 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 This sets the AntCtrl Threshold of the RfidMw module; Tag data is not added to the cached data-list if its AntCtrl element is below threshold. f_RfidMw_TagInv_PecAntCtrlMin_Get Prototype: public static extern HRESULT_RFID f_RfidMw_TagInv_PecAntCtrlMin_Get( ref UInt16 val );. Parameters: [out] ref UInt16 val: . Message: RFIDMW_REQEND_TYPE_MSGID_TagInv_ notification. Description: This gets the AntCtrl Threshold of the RfidMw module. f_RfidDev_Initialize Prototype: public static extern HRESULT_RFID f_RfidDev_Initialize(); Description: No operation. Reserved for further use. f_RfidDev_Uninitialize Prototype: public static extern HRESULT_RFID f_RfidDev_Uninitialize(); Description: No operation. Reserved for further use. f_RfidDev_Startup Prototype: public static extern HRESULT_RFID f_RfidDev_Startup( ref RFID_Startup_T st_RfidSpReq_Startup ); Parameters: [in] ref RFID_Startup_T st_RfidSpReq_Startup: . Message: RFID_REQEND_TYPE_MSGID_Startup notification. Description: This initializes the Rfid Library. f_RfidDev_Shutdown Copyright © Convergence Systems Limited, All Rights Reserved 125 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public static extern HRESULT_RFID f_RfidDev_Shutdown( ref RFID_Shutdown_T st_RfidSpReq_Shutdown ); Parameters: [in] ref RFID_Shutdown_T st_RfidSpReq_Shutdown: . Message: RFID_REQEND_TYPE_MSGID_Shutdown notification. Description: This shuts down the Rfid Library. This also cleans up all resources including closing all open radio handles and returning radios to idle. f_RfidDev_RetrieveAttachedRadiosList Prototype: public static extern HRESULT_RFID f_RfidDev_RetrieveAttachedRadiosList( ref RFID_RetrieveAttachedRadiosList_T st_RfidSpReq_RetrieveAttachedRadiosList ); Parameters: [out] ref RFID_RetrieveAttachedRadiosList_T st_RfidSpReq_RetrieveAttachedRadiosList: . Message: RFID_REQEND_TYPE_MSGID_RetrieveAttachedRadiosList notification. Description: Retrieves the list of radio modules attached to the system. If succeeded, application can open the Radio Object then. f_RfidDev_RadioOpen Prototype: public static extern HRESULT_RFID f_RfidDev_RadioOpen( ref RFID_RadioOpen_T st_RfidSpReq_RadioOpen ); Parameters: [out] ref RFID_RadioOpen_T st_RfidSpReq_RadioOpen: . Message: RFID_REQEND_TYPE_MSGID_RadioOpen notification. Description: This requests explicit control of a radio. The following function calls will use the return rfid_handle the access the radio object. f_RfidDev_RadioClose Prototype: public static extern HRESULT_RFID f_RfidDev_RadioClose( Copyright © Convergence Systems Limited, All Rights Reserved 126 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 ref RFID_RadioClose_T st_RfidSpReq_RadioClose ); Parameters: [in] ref RFID_RadioClose_T st_RfidSpReq_RadioClose. Message: RFID_REQEND_TYPE_MSGID_RadioClose notification. Description: This releases the rfid_handle, thus also releasing the radio object of the opened radio. On close, any executing or outstanding requests are cancelled and the radio is returned to idle. f_RfidDev_RadioSetConfigurationParameter Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetConfigurationParameter( ref RFID_RadioGetSetConfigurationParameter_T st_RfidSpReq_RadioSetConfigurationParameter );. Parameters: [in] ref RFID_RadioGetSetConfigurationParameter_T st_RfidSpReq_RadioSetConfigurationParameter: . Message: RFID_REQEND_TYPE_MSGID_RadioSetConfigurationParameter notification. Description: This sets the low-level configuration parameter of the radio. f_RfidDev_RadioGetConfigurationParameter Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetConfigurationParameter( ref RFID_RadioGetSetConfigurationParameter_T st_RfidSpReq_RadioGetConfigurationParameter );. Parameters: [out] ref RFID_RadioGetSetConfigurationParameter_T st_RfidSpReq_RadioGetConfigurationParameter: . Message: RFID_REQEND_TYPE_MSGID_RadioGetConfigurationParameter notification. Description: This gets the low-level configuration parameter of the radio. f_RfidDev_RadioSetOperationMode Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetOperationMode( ref RFID_RadioGetSetOperationMode_T st_RfidSpReq_RadioSetOperationMode ); Parameters: Copyright © Convergence Systems Limited, All Rights Reserved 127 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] ref RFID_RadioGetSetOperationMode_T st_RfidSpReq_RadioSetOperationMode: . Message: RFID_REQEND_TYPE_MSGID_RadioSetOperationMode notification. Description: f_RfidDev_RadioGetOperationMode Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetOperationMode( ref RFID_RadioGetSetOperationMode_T st_RfidSpReq_RadioGetOperationMode );. Parameters: [out] ref RFID_RadioGetSetOperationMode_T st_RfidSpReq_RadioGetOperationMode: . Message: RFID_REQEND_TYPE_MSGID_RadioGetOperationMode notification. Description: This sets the radio's operation mode. The operation mode will remain in effect until it is explicitly changed via RFID_RadioSetOperationMode. f_RfidDev_RadioSetPowerState Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetPowerState( ref RFID_RadioGetSetPowerState_T st_RfidSpReq_RadioSetPowerState ); Parameters: [in] : . Message: RFID_REQEND_TYPE_MSGID_ RadioSetPowerState notification. Description: f_RfidDev_RadioGetPowerState Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetPowerState( ref RFID_RadioGetSetPowerState_T st_RfidSpReq_RadioGetPowerState );. Parameters: [out] : . Message: RFID_REQEND_TYPE_MSGID_RadioGetPowerState notification. Copyright © Convergence Systems Limited, All Rights Reserved 128 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This retrieves the radio's power state (not the antenna RF power.). f_RfidDev_RadioSetCurrentLinkProfile Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetCurrentLinkProfile( ref RFID_RadioGetSetCurrentLinkProfile_T st_RfidSpReq_RadioSetCurrentLinkProfile ); Parameters: [out] ref RFID_RadioGetSetCurrentLinkProfile_T st_RfidSpReq_RadioSetCurrentLinkProfile:. Message: RFID_REQEND_TYPE_MSGID_RadioSetCurrentLinkProfile notification. Description: This sets the current link profile for the radio module. f_RfidDev_RadioGetCurrentLinkProfile Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetCurrentLinkProfile( ref RFID_RadioGetSetCurrentLinkProfile_T st_RfidSpReq_RadioGetCurrentLinkProfile ); Parameters: [out] ref RFID_RadioGetSetCurrentLinkProfile_T st_RfidSpReq_RadioGetCurrentLinkProfile:. Message: RFID_REQEND_TYPE_MSGID_RadioGetCurrentLinkProfile notification. Description: This gets the current link profile for the radio module. f_RfidDev_RadioGetLinkProfile Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetLinkProfile( ref RFID_RadioGetLinkProfile_T st_RfidSpReq_RadioGetLinkProfile ); Parameters: [out] ref RFID_RadioGetLinkProfile_T st_RfidSpReq_RadioGetLinkProfile: Message: RFID_REQEND_TYPE_MSGID_RadioGetLinkProfile notification. Description: This retrieves the information for the specified link profile for the radio. f_RfidDev_RadioWriteLinkProfileRegister Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 129 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public static extern HRESULT_RFID f_RfidDev_RadioWriteLinkProfileRegister( ref RFID_RadioReadWriteLinkProfileRegister_T st_RfidSpReq_RadioWriteLinkProfileRegister ); Parameters: [out] ref RFID_RadioReadWriteLinkProfileRegister_Tst_RfidSpReq_RadioWriteLinkProfileRegister: Message: RFID_REQEND_TYPE_MSGID_RadioWriteLinkProfileRegister notification. Description: This writes a value to a link-profile register for the specified link profile. f_RfidDev_RFID_RadioReadLinkProfileRegister Prototype: public static extern HRESULT_RFID f_RfidDev_RadioReadLinkProfileRegister( ref RFID_RadioReadWriteLinkProfileRegister_T st_RfidSpReq_RadioReadLinkProfileRegister ); Parameters: [out] ref RFID_RadioReadWriteLinkProfileRegister_T st_RfidSpReq_RadioReadLinkProfileRegister: Message: RFID_REQEND_TYPE_MSGID_RadioReadLinkProfileRegister notification. Description: This retrieves the contents of a link-profile register for the specified link profile. f_RfidDev_AntennaPortGetStatus Prototype: public static extern HRESULT_RFID f_RfidDev_AntennaPortGetStatus( ref RFID_AntennaPortGetStatus_T st_RfidSpReq_AntennaPortGetStatus); Parameters: [out] ref RFID_AntennaPortGetStatus_T st_RfidSpReq_AntennaPortGetStatus: Message: RFID_REQEND_TYPE_MSGID_AntennaPortGetStatus notification. Description: This retrieves the status of a radio module's antenna port. f_RfidDev_AntennaPortSetState Prototype: public static extern HRESULT_RFID f_RfidDev_AntennaPortSetState( ref RFID_AntennaPortSetState_T st_RfidSpReq_AntennaPortSetState); Parameters: Copyright © Convergence Systems Limited, All Rights Reserved 130 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 [in] ref RFID_AntennaPortSetState_T st_RfidSpReq_AntennaPortSetState:. Message: RFID_REQEND_TYPE_MSGID_AntennaPortSetState notification. Description: This sets the state (ON/OFF) of a radio’s antenna port. f_RfidDev_AntennaPortSetConfiguration Prototype: public static extern HRESULT_RFID f_RfidDev_AntennaPortSetConfiguration( ref RFID_AntennaPortGetSetConfiguration_T st_RfidSpReq_AntennaPortSetConfiguration); Parameters: [in] ref RFID_AntennaPortGetSetConfiguration_T st_RfidSpReq_AntennaPortSetConfiguration:. Message: RFID_REQEND_TYPE_MSGID_AntennaPortSetConfiguration notification. Description: This sets the configuration for a radio’s antenna port. f_RfidDev_AntennaPortGetConfiguration Prototype: public static extern HRESULT_RFID f_RfidDev_AntennaPortGetConfiguration( ref RFID_AntennaPortGetSetConfiguration_T st_RfidSpReq_AntennaPortGetConfiguration); Parameters: [out] ref RFID_AntennaPortGetSetConfiguration_T st_RfidSpReq_AntennaPortGetConfiguration:. Message: RFID_REQEND_TYPE_MSGID_AntennaPortGetConfiguration notification. Description: This retrieves the configuration for a radio's antenna port. f_RfidDev_18K6CSetSelectCriteria01 Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CSetSelectCriteria01( ref RFID_18K6CSetSelectCriteria__T st_RfidSpReq_18K6CSetSelectCriteria, ref RFID_18K6C_SELECT_CRITERION criteria01 );. Parameters: [in] ref RFID_18K6CSetSelectCriteria__T st_RfidSpReq_18K6CSetSelectCriteria: . [in] ref RFID_18K6C_SELECT_CRITERION criteria01: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetSelectCriteria notification. Copyright © Convergence Systems Limited, All Rights Reserved 131 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This configures the tag-selection criteria for the ISO 18000-6C select command. The supplied tag-selection criteria will be used for any tag-protocol operations in which the application specifies that an ISO 18000-6C select command should be issued prior to executing the tag-protocol operation. The tag-selection criteria will stay in effect until the next call to RFID_18K6CSetSelectCriteria. f_RfidDev_18K6CGetSelectCriteria01 Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetSelectCriteria01( ref RFID_18K6CGetSelectCriteria__T st_RfidSpReq_18K6CGetSelectCriteria, ref RFID_18K6C_SELECT_CRITERION criteria01 ); Parameters: [out] ref RFID_18K6CGetSelectCriteria__T st_RfidSpReq_18K6CGetSelectCriteria: . [out] ref RFID_18K6C_SELECT_CRITERION criteria01: . Message: RFID_REQEND_TYPE_MSGID _18K6CGetSelectCriteria notification. Description: This retrieves the configured tag-selection criteria for the ISO 18000-6C select command. f_RfidDev_18K6CSetPostMatchCriteria01 Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CSetPostMatchCriteria01( ref RFID_18K6CSetPostMatchCriteria__T st_RfidSpReq_18K6CSetPostMatchCriteria, ref RFID_18K6C_SINGULATION_CRITERION criteria01 ); Parameters: [in] ref RFID_18K6CSetPostMatchCriteria__T st_RfidSpReq_18K6CSetPostMatchCriteria: . [in] ref RFID_18K6C_SINGULATION_CRITERION criteria01: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetPostMatchCriteria notification. Description: This configures the post-singulation match criteria to be used by the radio. The supplied post-singulation match criteria will be used for any tag-protocol operations in which the application specifies that a post-singulation match should be performed on the tags that are singulated by the tag-protocol operation. The post-singulation match criteria will stay in effect until the next call to RFID_18K6CSetPostMatchCriteria. Copyright © Convergence Systems Limited, All Rights Reserved 132 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 f_RfidDev_18K6CGetPostMatchCriteria01 Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetPostMatchCriteria01( ref RFID_18K6CGetPostMatchCriteria__T st_RfidSpReq_18K6CGetPostMatchCriteria, ref RFID_18K6C_SINGULATION_CRITERION criteria01 );. Parameters: [out] ref RFID_18K6CGetPostMatchCriteria__T st_RfidSpReq_18K6CGetPostMatchCriteria: . [out] ref RFID_18K6C_SINGULATION_CRITERION criteria01: . Message: RFID_REQEND_TYPE_MSGID_18K6CGetPostMatchCriteria notification. Description: This Retrieves the configured post-singulation match criteria. f_RfidDev_18K6CSetQueryTagGroup Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CSetQueryTagGroup ( ref RFID_18K6CGetSetQueryTagGroup_T st_RfidSpReq_18K6CSetQueryTagGroup ); Parameters: [in] ref RFID_18K6CGetSetQueryTagGroup_T st_RfidSpReq_18K6CSetQueryTagGroup: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetQueryTagGroup notification. Description: This specifies which tag group will have subsequent tag-protocol operations applied to it. f_RfidDev_18K6CGetQueryTagGroup Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetQueryTagGroup ( ref RFID_18K6CGetSetQueryTagGroup_T st_RfidSpReq_18K6CGetQueryTagGroup ); Parameters: [out] ref RFID_18K6CGetSetQueryTagGroup _T st_RfidSpReq_18K6CGetQueryTagGroup: . Message: RFID_REQEND_TYPE_MSGID_18K6CGetQueryTagGroup notification. Description: This retrieves the tag group that will have subsequent tag-protocol operations applied to it. f_RfidDev_18K6CSetCurrentSingulationAlgorithm Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 133 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public static extern HRESULT_RFID f_RfidDev_18K6CSetCurrentSingulationAlgorithm ( ref RFID_18K6CGetSetCurrentSingulationAlgorithm_T st_RfidSpReq_18K6CSetCurrentSingulationAlgorithm ); Parameters: [in] ref RFID_18K6CGetSetCurrentSingulationAlgorithm_T st_RfidSpReq_18K6CSetCurrentSingulationAlgorithm: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetCurrentSingulationAlgorithm notification. Description: This sets the currently-active singulation algorithm (= the algorithm that is used when performing a tag-protocol operation). f_RfidDev_18K6CGetCurrentSingulationAlgorithm Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetCurrentSingulationAlgorithm ( ref RFID_18K6CGetSetCurrentSingulationAlgorithm_T st_RfidSpReq_18K6CGetCurrentSingulationAlgorithm); Parameters: [out] ref RFID_18K6CGetSetCurrentSingulationAlgorithm_T st_RfidSpReq_18K6CGetCurrentSingulationAlgorithm: . Message: RFID_REQEND_TYPE_MSGID_18K6CGetCurrentSingulationAlgorithm notification. Description: This retrieves the currently-active singulation algorithm. f_RfidDev_18K6CSetSingulationAlgorithmParameters Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CSetSingulationAlgorithmParameters( ref RFID_18K6CGetSetSingulationAlgorithmParameters_T st_RfidSpReq_18K6CSetSingulationAlgorithmParameters); Parameters: [in] ref RFID_18K6CGetSetSingulationAlgorithmParameters_T st_RfidSpReq_18K6CSetSingulationAlgorithmParameters: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetSingulationAlgorithmParameters notification. Description: This configures the settings for a particular singulation algorithm. Please notice that: configuring a singulation algorithm does not automatically set it as the current Copyright © Convergence Systems Limited, All Rights Reserved 134 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 singulation algorithm. f_RfidDev_18K6CGetSingulationAlgorithmParameters Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetSingulationAlgorithmParameters ( ref RFID_18K6CGetSetSingulationAlgorithmParameters_T st_RfidSpReq_18K6CGetSingulationAlgorithmParameters); Parameters: [out] ref RFID_18K6CGetSetSingulationAlgorithmParameters_T st_RfidSpReq_18K6CGetSingulationAlgorithmParameters: . Message: RFID_REQEND_TYPE_MSGID_18K6CGetSingulationAlgorithmParameters notification. Description: This retrieves the settings for a particular singulation algorithm. f_RfidDev_18K6CSetQueryParameters Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CSetQueryParameters( ref RFID_18K6CSetQueryParameters_T st_RfidSpReq_18K6CSetQueryParameters); Parameters: [in] ref RFID_18K6CSetQueryParameters_T st_RfidSpReq_18K6CSetQueryParameters: . Message: RFID_REQEND_TYPE_MSGID_18K6CSetQueryParameters notification. Description: This configures the parameters for the ISO 18000-6C query command. Failure to call this prior to executing the first tag-protocol operation will result in the RFID radio module using default values. Currently, this has been deprecated and replaced by the combination of RFID_18K6CGetQueryTagGroup, RFID_18K6CSetCurrentSingulationAlgorithm, and RFID_18K6CSetSingulationAlgorithmParameters. This remains for backwards compatibility only; code should not use it as this function. f_RfidDev_18K6CGetQueryParameters Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CGetQueryParameters ( ref RFID_18K6CGetQueryParameters_T st_RfidSpReq_18K6CGetQueryParameters); Parameters: [out] ref RFID_18K6CGetQueryParameters_T st_RfidSpReq_18K6CGetQueryParameters: . Copyright © Convergence Systems Limited, All Rights Reserved 135 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Message: RFID_REQEND_TYPE_MSGID_18K6CGetQueryParameters notification. Description: This retrieves the query parameters for the ISO 18000-6C query command. The query parameters may not be retrieved while a radio module is executing a tag-protocol operation. Currently, this has been deprecated and replaced by the combination of RFID_18K6CGetQueryTagGroup, RFID_18K6CGetCurrentSingulationAlgorithm, and RFID_18K6CGetSingulationAlgorithmParameters. This remains for backwards compatibility only; code should not use it as this function. f_RfidDev_18K6CTagInventory Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CTagInventory( ref RFID_18K6CTagInventory_T st_RfidSpReq_18K6CTagInventory); Parameters: [in] ref RFID_18K6CTagInventory_T st_RfidSpReq_18K6CTagInventory: . Message: RFIDMW_REQEND_TYPE_MSGID_18K6CTagInventory notification. Description: This executes a tag inventory for the tags of interest. If the RFID_FLAG_PERFORM_SELECT flag is specified, the tag population is partitioned (i.e., ISO 18000-6C select) prior to the inventory operation. If the RFID_FLAG_PERFORM_POST_MATCH flag is specified, the post-singulation match mask is applied to a singulated tag's EPC to determine if the tag will be returned to the application. An application may prematurely stop an inventory operation by calling RFID_Radio{Cancel|Abort}Operation on another thread or by returning a non-zero value from the callback function.. f_RfidDev_18K6CTagRead Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CTagRead( ref RFID_18K6CTagRead_T st_RfidSpReq_18K6CTagRead); Parameters: [in] ref RFID_18K6CTagRead_T st_RfidSpReq_18K6CTagRead: . Message: RFIDMW_REQEND_TYPE_MSGID_18K6CTagRead notification. Description: This executes a tag read for the tags of interest. Copyright © Convergence Systems Limited, All Rights Reserved 136 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 If the RFID_FLAG_PERFORM_SELECT flag is specified, the tag population is partitioned (i.e., ISO 18000-6C select) prior to the tag-read operation. If the RFID_FLAG_PERFORM_POST_MATCH flag is specified, the post-singulation match mask is applied to a singulated tag's EPC to determine if the tag will be read from. Reads may only be performed on 16-bit word boundaries and for multiples of 16-bit words. If one or more of the memory words specified by the offset/count combination do not exist or are read-locked, the read from the tag will fail and this failure will be reported through the operation response packet. The operation-response packets will be returned to the application via the application-supplied callback function. Each tag-read record is grouped with its corresponding tag inventory record. An application may prematurely stop a read operation by calling RFID_Radio{Cancel|Abort} Operation. f_RfidDev_18K6CTagWrite Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CTagWrite( ref RFID_18K6CTagWrite_T st_RfidSpReq_18K6CTagWrite); Parameters: [in] ref RFID_18K6CTagWrite_T st_RfidSpReq_18K6CTagWrite: . Message: RFIDMW_REQEND_TYPE_MSGID_18K6CTagWrite notification. Description: This executes a tag write for the tags of interest. f_RfidDev_18K6CTagKill Prototype: public static extern HRESULT_RFID f_RfidDev_18K6CTagKill( ref RFID_18K6CTagKill_T st_RfidSpReq_18K6CTagKill); Parameters: [in] ref RFID_18K6CTagKill_T st_RfidSpReq_18K6CTagKill: . Message: RFIDMW_REQEND_TYPE_MSGID_18K6CTagKill notification. Description: This executes a tag kill for the tags of interest. f_RfidDev_18K6CTagLock Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 137 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 public static extern HRESULT_RFID f_RfidDev_18K6CTagLock( ref RFID_18K6CTagLock_T st_RfidSpReq_18K6CTagLock); Parameters: [in] ref RFID_18K6CTagLock_T st_RfidSpReq_18K6CTagLock: . Message: RFIDMW_REQEND_TYPE_MSGID_18K6CTagLock notification. Description: This executes a tag lock for the tags of interest. f_RfidDev_RadioSetResponseDataMode Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetResponseDataMode( ref RFID_RadioGetSetResponseDataMode_T st_RfidSpReq_RadioSetResponseDataMode); Parameters: [in] ref RFID_RadioGetSetResponseDataMode_T st_RfidSpReq_RadioSetResponseDataMode: . Message: RFIDMW_REQEND_TYPE_MSGID_RadioSetResponseDataMode notification. Description: This sets the operation response data reporting mode for tag-protocol operations. The reporting mode will remain in effect until a subsequent call to RFID_RadioSetResponseDataMode. The mode may not be changed while the radio is executing a tag-protocol operation.. f_RfidDev_RadioGetResponseDataMode Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetResponseDataMode( ref RFID_RadioGetSetResponseDataMode_T st_RfidSpReq_RadioGetResponseDataMode); Parameters: [out] ref RFID_RadioGetSetResponseDataMode_T st_RfidSpReq_RadioGetResponseDataMode:.. Message: RFIDMW_REQEND_TYPE_MSGID_RadioGetResponseDataMode notification. Description: This retrieves the operation response data reporting mode. f_RfidDev_MacGetVersion Prototype: public static extern HRESULT_RFID f_RfidDev_MacGetVersion( Copyright © Convergence Systems Limited, All Rights Reserved 138 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 ref RFID_MacGetVersion_T st_RfidSpReq_MacGetVersion);; Parameters: [in] ref RFID_MacGetVersion_T st_RfidSpReq_MacGetVersion: . Message: RFIDMW_REQEND_TYPE_MSGID_MacGetVersion notification. Description: This gets the version of the MAC. f_RfidDev_MacReadOemData Prototype: public static extern HRESULT_RFID f_RfidDev_MacReadOemData( ref RFID_MacReadWriteOemData_T st_RfidSpReq_MacReadOemData); Parameters: [in] ref RFID_MacReadWriteOemData_T st_RfidSpReq_MacReadOemData: . Message: RFIDMW_REQEND_TYPE_MSGID_MacReadOemData notification. Description: This reads one or more 32-bit words from the MAC's OEM configuration data. f_RfidDev_MacWriteOemData Prototype: public static extern HRESULT_RFID f_RfidDev_MacWriteOemData( ref RFID_MacReadWriteOemData_T st_RfidSpReq_MacWriteOemData); Parameters: [out] ref RFID_MacReadWriteOemData_T st_RfidSpReq_MacWriteOemData: . Message: RFIDMW_REQEND_TYPE_MSGID_MacWriteOemData notification. Description: This writes one or more 32-bit words to the MAC's OEM configuration data. f_RfidDev_MacReset Prototype: public static extern HRESULT_RFID f_RfidDev_MacReset( ref RFID_MacReset_T st_RfidSpReq_MacReset); Parameters: [in] ref RFID_MacReset_T st_RfidSpReq_MacReset. Message: RFIDMW_REQEND_TYPE_MSGID_MacReset notification. Copyright © Convergence Systems Limited, All Rights Reserved 139 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Description: This instructs the radio module's MAC firmware to perform the specified reset. Any currently executing tag-protocol operations will be aborted, any unconsumed data will be discarded, and tag-protocol operation functions will return immediately with an RFID_ERROR_OPERATION_CANCELLED error. Upon reset, the connection to the radio module is lost and the handle to the radio is invalid. To obtain control of the radio module after it has been reset, the application must re-enumerate the radio modules, via RFID_RetrieveAttachedRadiosList, and request control via RFID_RadioOpen.. f_RfidDev_MacClearError Prototype: public static extern HRESULT_RFID f_RfidDev_MacClearError( ref RFID_MacClearError_T st_RfidSpReq_MacClearError); Parameters: [in] ref RFID_MacClearError_T st_RfidSpReq_MacClearError: . Message: RFID_REQEND_TYPE_MSGID_MacClearError notification. Description: This attempts to clear the error state for the radio module’s MAC firmware. f_RfidDev_MacBypassWriteRegister Prototype: public static extern HRESULT_RFID f_RfidDev_MacBypassWriteRegister( ref RFID_MacBypassReadWriteRegister_T st_RfidSpReq_MacBypassWriteRegister); Parameters: [in] ref RFID_MacBypassReadWriteRegister_T st_RfidSpReq_MacBypassWriteRegister. Message: RFID_REQEND_TYPE_MSGID_MacBypassWriteRegister notification. Description: This allows for direct writing of registers on the radio (i.e. bypassing the MAC & take effect at the RF Front end immediately ). f_RfidDev_MacBypassReadRegister Prototype: public static extern HRESULT_RFID f_RfidDev_MacBypassReadRegister( ref RFID_MacBypassReadWriteRegister_T st_RfidSpReq_MacBypassReadRegister); Parameters: [out] ref RFID_MacBypassReadWriteRegister_T st_RfidSpReq_MacBypassReadRegister. Copyright © Convergence Systems Limited, All Rights Reserved 140 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Message: RFID_REQEND_TYPE_MSGID_MacBypassReadRegister notification. Description: This allows for direct reading of registers. f_RfidDev_MacSetRegion Prototype: public static extern HRESULT_RFID f_RfidDev_MacSetRegion( ref RFID_MacGetSetRegion_T st_RfidSpReq_MacSetRegion); Parameters: [in] ref RFID_MacGetSetRegion_T st_RfidSpReq_MacSetRegion: . Message: RFID_REQEND_TYPE_MSGID_MacSetRegion notification. Description: This sets the regulatory mode region for the MAC's operation. f_RfidDev_MacGetRegion Prototype: public static extern HRESULT_RFID f_RfidDev_MacGetRegion( ref RFID_MacGetSetRegion_T st_RfidSpReq_MacGetRegion); Parameters: [out] ref RFID_MacGetSetRegion_T st_RfidSpReq_MacGetRegion: . Message: RFID_REQEND_TYPE_MSGID_MacGetRegion notification. Description: This gets the regulatory mode region for the MAC's operation. f_RfidDev_RadioSetGpioPinsConfiguration Prototype: public static extern HRESULT_RFID f_RfidDev_RadioSetGpioPinsConfiguration( ref RFID_RadioSetGpioPinsConfiguration_T st_RfidSpReq_RadioSetGpioPinsConfiguration); Parameters: [in] ref RFID_RadioSetGpioPinsConfiguration_T st_RfidSpReq_RadioSetGpioPinsConfiguration: . Message: RFID_REQEND_TYPE_MSGID_RadioSetGpioPinsConfiguration notification. Description: This configures the specified radio module's GPIO pins. GPIO pins 0-3 are valid.. Copyright © Convergence Systems Limited, All Rights Reserved 141 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 f_RfidDev_RadioGetGpioPinsConfiguration Prototype: public static extern HRESULT_RFID f_RfidDev_RadioGetGpioPinsConfiguration( ref RFID_RadioGetGpioPinsConfiguration_T st_RfidSpReq_RadioGetGpioPinsConfiguration); Parameters: [out] ref RFID_RadioGetGpioPinsConfiguration_T st_RfidSpReq_RadioGetGpioPinsConfiguration. Message: RFID_REQEND_TYPE_MSGID_RadioGetGpioPinsConfiguration notification. Description: This retrieves the configuration for the radio module's GPIO pins. f_RfidDev_RadioReadGpioPins Prototype: public static extern HRESULT_RFID f_RfidDev_RadioReadGpioPins( ref RFID_RadioReadWriteGpioPins_T st_RfidSpReq_RadioReadGpioPins); Parameters: [out] ref RFID_RadioReadWriteGpioPins_T st_RfidSpReq_RadioReadGpioPins. Message: RFID_REQEND_TYPE_MSGID_RadioReadGpioPins notification. Description: This reads the specified radio module's GPIO pins. Attempting to read from an output GPIO pin results in an error. f_RfidDev_RadioWriteGpioPins Prototype: public static extern HRESULT_RFID f_RfidDev_RadioWriteGpioPins( ref RFID_RadioReadWriteGpioPins_T st_RfidSpReq_RadioWriteGpioPins); Parameters: [in] ref RFID_RadioReadWriteGpioPins_T st_RfidSpReq_RadioWriteGpioPins. Message: RFID_REQEND_TYPE_MSGID_RadioWriteGpioPins notification. Description: This writes the specified radio module's GPIO pins. Attempting to write to an input GPIO pin results in an error. f_RfidDev_MacEmulationConfigure f_RfidDev_RadioIssueCommand Copyright © Convergence Systems Limited, All Rights Reserved 142 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public static extern HRESULT_RFID f_RfidDev_RadioIssueCommand ( ref RFID_RadioIssueCommand_T st_RfidSpReq_RadioIssueCommand); Parameters: [in] ref RFID_RadioIssueCommand_T st_RfidSpReq_RadioIssueCommand. Message: RFID_REQEND_TYPE_MSGID_ notification. Description: This issues a radio command. Application needs to process the resulting message packet and verify if the command was success. f_RfidDev_RadioCancelOperation Prototype: public static extern HRESULT_RFID f_RfidDev_RadioCancelOperation( ref RFID_RadioCancelOperation_T st_RfidSpReq_RadioCancelOperation ); Parameters: [in] ref RFID_RadioCancelOperation_T st_RfidSpReq_RadioCancelOperation: . Message: RFID_REQEND_TYPE_MSGID_RadioCancelOperation notification. Description: This cancels the current RfidSp tag.operation. RfidSp will return after all the pending message for the current operations are sent to the application. f_RfidDev_RadioAbortOperation Prototype: public static extern HRESULT_RFID f_RfidDev_RadioAbortOperation( ref RFID_RadioAbortOperation_T st_RfidSpReq_RadioAbortOperation ); Parameters: [in] ref RFID_RadioAbortOperation_T st_RfidSpReq_RadioAbortOperation: . Message: RFID_REQEND_TYPE_MSGID_RadioAbortOperation notification. Description: This aborts the current RfidSp tag.operation. RfidSp will return quickly. PosSp: Overview: PosSp is a C# class in the PosSp_Apis class library. It provides a managed interface to the C# application to access the pda specific peripherals Copyright © Convergence Systems Limited, All Rights Reserved 143 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 synchronously. C# namespace: PosSp_Apis . Dependencies: Program Files\W_PosSp.dll; Type Definitions: Not needed. Enumerations: PosSp_Apis.BUZZER_SOUND Prototype: public enum BUZZER_SOUND : uint { BUZZER_LOW_SOUND, BUZZER_MIDDLE_SOUND, BUZZER_HIGH_SOUND }; Description: This is the volume of the buzzer on pda. Macros: Not needed. Function Definitions: f_PosSp_Initialize Prototype: public static extern int f_PosSp_Initialize(); Parameters: None. Description: Initialization of the POS SP library at the caller thread. f_PosSp_Uninitialize Prototype: public static extern int f_PosSp_Uninitialize(); Parameters: None. Description: Copyright © Convergence Systems Limited, All Rights Reserved 144 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Un-initialized the POS SP & free all resources.. f_PosSp_GetDeviceName Prototype: public static extern void f_PosSp_GetDeviceName(string DeviceName); . Parameters: [out] DeviceName: the device name in WinCE registry. This name can be changed in the “control_panel/system/” Description: This gets the DeviceNane of the WinCE from the Registry. f_PosSp_LedSetOn Prototype: public static extern bool f_PosSp_LedSetOn(uint Color); Parameters: Color: 32bits COLORREF in the format of 0x00bbggrr (bb=blue, gg=green, rr=red color byte). Description: This turns on the Led. f_PosSp_LedBlink Prototype: public static extern bool f_PosSp_LedBlink(uint colorRGB, short Period, short OnTime); Parameters: colorRGB: 32bits COLORREF in the format of 0x00bbggrr. Period: repetition interval [ms]. OnTime: duration of lights-on time in each interval [ms]. Description: This blinks the Led at maximum brightness. f_PosSp_LedSetOff Prototype: public static extern void f_PosSp_LedSetOff(); Parameters: None. Description: This turns off the Led. f_PosSp_ToneOn Copyright © Convergence Systems Limited, All Rights Reserved 145 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public static extern void f_PosSp_ToneOn(short freq, short Duration, uint SoundLevel); Parameters: freq: frequency of the tone [Hz].. Duration: duration [ms] SoundLevel: one of the value in BUZZER_SOUND enumeration. Description: This plays a tone at the given frequency, for the given duration. at the buzzer. f_PosSp_ToneOff Prototype: public static extern void f_PosSp_ToneOff();. Parameters: None. Description: This stops a playing tone. f_PosSp_MelodyPlay Prototype: public static extern void f_PosSp_MelodyPlay(int ToneID, short Duration, uint SoundLevel); Parameters: ToneID: 0-4 Duration: duration [ms] SoundLevel: one of the value in BUZZER_SOUND enumeration. Description: This plays 1 of the 5 predefined melody for the given duration. at the buzzer. f_PosSp_MelodyStop Prototype: public static extern void f_PosSp_MelodyStop(); Parameters: None. Description: This stops a playing melody. f_PosSp_WiFiPoweron Prototype: public static extern bool f_PosSp_WiFiPoweron(); Copyright © Convergence Systems Limited, All Rights Reserved 146 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Parameters: None. Description: This powers up the WiFi device. f_PosSp_WiFiPowerdown Prototype: public static extern bool f_PosSp_WiFiPowerdown(); Parameters: None. Description: This powers down the WiFi device. f_PosSp_WiFiReset Prototype: public static extern bool f_PosSp_WiFiReset(); Parameters: None. Description: This resets the WiFi device. f_PosSp_GpioIni Prototype: public static extern bool f_PosSp_GpioIni(); Parameters: None. Description: This initializes the 4 GPIOs & set them to HI. f_PosSp_GpioUnini Prototype: public static extern bool f_PosSp_GpioUnini(); Parameters: None. Description: This un-initializes the 4 GPIOs. f_PosSp_GpioSetIo Copyright © Convergence Systems Limited, All Rights Reserved 147 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Prototype: public static extern bool f_PosSp_GpioSetIo(int iGpio ); Parameters: iGpio: Set the GPIOs ( 0-3) to HI. Description: Set the IO of Gpio 0--3. f_PosSp_GpioWrite Prototype: public static extern bool f_PosSp_GpioWrite(int iGpio, char iState); Parameters: iGpio: index of GPIOs. Valid values are 0 to 3. iState: the state (1==HI or 0==LO to be written. Description: This writes HI or LO state to a GPIO. f_PosSp_GpioRead Prototype: public static extern bool f_PosSp_GpioRead( int iGpio, ref char piState); Parameters: iGpio: index of GPIOs. Valid values are 0 to 3. piState the state (1==HI or 0==LO to be read. Description: This reads the current state of a GPIO. ClsSysUtil: Overview: This is a C# class in the ClslibSysUtil library. It provides the C# managed interface for some OS utilities. C# namespace: ClslibSysutil . Dependencies: coredll.dll; iphlpapi.dll; Type Definitions: LMEM_ZEROINIT. Prototype: Copyright © Convergence Systems Limited, All Rights Reserved 148 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 const int LMEM_ZEROINIT = 0x40;. Description: Equivalent to the LMEM_ZEROINIT flag in WinCE Structures: None. Macros: None. Function Definitions: f_LaunchBlockingApp Prototype: public static void f_LaunchBlockingApp(string strPath, string strParms) Parameters: strPath: path and executable filename strParms: .paramter list Description: This lauch a blockiong App Launch in a new process f_Ping Prototype: public static int f_Ping(string addr,ulong udCount, ref string strResult). Parameters: addr: IP address of the destination. udCount: number of ping packets. strResult: the ping response text. Description: This pings an (url or ip) address using ICMP ipv4 packets Copyright © Convergence Systems Limited, All Rights Reserved 149 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 PInvoke lib The pda also uses some of the generic (non OEM driver specific) APIs from Microsoft PInvoke sample library (2004) High-Level Design of some Sample Applications: TestGslSdk: Introduction: TestGslSdk let the user to experience some of the IO & system devices available on the WinCE platform. TestGslSdk is a simple C# application; it can: turn on/off the on-board LED. play a tone (single-tone-generation) or a build-in melody at a given volume & duration. start, restart, stop the WiFi device. get the IPAddress from DNS, ping a remote server. get the current battery level. control 4 GPIOs. control ( set options, open, send data, receive data, close) the 2 serial port. TestGslSdk can be enhanced to a system testing application for field-test, in-factory QA purpose. Known Limitations: Power notifications cannot be used on this platform, use polling instead. High-Level Callfow: Results: Unit test passed.. Issues & Suggested Solution: Nil. Copyright © Convergence Systems Limited, All Rights Reserved 150 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Appendix: Native Code Interoperability: Reset Suspend/Pda Overview: C# to C++ Interoperability is done by using DllImport (see msdn) This sample shows how to reset / suspend the pda Interface Definition: Dependencies: Coredll.dll Function Definitions: GwesPowerOffSystem: Prototype: public extern static void GwesPowerOffSystem(); Description: This suspends CS101’s pda. ResetPocketPC: Prototype: public uint ResetPocketPC() Description: This resets CS101’s pda using standard KernelIoCtrl Procedure Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace CsDevReset public partial class Form1 : Form public Form1() InitializeComponent(); Copyright © Convergence Systems Limited, All Rights Reserved 151 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 ResetDevice(); //////////////////////////////////////////////////////////////////////////////////// public const uint FILE_DEVICE_HAL = 0x00000101; public const uint METHOD_BUFFERED = 0; public const uint FILE_ANY_ACCESS = 0; [DllImport("Coredll.dll")] public extern static uint KernelIoControl uint dwIoControlCode, IntPtr lpInBuf, uint nInBufSize, IntPtr lpOutBuf, uint nOutBufSize, ref uint lpBytesReturned ); //void GwesPowerOffSystem(void); //This API is OEM implementation dependent [DllImport("Coredll.dll")] // a suspend operation on GslPos pda public extern static void GwesPowerOffSystem(); public uint ResetPocketPC() { /// KernelIo may be called by CF .NET only. uint bytesReturned = 0; uint IOCTL_HAL_REBOOT = CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS); return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned); private void ResetDevice() DialogResult r = MessageBox.Show( "Execute reset(Yes) or PowerDown(No)?", "Test", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2 ); if (r == DialogResult.Yes) ResetPocketPC(); }else{ GwesPowerOffSystem(); Copyright © Convergence Systems Limited, All Rights Reserved 152 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Copyright © Convergence Systems Limited, All Rights Reserved 153 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Copyright © Convergence Systems Limited, All Rights Reserved 154 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.4 USER'S MANUAL, VERSION 1.0 Application Scenarios with Program Source Codes Additional application scenarios with program source codes will be supplied and included here in future versions of user manuals. Copyright © Convergence Systems Limited, All Rights Reserved 155 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.5 USER'S MANUAL, VERSION 1.0 Unit Tests Basic unit tests for performance tuning will be added and included here in future versions of user manuals. Copyright © Convergence Systems Limited, All Rights Reserved 156 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.6 USER'S MANUAL, VERSION 1.0 Build Environment The build environment consists of tools and the corresponding configurations of the Visual Studio. Details will be added and included here in future versions of the user manuals. Copyright © Convergence Systems Limited, All Rights Reserved 157 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 7.7 Debug Methods 7.7.1 Log File The log file provides an important method to track problems. and sent to CSL support team asap if any bug is encountered. 7.7.2 USER'S MANUAL, VERSION 1.0 The log file should be captured Error Message List The list of error messages that can be seen on the screen will be listed and included here in future versions. Copyright © Convergence Systems Limited, All Rights Reserved 158 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 PC Side Demo Programs 8.1 Introduction 8.2 Database Files Manipulation Demo There is a Windows-based program to help manipulate data collected from the handheld reader. 8.2.1 Installing Demo Program Please make sure the demo program version is compatible with the firmware version of reader. Refer to the file “compatibility matrix.xls” for the compatibility of demo program and reader firmware. Please make sure “Microsoft .NET Framework Version 2.0 Redistributable Package” is installed before using the demo program. Normally, the executed file of demo program is archived as RAR or ZIP file. The archived file is distributed through email, ftp server or website. Please extract the demo program to a directory (e.g. “C:\CS101-2DEMO\”). Then, run the demo program from the installed directory. 8.2.2 Using Demo Program Run the demo program from installed directory. More details will be included in future versions of the user manual. Copyright © Convergence Systems Limited, All Rights Reserved 159 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER Usage Tips for CS101-2 9.1 Introduction USER'S MANUAL, VERSION 1.0 The objective of this chapter is to recommend the best practices of using the CSL CS101-2 Reader. The following areas will be covered in this document General usage Write tag Event and alert System 9.2 General Tips This will be added in future version of user manual. 9.3 System Tips This will be added in future version of user manual. 9.4 Write Tag Tips This will be added in future version of user manual. Copyright © Convergence Systems Limited, All Rights Reserved 160 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 10 RFID Cookbook 10.1 Introduction USER'S MANUAL, VERSION 1.0 RFID (radio frequency identification) is a wireless means to obtain a unique ID that can identify a product (similar to barcode that however requires optical line of sight). Since 2004, it was applied by companies in USA and Europe successfully to various business processes and brought major cost benefits. Because of the success of these early adopters, such as Walmart (USA) and Mark & Spencer (Europe), there is a growing trend throughout the world to replace barcode (or augment) with RFID. The advantages of RFID over barcode are widely publicized, consisting of the following: Features RFID Barcode Line of Sight Line of sight is not required Must be line-of-sight visible – items must be tediously separated out for reading, very inconvenient Storage Store data up to 1 Kbyte No storage capability Anti-Counterfeit Ability Hard to counterfeit, hard to Easy to counterfeit, always exposed find (can be stowed inside outside and therefore easy to copy item) Processing Speed Automatic processing possible Processing has to be manual in most at very high speed cases, with very low speed and throughput Bulk Reading Many tags can be read at the Must be read sequentially same time – virtually parallel reading Durability Durable, usually safely stowed Easily scratched, wrinkled or wetted inside item. beyond reading. Copyright © Convergence Systems Limited, All Rights Reserved 161 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID can be applied with the following purposes: 1. 2. 3. 4. Supply chain optimization Asset tracking Inventory control etc. Benefits of RFID include: 1. 2. 3. 4. 5. 6. Increase supply chain velocity Reduce human involvement (cost, error, hiring cycle and other issues) Enhanced visibility (tracking, scheduling, planning) Enhanced security (total visibility monitoring, zonal tracking) Real time supply chain re-route (dynamic multi-destination fulfillment) etc. Physical locations where RFID can be applied include: 1. 2. 3. 4. 5. 6. 7. Distribution centers Warehouses Shelves Warehouse Loading/Unloading Zone (Yard Management) Retail shops in conjunction with fulfillment center Returns & warranty processing office Vehicle windshields etc. It is widely believed that the adoption of RFID will happen in the following sequence in terms of company category: 1. 2. 3. 4. Mandate affected units (suppliers to Walmart, DoD, etc.) High value products Fast moving assets etc. The application of RFID to a company or a group of companies in a supply chain has to be executed systematically and methodically. The following is a flowchart that describes a typical application process: Copyright © Convergence Systems Limited, All Rights Reserved 162 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Initial Customer Interests, RFI or RFQ Business Process Analysis Technology Selection Customer Expectation Management Hardware Configuration Software Configuration System Integration Pilot Test Optimization Customization Training Test & Commissioning Maintenance & Statistics Copyright © Convergence Systems Limited, All Rights Reserved 163 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 10.2 USER'S MANUAL, VERSION 1.0 Application Details 10.2.1 Business Process Analysis The business process of the customer must be analyzed carefully to find places where the RFID tagging and reading can occur. The system integrator may be applying RFID to the whole process or may only be able to apply RFID to part of the process. The most important principle is NOT to force change the business process to adapt for RFID implementation, but to have RFID implementation slip in as effortlessly and as un-noticeably as possible. Business Nature? Business Process Mapping Identify stakeholders, their requirements and their wish lists. Apply RFID to Whole/Part of Process? Closed Loop or Open Loop? Mandate Satisfaction Only? ROI Expected? ROI Analysis Intangible Return Analysis Copyright © Convergence Systems Limited, All Rights Reserved 164 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 RFID Project Goals Definition & Agreement with All Stakeholders Initial Feasibility Planning of Applying RFID to Business Tagging Required? Types of tags? Tagging Throughput Requirements Tagging Quality Requirements Tag Lifetime Requirement Writing Data onto Tag Required? Correlation with Barcode on Tagging? Real time & Time Critical Data Processing & Use? Mobile or Stationary Target? Density of Tags? No./pallet? Velocity of Tags? Meters/sec? Yield Requirement? Copyright © Convergence Systems Limited, All Rights Reserved 165 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Typical Read Range Requirement Number of Nodes? Node-to-node Separation Distances? Sensor Fusion Possibilities/Requirements Control Automation Requirements Detailed Feasibility Planning of Applying RFID to Business Throughput Estimation Data Networking Requirements Network Traffic Estimation Redundancy Requirements Fault Tolerance Requirements Maintenance Requirements Backup Requirements Monitoring Requirements Copyright © Convergence Systems Limited, All Rights Reserved 166 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.2 Technology Selection Once the points where the business process allows for RFID implementation is found, the most appropriate technology must be chosen for the job. The following are questions to help you choose the appropriate technology: Active or Passive RFID Technology? Air Protocol: EPC, iPX, ISO18000-7? Antenna-Tag Interaction Scheme: backscatter, bistatic? Antenna: single/dual antenna box, 1, 2, 3, or more pairs? Tag: size, form factor, single/dual antenna, material Capture Mode: Windowed, Total Visibility, Cumulative Frequency Setting for Compliance Networking Option: wired or wireless Copyright © Convergence Systems Limited, All Rights Reserved 167 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.3 Customer Expectation Management Customer expectation must be well managed. It is the job of the system integrator, particularly the sales person, to warn the customer away from expecting perfect scores. The truth is, even if 100% read is not achieved, the user can still benefit (in the sense of ROI, efficiency, lead time, cycle time, etc.) to a substantial extent. It is this extent that should be considered as the result, not a 100% score. It is almost like getting married to a man or woman – you will never find the perfect half, but even if she or he is not perfect, you still get to enjoy from the marriage. Yield Expectation Managed? Implementation Process & Time Expectation Managed? Cost Expectation Managed? Maintenance Response Time Expectation Managed? Copyright © Convergence Systems Limited, All Rights Reserved 168 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.4 Hardware Configuration Hardware configuration consists of designing and defining what reader, antenna and tag combination will be implemented at each of the nodes in the business process. It is not a pure drawing board exercise, as some kind of minimally realistic testing must be implemented even at this stage to help better define the hardware configuration that in turn can give more insight for software configuration and system integration. Reader 2D Floor Plan Placement Reader-Antenna Grouping Design Initial Tag Selection Antenna 2D Floor Plan Placement Antenna 3D Alignment Antenna-Tag Separation Design Antenna Isolation Measurement/Estimation Static Tag Collection Statistics Dynamic Tag Collection Statistics Mounting structures ergonomics Configuration Review & Redesign Copyright © Convergence Systems Limited, All Rights Reserved 169 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.5 Software Configuration Software configuration of the reader is very important – it ensures the reader will operate exactly as the business process requires, not more or not less. The following page has a flowchart that the system integrator needs to go through in order to set up the software. The first step is to configure the users parameter, such as operator name, ID, password, etc. The second step is to configure the networking parameters, such as IP addresses, access point SSID, etc. The third step is to configure system parameters, such as reader ID, frequency setting, tag baud rate, capture mode, etc. The third step is to configure time and time filter, such as system date and time (hour, minute and second), time filter (define various time intervals, time slots, repeat modes), etc. The fourth step is to configure capture point, such as capture point type, capture point area, capture point details. The fifth step is to configure IO, such as sensor input name, control output name, default positions, etc. The sixth step is to configure tag and tag filtering, such as tag group, tag filter, etc. The seventh step is to configure audio and video, such as audio messages and video messages resident path (remote or local). The eighth step is to configure event, such as triggering logic, resultant action, event sequencing, etc. The ninth step is to configure database, such as database fields, etc. The tenth step is to configure report, such as report definition, etc. The eleventh step is to configure statistics, such as parameters for long term monitoring, etc. The twelfth step is to back up the set up into a standard configuration set up file. Copyright © Convergence Systems Limited, All Rights Reserved 170 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Users Management Set Up Network Configuration Set Up System Configuration Set Up Time & Time Filter Set Up Capture Point Set Up IO Set Up Tag & Tag Filter Set Up Audio & Video Set Up Event Set Up Database Set Up Report Set Up Statistics Set Up Overall Configuration Backup Copyright © Convergence Systems Limited, All Rights Reserved 171 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.6 System Integration The actual system integration should most desirably be carried out in two steps: 1. in house integration and test; 2. onsite integration and test. System Blocks Diagram Data Flow Map Physical Blocks Architecture Network Connections Map Hardware Units Preparation Sensors or Input Simulators connect Output or Output Simulators connect Backend server & plug-ins boot up Connection and Function Test Tagged Operation Test Performance Metrics Logging Re-configuration & redesign Copyright © Convergence Systems Limited, All Rights Reserved 172 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.7 Pilot Test Pilot test must of course be done on site. The unique building infrastructure and environment of the end-customer venue can result in dramatically different performance (worse, usually) scores compared to that in the system integrator’s own office. Therefore pilot test must be done on site. The system integrator, when testing the set up in end-customer’s venue, should endeavor to put the set up directly at the position that it plans to be, or in a place that most closely resembles that of the final site. If the site does not run round-the-clock shifts, then it is OK to do the initial testing when it is off-shift and temporarily clearing up the site for testing (if something is in the way). Eventually when good enough results are obtained through tuning and optimization in off-shift time, then the testing should be conducted in the actual shift when the operation will happen in the future. The emphasis on having the environment as real and true as possible is due to the fact that wireless emission is a very site specific and dynamic event. The propagation and scattering behavior is different from site to site. The noise floor can be different in the day and in the night. There is no pilot test better than doing it right at the spot and right at that time. The following are basic steps for pilot testing (please also refer to next section of optimization): Copyright © Convergence Systems Limited, All Rights Reserved 173 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Define goals and metrics Set up RFID system as realistic as possible Set up tags target as realistic as possible Track behavior of system all the way Photo/video record as much as possible Measure site-specific parameters Test and optimize RFID operations * See next section Burn-in system for extended time for reliability Check Mounting Structures for Potential Collisions Check network traffic is within limits. Do overload tests Check user satisfaction on interface friendliness, reaction time, etc. Copyright © Convergence Systems Limited, All Rights Reserved 174 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.8 Optimization Optimization of the performance of the RFID application in business processes is the most difficult step. It is in this step where the variation of performance caused by the law of physics has to be tackled. The following are a few questions that may help. However, due to the unfortunate fact that RFID application involves too many topics: RF transmitter circuits, antennas, propagation (static and dynamic), scattering (backscatter and bistatic scattering), RF receiving circuits, software (all layers), it is not an easy task to give a “10 steps to successful RFID implementation” rule based implementation guideline that works in all environment! Use real time interface to optimize Optimize capture point time slotting Optimize antenna placement Optimize number of antennas Optimize power levels Optimize frequency channels Optimize hopping sequences Optimize tag types Optimize tag sizes Optimize tagging process & methods Copyright © Convergence Systems Limited, All Rights Reserved 175 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.9 Customization Customization is the step that comes out of optimization. If, after intense optimization, the performance still is not acceptable (or the customer will not accept a lowering of their performance expectation), then some customization may be necessary. The following are just a few possibilities and suggestions for customization. Note that these customizations require the cooperation of the solution provider (i.e. the manufacturer of the products). Very few solution providers are willing to do this without good business justification, though. Antenna Transmitting Pattern Antenna Receiving Pattern Antenna Polarization Tag Polarization Tag Parasitic Attachment Tag Antenna Design Tag Size Tag Transponding Pattern Copyright © Convergence Systems Limited, All Rights Reserved 176 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.10Training Training is an extremely important step where the operators of the RFID system in the end-customer company must be taught the basics of the operation, plus the necessary tricks in day-to-day trouble shooting and fault isolation – up to a certain extent, of course. Train overall architecture Train on-board user-interface Train browser based interface Train upgrading methods Train common problems handling Train debugging Train material handling methods Train environmental effects Copyright © Convergence Systems Limited, All Rights Reserved 177 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.11Test & Commissioning Test and commissioning is an important step to allow customer to verify the performance achieved, and formally approve the system to enter operational status. The most important part of test and commissioning is of course a mutually agreed test plan and commissioning criteria. The experienced system integrator can probably propose this test and commissioning plan early in the project. This is particularly valid if the system integrator has done similar jobs before. However, sometimes a T&C document too early in the way will make it very difficult to accommodate for surprisingly low performances due to some uncontrollable environmental or business process related factors. So really it is at the system integrator’s own discretion and wisdom when it should best be proposed. Final Full Scale Installation On Site Full Scale Tag Issuing & Correlation Testing & Verification Pre-commission Training Revision Commissioning Round #1 Intermission Period Independently Handled by Customer Commissioning Round #2 Further Tuning Final Acceptance & Transfer Copyright © Convergence Systems Limited, All Rights Reserved 178 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 10.2.12Maintenance & Statistics Maintenance of the RFID system is important. It includes preventive maintenance, collection and analysis of statistics of operation, etc. Track all environmental parameters Track all tag collection statistics Track CRC error statistics Track network efficiency statistics Visual check all equipment Track all cables wear and tear Occasional/Regular Reboot Copyright © Convergence Systems Limited, All Rights Reserved 179 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 10.3 USER'S MANUAL, VERSION 1.0 Readers for Different Business Applications For different business applications, one should use the appropriate corresponding readers, such as multiport fixed reader, integrated reader, handheld reader, embedded reader module, etc. Copyright © Convergence Systems Limited, All Rights Reserved 180 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 10.4 USER'S MANUAL, VERSION 1.0 Antennas for Different Business Applications Various antennas have been designed and optimized for different business processes, such as dock door, ware house, access control, and item level tracking. Products Part Number Photo Business Application Antenna (Mono-static area or zonal antenna, long range) CS-771-LHCP CS-771-RHCP Logistics Warehouse management Distribution center Transportation management Asset management Baggage management Antenna (Monostatic access control antenna) CS-713 Access control Human & animal tracking Antenna (Brickyard near-field antenna) CS-777 Retail shop POS Document management Blood bag management Pharmaceutical bottle tracking Copyright © Convergence Systems Limited, All Rights Reserved 181 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 11 RFID Best Practices 11.1 Introduction USER'S MANUAL, VERSION 1.0 System integration of RFID operation is not a simple task. It involves processes such as software configuration, hardware setting, pilot testing, scaling, and more. A good integration is a crucial step to ensure successful ROI for the RFID investment. Improper integration process could affect the system performance as well as functionality. This section describes the best practice for system integrator to familiarize and integrate with an RFID reader, from getting the reader out of the box to deploying the system in production environment. The following flowcharts show the typical familiarization and integration process of CSL CS101-2reader. They represent what a typical system integrator will go through when they adopt the CS101-2technology. By following the path described, the system integrator can quickly deploy CS101-2and earn revenue within a very short period. 1. Familiarization Process Familiarizing with Browser Interface Familiarizing with Programming Interface Full Scale Programming and Integration Reader Capability Envelope Discovery Copyright © Convergence Systems Limited, All Rights Reserved 182 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 2. Integration Process Use Cases and Requirement Gathering Draft Solution and In-House Testing API Programming Pilot Testing Middleware Testing Finalizing Solution Scaling Copyright © Convergence Systems Limited, All Rights Reserved 183 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 11.2 USER'S MANUAL, VERSION 1.0 Integration Process Details 11.2.1 Familiarization Process 11.2.1.1 Familiarizing with Browser Interface The CSL CS-461 reader comes with a browser interface. Once the reader is connected to the network, it can be accessed from any PC via the Internet Explorer browser. The browser interface allows configuration of reader in a convenient and user-friendly way. The browser interface also allows quick testing of the reader functionalities, including read tag, write tag and kill tag, with and without halt filter, and also for various Gen 2 profiles. Thus, it is an excellent starting point to get familiar with the reader’s features in a relatively short period of time. In other words, browser interface allows and enables a good out-of-box experience for the user, even if he/she is a layman in the area of RFID. With the browser interface, system integrators can try to configure the reader by setting up the operation profile, trigger, action and event. By collecting read tags result under various configurations, system integrators can experience the behavior and characteristics of the reader. For details of the usage of browser interface, please refer to chapter 6. 11.2.1.2 Familiarizing with Programming Interface The CSL CS101-2reader provides two sets of Application Programming Interfaces (API). One is the High Level API which utilizes HTTP protocol and TCP connection for request/response and notification respectively. The other one is the Low Level API which utilizes TCP connection solely. The High Level API provides features such as event engine, machine automation, etc. Before starting to program the reader, system integrators are recommended to go through the sample codes which are available for download in CSL web site. The sample codes allow ones to learn how to program the reader in a correct and effective way. The example program flow, API request making and result processing give a general idea of how to interface with the reader. Sample codes of the following demonstrations utilizing the High Level API are described in chapter: Access Control Copyright © Convergence Systems Limited, All Rights Reserved 184 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Conveyor Belt Gambling 11.2.1.3 Full Scale Programming and Integration Full scale programming allows one to fully control the reader and receive data from the reader with the final goal of integrating the reader with existing business processes, operations and business intelligence software of the customer, such as middleware, ERP system, database, etc. Every system integrator has his own favorite such program, either developed by themselves or based on platforms available from the market, such as Websphere, Weblogic, Biztalk, SensorEdge, RFIDAnywhere, SAP, Oracle, DB2, Sybase, etc. Once the system integrator passes through the two initial stages of experimenting with the browser interface and the programming interface, he/she needs to start looking at what subset of API calls are needed to enable RFID use in his/her typical customers’ business environment. The complete library is rather large (CS101-2API library is rich and flexible, and for initial customers may be not all commands are needed), and . The API includes a number of commands with different parameters. When programming the reader, one should understand clearly the command’s usage, effect and the meaning of each parameter since they affect the reader performance directly. One example is the set operation profile command. The parameter “duplicateEliminationTime” is the time interval in which duplicate tags will be eliminated such that the same tag would not be reported repeatedly during that time interval. It should be set according to situation. Large value of this parameter does not introduce latency since tag is still reported to trusted server once it is read if the action mode is configured to “Instant Alert to Server”. However, unnecessarily small value would increase the reader loading and network traffic. In the worst scenario, if this value is set to minimum (i.e. 0.5s) and all four antennas are enabled, note that 0.5s is not enough for the reader to switch over all four antennas for the reading operation, as a result, some tags may be lost. 11.2.1.4 Reader Capability Envelope Discovery Once full scale programming is started, the user needs to map out the full “flight envelope” of the reader. Important parameters to figure out includes response time, maximum API sending rate, necessary and optimal combinations and sequences of API to achieve different states of Copyright © Convergence Systems Limited, All Rights Reserved 185 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 the machines, fastest possible read and/or best possible yields for various profile combinations, etc. Once the capability envelope is discovered, the system integrator can then work on business projects knowing what the reader is capable of doing and knowing the projects are not requiring the reader to do something it cannot handle. Copyright © Convergence Systems Limited, All Rights Reserved 186 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 11.2.2 Integration Process 11.2.2.1 Use Cases and Requirements Gathering Before starting the development process, system integrators should fully understand the requirements from customer, such as the throughput requirement, latency requirement, bandwidth requirement. etc, that are specific to the reader. Besides, they could document the use cases which will help in decision making later on in the development process. 11.2.2.2 Draft Solution and In-House Testing Once the requirements are gathered and use cases are defined, system integrators can develop a draft solution. Draft solution means that it is subjected to final adjustment or tuning after pilot testing. In-house testing allows system integrators to test the feasibility of the solution before deploying to customer’s site. 11.2.2.3 API Programming The API Programming process here is different from the one in Familiarization Process. In Familiarization Process, system integrators should familiar with the configurations and functioning modes of the reader by using the API. In System Integration Process, they should determine and focus on the configurations and functioning modes to be used in the solution to fulfill user requirements. 11.2.2.4 Pilot Testing RFID system is greatly affected by environmental factors. For example, background RF noise and metallic object around may affect the read range of antenna dramatically. The same RFID system may function well in the system integrator’s own office but fail in end-customer’s site. Therefore system integrators should conduct on-site pilot testing. During the on-site pilot testing, system integrators should tackle the site-specific problems that affect the RFID system. For example, if there is metallic object around, position of the antenna Copyright © Convergence Systems Limited, All Rights Reserved 187 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 should be adjusted to overcome the effect of it. Apart from system settings, RFID tags should be tested as well. System integrators should select suitable tags to cater the business requirement. For example, 3D tag can be read from all directions, but it is less sensitive and large in size. Regular tag has better sensitivity but the read result is highly affected by orientation of the tag. Some problems may not appear instantly, but only after the system running continuously for hours or days. To identify such problems, long time burn-in testing is required. If any problem related to the reader is found, the system integrator could send a bug report with reader settings, antenna setup and site-specific factors to CSL for troubleshooting. 11.2.2.5 Middleware Testing Usually, a middleware is used between the reader and enterprise application. It plays an important role in the integration of reader and therefore it must be fully tested as well. CSL provides service for such testing. System integrators can give the executable of the middleware to CSL for long term testing to ensure that the middleware is free of problem after running continuously. Moreover, all API calls requested by the middleware are logged in the reader which allows CSL to analyst the cause of problem if there is any. 11.2.2.6 Finalizing Solution The finalized solution should tackle all of the problems found in pilot test and fine tune the solution if necessary. Then it is ready for production running. 11.2.2.7 Scaling Scaling process should be done after the system is tested to be stable. Moreover, scaling gradually at the end-customer site (if end-customer permits, of course) can reduce the chance of system failure due to overloading. For a large scale RFID system that involves hundred of readers, the system integrators should pay attention to the followings: 1. Readers that are close to each other are recommended to use Profile 2 or 3 of Modulation Profile. It allows the readers to work in dense reader mode such that jamming could be Copyright © Convergence Systems Limited, All Rights Reserved 188 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 avoided. Remember to select different session numbers for readers to avoid tag replying wrongly to other reader. 2. If dense reader mode is not required, Profile 0 should be used as it allows the fastest tag read. 3. Adjust the power of reader to take a balance between read range and cross read effect. 4. Employ inspection process for identifying malfunction reader. For example, reading testing tags from all readers and then collecting the read data from edge server. Analysis of the data helps assessing the reader health. 5. Remote reboot of reader and remote control of power grid should be supported since the readers may distribute in vast area. 6. During network failure, reader is not able to send tags read to trusted server. If Network Failure Data Backlog is enabled, those tags are buffered in the reader. Backlog tags are sent to trusted server after the TCP connection is re-established. Therefore, system integrators should also provide application level failover for this feature. Copyright © Convergence Systems Limited, All Rights Reserved 189 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 12 RFID Use Cases 12.1 Warehouse Real Time Inventory Tracking Use Case In warehouse with huge amount of inventory and fast turnover, acquiring real-time inventory data becomes a big challenge. Current Approach Stocktaking is done manually or using barcode system. The process is costly and slow. Inventory data are inaccurate due to human errors. Real-time visibility of inventory data is not available. Suggested Approach By equipping RFID read points in warehouse, inventory is being monitored continuously. Inventory data are updated in real time, giving warehouse manager real-time visibility to inventory level and status. This is particularly important for time sensitive merchandise. It also helps identifying potential theft for high-value merchandise, greatly reduce the labor cost and human error. Recommendation The CSL CS101-2reader is has extremely high inventory rate, which is important for providing high accuracy on inventory data. It is also able to manage large streams of tag data efficiently so that it can cope with tremendous amount of tags in warehouse environment. Moreover, the highly configurable buffering and tag filtering modes allow the elimination of redundant tag data so as to reduce network traffic and server loading. Copyright © Convergence Systems Limited, All Rights Reserved 190 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.2 USER'S MANUAL, VERSION 1.0 High Traffic Human Access Control Use Case Many companies world-wide already use RFID technology for employee access control systems. The access control system can fulfill purposes such as limiting access to a restricted area and capturing entry and exit time information for wages calculation. Current Approach HF technology is adopted in many access control systems. The read range of HF is short such that presenting of access card in front of the read point is required. This process can cause congestion under high traffic of access especially right before and after the office hour. Suggested Approach For access control system with high traffic of access, UHF has advantage over HF because the employees do not have to present the access card to the read point one by one, instead they can just walk by the read point and the access card can be read. Recommendation The CSL CS101-2reader is powered by CSL technology with extremely high inventory rate. This ensures the information captured is accurate and reliable. Copyright © Convergence Systems Limited, All Rights Reserved 191 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.3 USER'S MANUAL, VERSION 1.0 Reusable Pallet Tracking Use Case Reusable pallets travel through the supply chain many times in its life time. If the pallets can be tracked, they can be maintained in a better and manageable way. Current Approach Barcode system is used. Time of scanning the barcodes in large stack of pallets is long since only one barcode can be scanned at a time and line-of-sight is required. Suggested Approach Tagging of reusable pallets allows tracking them throughout the entire operation and maintenance cycle. This usage can even be extended to track movement of goods on the pallet throughout the distribution cycle. This offers the pallet providers as well as the goods distributors a complete visibility of their pallets and goods at every distribution point. Recommendation Powered by CSL technology, the CSL CS101-2reader has extremely high inventory rate which can read the tags in large stack of pallets accurately. This ensures accuracy of data about the pallets together with the goods. Copyright © Convergence Systems Limited, All Rights Reserved 192 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.4 USER'S MANUAL, VERSION 1.0 Work-In-Progress Monitoring Use Case The manufacturing process in factory can be long and complicated. Once the raw materials are sent into the manufacturing plant, they remain invisible until emerging as a finished product. Better visibility of work-in-progress is required for production decision-making. Current Approach Tracking of manufacturing process is not automated. Status of parts and work-in-progress are out-dated, distributed and manually collected. Suggested Approach The introduction of RFID technology to the manufacturing process in factory can improve the visibility of the work-in-progress. Parts and subassemblies within the manufacturing plant are tracked precisely such that more accurate part level and work-in-progress records are available. Moreover, automatic monitoring of work-in-progress status on semi-finished assemblies throughout the production cycle can reduce downtime and ensure on-time delivery. Combining RFID reader with output device can also help in decision making. For example, alarm is triggered when semi-finished items or batches are routed to the wrong manufacturing cell. Recommendation As powered by the advance and intelligent technology from CSL, the CSL CS-461 reader has the unique feature of Dense Reader mode. It allows multiple readers to be used in very close separation or area without jamming each other. This is particularly suitable for deploying in manufacturing plant with RFID readers equipped in conveyors, gates...etc. Copyright © Convergence Systems Limited, All Rights Reserved 193 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.5 USER'S MANUAL, VERSION 1.0 Human Access Control by Autonomous Tag Groups in Reader Use Case RFID can be applied to access control system for preventing unauthorized access to a restricted area. Current Approach Most RFID access control systems rely on backend server and database for security controls. If the server is down or network service is not available, the whole access control system fails. Suggested Approach Autonomous access control system with embedded event engine for security controls. Recommendation With the embedded event engine in CSL CS-461 reader, autonomous tag group filtering for access control is achieved. Tag groups can be pre-programmed into the reader easily. Once set, the access control system can run autonomously even when network or server is down. Copyright © Convergence Systems Limited, All Rights Reserved 194 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.6 USER'S MANUAL, VERSION 1.0 Pallet/Carton Tagging Verification Use Case RFID implementation is growing in different industries. The automated handling solutions driven by RFID are very much relying on the tags. Therefore missing or failed tags can have a major impact on operating efficiencies. Current Approach Verification of tag on pallet or carton is not automated. Missing or failed tags are difficult to be identified and replaced. Suggested Approach By combining input and output devices, RFID technology can be applied to verification of tag existence in pallet or carton. In this case, infrared sensor is used to trigger the start inventory in reader. When the pallet or carton passes the read point, status of infrared sensor changes which triggers the reader to start inventory. If no tag is read after the trigger, output device such as alarm is turned on. This application helps to identify missing or failed RFID tags such that tag replacement action can be taken. Recommendation The CSL CS-461 reader contains I/O port which allows maximum four inputs and eight outputs. The embedded event engine also allows I/O trigger and event to be programmed into the reader easily. Once these are set, the tag verification process is done autonomously. Copyright © Convergence Systems Limited, All Rights Reserved 195 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.7 USER'S MANUAL, VERSION 1.0 Blood Bag Tracking Use Case RFID technology can be widely adopted in medical field. One of the applications is blood bag tracking and blood type verification for transfusion. Current Approach Blood bags in blood banks are managed manually or using barcode system. Real-time visibility of inventory data is not available. Suggested Approach Before transfusion, the nurse can check the blood type contained in blood bag against patient’s blood type by cross checking the RFID tags on both the blood bag and patient’s wristband. In this way, chance that a patient being transfused the wrong blood type due to human error is greatly reduced. Moreover, by equipping RFID read points in the blood bank, real time inventory data can be grasped, giving medical staff real-time visibility to inventory level and status. Recommendation One of the major challenges in implementing RFID system for blood bag tracking is the liquid content inside blood bag, as fluid can degrade the radio frequency signal. However, with CSL CS-777 near-field antenna, this problem can be overcome since it can achieve outstanding performance when reading and writing tags on container with different contents even liquid. Copyright © Convergence Systems Limited, All Rights Reserved 196 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.8 Pharmaceutical Bottles USER'S MANUAL, VERSION 1.0 Tracking and Anti-counterfeit Use Case Counterfeit problem is a major concern in pharmaceutical industry for years. It does not only threaten the public safety, but also poses economic damage to pharmaceutical manufacturers. An effective measure is required to combat the growing counterfeit problem. Current Approach Effective measure for anti-counterfeit is difficult to implement without the tracking of pharmaceutical bottles throughout supply chain. Suggested Approach With the introduction of RFID technology, item level supply chain visibility for pharmaceutical product can be facilitated. It provides the track and trace of drugs as distributed throughout the entire supply chain, which in turns protects the public health. Pharmaceutical manufacturers can also benefit from reduced liability, brand protection and additional revenue that was previously diverted to makers of counterfeit drugs. Recommendation The CSL CS-777 near-field antenna achieves outstanding performance when reading and writing tags on variety of packaging options including pharmaceutical bottles and metals found in blister packs. In the magnetic near-field, UHF Gen 2 tags works well with container of different contents such as powders, pills and even liquids. This ensures the technology can be applied to all kinds of materials characteristically found in pharmaceutical products and packaging including vials of vaccines and bottles of liquid medication. Copyright © Convergence Systems Limited, All Rights Reserved 197 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER 12.9 USER'S MANUAL, VERSION 1.0 Vehicle Tracking in Maintenance Depot Use Case In maintenance depot, vehicles arrive for maintenance and checking. If the activities of vehicles inside the maintenance depot can be tracked, better arrangement of vehicles maintenance can be achieved. Current Approach Vehicle maintenance is tracked manually. Human errors may occur such as omitting particular maintenance checking on a vehicle. Suggested Approach RFID technology can be applied to track vehicles’ activities inside the depot. Once a vehicle is tagged, it's movement can be recorded anywhere in the RFID enabled depot. The process is completely automatic in the sense that the vehicle does not have to stop for being recorded. Moreover, no staff is involved in the process and thus human errors can be eliminated. The vehicles’ movement record gives accurate maintenance checking and repairing history which is important for vehicle management such as identifying obsolete parts. Recommendation One of the challenges in tracking vehicles in maintenance depot is that high tag resolution is required. Cross reading of tags by different entry points would affect the accuracy of identifying the vehicles in the lane. This problem can be overcome by shielding the capture points such that each capture point would only read tags that are corresponding to it. Furthermore, the CSL CS-461 reader allows filtering of tags by both RF Signal Strength Indicator (RSSI) and read count to prevent cross reading of tags by read points in multiple lanes. Copyright © Convergence Systems Limited, All Rights Reserved 198 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 12.10 Vehicle Information System Use Case In many countries, the possibility of using an RFID tag as a license plate is very welcome because that enables a host of analysis, tracking and law enforcement operations. Current Approach Vehicle license has traditionally been tracked visually or optically. Suggested Approach RFID technology can be applied to the label on the windshield, or to a stand on the dashboard, or to the inside of the Taxi light box on top of a taxi, or even directly onto the front and back license plate. The reader antenna can be mounted either on a low overhang/footbridge or simply on a pole on the side of the road. Recommendation The CS101-2has been tested with tagged vehicles traveling at 90 Km/hr and still achieves 100% read yield. Test beyond 90 Km/hr can be done by customers with such facilities (including a stretch of road for testing!!) Copyright © Convergence Systems Limited, All Rights Reserved 199 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 12.11 Document Tracking Use Case In some organizations, costs associated with tracking documents are high. An automatic document management system is especially beneficial in those environments where the documents are of high value to the organization, and the loss of a document would have significant negative impact. Examples include hospitals, lawyer’s offices and government departments. Current Approach Documents are tracked and managed manually. Human error may lead to lost of documents. Moreover, time spent in searching for document is long, especially when documents are not systematically well organized. Suggested Approach RFID technology has made a dramatic improvement in tracking and managing documents. By tagging the documents and equipping read points for checking in and out, status and location of documents can be traced easily. Other usages such as inventory checking and locating lost documents can also be achieved. Recommendation Different antennas are designed to be used with the CSL CS-461 reader to fulfill different requirements of document tracking. For example, for checking in and out of documents, short and constrained read range is required such that documents that are put near the read points would not be included accidentally. In this case, the CS-777 near-field antenna that is optimized to read near-field tags should be used. Oppositely, for inventory taking, longer read range is required such that all documents within the area are read rapidly. In this case, the CS-771 Mono-static Antenna with long read range should be used. Copyright © Convergence Systems Limited, All Rights Reserved 200 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Appendix A. RFID Basics Passive tag RFID technology involves the reader, the antenna and the tag. The reader sends out energy in the relevant frequency band to the antenna via RF cables, and the antenna radiates the energy out. This energy impinges on an RFID tag. The RFID tag consists of an antenna coupled to an RFID IC. This IC converts the AC voltage it receives at the antenna port to DC voltage that in turn is used to empower the digital circuit inside. The digital circuit then turns on and off some components connected to the antenna port, thereby changing its scattering behavior, in a pre-designed clock rate. This changing of antenna port parameters then causes a “modulation” of the back-scattered RF energy. This modulated back-scattered energy is detected by the reader and the modulation is captured and analyzed. Copyright © Convergence Systems Limited, All Rights Reserved 201 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Appendix B. Glossary Air interface The complete communication link between an Interrogator and a Tag including the physical layer, collision arbitration algorithm, command and response structure, and data-coding methodology. Autonomous time trigger Each tag will only be reported once within a duplicate elimination time. See also duplicate elimination time. Batch alert to server Collected tag information are sent to server at the end of each duplicate elimination cycle (Time Window) Capture point Unique name corresponding to each of the four antennas Command set The set of commands used to explore and modify a Tag population. Continuous wave Typically a sinusoid at a given frequency, but more generally any Interrogator waveform suitable for powering a passive Tag without amplitude and/or phase modulation of sufficient magnitude to be interpreted by a Tag as transmitted data. Cover-coding A method by which an Interrogator obscures information that it is transmitting to a Tag. To cover-code data or a password, an Interrogator first requests a random number from the Tag. The Interrogator then performs a bit-wise EXOR of the data or password with this random number, and transmits the cover-coded (also called ciphertext) string to the Tag. The Tag uncovers the data or password by performing a bit-wise EXOR of the received cover-coded string with the original random number. Dense-Interrogator environment An operating environment (defined below) within which the number of simultaneously active Copyright © Convergence Systems Limited, All Rights Reserved 202 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Interrogators is large relative to the number of available channels (for example, 50 active Interrogators operating in 50 available channels). Duplicate elimination time Time span of a duplicate elimination cycle, within which duplicate tags will be removed. Duplicate Elimination Triggering Method The method used to trigger inventory with duplicate elimination. See also autonomous time trigger and polling trigger by client. Estimated tag time in field An estimation of how long a tag will remain within the read zone of antenna Event An event defines action to be performed for a specific triggering logic. See also inventory enabling trigger, trigger, inventory disabling trigger, and resultant action. Extended temperature range –40 °C to +65 °C (see nominal temperature range). Full-duplex communications A communications channel that carries data in both directions at once. See also half-duplex communications. Half-duplex communications A communications channel that carries data in one direction at a time rather than in both directions at once. See also full-duplex communications. Instant alert to server Collected tag information are sent to server immediately as it is read Inventoried flag A flag that indicates whether a Tag may respond to an Interrogator. Tags maintain a separate inventoried flag for each of four sessions; each flag has symmetric A and B values. Within any given session, Interrogators typically inventory Tags from A to B followed by a re-inventory of Tags from B back to A (or vice versa). Inventory enabling trigger Copyright © Convergence Systems Limited, All Rights Reserved 203 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 The initial trigger that turns on the RF power of the reader to start doing inventory Inventory Enabling Cycle Time between an inventory enabling trigger and inventory disabling trigger. Inventory disabling trigger The trigger that turns off the RF power of the reader to stop doing inventory Inventory round The period between successive Query commands. Inventory Search Mode Method of reading tags by antenna. See also Single Target Large Population Inventory. Modulation Profile Way of transmitting information between tags and reader. Multiple-Interrogator environment An operating environment (defined below) within which the number of simultaneously active Interrogators is modest relative to the number of available channels (for example, 10 active Interrogators operating in 50 available channels). Network failure data backlog Tag data buffered in reader memory during network failure. Buffered tags are sent to trusted server when network is restored. Nominal temperature range –25 °C to +40 °C (see extended temperature range). Operating environment A region within which an Interrogator’s RF transmissions are attenuated by less than 90dB. In free space, the operating environment is a sphere whose radius is approximately 1000m, with the Interrogator located at the © 2004, EPCglobal Inc. Page 13 of 94 31 January 2005 center. In a building or other enclosure, the size and shape of the operating environment depends on factors such as the material properties and shape of the building, and may be less than 1000m in certain directions and greater than 1000m in other directions. Operating procedure Copyright © Convergence Systems Limited, All Rights Reserved 204 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Collectively, the set of functions and commands used by an Interrogator to identify and modify Tags. (Also known as the Tag-identification layer.) Passive Tag (or passive Label) A Tag (or Label) whose transceiver is powered by the RF field. Permalock or Permalocked A memory location whose lock status is unchangeable (i.e. the memory location is permanently locked or permanently unlocked) is said to be permalocked. Persistent memory or persistent flag A memory or flag value whose state is maintained during a brief loss of Tag power. Physical layer The data coding and modulation Tag-to-Interrogator signaling. waveforms used in Interrogator-to-Tag and Polling Trigger by Client Tags read are buffered in reader until client application polls the read result. A tag will only be reported once in each polling trigger. Protocol Collectively, a physical layer and a Tag-identification layer specification. A parameter that an Interrogator uses to regulate the probability of Tag response. An Interrogator commands Tags in an inventory round to load a Q-bit random (or pseudo-random) number into their slot counter; the Interrogator may also command Tags to decrement their slot counter. Tags reply when the value in their slot counter (i.e. their slot – see below) is zero. Q is an integer in the range (0,15); the corresponding Tagresponse probabilities range from 20 = 1 to 2–15 = 0.000031. Resultant Action Resultant action that will be enforced when an event logic is established Single Target Large Population Inventory A mode for reading a large number of tags at a time accurately. When this mode is used, tags that are read already will not respond to the reader for a short period of time. This can avoid the Copyright © Convergence Systems Limited, All Rights Reserved 205 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 strong tags from dominating the week ones. Session An inventory process comprising an Interrogator and an associated Tag population. An Interrogator chooses one of four sessions and inventories Tags within that session. The Interrogator and associated Tag population operate in one and only one session for the duration of an inventory round (defined above). For each session, Tags maintain a corresponding inventoried flag. Sessions allow Tags to keep track of their inventoried status separately for each of four possible time-interleaved inventory processes, using an independent inventoried flag for each process. Single-Interrogator environment An operating environment (defined above) within which there is a single active Interrogator at any given time. Singulation Identifying an individual Tag in a multiple-Tag environment. Slot Slot corresponds to the point in an inventory round at which a Tag may respond. Slot is the value output by a Tag’s slot counter; Tags reply when their slot (i.e. the value in their slot counter) is zero. See also Q (above). Slotted random anticollision An anticollision algorithm where Tags load a random (or pseudo-random) number into a slot counter, decrement this slot counter based on Interrogator commands, and reply to the Interrogator when their slot counter reaches zero. Tag-identification layer Collectively, the set of functions and commands used by an Interrogator to identify and modify Tags (also known as the operating procedure). Tari Reference time interval for a data-0 in Interrogator-to-Tag signaling. The mnemonic “Tari” derives from the ISO/IEC 18000-6 (part A) specification, in which Tari is an abbreviation for Type A Reference Interval. Trigger Copyright © Convergence Systems Limited, All Rights Reserved 206 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 A stimulus that causes the reader to recognize it and do something about it. Trusted Server Server for automatic data submission by the reader using the event engine. Copyright © Convergence Systems Limited, All Rights Reserved 207 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Appendix C. Federal Communication Commissions Compliance This equipment has been tested and found to comply with the limits for a class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures: Reorient or relocate the receiving antenna Increase the separation between the equipment and receiver Consult the dealer or an qualified radio/TV technician for assistance FCC NOTICE: To comply with FCC part 15 rules in the United States, the system must be professionally installed to ensure compliance with the Part 15 certification. It is the responsibility of the operator and professional installer to ensure that only certified systems are deployed in the United States. The use of the system in any other combination (such as co-located antennas transmitting the same information) is expressly forbidden. Note: Changes or modifications not expressly approved by the party responsible for compliance could void the user’s authority to operate the equipment. Copyright © Convergence Systems Limited, All Rights Reserved 208 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Appendix D. Maximum Permissible Exposure This section has been prepared on behalf of CSL CS101-2 RFID Handheld Reader Device to show compliance with the RF exposure requirements as defined in FCC Section 47 §1.1307. Three different categories of transmitters are defined by the FCC in OET Bulletin 65. These categories are fixed installation, mobile, and portable and are defined as follows: • Fixed Installations: fixed location means that the device, including its antenna, is physically secured at a permanent location and is not able to be easily moved to another location. Additionally, distance to humans from the antenna is maintained to at least 2 meters. • Mobile Devices: a mobile device is defined as a transmitting device designed to be used in other than fixed locations and to be generally used in such a way that a separation distance of at least 20 centimeters is normally maintained between the transmitter's radiating structures and the body of the user or nearby persons. Transmitters designed to be used by consumers or workers that can be easily re-located, such as a wireless modem operating in a laptop computer, are considered mobile devices if they meet the 20 centimeter separation requirement. The FCC rules for evaluating mobile devices for RF compliance are found in 47 CFR §2.1091. • Portable Devices: a portable device is defined as a transmitting device designed to be used so that the radiating structure(s) of the device is/are within 20 centimeters of the body of the user. Portable device requirements are found in Section 2.1093 of the FCC's Rules (47 CFR§2.1093). The CS101-2 RFID reader is considered as a mobile device as it is used for the purpose of reading tags. The FCC also categorizes the use of the device as based upon the user’s awareness and ability to exercise control over his or her exposure. The two categories defined are Occupational/ Controlled Exposure and General Population/Uncontrolled Exposure. These two categories are defined as follows: • Occupational/Controlled Exposure: In general, occupational/controlled exposure limits are applicable to situations in which persons are exposed as a consequence of Copyright © Convergence Systems Limited, All Rights Reserved 209 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 their employment, who have been made fully aware of the potential for exposure and can exercise control over their exposure. This exposure category is also applicable when the exposure is of a transient nature due to incidental passage through a location where the exposure levels may be higher than the general population/uncontrolled limits, but the exposed person is fully aware of the potential for exposure and can exercise control over his or her exposure by leaving the area or by some other appropriate means. Awareness of the potential for RF exposure in a workplace or similar environment can be provided through specific training as part of a RF safety program. If appropriate, warning signs and labels can also be used to establish such awareness by providing prominent information on the risk of potential exposure and instructions on methods to minimize such exposure risks. • General Population/Uncontrolled Exposure: The general population / uncontrolled exposure limits are applicable to situations in which the general public may be exposed or in which persons who are exposed as a consequence of their employment may not be made fully aware of the potential for exposure or cannot exercise control over their exposure. Members of the general public would come under this category when exposure is not employment-related; for example, in the case of a wireless transmitter that exposes persons in its vicinity. Warning labels placed on low-power consumer devices such as cellular telephones are not considered sufficient to allow the device to be considered under the occupational/controlled category, and the general population/uncontrolled exposure limits apply to these devices. Copyright © Convergence Systems Limited, All Rights Reserved 210 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Radio Frequency Radiation Exposure Evaluation ─ RFID Mode: The measured highest RF output power of the EUT feeding to the embedded antenna was 28.6dBm at 927.25MHz. According to §1.1310 of the FCC rules, the power density limit for General Population/Uncontrolled Exposure at 927.25 MHz is f(MHz)/1500 = 0.6182mW/cm2. The maximum permissible exposure (MPE) is calculated to show the required separation distance that must be maintained during installation to maintain compliance with the power density limit. The following formula was used to calculate the Power Density: S= PG 4πR 2 where: S = Power density P = Power feeding to the embedded patch antenna G = Tx gain of the antenna (linear gain) R = Distance from the antenna For the EUT, the calculation is as follows: P = 28.6dBm = 724.4mW G = Maximum Antenna Gain = 5.5dBi = anti-log(5.5/10) = 3.55 At 20cm separation, S= 724.4 × 3.55 =0.5116mW/cm2 4π (20) 2 Based on the above calculation for 20cm separation, the power density does not exceed FCC limit of 0.6182mW/cm2. Copyright © Convergence Systems Limited, All Rights Reserved 211 CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHELD READER USER'S MANUAL, VERSION 1.0 Radio Frequency Radiation Exposure Evaluation ─ WiFi Mode: The measured highest RF output power of the EUT feeding to the embedded antenna was 11.5dBm at 2412MHz. According to §1.1310 of the FCC rules, the power density limit for General Population/Uncontrolled Exposure at 2412MHz is = 1.0 mW/cm2. The maximum permissible exposure (MPE) is calculated to show the required separation distance that must be maintained during installation to maintain compliance with the power density limit. The following formula was used to calculate the Power Density: S= PG 4πR 2 where: S = Power density P = Power feeding to the embedded patch antenna G = Tx gain of antenna (linear gain) R = Distance from the antenna For the EUT, the calculation is as follows: P = 11.5dBm = 14.13mW G = Maximum Antenna Gain = 1.6dBi = anti-log(1.6/10) = 1.445 At 20cm separation, S= 14.13 × 1.445 =0.004062mW/cm2 4π (20) 2 Based on the above calculation for 20cm separation, the power density does not exceed FCC limit of 1.0mW/cm2. Copyright © Convergence Systems Limited, All Rights Reserved 212
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Create Date : 2007:12:17 07:11:21Z Modify Date : 2008:02:26 15:09:24+08:00 Page Count : 213 Creation Date : 2007:12:17 07:11:21Z Mod Date : 2008:02:26 15:09:24+08:00 Producer : Acrobat Distiller 5.0.5 (Windows) Author : leungyat Metadata Date : 2008:02:26 15:09:24+08:00 Creator : leungyat Title : Microsoft Word - appendix 9 cover Has XFA : NoEXIF Metadata provided by EXIF.tools