BACnetTimeoutException: No response from instanceId
-
I am getting the exception from some bacnet remote devices.
'com.serotonin.bacnet4j.exception.BACnetTimeoutException: No response from instanceId xxxxx' .
Is this means the devices are offline or broken and not working?
Or Is it the matter possible to solve by just increasing timeout setting? (Transport.setTimeout(timeout)?
Transport.setSegTimeout(timeout)? RemoteDeviceFuture.get(timeout)?)
Or Is it possible to solve by setting the local network number with IpNetworkBuilder.withLocalNetworkNumber() as said like this(https://forum.infiniteautomation.com/topic/3370/bacnettimeoutexception-no-response-from-instanceid-and-unable-to-find-router-to-network-unable-to-find-router-to-network/4).
If it is, what number should I input into IpNetworkBuilder.withLocalNetworkNumber() as the local network number, or how can I find the number (from my local network address?) or may I input ramdom number as the local network number?
Thanks in advance. -
Hi mirvana,
The stack trace is useful if there were one.
It is not clear what it means to have timed out to the level of specificity you're asking for me to know. It means your application believes it sent a message, and that it didn't receive a response in the timeout it had set. Only two places in the code throw this message, https://github.com/infiniteautomation/BACnet4J/search?q="No+response+from+instanceId"&unscoped_q="No+response+from+instanceId"
Both have debug level logging you could enable if you wished to look closely at where that timeout is coming from.
It could mean a failure in a device, a failure in a network, or a problem in the application. The local network number is probably not the issue, since it isn't taking exception with being unable to find a router to the network in question. Generally, a network number of 0 implies that it's a local network, and having the same network number as the devices you're communicating with also implies it's the same network.
-
Thank you, phildunlap.
I've got exception stack trace like next.
com.serotonin.bacnet4j.exception.BACnetTimeoutException: No response from instanceId XXXXX
com.serotonin.bacnet4j.util.RemoteDeviceFinder$DeviceFutureImpl.get(RemoteDeviceFinder.java:176)
com.serotonin.bacnet4j.LocalDevice$2.get(LocalDevice.java:705)Also I use timeout related code like the following.
Transport transport = new DefaultTransport(network);
transport.setTimeout(30000);
transport.setSegTimeout(30000);RemoteDeviceFuture dd = localDevice.getRemoteDevice(XXXXX);
RemoteDevice d = dd.get(90000);
I think this is the bacnet device's problem now, but if I've not use the code correctly, I hope to know about it.