Bacnet Client Exception
-
Hi;
I think bacnet server application query property that not defined on client side. Is it possible.If It is this like how can I realize this properties?
Best Regards,
-
Set non-null values for the properties.
-
But I don't know which properties. Which properties query from server side
By The way sometimes this exception throws
com.serotonin.bacnet4j.npdu.ip.IpMessageControl$MessageValidationAssertionException: Network messages are not supported
at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.runImpl(IpMessageControl.java:503)
at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.run(IpMessageControl.java:468)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) -
I don't know which properties the server is asking for either.
Another post explains that exception (which is really just a warning).
-
hi,
the serotonin stack does not 'yet' support network messages: (ipmessagecontrol.java)
// Network layer protocol control information. See 6.2.2
NPCI npci = new NPCI(queue);
if (npci.getVersion() != 1)
throw new MessageValidationAssertionException("Invalid protocol version: " + npci.getVersion());
if (npci.isNetworkMessage())
{
return; // silently
// throw new MessageValidationAssertionException("Network messages are not supported");
}we have tons of networkmessages, so i tried to hide this.
if you use the add or removelistelementrequest and you see this message more often. then i know your code is buggy ;-)robert
-
Hi Robert,
I've implemented the silent ignoring of network messages. But i don't understand your last statement. I thought the list element stuff was fixed. What does it have to do with network messages?
-
hi matt,
when adding a bacnet device into the recipientlist of the device to be monitored it will try to locate the 'remote' listener.
in case the bacnet network is the same it send a whois to 'that' device. when the bacnet network is different, then it searches for the router with a who-is-router-to-network.
you remember that the getAddress used the bacnet port as network? in this case the device to be monitored isses frequently a who-is-router-to-network with parameter destination-network equal to 47808.
in the beginning i din't understand that why until i verified the getAddress function.regards
robert -
Right. So this is fixed now, correct?
-
:-) absolutely - i am happy it works.