You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2022/05/31 19:45:13 UTC

[plc4x] branch develop updated (0d1ace47f9 -> 06a9b3414f)

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

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


    from 0d1ace47f9 refactor(bacnet): relax useage of BACnetPriorityArray
     new 57d5c1e805 refactor(protocols/knx): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD
     new 06a9b3414f fix(plc4net): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../language/cs/CsLanguageTemplateHelper.java      |  8 ++++----
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 24 +++++++++++-----------
 .../knxnetip/readwrite/model/KnxDatapoint.cs       | 24 +++++++++++-----------
 plc4net/spi/spi/model/values/PlcBitString.cs       | 19 +++++++++++++++++
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |  8 ++++----
 5 files changed, 51 insertions(+), 32 deletions(-)


[plc4x] 01/02: refactor(protocols/knx): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 57d5c1e80592d36485e1d43a7ee1e0a3bf84c587
Author: cdutz <ch...@c-ware.de>
AuthorDate: Sun May 29 17:15:43 2022 +0200

    refactor(protocols/knx): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD
---
 protocols/knxnetip/src/main/xslt/knx-types.xsl | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/protocols/knxnetip/src/main/xslt/knx-types.xsl b/protocols/knxnetip/src/main/xslt/knx-types.xsl
index c8ecf6e962..6e8dbd9f27 100644
--- a/protocols/knxnetip/src/main/xslt/knx-types.xsl
+++ b/protocols/knxnetip/src/main/xslt/knx-types.xsl
@@ -119,19 +119,19 @@
             [reserved uint 7 '0x00']
             [simple   bit    value]
         ]
