BACnet handshake was not implemented and it worked only on PCAP transport.
I was trying to do it a while ago (~2 years)
https://github.com/apache/plc4x/tree/feature/bacnet-active, but back
then it was not possible due to optional fields which were not handled
properly. Now they are supported, but my changes are not compatible any
more and have to be done from scratch.
Long story short - currently bacnet driver is not an "online" driver.
Best,
Łukasz
On 6.10.2022 11:26, Iñigo Angulo wrote:
Hi all,
I started doing some tests with BACnet, and wanted to ask a question about
using the driver. I am pretty newbie to this protocol, so hope this will make
sense... :)
I am using this project (https://github.com/bacnet-stack/bacnet-stack) to
simulate a BACnet device on Linux. Using the server script, it creates a device
with a UDP endpoint (port 47808) on my local network IP. I can see this
endpoint using nmap or nc commands, so I would assume it is available and ready
to receive requests.
Then using PLC4X, I created a java main method to try to establish the
connection to the device. The connection string looks as follows:
String connectionString = "bacnet-ip:udp://192.168.0.93:47808";
try (PlcConnection plcConnection = new
PlcDriverManager().getConnection(connectionString)) {
if (!plcConnection.getMetadata().canRead()) {
System.out.println("This connection doesn't support reading.");
return;
}
...
However, when running the code, I get the following exception "Active connections
not yet supported":
WARNING: An exceptionCaught() event was fired, and it reached at the tail of
the pipeline. It usually means the last handler in the pipeline did not handle
the exception.
org.apache.plc4x.java.api.exceptions.PlcRuntimeException: Active connections
not yet supported
at
org.apache.plc4x.java.bacnetip.protocol.BacNetIpProtocolLogic.onConnect(BacNetIpProtocolLogic.java:92)
at
org.apache.plc4x.java.spi.Plc4xNettyWrapper.userEventTriggered(Plc4xNettyWrapper.java:203)
...
So, I saw there is this 'passive' booelan attribute that gets initiated as
false, and have to admit Im pretty lost about where it is set... maybe the
problem is related to the actual device? or is it something I am missing on the
configuration of the connection?
By the way, I am using the code from 'origin/rel/0.10' branch, getting the
build as 0.10.1-SNAPSHOT
Thank you in advance! (and sorry if is a misconception about using the protocol
itself...)
regards,
iñigo