Awesome!
My google-fu failed me...
I always end up on the sourceforge repo. :oops:
Awesome!
My google-fu failed me...
I always end up on the sourceforge repo. :oops:
Is there any plan to use Github for bacnet4j?
Is there any plan to use Github for bacnet4j?
New version of Wacnet! (1.1.0)
As usual, completely free!
Detailed review of what changed:
http://blog.hvac.io/2014/07/01/new-wacnet-release-110/
Download link and instructions:
https://hvac.io/docs/wacnet
If you are on Windows, you could try adding another IP to your network card.
This way, you could have:
Device 1, 192.168.0.3:47808
Device 2, 192.168.0.4:47808
Playing with the ports if a little delicate, as some devices will only respond the port on which they are located.
When you say you see them 'chirping' and answering to your WhoIs, are they answering to a broadcast address your machine can receive?
For example, suppose your IP is 192.167.0.5 and your broadcast address is 192.255.255.255.
A device situated on 192.168.0.4 might receive it, but if they answer on 192.168.255.255, you will never get it.
I implemented it locally and it seems to work.
Here is the code:
public void removeRemoteDevice(int instanceId) throws BACnetException {
RemoteDevice d = getRemoteDeviceImpl(instanceId, null, null);
if (d != null)
remoteDevices.remove(d);
else
throw new BACnetException("Unknown device: instance id=" + instanceId);
}
As it is, it seems the only way to remove a remote device from the local device list is to reset the local device.
This means that if a remote device is removed form the network, or if it crashes and no longer answers any queries,
we have to go through the whole process of terminating the local device, only to prop it up again immediately after.
Would it be possible to provide a removeDevice method for the local device?
This way we could manually remove any remote device which isn't answering and keep a 'clean' list of remote devices.
Thanks!
As it is, it seems the only way to remove a remote device from the local device list is to reset the local device.
This means that if a remote device is removed form the network, or if it crashes and no longer answers any queries,
we have to go through the whole process of terminating the local device, only to prop it up again immediately after.
Would it be possible to provide a removeDevice method for the local device?
This way we could manually remove any remote device which isn't answering and keep a 'clean' list of remote devices.
Thanks!
Glad to hear you don't expose your BACnet port!
I'm a little rusty on the discovery process.
When answering a WhoIs, isn't the gateway supposed to send you the list of devices it knows about?
As a patch, perhaps you could 'scan' for these devices every once in a while to make sure you have all of them.
Say all device from ID 0 to 99 (or whatever is their ID range).