From a481893b467706a258458c0437eeae2c13bfab33 Mon Sep 17 00:00:00 2001 From: baardl Date: Thu, 8 Apr 2021 20:53:29 +0200 Subject: [PATCH] #4 Prepare for tomorrow --- .../ReadObjectPropertiesResultParser.java | 17 ++++ .../ReadObjectPropertiesResultParserTest.java | 94 +++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 src/main/java/no/entra/bacnet/services/ReadObjectPropertiesResultParser.java create mode 100644 src/test/java/no/entra/bacnet/services/ReadObjectPropertiesResultParserTest.java diff --git a/src/main/java/no/entra/bacnet/services/ReadObjectPropertiesResultParser.java b/src/main/java/no/entra/bacnet/services/ReadObjectPropertiesResultParser.java new file mode 100644 index 0000000..0d36805 --- /dev/null +++ b/src/main/java/no/entra/bacnet/services/ReadObjectPropertiesResultParser.java @@ -0,0 +1,17 @@ +package no.entra.bacnet.services; + +import no.entra.bacnet.objects.ObjectId; + +import java.util.ArrayList; +import java.util.List; + + +public class ReadObjectPropertiesResultParser { + + public static ReadObjectPropertiesResult parse(String hexString) throws BacnetParserException { + ObjectId objectId = null;// TODO: 08.04.2021 + List readPropertyResults = new ArrayList<>();//TODO + + //Iterate over list of + } +} diff --git a/src/test/java/no/entra/bacnet/services/ReadObjectPropertiesResultParserTest.java b/src/test/java/no/entra/bacnet/services/ReadObjectPropertiesResultParserTest.java new file mode 100644 index 0000000..136c5c3 --- /dev/null +++ b/src/test/java/no/entra/bacnet/services/ReadObjectPropertiesResultParserTest.java @@ -0,0 +1,94 @@ +package no.entra.bacnet.services; + +import org.junit.jupiter.api.Test; + +/* +Single object multiple properties +{ + "objectId": "analog-value, 0", + "results": [ + { + "property-identifier": "object-name", + "read-result": { + "Object Name": "UI1_ZoneTemperature" + } + }, + { + "property-identifier": "description", + "read-result": { + "description": "Analog Value 0" + } + }, + { + "property-identifier": "units", + "read-result": { + "units": "No Units" + } + }, + { + "property-identifier": "present-value", + "read-result": { + "Present Value": 22.3999862670898 + } + } + ] +} +HexString: 0c008000001e294d4e7514005549315f5a6f6e6554656d70657261747572654f291c4e750f00416e616c6f672056616c756520304f29754e915f4f29554e4441b3332c4f1f + +With Error +{ + "objectId": "device, 8", + "results": [ + { + "property-identifier": "object-name", + "read-result": { + "Object Name": "FWFCU" + } + }, + { + "property-identifier": "description", + "read-result": { + "description": "FW Series Bacnet Device" + } + }, + { + "property-identifier": "present-value", + "read-result": { + "propertyAccessError": { + "errorClass": "property", + "errorCode": "unknown-property" + } + } + } + ] +} +HexString: 0c020000081e294d4e75060046574643554f291c4e751800465720536572696573204261636e6574204465766963654f29755e910291205f29555e910291205f1f + +With Array +{ + "objectId": "device, 8", + "results": [ + { + "property-identifier": "object-list", + "property-array-index": "1", + "read-result": { + "objectId": "device, 8" + } + }, + { + "property-identifier": "object-list", + "property-array-index": "2", + "read-result": { + "objectId": "analog-value, 0" + } + } + ] +} +HexString: 30460e0c020000081e294c39014ec4020000084f294c39024ec4008000004f294c39034e1f + */ +class ReadObjectPropertiesResultParserTest { + + @Test + void parse() { + } +} \ No newline at end of file