BACnet4J compliance with standard
-
Hi, I've tested my BACnet4J app with BACnet test client (http://www.bac-test.com/download.php).
Many tests pass, but some do not pass. Take these, for example:
15/01/2013 09:45:39: Running Diagnostic: BC 135.1: 13.4.3 - Bad Tag Diagnostic
15/01/2013 09:45:39: Sending a Read Property where the Tag number is 2, not 1 as expected, should receive a 'Reject PDU' as a result
15/01/2013 09:45:39: tpde00532 - Wrong response received, expected RejectPDU but received: Error Class=Property, Error Code=Missing Required Parameter
15/01/2013 09:45:39: *** Diagnostic Fails ***
15/01/2013 09:45:39:15/01/2013 09:45:39: Running Diagnostic: BC 135.1: 13.4.4-A - Missing Required Parameter
15/01/2013 09:45:39: Reject PDU expected
15/01/2013 09:45:39: *** Diagnostic Fails ***
15/01/2013 09:45:39:15/01/2013 09:45:39: Running Diagnostic: BC 135.1: 9.13.4.3-A - Invalid Tag for Property
15/01/2013 09:45:39: Incorrect PDU Type in response: ERROR
15/01/2013 09:45:39: *** Diagnostic Fails ***
15/01/2013 09:45:39:15/01/2013 09:45:39: Running Diagnostic: BC 135.1: 9.13.4.3-B - Invalid (8 bit) Tag for Property
15/01/2013 09:45:39: Incorrect PDU Type in response: ERROR
15/01/2013 09:45:39: *** Diagnostic Fails ***
15/01/2013 09:45:39:Do you have any suggestion? Thanks.
-
That's interesting, but without the details to reproduce the case there isn't much i can do. Also, it appears that these tests are testing what happens when badly-formatted or otherwise non-compliant messages are sent. I've seen enough examples of equipment that don't respond properly to valid messages; i'm not sure we need to be too concerned with invalid message, except to fix the devices that are sending them.
-
I do agree with you in that the priority is working with valid messages; however any improvement with handling the corner cases would be welcomed. :wink:
My application is basically the BACnet4J sample application:
LocalDevice localDevice = new LocalDevice(1968, "10.1.10.168"); localDevice.getConfiguration().setProperty(PropertyIdentifier.objectName, new CharacterString("my device")); localDevice.setPort(0xBAC0); // a few properties... // Start the local device. localDevice.initialize(); // Send an iam. localDevice.sendBroadcast(47808, localDevice.getIAm());
You can dowload the test client from http://www.bac-test.com/download.php and you'll get the same errors as I get.