-        ['BYTE' BYTE
+        ['BYTE' BitString
             [reserved uint 8    '0x00']
             [simple   uint 8    value ]
         ]
-        ['WORD' WORD
+        ['WORD' BitString
             [reserved uint 8    '0x00']
             [simple   uint 16    value]
         ]
-        ['DWORD' DWORD
+        ['DWORD' BitString
             [reserved uint 8    '0x00']
             [simple   uint 32    value]
         ]
-        ['LWORD' LWORD
+        ['LWORD' BitString
             [reserved uint 8    '0x00']
             [simple   uint 64    value]
         ]


[plc4x] 02/02: fix(plc4net): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 06a9b3414f4ecf8d2b02905f9264831351f2c508
Author: cdutz <ch...@c-ware.de>
AuthorDate: Tue May 31 21:43:50 2022 +0200

    fix(plc4net): Changed the KnxDatatypes to use BitStrings for BYTE, WORD, DWORD and LWORD
---
 .../language/cs/CsLanguageTemplateHelper.java      |  8 ++++----
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 24 +++++++++++-----------
 .../knxnetip/readwrite/model/KnxDatapoint.cs       | 24 +++++++++++-----------
 plc4net/spi/spi/model/values/PlcBitString.cs       | 19 +++++++++++++++++
 4 files changed, 47 insertions(+), 28 deletions(-)

diff --git a/code-generation/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageTemplateHelper.java b/code-generation/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageTemplateHelper.java
index d94f91bc88..aeec80d66b 100644
--- a/code-generation/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageTemplateHelper.java
+++ b/code-generation/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageTemplateHelper.java
@@ -926,7 +926,7 @@ public class CsLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
             }*/
         }
         sb.append(")");
-        if (variableLiteral.getIndex() != VariableLiteral.NO_INDEX) {
+        if (variableLiteral.getIndex().isPresent()) {
             // TODO: If this is a byte typed field, this needs to be an array accessor instead.
             sb.append(".get(").append(variableLiteral.getIndex()).append(")");
         }
@@ -949,7 +949,7 @@ public class CsLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
             }
             sb.append(")");
         }
-        if (variableLiteral.getIndex() != VariableLiteral.NO_INDEX) {
+        if (variableLiteral.getIndex().isPresent()) {
             // TODO: If this is a byte typed field, this needs to be an array accessor instead.
             sb.append(".get(").append(variableLiteral.getIndex()).append(")");
         }
@@ -1127,10 +1127,10 @@ public class CsLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
         String variableLiteralName = variableLiteral.getName();
         if (variableLiteralName.equals("length")) {
             tracer = tracer.dive("length");
-            return tracer + variableLiteralName + "()" + ((variableLiteral.isIndexed() ? ".get(" + variableLiteral.getIndex() + ")" : "") +
+            return tracer + variableLiteralName + "()" + ((variableLiteral.getIndex().isPresent() ? ".get(" + variableLiteral.getIndex() + ")" : "") +
                 variableLiteral.getChild().map(child -> "." + toVariableExpressionRest(field, resultType, child)).orElse(""));
         }
-        return tracer + "get" + WordUtils.capitalize(variableLiteralName) + "()" + ((variableLiteral.isIndexed() ? ".get(" + variableLiteral.getIndex() + ")" : "") +
+        return tracer + "get" + WordUtils.capitalize(variableLiteralName) + "()" + ((variableLiteral.getIndex().isPresent() ? ".get(" + variableLiteral.getIndex() + ")" : "") +
             variableLiteral.getChild().map(child -> "." + toVariableExpressionRest(field, resultType, child)).orElse(""));
     }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapoint.go b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapoint.go
index 5c43200387..68aa1c2a9e 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapoint.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapoint.go
@@ -45,7 +45,7 @@ func KnxDatapointParse(readBuffer utils.ReadBuffer, datapointType KnxDatapointTy
 		}
 		readBuffer.CloseContext("KnxDatapoint")
 		return values.NewPlcBOOL(value), nil
-	case datapointType == KnxDatapointType_BYTE: // BYTE
+	case datapointType == KnxDatapointType_BYTE: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _, _err := readBuffer.ReadUint8("reserved", 8); _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing reserved field")
@@ -57,8 +57,8 @@ func KnxDatapointParse(readBuffer utils.ReadBuffer, datapointType KnxDatapointTy
 			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 		}
 		readBuffer.CloseContext("KnxDatapoint")
-		return values.NewPlcBYTE(value), nil
-	case datapointType == KnxDatapointType_WORD: // WORD
+		return values.NewPlcBitString(value), nil
+	case datapointType == KnxDatapointType_WORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _, _err := readBuffer.ReadUint8("reserved", 8); _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing reserved field")
@@ -70,8 +70,8 @@ func KnxDatapointParse(readBuffer utils.ReadBuffer, datapointType KnxDatapointTy
 			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 		}
 		readBuffer.CloseContext("KnxDatapoint")
-		return values.NewPlcWORD(value), nil
-	case datapointType == KnxDatapointType_DWORD: // DWORD
+		return values.NewPlcBitString(value), nil
+	case datapointType == KnxDatapointType_DWORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _, _err := readBuffer.ReadUint8("reserved", 8); _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing reserved field")
@@ -83,8 +83,8 @@ func KnxDatapointParse(readBuffer utils.ReadBuffer, datapointType KnxDatapointTy
 			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 		}
 		readBuffer.CloseContext("KnxDatapoint")
-		return values.NewPlcDWORD(value), nil
-	case datapointType == KnxDatapointType_LWORD: // LWORD
+		return values.NewPlcBitString(value), nil
+	case datapointType == KnxDatapointType_LWORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _, _err := readBuffer.ReadUint8("reserved", 8); _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing reserved field")
@@ -96,7 +96,7 @@ func KnxDatapointParse(readBuffer utils.ReadBuffer, datapointType KnxDatapointTy
 			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 		}
 		readBuffer.CloseContext("KnxDatapoint")
-		return values.NewPlcLWORD(value), nil
+		return values.NewPlcBitString(value), nil
 	case datapointType == KnxDatapointType_USINT: // USINT
 		// Reserved Field (Just skip the bytes)
 		if _, _err := readBuffer.ReadUint8("reserved", 8); _err != nil {
@@ -7579,7 +7579,7 @@ func KnxDatapointSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, da
 		if _err := writeBuffer.WriteBit("value", value.GetBool()); _err != nil {
 			return errors.Wrap(_err, "Error serializing 'value' field")
 		}
-	case datapointType == KnxDatapointType_BYTE: // BYTE
+	case datapointType == KnxDatapointType_BYTE: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _err := writeBuffer.WriteUint8("reserved", 8, uint8(0x00)); _err != nil {
 			return errors.Wrap(_err, "Error serializing reserved field")
@@ -7589,7 +7589,7 @@ func KnxDatapointSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, da
 		if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil {
 			return errors.Wrap(_err, "Error serializing 'value' field")
 		}
-	case datapointType == KnxDatapointType_WORD: // WORD
+	case datapointType == KnxDatapointType_WORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _err := writeBuffer.WriteUint8("reserved", 8, uint8(0x00)); _err != nil {
 			return errors.Wrap(_err, "Error serializing reserved field")
@@ -7599,7 +7599,7 @@ func KnxDatapointSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, da
 		if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil {
 			return errors.Wrap(_err, "Error serializing 'value' field")
 		}
-	case datapointType == KnxDatapointType_DWORD: // DWORD
+	case datapointType == KnxDatapointType_DWORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _err := writeBuffer.WriteUint8("reserved", 8, uint8(0x00)); _err != nil {
 			return errors.Wrap(_err, "Error serializing reserved field")
@@ -7609,7 +7609,7 @@ func KnxDatapointSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, da
 		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
 			return errors.Wrap(_err, "Error serializing 'value' field")
 		}
-	case datapointType == KnxDatapointType_LWORD: // LWORD
+	case datapointType == KnxDatapointType_LWORD: // BitString
 		// Reserved Field (Just skip the bytes)
 		if _err := writeBuffer.WriteUint8("reserved", 8, uint8(0x00)); _err != nil {
 			return errors.Wrap(_err, "Error serializing reserved field")
diff --git a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxDatapoint.cs b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxDatapoint.cs
index a59df7067a..cd10043449 100644
--- a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxDatapoint.cs
+++ b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxDatapoint.cs
@@ -50,7 +50,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 var value = readBuffer.ReadBit("");
 
                 return new PlcBOOL(value);
-            } else if( datapointType == KnxDatapointType.BYTE ) { // BYTE
+            } else if( datapointType == KnxDatapointType.BYTE ) { // BitString
 
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
@@ -63,8 +63,8 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 // Simple Field (value)
                 var value = readBuffer.ReadByte("", 8);
 
-                return new PlcBYTE(value);
-            } else if( datapointType == KnxDatapointType.WORD ) { // WORD
+                return new PlcBitString(value);
+            } else if( datapointType == KnxDatapointType.WORD ) { // BitString
 
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
@@ -77,8 +77,8 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 // Simple Field (value)
                 var value = readBuffer.ReadUshort("", 16);
 
-                return new PlcWORD(value);
-            } else if( datapointType == KnxDatapointType.DWORD ) { // DWORD
+                return new PlcBitString(value);
+            } else if( datapointType == KnxDatapointType.DWORD ) { // BitString
 
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
@@ -91,8 +91,8 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 // Simple Field (value)
                 var value = readBuffer.ReadUint("", 32);
 
-                return new PlcDWORD(value);
-            } else if( datapointType == KnxDatapointType.LWORD ) { // LWORD
+                return new PlcBitString(value);
+            } else if( datapointType == KnxDatapointType.LWORD ) { // BitString
 
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
@@ -105,7 +105,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 // Simple Field (value)
                 var value = readBuffer.ReadUlong("", 64);
 
-                return new PlcLWORD(value);
+                return new PlcBitString(value);
             } else if( datapointType == KnxDatapointType.USINT ) { // USINT
 
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
@@ -6541,7 +6541,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 var value = (bool) _value.GetBool();
                 writeBuffer.WriteBit("", (value));
             return writeBuffer;
-        } else if( datapointType == KnxDatapointType.BYTE ) { // BYTE
+        } else if( datapointType == KnxDatapointType.BYTE ) { // BitString
                 var writeBuffer = new WriteBuffer();
 
                 // Reserved Field
@@ -6550,7 +6550,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 var value = (byte) _value.GetByte();
                 writeBuffer.WriteByte("", 8, (byte) (value));
             return writeBuffer;
-        } else if( datapointType == KnxDatapointType.WORD ) { // WORD
+        } else if( datapointType == KnxDatapointType.WORD ) { // BitString
                 var writeBuffer = new WriteBuffer();
 
                 // Reserved Field
@@ -6559,7 +6559,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 var value = (ushort) _value.GetUshort();
                 writeBuffer.WriteUshort("", 16, (ushort) (value));
             return writeBuffer;
-        } else if( datapointType == KnxDatapointType.DWORD ) { // DWORD
+        } else if( datapointType == KnxDatapointType.DWORD ) { // BitString
                 var writeBuffer = new WriteBuffer();
 
                 // Reserved Field
@@ -6568,7 +6568,7 @@ if( datapointType == KnxDatapointType.BOOL ) { // BOOL
                 var value = (uint) _value.GetUint();
                 writeBuffer.WriteUint("", 32, (uint) (value));
             return writeBuffer;
-        } else if( datapointType == KnxDatapointType.LWORD ) { // LWORD
+        } else if( datapointType == KnxDatapointType.LWORD ) { // BitString
                 var writeBuffer = new WriteBuffer();
 
                 // Reserved Field
diff --git a/plc4net/spi/spi/model/values/PlcBitString.cs b/plc4net/spi/spi/model/values/PlcBitString.cs
index d5747e95ac..8ccb6f133a 100644
--- a/plc4net/spi/spi/model/values/PlcBitString.cs
+++ b/plc4net/spi/spi/model/values/PlcBitString.cs
@@ -21,6 +21,25 @@ namespace org.apache.plc4net.spi.model.values
 {
     public class PlcBitString : PlcValueAdapter
     {
+        public PlcBitString()
+        {
+        }
+
+        public PlcBitString(byte value)
+        {
+        }
+
+        public PlcBitString(ushort value)
+        {
+        }
+
+        public PlcBitString(uint value)
+        {
+        }
+
+        public PlcBitString(ulong value)
+        {
+        }
 
     }
 }
\ No newline at end of file