I am attempting to use the Zebra RFID SDK version 2.0.2.124 to read RFID tags with a MC3300xR handheld reader, running the R18 firmware, and am encountering problems that I am unable to resolve and other unexpected behavior.
I am under the impression that an inventory operation (reader.Actions.Inventory.perform()) should be able to access a seen tag's memory bank, and return it as a part of a TagData object (after a call to getReadTagsEx).
However, when I review any TagData object returned by a getReadTagsEx call after performing an inventory, its opCode, opStatus, and memoryBankData values are always null, no matter what configuration settings I write to the reader.
I would expect that opStatus would return something like ACCESS_OPERATION_STATUS.ACCESS_SUCCESS, indicating a successful tag access, etc. So far, I have only been able to achieve such successful tag access operations through the TagAccess action, but not through an inventory.
Again, this is no matter how I have the reader configured. Other answers have suggested
- Disabling dynamic power optimization (
reader.Config.setDPOState(DYNAMIC_POWER_OPTIMIZATION.DISABLE)), - Not attaching tag data with a read event (
reader.Events.setAttachTagDataWithReadEvent(false)) - Stopping an inventory before reading tags (
reader.Actions.Inventory.stop())
All of which I have tried, to no avail. I have also tried
- Experimenting with
TagStorageSettings, e.g. setting tags to report all fields (tagStorageSettings.tagFields = arrayOf(TAG_FIELD.ALL_TAG_FIELDS)) and enable access reports (tagStorageSettings.enableAccessReports(true)) - Setting attributes directly, e.g.
val attrCtrl = SetAttribute()
attrCtrl.attnum = 1610; // ATT_RFID_ACCESS_S1_ENABLE
attrCtrl.atttype = "B";
attrCtrl.attvalue = "1";
- Experimenting with singulation, which is not something I understand very well.
- Experimenting with filters, with some success (at least in getting an inventory to only read tags starting with a certain prefix, for example).
also without any success.
At this point, I'm pretty convinced that either my reader or the API/SDK does not support tag access/reading memory banks during an inventory event, but I thought I would ask here, for some more opinions.
Thanks, please let me know if there is anything I can clarify.