I've pulled down the latest bacnet4/j and am attempting to use it for the first time. I had no problems discovering devices, objects and properties with a BACnet simulator, but in my first attempt at querying actual BACnet devices, I've run into a few significant discovery problems. I'm new to the spec, so I'm not completely sure if the devices are not completely compliant or if bacnet4j is not handling it properly.
The biggest problems are timeouts, which occur in 2 scenarios:
All 100+ devices respond with I-AM from 10.1.1.5, but when I query for protocol-services-supported (to 10.1.1.5), many of the devices respond from 10.20.1.5. The response packet looks good, but BACnet4j ignores it because the key doesn't match, which leads to a timeout.
Many of the devices respond successfully to the protocol-services-supported request but do not send any response packets at all to the subsequent read multiple properties request. I am suspicious in this case if this may be related to a MAX APDU size problem, since it seems that these situations occur when the device does not support segmentation. I stopped requesting Properties.all in these cases, but I haven't cleared the issue yet.
There are also a few devices that immediately return an ErrorAPDU unknown object response to the initial protocol-services-supported request.
Any suggestions or insight would be appreciated.