You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/04/20 09:50:09 UTC

[plc4x] branch develop updated: feat(bacnet): added helper for floating point data types

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1c229ce66a feat(bacnet): added helper for floating point data types
1c229ce66a is described below

commit 1c229ce66ae3afefe2e798e684a4e885fdc01868
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Apr 20 11:50:02 2022 +0200

    feat(bacnet): added helper for floating point data types
---
 .../bacnetip/readwrite/model/StaticHelper.go       | 28 ++++++++++++++++++----
 .../bacnetip/readwrite/utils/StaticHelper.java     | 28 ++++++++++++++++++----
 2 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
index 5d1df9eacd..aac6468819 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
@@ -375,7 +375,7 @@ func CreateBACnetClosingTag(tagNum uint8) *BACnetClosingTag {
 }
 
 func CreateBACnetApplicationTagObjectIdentifier(objectType uint16, instance uint32) *BACnetApplicationTagObjectIdentifier {
-	header := NewBACnetTagHeader(0xC, TagClass_APPLICATION_TAGS, uint8(4), nil, nil, nil, nil)
+	header := NewBACnetTagHeader(uint8(BACnetDataType_BACNET_OBJECT_IDENTIFIER), TagClass_APPLICATION_TAGS, uint8(4), nil, nil, nil, nil)
 	objectTypeEnum := BACnetObjectTypeByValue(objectType)
 	proprietaryValue := uint16(0)
 	if objectType >= 128 || !BACnetObjectTypeKnows(objectType) {
@@ -411,7 +411,7 @@ func CreateBACnetContextTagPropertyIdentifier(tagNum uint8, propertyType uint32)
 
 func CreateBACnetApplicationTagEnumerated(value uint32) *BACnetApplicationTagEnumerated {
 	length, payload := CreateEnumeratedPayload(value)
-	header := CreateBACnetTagHeaderBalanced(false, 0x9, length)
+	header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_ENUMERATED), length)
 	result := NewBACnetApplicationTagEnumerated(payload, header)
 	return CastBACnetApplicationTagEnumerated(result)
 }
@@ -432,7 +432,7 @@ func CreateEnumeratedPayload(value uint32) (uint32, *BACnetTagPayloadEnumerated)
 
 func CreateBACnetApplicationTagUnsignedInteger(value uint32) *BACnetApplicationTagUnsignedInteger {
 	length, payload := CreateUnsignedPayload(value)
-	header := CreateBACnetTagHeaderBalanced(false, 0x2, length)
+	header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_UNSIGNED_INTEGER), length)
 	return NewBACnetApplicationTagUnsignedInteger(payload, header)
 }
 
