In order to perform a locating on an EPC (without the encoded Serial Number), we use the Mask FFFFFFFFFFFFFFC to filter by only for the EPC Type (= SGTIN96), the Filtervalue (1 = POS) and the GTIN. This works perfectly.
However we want to also locate SGTIN96 Tags with different Filtervalues (0 = AllOthers, 1 = POS,... 7 = component). If i try reading it with Mask
FF0FFFFFFFFFFFC in order to mask out the Filtervalue at position 3, the Android Zebra SDK throws following exception:
RFID_API_UNKNOWN_ERROR
com.zebra.rfid.api3.OperationFailureException
at com.zebra.rfid.api3.q1.a(Unknown Source:11)
at com.zebra.rfid.api3.TagLocationing.Perform(Unknown Source:32)
at com.detego.instore.hw.devices.zebra.ZebraRfidDevice$resumeLocating$2.invokeSuspend(ZebraRfidDevice.kt:237)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6518)
Unfortunatly i can not symbolicate this crash any further.
If i however try to locate a tag with the Mask 000FFFFFFFFFFFC, everything works fine. However i'm not happy with this Mask since we also could potentially read GIAI Tags or other Tags that match the Gtin.
Code being used:
reader.Actions.TagLocationing.Perform(epc, mask, null)
// epc is the SGTIN96 generated with Gtin, Filtervalue = 1 and Serialnumber = 1
// mask is currently FFFFFFFFFFFFFFC, but we'd like to use FF0FFFFFFFFFFFC in order to read SGTIN96 without Filtervalue
Any help? Maybe Zebra Support please?
1 Replies
Hi Martin.
I check my 4-character / "dword" values (2-byte) if you are using the RFID SDK for Android - or for iOS.
One of the first things I do with your posted Mask values - is to verify / validate that these are "word" boundary correct
FF0F FFFF FFFF FFC -- NO -- the last word is not valid.
FFFF FFFF FFFF FFC -- no -- same as above.
FFF0 FFFF FFFF FFFC -- This was by adding 1 "F" nybble to the first word to make the 64-bit Mask.
Is this the correct mask? 64-bits? Or are you attempting to mask for an EPC (96-bit or 6-words?)
96-bit:
FFF0 FFFF FFFF FFFF FFFF FFFC ? ( If the EPC being masked? --> dont forget to offset the 1st 2-words to get the EPC. )