RFID_STATUS WINAPI RFID_PerformNXPEASScan ( RFID_HANDLE32  readerHandle,
LPANTENNA_INFO  lpAntennaInfo,
LPTRIGGER_INFO  lpTriggerInfo,
LPVOID  rsvd 
)

This function performs the NXP EAS Scan operation.

Parameters:
[in] readerHandle 
Handle to the RFID device.
[in] lpAntennaInfo 
Antenna List on which the operation is to be performed. If this is NULL, the operation is performed on ALL antennas.
[in] lpTriggerInfo 
Trigger Criteria for the operation. If this is NULL, operation starts right away when this API is called, and stops when RFID_StopNXPEASScan is called.
[in] rsvd Reserved for future use.
Returns:
If the function succeeds the return value is RFID_API_SUCCESS. If the function fails the return value is one of the following:
  • RFID_API_INVALID_HANDLE Handle provided is invalid
  • RFID_API_PARAM_ERROR Invalid parameter given
  • RFID_API_PARAM_OUT_OF_RANGE Parameter out of range [Antenna ID/GPI]
  • RFID_INVENTORY_IN_PROGRESS Inventory in progress, cannot perform requested operation
  • RFID_ACCESS_IN_PROGRESS Access Operation in progress, cannot perform requested operation
  • RFID_TAG_LOCATING_IN_PROGRESS Tag Locating in progress, cannot perform requested operation
  • RFID_NXP_EAS_SCAN_IN_PROGRESS NXP EAS SCAN in progress, cannot perform requested operation
Remarks:
Upon seeing a Tag with its EAS bit set, the alarm event NXP_EAS_ALARM_EVENT will be signaled. NXP_EAS_ALARM_DATA has the information related to the alarm and can be obtained using RFID_GetEventData. The application can wait on the event registered for NXP_EAS_ALARM_EVENT before calling RFID_GetEventData.
See also:
RFID_StopNXPEASScan
Remarks:
Example:
RFID_HANDLE32 readerHandle;
RFID_STATUS rfidStatus = RFID_API_SUCCESS;

if(RFID_API_SUCCESS == RFID_Connect(&readerHandle, TEXT("157.235.208.51"), 0, 0, NULL))
{
        NXP_SET_EAS_PARAMS NXPSetEASParams;
        HANDLE hInventoryStartEvent = CreateEvent(NULL, false, false, NULL);
        HANDLE hInventoryStopEvent = CreateEvent(NULL, false, false, NULL);
        HANDLE hAccessStartEvent = CreateEvent(NULL, false, false, NULL);
        HANDLE hAccessStopEvent = CreateEvent(NULL, false, false, NULL);
        HANDLE hEASAlarmEvent = CreateEvent(NULL, false, false, NULL);
        RFID_RegisterEventNotification(readerHandle, INVENTORY_START_EVENT, hInventoryStartEvent);
        RFID_RegisterEventNotification(readerHandle, INVENTORY_STOP_EVENT, hInventoryStopEvent);
        RFID_RegisterEventNotification(readerHandle, ACCESS_START_EVENT, hAccessStartEvent);
        RFID_RegisterEventNotification(readerHandle, ACCESS_STOP_EVENT, hAccessStopEvent);
        RFID_RegisterEventNotification(readerHandle, NXP_EAS_ALARM_EVENT, hEASAlarmEvent);
        
        // set few tags' EAS bit enabled
        NXPSetEASParams.EASState = true;
        NXPSetEASParams.accessPassword = 0x12345678;
        RFID_NXPSetEAS(readerHandle, NULL, 0, &NXPSetEASParams, NULL, NULL, NULL);
        WaitForSingleObject(hAccessStartEvent, INFINITE);
        WaitForSingleObject(hAccessStopEvent, INFINITE);

        // Lets see if those tags are reported
        rfidStatus =  RFID_PerformNXPEASScan(readerHandle, NULL, NULL, NULL);
        if(rfidStatus == RFID_API_SUCCESS)
        {
                WaitForSingleObject(hInventoryStartEvent, INFINITE);
                // Lets wait for an EAS ALARM
                if(WAIT_OBJECT_0 == WaitForSingleObject(hEASAlarmEvent, 10000))
                {
                        NXP_EAS_ALARM_DATA easAlarmData;
                        RFID_GetEventData(readerHandle, NXP_EAS_ALARM_EVENT, &easAlarmData);
                        printf("\n A Tag was found on antenna %d with EAS bit set", easAlarmData.antennaID);
                }
                rfidStatus = RFID_StopNXPEASScan(readerHandle);
                WaitForSingleObject(hInventoryStopEvent, readerHandle);
        }
        rfidStatus = RFID_Disconnect(readerHandle);
}


Generated on Fri Mar 4 02:25:30 2016 for RFIDAPI3 1.1 C API Documentation by  doxygen 1.5.6