Fixes: #406
The problem description is in the referenced issue.
Diagnosis
The function ReprogControlsV4::setControlReporting() erroneously took cid as uint8_t. Because of that, reports contained only lower byte of any cid, so any ReprogControls request for such cid resulted in error response. Lack of error response handling in this library led to timeout.
We can see only lower byte (03) of cid present. Thus we get an error response (with feature id ff), but the logiops keeps waiting for response with feature id 08 and hence eventually timeouts.
Solution
ReprogControlsV4::setControlReporting() was modified to take cid as uint16_t.
Fixes: #406 The problem description is in the referenced issue.
Diagnosis
The function
ReprogControlsV4::setControlReporting()
erroneously tookcid
asuint8_t
. Because of that, reports contained only lower byte of any cid, so any ReprogControls request for such cid resulted in error response. Lack of error response handling in this library led to timeout.E.g.:
We can see only lower byte (03) of
cid
present. Thus we get an error response (with feature idff
), but the logiops keeps waiting for response with feature id08
and hence eventually timeouts.Solution
ReprogControlsV4::setControlReporting()
was modified to takecid
asuint16_t
.