CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
2 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
3 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. Dock Door applications where the handheld reader is used to complement fixed reader
when tags are not 100% read by the fixed reader.
2. Loading Bay applications where the fixed reader is not allowed because there is no place
to put a permanent reader stand.
3. 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.
4. 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.
5. Retail shop inventory applications where high read rate is most useful – workers can go
home earlier!!
3.2 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
3.3 Product Package
3.3.1 Basic Package Content
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
table. The charger should be connected and the 2 batteries charged for a
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
3.4 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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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:
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
Accessories:
Order Code:
Restrictions on Use:
Charger, batteries, wrist strap, shoulder strap
CS101-2
Approvals, features and parameters may vary
depending on country legislation and may change
without notice
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
4.2 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. Double click it to start the
application.
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)
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
5.2 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
5.4 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.1 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.2 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.3 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.4 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.7 T ag 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
6.4.9 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
7.1 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. RfidSp
2. PosSp
3. 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:
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 = 4;.
Description:
This is the number of selectcriteria to set.
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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER USER'S MANUAL, VERSION 1.0
Prototype:
public const int RFID_18K6C_SINGULATION_MASK_BYTE_LEN = 62;
Description:
This is the size(in byte) of the single post-singulation match mask.
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 = 0x8004d8 f5, //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 = 0x8004d8 f8, //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
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 ra dio 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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)
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 cookie;
public RFID_RADIO_HANDLE handle; //[out]
public UInt32 flags;
public HRESULT_RFID_STATUS status;
};
Fields:
[in] cookie: cookie in radio_enum above.
[out] handle: the rfid_handle to be returned.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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;
};
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 handle;
public RFID_RADIO_POWER_STATE state;
public HRESULT_RFID_STATUS status;
};
Fields:
[out/in] state: power on/off state.
Description:
This is the data structure for
f_RfidDev_RadioGetPowerState /
f_RfidDev_RadioSetPowerState operation.
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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 handle;
public UInt32 antennaPort;
public RFID_ANTENNA_PORT_STATUS portStatus; //[out]
public HRESULT_RFID_STATUS status;
};
Fields:
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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{
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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_ALGORITHM algorithm;
public HRESULT_RFID_STATUS status;
};
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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{
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 handle;
public RFID_18K6C_LOCK_PARMS lockParms; //[in] const*
public UInt32 flags;
public HRESULT_RFID_STATUS status;
};
Fields:
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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 {
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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
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;
};
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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;
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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.
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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..
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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;
CSL CS101-2 EPC CLASS 1 GEN 2 RFID HANDHE LD READ ER 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