Hi,
Thanks for this library. There's a problem in the report descriptor parsing with signed values for axis (PhysicalMinimum and LogicalMinimum).
When a negative value is found, it is forced to 0 in Reports/Encoding/EncodedItems, line 160 and 162 :
Changing the following two lines fixes the bug:
EncodedItem.cs : L160 change
{ DataValue = (uint)(sbyte)value; if (value < 0) { Data.Add(0); } }
to
{ DataValue = (uint)(sbyte)value; }
and EncodedItem:L162 change
{ DataValue = (uint)(short)value; if (value < 0) { Data.Add(0); Data.Add(0); } }
to
{ DataValue = (uint)(short)value; }
I don't understand what is the purpose of these 2 tests, and if it is a correct fix. Currently I'm stuck in the development of a plugin for a software that uses this library in a dll because of this bug.