Using Calimero, I want to read and write signed int values in a KNX system.
I use the readUnsigned and write methods of ProcessCommunicatorImpl for unsigned ints but there are no methods for reading and writing signed ints.
For example these types I can not access:
DataPoint 6.x (8 bit 2's complement)
DataPoint 8.x (16 bit 2's complement)
DataPoint 13.x (32 bit 2's complement)
The only methods available are:
String read(Datapoint)
String readString(GroupAddress)
int readControl(GroupAddress)
double readFloat(GroupAddress, boolean)
int readUnsigned(GroupAddress, String)
bool readBool(GroupAddress)
And I only have a GroupAddress, no Datapoint.
Does anyone know how I can read and write those types of datapoints?
Thanks!
Using zapl's comment as inspiration, I came up with this code:
I'm not 100% sure about parsing the result as an int, but I can't test because I don't have a KNX device that will send me a signed int.
When I get the chance to test one, I will confirm or adjust this answer.