Zebra RFID SDK: Neither Inventory nor getReadTags/getReadTagEx API reads tag data (e.g. memorybank, opcodes are null)

40 Views Asked by At

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.

0

There are 0 best solutions below