Unable to get response IAM from a tridium device.
Attached wirshark file.
0000 ff ff ff ff ff ff a8 1b 6a 0e 48 7d 08 00 45 00
0010 00 34 45 ee 00 00 40 11 bd 85 ac 18 0f 16 ac 18
0020 0f ff ba c0 ba c0 00 20 05 7b 81 0b 00 18 01 20
0030 ff ff 00 ff 10 00 c4 02 00 00 02 22 01 e0 91 00
0040 21 24
We have a case where multiple bacnet networks have same id and different network address.
This make it difficult for us to get to them since the MAP defined in Default transport is per network number only and the bacnet STACK cannot make a difference between the networks.
So for example:
Remote device 1 on Network 2 with Network address x.x.x.x
Remote device 2 on Network 2 with Network address y.y.y.y
I would appreciate if someone can tell me:
Is something configured bad in the network or is it a valid configuration.
If it’s valid I will expect some solution to be able to initialize the Default router MAP only once and be able to access all remote devices uniqly like I used to do in older versions.
It looks like that old functionality has been taken a way where we used to get the linked service in IM requests.
With 3.2.3 the stack expect IM router to Network or I Coud be Router to Network to come in order to decide about network address (Linked Service) .
Im a bit surprise since we can get the linked service when getting the IAM and make use of it.
I have a temporary fixed but expect it to be fixed officially.
Thanks, I did upgrade to 3.2.3 and things looks much better.
BTW: I have noticed that the stack add network address upon receiving: “IAM router To Network” PDU.
I was wondering why not to add Linked Service when it Get IM PDU?
The reason I 'm asking since when searching device on Network with BBMD I still get some of the devices coming OK but when trying to get some points belonging to them I get same error from stack. Do I need to initiate specific request to get the network address of a specific device or is WHOIS request enough for to satisfy the stack?
When trying to discover devices on network we get this exceptions.
I have already opened a thread on something similar where it seems that you have taken out completely the linked service for some reason.
BTW:Old stack used to discover properly same network.
Looking on the code I can see that Linked service is not updated upon IM request and all other requests so that later on if we try to access the device we get that exception.
java.lang.RuntimeException: Invalid arguments: router address not provided for a remote recipient
at java.lang.Thread.run(Unknown Source)
Need this to be fixed quite urgent.
I wanted to ask a question regarding the new BACNET stack RemoteDevice class structure - Seems to have change in a way that effect our application.
We used to get network address (LinkService) back after sending WhoIs request as part of the RemoteDevice.
That was essential for us to find the remote devices on different networks later on.
Since I have upgraded to new stack we no longer get it back but need to explicitly mention it when trying to find a device.
My specific case here is with MSTP devices located on different networks and I would like to get their network address as part of WhoIs request so later on I can persist that information and use it to reach them again.
I maybe missing some understanding in the way things work but that’s my current understanding.
I would be happy if I can get your advice here,
I'm using bacnet4j stack from 3 tears ago and not able to unsubscribe to COV although the PDU response for unsubscribe is success.
registration is for life time and the way I Subscribe and Unsubscribe is as follow:
req = new SubscribeCOVRequest(new UnsignedInteger(1), aoid, new Boolean(true), new UnsignedInteger(0));
localDevice.send(rd, new SubscribeCOVRequest(1, oid, null, null));
BTW:Is the process Id number should be same ?