NXP Custom API Support : Support NXP EAS tags. If possible, provide a generic interface, so that any new custom tags can be supported without adding the support for APIs to support any custom tag commands in future.
The following features of NXP_CUSTOM_API_SUPPORT will be exposed via API3 1.1:
-
Change EAS/RFID_NXPSetEAS
-
EAS Alarm/ RFID_PerformInventory
-
Set Quiet/RFID_NXPSetQuiet
-
Reset Quiet/RFID_NXPResetQuiet
In order to achieve this, a new enum type OPERATION_QUALIFIER has been added and the ANTENNA_INFO structure has been enhanced with a new OPERATION_QUALIFIER list.This list describes the Operation(Gen2 Operation or EAS-Scanning)to be performed on each Antenna ID mentioned in the list of AntennaIDs.
The same features have been implemented in C#.The corresponding APIs added were SetEASWait,SetEASEvent,SetQuietWait,SetQuietEvent,ResetQuietEvent. These APIs were clubbed into a new object called "NXPOperations" which is added to "TagAccess" object.
API's RFID_NXPSetEAS,RFID_NXPSetQuiet,RFID_NXPResetQuiet which were implemented as custom LLRP Access operations, are built up over the same framework as the standard LLRP access operations.The "RFID_PerformInventory" API's functionality has been enhanced to perform EAS_SCAN. To accomodate this, addROSpec call in the LLRPFW class now additionally looks for OPERATION_QUALIFIER list in ANTENNA_INFO structure passed to RFID_PerformInventory API. Accordingly, a custom LLRP spec MotoNXPEASAlarm Spec is added for the all antenna IDs with EAS_SCAN mentioned in OPERATION_QUALIFIER list.
-
RFID_PerformInventory. The field "pAntennaOpList" of ANTENNA_INFO structure can describe operation required on each antennaID in "pAntennaList" i.e, either Inventory or EAS-Scanning.When the user wants to perform Inventory on all antennae, he should set the pointer variable to null.
-
RFID_PerformAccessSequence. The field "pAntennaOpList" of ANTENNA_INFO structure can describe operation required on each antennaID in "pAntennaList" i.e, either Access-sequence or EAS-Scanning. When the user wants to perfom Access on all antennae, he should set the pointer variable "pAntennaList" to null.
-
All APIs for LLRP Access-operations. One should set the pAntennaOpList to NULL, when calling any of the LLRP Access APIs.
The standard usage has been described in the Programmer's guide. Besides, one can use RFID_PerformAccessSequence to run a list of access-operations on a few antennas and EAS-scanning on the other for a period defined by TriggerInfo passed to the API. Also,to improve the reliablity of the blanket call API RFID_ResetQuiet ; it can be part of single-step Access-sequence to keep issuing Reset Quiet custom command at the reader-level for a period defined by Trigger Info, instead of having to repeatedly call the API.