fviard / sllurp

Python client for LLRP-based RFID readers. Private fork.
GNU General Public License v3.0
7 stars 3 forks source link

C1G2Filter : overflow error #3

Closed papapel closed 4 years ago

papapel commented 4 years ago

Hello @fviard

An error occurred when I try to set the tag_filter_mask parameter. I get a C1G2Filter : overflow. It happens with your sllurp:fviard-develop-v2 branch but it does not happen with the sllurp:fviard-develop_untwisted

tag_filter_mask="e" => works well

INFO:root:[] tag_filter_mask=<e>
INFO:root:[{'AccessSpecID': 0, 'EPC': b'e28068100000003982ebf837', 'EPC-96': b'e28068100000003982ebf837', 'TagSeenCount': 91}] tag_filter_mask=<e>
INFO:root:[{'AccessSpecID': 0, 'EPC': b'e28068100000003982ebf837', 'EPC-96': b'e28068100000003982ebf837', 'TagSeenCount': 83}] tag_filter_mask=<e>
INFO:root:[{'AccessSpecID': 0, 'EPC': b'e28068100000003982ebf837', 'EPC-96': b'e28068100000003982ebf837', 'TagSeenCount': 83}] tag_filter_mask=<e>

tag_filter_mask="000" => does not work

CRITICAL:sllurp.llrp:Error OverflowParameter adding ROSpec: b'LLRP [398] : //C1G2Filter : overflow'
INFO:root:[] tag_filter_mask=<000>
fviard commented 4 years ago

Hi,

sllurp:fviard-develop-v2 branch but it does not happen with the sllurp:fviard-develop_untwisted Both branches are exactly, the same, so that is strange that you don't have it in one case? You were not meaning the develop-v2 again the original ransford/develop branch?

Anyway, I think that I see what could be the issue, I will try a fix for you tomorrow.

(btw, there is no problem that you open the issues about my branch in ransford repo, my goal is to have this branch switched as MASTER one at some point)

fviard commented 4 years ago

Ok, I understand what happened, it is a bug in how you are using tag_filter_mask in your Gui, and not coming from sllurp. What is expected for this field is a "list" because you can set multiple filters.

And in your case, you give directly a text string. So what happens is that sllurp will think that this string is a list of characters, and so for example, when you give "eee", it will consider that you gave: ['e', 'e', ',e']. So, like 3 different mask of a single char.

In itself, it is not what was expected, but not what is causing the error. The error from the reader comes from the fact that, doing so, you try to set 3 filters. And I think that your reader, like an Impinj, might allow to use only 2 filters at maximum.

I will fix that in your Gui :-)