@@ -475,7 +475,7 @@ func CreateUnsignedPayload(value uint32) (uint32, *BACnetTagPayloadUnsignedInteg
 
 func CreateBACnetApplicationTagSignedInteger(value int32) *BACnetApplicationTagSignedInteger {
 	length, payload := CreateSignedPayload(value)
-	header := CreateBACnetTagHeaderBalanced(true, 0x3, length)
+	header := CreateBACnetTagHeaderBalanced(true, uint8(BACnetDataType_SIGNED_INTEGER), length)
 	return NewBACnetApplicationTagSignedInteger(payload, header)
 }
 
@@ -512,6 +512,26 @@ func CreateSignedPayload(value int32) (uint32, *BACnetTagPayloadSignedInteger) {
 	return length, payload
 }
 
+func CreateBACnetApplicationTagReal(value float32) *BACnetApplicationTagReal {
+	header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_REAL), 4)
+	return NewBACnetApplicationTagReal(NewBACnetTagPayloadReal(value), header)
+}
+
+func CreateBACnetContextTagReal(tagNumber uint8, value float32) *BACnetContextTagReal {
+	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 4)
+	return NewBACnetContextTagReal(NewBACnetTagPayloadReal(value), header, tagNumber, true)
+}
+
+func CreateBACnetApplicationTagDouble(value float64) *BACnetApplicationTagDouble {
+	header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_DOUBLE), 8)
+	return NewBACnetApplicationTagDouble(NewBACnetTagPayloadDouble(value), header)
+}
+
+func CreateBACnetContextTagDouble(tagNumber uint8, value float64) *BACnetContextTagDouble {
+	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 8)
+	return NewBACnetContextTagDouble(NewBACnetTagPayloadDouble(value), header, tagNumber, true)
+}
+
 func requiredLength(value uint) uint32 {
 	var length uint32
 	switch {
diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
index bffa9242ee..202836e7bf 100644
--- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
+++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
@@ -415,7 +415,7 @@ public class StaticHelper {
     }
 
     public static BACnetApplicationTagObjectIdentifier createBACnetApplicationTagObjectIdentifier(int objectType, long instance) {
-        BACnetTagHeader header = new BACnetTagHeader((byte) 0xC, TagClass.APPLICATION_TAGS, (byte) 4, null, null, null, null);
+        BACnetTagHeader header = new BACnetTagHeader((byte) BACnetDataType.SIGNED_INTEGER.getValue(), TagClass.APPLICATION_TAGS, (byte) 4, null, null, null, null);
         BACnetObjectType objectTypeEnum = BACnetObjectType.enumForValue(objectType);
         int proprietaryValue = 0;
         if (objectType >= 128 || !BACnetObjectType.isDefined(objectType)) {
@@ -451,7 +451,7 @@ public class StaticHelper {
 
     public static BACnetApplicationTagEnumerated createBACnetApplicationTagEnumerated(long value) {
         Pair<Long, BACnetTagPayloadEnumerated> lengthPayload = CreateEnumeratedPayload(value);
-        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, (byte) 0x9, lengthPayload.getLeft());
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.ENUMERATED.getValue(), lengthPayload.getLeft());
         return new BACnetApplicationTagEnumerated(header, lengthPayload.getRight());
     }
 
@@ -470,7 +470,7 @@ public class StaticHelper {
 
     public static BACnetApplicationTagUnsignedInteger createBACnetApplicationTagUnsignedInteger(long value) {
         Pair<Long, BACnetTagPayloadUnsignedInteger> lengthPayload = createUnsignedPayload(value);
-        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, (byte) 0x2, lengthPayload.getLeft());
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.UNSIGNED_INTEGER.getValue(), lengthPayload.getLeft());
         return new BACnetApplicationTagUnsignedInteger(header, lengthPayload.getRight());
     }
 
@@ -509,7 +509,7 @@ public class StaticHelper {
 
     public static BACnetApplicationTagSignedInteger createBACnetApplicationTagSignedInteger(long value) {
         Pair<Long, BACnetTagPayloadSignedInteger> lengthPayload = createSignedPayload(value);
-        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, (byte) 0x3, lengthPayload.getLeft());
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.SIGNED_INTEGER.getValue(), lengthPayload.getLeft());
         return new BACnetApplicationTagSignedInteger(header, lengthPayload.getRight());
     }
 
@@ -542,6 +542,26 @@ public class StaticHelper {
         return Pair.of(length, payload);
     }
 
+    public static BACnetApplicationTagReal createBACnetApplicationTagReal(float value) {
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.REAL.getValue(), 4);
+        return new BACnetApplicationTagReal(header, new BACnetTagPayloadReal(value));
+    }
+
+    public static BACnetContextTagReal createBACnetContextTagReal(byte tagNumber, float value) {
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 4);
+        return new BACnetContextTagReal(header, new BACnetTagPayloadReal(value), (short) tagNumber, true);
+    }
+
+    public static BACnetApplicationTagDouble createBACnetApplicationTagDouble(double value) {
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.DOUBLE.getValue(), 8);
+        return new BACnetApplicationTagDouble(header, new BACnetTagPayloadDouble(value));
+    }
+
+    public static BACnetContextTagDouble createBACnetContextTagDouble(byte tagNumber, double value) {
+        BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 8);
+        return new BACnetContextTagDouble(header, new BACnetTagPayloadDouble(value), (short) tagNumber, true);
+    }
+
     private static long requiredLength(long value) {
         long length;
         if (value < 0x100)