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 1954d40  plc4x: fixed datatypes and bitlengths of field types for spi 
(ads,eip,modbus,s7)
1954d40 is described below

commit 1954d4074d4d489701b0ba6905f9f5c190b3a67d
Author: Sebastian Rühl <[email protected]>
AuthorDate: Tue Jul 6 10:56:22 2021 +0200

    plc4x: fixed datatypes and bitlengths of field types for spi 
(ads,eip,modbus,s7)
---
 .../testing/protocols/ads/DriverTestsuite.xml      | 24 ++++++------
 .../testing/protocols/eip/DriverTestsuite.xml      |  2 +-
 .../testing/protocols/modbus/DriverTestsuite.xml   | 24 ++++++------
 .../testing/protocols/s7/DriverTestsuite.xml       | 16 ++++----
 plc4go/internal/plc4go/ads/Field.go                | 17 +++-----
 plc4go/internal/plc4go/eip/Field.go                |  3 +-
 plc4go/internal/plc4go/modbus/Field.go             |  5 +--
 plc4go/internal/plc4go/s7/Field.go                 | 45 ++++++++++++++++++----
 .../plc4x/java/ads/field/DirectAdsField.java       |  7 ++--
 .../plc4x/java/ads/field/DirectAdsStringField.java |  6 +--
 .../plc4x/java/ads/field/SymbolicAdsField.java     |  2 +-
 .../java/ads/field/SymbolicAdsStringField.java     |  6 +--
 .../plc4x/java/eip/readwrite/field/EipField.java   |  3 +-
 .../plc4x/java/modbus/field/ModbusField.java       |  5 +--
 .../plc4x/java/s7/readwrite/field/S7Field.java     | 11 ++----
 .../java/s7/readwrite/field/S7StringField.java     |  8 ++--
 .../resources/protocols/ads/DriverTestsuite.xml    | 24 ++++++------
 .../resources/protocols/eip/DriverTestsuite.xml    |  2 +-
 .../resources/protocols/modbus/DriverTestsuite.xml | 24 ++++++------
 .../resources/protocols/s7/DriverTestsuite.xml     | 16 ++++----
 20 files changed, 132 insertions(+), 118 deletions(-)

diff --git a/plc4go/assets/testing/protocols/ads/DriverTestsuite.xml 
b/plc4go/assets/testing/protocols/ads/DriverTestsuite.xml
index 006f5f5..b10a23f 100644
--- a/plc4go/assets/testing/protocols/ads/DriverTestsuite.xml
+++ b/plc4go/assets/testing/protocols/ads/DriverTestsuite.xml
@@ -194,9 +194,9 @@
             <fields>
               <hurz>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">8</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">8</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz>
@@ -398,17 +398,17 @@
             <fields>
               <hurz1>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">8</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">8</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz1>
               <hurz2>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">12</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">12</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz2>
@@ -754,7 +754,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
@@ -1095,7 +1095,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
@@ -1264,7 +1264,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
diff --git a/plc4go/assets/testing/protocols/eip/DriverTestsuite.xml 
b/plc4go/assets/testing/protocols/eip/DriverTestsuite.xml
index 2231728..ed1251c 100644
--- a/plc4go/assets/testing/protocols/eip/DriverTestsuite.xml
+++ b/plc4go/assets/testing/protocols/eip/DriverTestsuite.xml
@@ -214,7 +214,7 @@
               <hurz>
                 <EipField>
                   <node dataType="string" bitLength="32" 
encoding="UTF-8">rate</node>
-                  <elementNb dataType="int" bitLength="64">0</elementNb>
+                  <elementNb dataType="uint" bitLength="16">0</elementNb>
                   <defaultJavaType dataType="string" bitLength="128" 
encoding="UTF-8">java.lang.Object</defaultJavaType>
                 </EipField>
               </hurz>
diff --git a/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml 
b/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
index dd62f42..eaeec42 100644
--- a/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
+++ b/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
@@ -95,8 +95,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz>
@@ -185,8 +185,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">2</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">2</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz>
@@ -325,15 +325,15 @@
             <fields>
               <hurz1>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz1>
               <hurz2>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">2</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">2</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz2>
@@ -427,8 +427,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
                 <value dataType="string" bitLength="72" 
encoding="UTF-8">3.1415927</value>
@@ -517,8 +517,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">2</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">2</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
                 <value dataType="string" bitLength="72" 
encoding="UTF-8">3.1415927</value>
diff --git a/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml 
b/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml
index bfd535f..b79fec2 100644
--- a/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml
+++ b/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml
@@ -536,10 +536,10 @@
               <hurz>
                 <S7Field>
                   <memoryArea dataType="string" bitLength="56" 
encoding="UTF-8">OUTPUTS</memoryArea>
-                  <blockNumber dataType="int" bitLength="64">0</blockNumber>
-                  <byteOffset dataType="int" bitLength="64">0</byteOffset>
-                  <bitOffset dataType="int" bitLength="64">0</bitOffset>
-                  <numElements dataType="int" bitLength="64">1</numElements>
+                  <blockNumber dataType="uint" bitLength="16">0</blockNumber>
+                  <byteOffset dataType="uint" bitLength="16">0</byteOffset>
+                  <bitOffset dataType="uint" bitLength="8">0</bitOffset>
+                  <numElements dataType="uint" bitLength="16">1</numElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </S7Field>
               </hurz>
@@ -672,10 +672,10 @@
               <hurz>
                 <S7Field>
                   <memoryArea dataType="string" bitLength="56" 
encoding="UTF-8">OUTPUTS</memoryArea>
-                  <blockNumber dataType="int" bitLength="64">0</blockNumber>
-                  <byteOffset dataType="int" bitLength="64">0</byteOffset>
-                  <bitOffset dataType="int" bitLength="64">0</bitOffset>
-                  <numElements dataType="int" bitLength="64">1</numElements>
+                  <blockNumber dataType="uint" bitLength="16">0</blockNumber>
+                  <byteOffset dataType="uint" bitLength="16">0</byteOffset>
+                  <bitOffset dataType="uint" bitLength="8">0</bitOffset>
+                  <numElements dataType="uint" bitLength="16">1</numElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </S7Field>
               </hurz>
diff --git a/plc4go/internal/plc4go/ads/Field.go 
b/plc4go/internal/plc4go/ads/Field.go
index cb3cb1c..63b93b4 100644
--- a/plc4go/internal/plc4go/ads/Field.go
+++ b/plc4go/internal/plc4go/ads/Field.go
@@ -112,16 +112,14 @@ func (m DirectPlcField) Serialize(writeBuffer 
utils.WriteBuffer) error {
                return err
        }
 
-       // TODO: fix types to uint32
-       if err := writeBuffer.WriteInt64("indexGroup", 64, 
int64(m.IndexGroup)); err != nil {
+       if err := writeBuffer.WriteUint32("indexGroup", 32, m.IndexGroup); err 
!= nil {
                return err
        }
-       if err := writeBuffer.WriteInt64("indexOffset", 64, 
int64(m.IndexOffset)); err != nil {
+       if err := writeBuffer.WriteUint32("indexOffset", 32, m.IndexOffset); 
err != nil {
                return err
        }
 
-       // TODO: fix types to uint32
-       if err := writeBuffer.WriteInt64("numberOfElements", 64, 
int64(m.NumberOfElements)); err != nil {
+       if err := writeBuffer.WriteUint32("numberOfElements", 32, 
m.NumberOfElements); err != nil {
                return err
        }
 
@@ -130,8 +128,7 @@ func (m DirectPlcField) Serialize(writeBuffer 
utils.WriteBuffer) error {
        }
 
        if m.StringLength != 0 {
-               // TODO: fix types to int32
-               if err := writeBuffer.WriteInt64("stringLength", 64, 
int64(m.StringLength)); err != nil {
+               if err := writeBuffer.WriteInt32("stringLength", 32, 
m.StringLength); err != nil {
                        return err
                }
        }
@@ -198,8 +195,7 @@ func (m SymbolicPlcField) Serialize(writeBuffer 
utils.WriteBuffer) error {
                return err
        }
 
-       // TODO: fix types to uint32
-       if err := writeBuffer.WriteInt64("numberOfElements", 64, 
int64(m.NumberOfElements)); err != nil {
+       if err := writeBuffer.WriteUint32("numberOfElements", 32, 
m.NumberOfElements); err != nil {
                return err
        }
 
@@ -208,8 +204,7 @@ func (m SymbolicPlcField) Serialize(writeBuffer 
utils.WriteBuffer) error {
        }
 
        if m.StringLength > 0 {
-               // TODO: fix types to int32
-               if err := writeBuffer.WriteInt64("stringLength", 64, 
int64(m.StringLength)); err != nil {
+               if err := writeBuffer.WriteInt32("stringLength", 32, 
m.StringLength); err != nil {
                        return err
                }
        }
diff --git a/plc4go/internal/plc4go/eip/Field.go 
b/plc4go/internal/plc4go/eip/Field.go
index 83c6696..fbbe481 100644
--- a/plc4go/internal/plc4go/eip/Field.go
+++ b/plc4go/internal/plc4go/eip/Field.go
@@ -83,8 +83,7 @@ func (m PlcField) Serialize(writeBuffer utils.WriteBuffer) 
error {
                }
        }
 
-       // TODO: fix types to uint16
-       if err := writeBuffer.WriteInt64("elementNb", 64, int64(m.ElementNb)); 
err != nil {
+       if err := writeBuffer.WriteUint16("elementNb", 16, m.ElementNb); err != 
nil {
                return err
        }
 
diff --git a/plc4go/internal/plc4go/modbus/Field.go 
b/plc4go/internal/plc4go/modbus/Field.go
index 15d703d..35c3d2a 100644
--- a/plc4go/internal/plc4go/modbus/Field.go
+++ b/plc4go/internal/plc4go/modbus/Field.go
@@ -94,11 +94,10 @@ func (m PlcField) Serialize(writeBuffer utils.WriteBuffer) 
error {
                return err
        }
 
-       // TODO: fix types to uint16
-       if err := writeBuffer.WriteInt64("address", 64, int64(m.Address)); err 
!= nil {
+       if err := writeBuffer.WriteUint16("address", 16, m.Address); err != nil 
{
                return err
        }
-       if err := writeBuffer.WriteInt64("numberOfElements", 64, 
int64(m.GetQuantity())); err != nil {
+       if err := writeBuffer.WriteUint16("numberOfElements", 16, 
m.GetQuantity()); err != nil {
                return err
        }
        dataType := m.GetDataType().String()
diff --git a/plc4go/internal/plc4go/s7/Field.go 
b/plc4go/internal/plc4go/s7/Field.go
index abaa392..b431ca8 100644
--- a/plc4go/internal/plc4go/s7/Field.go
+++ b/plc4go/internal/plc4go/s7/Field.go
@@ -130,20 +130,49 @@ func (m PlcField) Serialize(writeBuffer 
utils.WriteBuffer) error {
        if err := writeBuffer.WriteString("memoryArea", 
uint8(len(m.MemoryArea.String())*8), "UTF-8", m.MemoryArea.String()); err != 
nil {
                return err
        }
-       // TODO: change to uint16
-       if err := writeBuffer.WriteInt64("blockNumber", 64, 
int64(m.BlockNumber)); err != nil {
+       if err := writeBuffer.WriteUint16("blockNumber", 16, m.BlockNumber); 
err != nil {
                return err
        }
-       // TODO: change to uint16
-       if err := writeBuffer.WriteInt64("byteOffset", 64, 
int64(m.ByteOffset)); err != nil {
+       if err := writeBuffer.WriteUint16("byteOffset", 16, m.ByteOffset); err 
!= nil {
                return err
        }
-       // TODO: change to uint16
-       if err := writeBuffer.WriteInt64("bitOffset", 64, int64(m.BitOffset)); 
err != nil {
+       if err := writeBuffer.WriteUint8("bitOffset", 8, m.BitOffset); err != 
nil {
                return err
        }
-       // TODO: change to uint16
-       if err := writeBuffer.WriteInt64("numElements", 64, 
int64(m.NumElements)); err != nil {
+       if err := writeBuffer.WriteUint16("numElements", 16, m.NumElements); 
err != nil {
+               return err
+       }
+       if err := writeBuffer.WriteString("dataType", 
uint8(len(m.Datatype.String())*8), "UTF-8", m.Datatype.String()); err != nil {
+               return err
+       }
+
+       if err := writeBuffer.PopContext(m.FieldType.GetName()); err != nil {
+               return err
+       }
+       return nil
+}
+
+func (m PlcStringField) Serialize(writeBuffer utils.WriteBuffer) error {
+       if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
+               return err
+       }
+
+       if err := writeBuffer.WriteString("memoryArea", 
uint8(len(m.MemoryArea.String())*8), "UTF-8", m.MemoryArea.String()); err != 
nil {
+               return err
+       }
+       if err := writeBuffer.WriteUint16("blockNumber", 16, m.BlockNumber); 
err != nil {
+               return err
+       }
+       if err := writeBuffer.WriteUint16("byteOffset", 16, m.ByteOffset); err 
!= nil {
+               return err
+       }
+       if err := writeBuffer.WriteUint8("bitOffset", 8, m.BitOffset); err != 
nil {
+               return err
+       }
+       if err := writeBuffer.WriteUint16("numElements", 16, m.NumElements); 
err != nil {
+               return err
+       }
+       if err := writeBuffer.WriteUint16("numElements", 16, m.stringLength); 
err != nil {
                return err
        }
        if err := writeBuffer.WriteString("dataType", 
uint8(len(m.Datatype.String())*8), "UTF-8", m.Datatype.String()); err != nil {
diff --git 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
index 8cc2bff..6b5a266 100644
--- 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
+++ 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
@@ -154,10 +154,9 @@ public class DirectAdsField implements AdsField {
     public void serialize(WriteBuffer writeBuffer) throws ParseException {
         writeBuffer.pushContext(getClass().getSimpleName());
 
-        // TODO: fix types to uint32
-        writeBuffer.writeLong("indexGroup", 64, getIndexGroup());
-        writeBuffer.writeLong("indexOffset", 64, getIndexOffset());
-        writeBuffer.writeLong("numberOfElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedLong("indexGroup", 32, getIndexGroup());
+        writeBuffer.writeUnsignedLong("indexOffset", 32, getIndexOffset());
+        writeBuffer.writeUnsignedLong("numberOfElements", 32, 
getNumberOfElements());
         String plcDataType = getPlcDataType();
         writeBuffer.writeString("dataType", 
plcDataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), plcDataType);
 
diff --git 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
index 720fc7c..6a2c5d8 100644
--- 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
+++ 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
@@ -108,9 +108,9 @@ public class DirectAdsStringField extends DirectAdsField 
implements AdsStringFie
     public void serialize(WriteBuffer writeBuffer) throws ParseException {
         writeBuffer.pushContext(getClass().getSimpleName());
 
-        writeBuffer.writeLong("indexGroup", 64, getIndexGroup());
-        writeBuffer.writeLong("indexOffset", 64, getIndexOffset());
-        writeBuffer.writeLong("numberOfElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedLong("indexGroup", 32, getIndexGroup());
+        writeBuffer.writeUnsignedLong("indexOffset", 32, getIndexOffset());
+        writeBuffer.writeUnsignedLong("numberOfElements", 32, 
getNumberOfElements());
         String plcDataType = getPlcDataType();
         writeBuffer.writeString("dataType", 
plcDataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), plcDataType);
 
diff --git 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
index 5e12ebc..b90faad 100644
--- 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
+++ 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
@@ -123,7 +123,7 @@ public class SymbolicAdsField implements AdsField {
         String symbolicAddress = getSymbolicAddress();
         writeBuffer.writeString("symbolicAddress", 
symbolicAddress.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), symbolicAddress);
 
-        writeBuffer.writeInt("numberOfElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedLong("numberOfElements", 32, 
getNumberOfElements());
 
         String dataType = getPlcDataType();
         writeBuffer.writeString("dataType", 
dataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), dataType);
diff --git 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
index 4068353..191266e 100644
--- 
a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
+++ 
b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
@@ -87,14 +87,12 @@ public class SymbolicAdsStringField extends 
SymbolicAdsField implements AdsStrin
         String symbolicAddress = getSymbolicAddress();
         writeBuffer.writeString("symbolicAddress", 
symbolicAddress.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), symbolicAddress);
 
-        // TODO: fix types to uint32
-        writeBuffer.writeInt("numberOfElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedLong("numberOfElements", 32, 
getNumberOfElements());
 
         String dataType = getPlcDataType();
         writeBuffer.writeString("dataType", 
dataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), dataType);
 
-        // TODO: fix types to int32
-        writeBuffer.writeInt("stringLength", 64, getStringLength());
+        writeBuffer.writeInt("stringLength", 32, getStringLength());
         writeBuffer.popContext(getClass().getSimpleName());
     }
 }
diff --git 
a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
 
b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
index 7986050..70be940 100644
--- 
a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
+++ 
b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
@@ -147,8 +147,7 @@ public class EipField implements PlcField, Serializable {
         if (type != null) {
             writeBuffer.writeString("type", 
type.name().getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), type.name());
         }
-        // TODO: fix types to uint16
-        writeBuffer.writeInt("elementNb", 64, elementNb);
+        writeBuffer.writeUnsignedInt("elementNb", 16, elementNb);
         // TODO: remove this (not language agnostic)
         String defaultJavaType = (type == null ? Object.class : 
getDefaultJavaType()).getName();
         writeBuffer.writeString("defaultJavaType", 
defaultJavaType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), defaultJavaType);
diff --git 
a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
 
b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
index 82a9549..7f9d8a2 100644
--- 
a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
+++ 
b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
@@ -132,9 +132,8 @@ public abstract class ModbusField implements PlcField, 
Serializable {
     public void serialize(WriteBuffer writeBuffer) throws ParseException {
         writeBuffer.pushContext(getClass().getSimpleName());
 
-        // TODO: fix types to uint16
-        writeBuffer.writeInt("address", 64, address);
-        writeBuffer.writeInt("numberOfElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedInt("address", 16, address);
+        writeBuffer.writeUnsignedInt("numberOfElements", 16, 
getNumberOfElements());
         String dataType = getPlcDataType();
         writeBuffer.writeString("dataType", 
dataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), dataType);
 
diff --git 
a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
 
b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
index a89748b..23c65a3 100644
--- 
a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
+++ 
b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
@@ -364,13 +364,10 @@ public class S7Field implements PlcField, Serializable {
         String memoryArea = getMemoryArea().name();
         writeBuffer.writeString("memoryArea", 
memoryArea.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), memoryArea);
 
-        // TODO: change to uint16
-        writeBuffer.writeInt("blockNumber", 64, getBlockNumber());
-        // TODO: change to uint16
-        writeBuffer.writeInt("byteOffset", 64, getByteOffset());
-        // TODO: change to uint8
-        writeBuffer.writeInt("bitOffset", 64, getBitOffset());
-        writeBuffer.writeInt("numElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedInt("blockNumber", 16, getBlockNumber());
+        writeBuffer.writeUnsignedInt("byteOffset", 16, getByteOffset());
+        writeBuffer.writeUnsignedInt("bitOffset", 8, getBitOffset());
+        writeBuffer.writeUnsignedInt("numElements", 16, getNumberOfElements());
 
         String dataType = getDataType().name();
         writeBuffer.writeString("dataType", 
dataType.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), dataType);
diff --git 
a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
 
b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
index d74cc31..7ae8a33 100644
--- 
a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
+++ 
b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
@@ -53,10 +53,10 @@ public class S7StringField extends S7Field {
         String memoryArea = getMemoryArea().name();
         writeBuffer.writeString("memoryArea", 
memoryArea.getBytes(StandardCharsets.UTF_8).length * 8, 
StandardCharsets.UTF_8.name(), memoryArea);
 
-        writeBuffer.writeInt("blockNumber", 64, getBlockNumber());
-        writeBuffer.writeInt("byteOffset", 64, getByteOffset());
-        writeBuffer.writeInt("bitOffset", 64, getBitOffset());
-        writeBuffer.writeInt("numElements", 64, getNumberOfElements());
+        writeBuffer.writeUnsignedInt("blockNumber", 16, getBlockNumber());
+        writeBuffer.writeUnsignedInt("byteOffset", 16, getByteOffset());
+        writeBuffer.writeUnsignedInt("bitOffset", 8, getBitOffset());
+        writeBuffer.writeUnsignedInt("numElements", 16, getNumberOfElements());
         writeBuffer.writeInt("stringLength", 64, getStringLength());
 
         String dataType = getDataType().name();
diff --git a/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml 
b/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
index 006f5f5..b10a23f 100644
--- a/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
+++ b/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
@@ -194,9 +194,9 @@
             <fields>
               <hurz>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">8</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">8</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz>
@@ -398,17 +398,17 @@
             <fields>
               <hurz1>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">8</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">8</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz1>
               <hurz2>
                 <DirectAdsField>
-                  <indexGroup dataType="int" bitLength="64">4040</indexGroup>
-                  <indexOffset dataType="int" bitLength="64">12</indexOffset>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <indexGroup dataType="uint" bitLength="32">4040</indexGroup>
+                  <indexOffset dataType="uint" bitLength="32">12</indexOffset>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </DirectAdsField>
               </hurz2>
@@ -754,7 +754,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
@@ -1095,7 +1095,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
@@ -1264,7 +1264,7 @@
               <hurz1>
                 <SymbolicAdsField>
                   <symbolicAddress dataType="string" bitLength="200" 
encoding="UTF-8">main.f_trigDateiGelesen.M</symbolicAddress>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <numberOfElements dataType="uint" 
bitLength="32">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </SymbolicAdsField>
               </hurz1>
diff --git a/protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml 
b/protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml
index 2231728..ed1251c 100644
--- a/protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml
+++ b/protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml
@@ -214,7 +214,7 @@
               <hurz>
                 <EipField>
                   <node dataType="string" bitLength="32" 
encoding="UTF-8">rate</node>
-                  <elementNb dataType="int" bitLength="64">0</elementNb>
+                  <elementNb dataType="uint" bitLength="16">0</elementNb>
                   <defaultJavaType dataType="string" bitLength="128" 
encoding="UTF-8">java.lang.Object</defaultJavaType>
                 </EipField>
               </hurz>
diff --git 
a/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml 
b/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
index dd62f42..eaeec42 100644
--- a/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
+++ b/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
@@ -95,8 +95,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz>
@@ -185,8 +185,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">2</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">2</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz>
@@ -325,15 +325,15 @@
             <fields>
               <hurz1>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz1>
               <hurz2>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">2</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">2</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
               </hurz2>
@@ -427,8 +427,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">1</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">1</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
                 <value dataType="string" bitLength="72" 
encoding="UTF-8">3.1415927</value>
@@ -517,8 +517,8 @@
             <fields>
               <hurz>
                 <ModbusFieldHoldingRegister>
-                  <address dataType="int" bitLength="64">0</address>
-                  <numberOfElements dataType="int" 
bitLength="64">2</numberOfElements>
+                  <address dataType="uint" bitLength="16">0</address>
+                  <numberOfElements dataType="uint" 
bitLength="16">2</numberOfElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">REAL</dataType>
                 </ModbusFieldHoldingRegister>
                 <value dataType="string" bitLength="72" 
encoding="UTF-8">3.1415927</value>
diff --git a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml 
b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
index bfd535f..b79fec2 100644
--- a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
+++ b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
@@ -536,10 +536,10 @@
               <hurz>
                 <S7Field>
                   <memoryArea dataType="string" bitLength="56" 
encoding="UTF-8">OUTPUTS</memoryArea>
-                  <blockNumber dataType="int" bitLength="64">0</blockNumber>
-                  <byteOffset dataType="int" bitLength="64">0</byteOffset>
-                  <bitOffset dataType="int" bitLength="64">0</bitOffset>
-                  <numElements dataType="int" bitLength="64">1</numElements>
+                  <blockNumber dataType="uint" bitLength="16">0</blockNumber>
+                  <byteOffset dataType="uint" bitLength="16">0</byteOffset>
+                  <bitOffset dataType="uint" bitLength="8">0</bitOffset>
+                  <numElements dataType="uint" bitLength="16">1</numElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </S7Field>
               </hurz>
@@ -672,10 +672,10 @@
               <hurz>
                 <S7Field>
                   <memoryArea dataType="string" bitLength="56" 
encoding="UTF-8">OUTPUTS</memoryArea>
-                  <blockNumber dataType="int" bitLength="64">0</blockNumber>
-                  <byteOffset dataType="int" bitLength="64">0</byteOffset>
-                  <bitOffset dataType="int" bitLength="64">0</bitOffset>
-                  <numElements dataType="int" bitLength="64">1</numElements>
+                  <blockNumber dataType="uint" bitLength="16">0</blockNumber>
+                  <byteOffset dataType="uint" bitLength="16">0</byteOffset>
+                  <bitOffset dataType="uint" bitLength="8">0</bitOffset>
+                  <numElements dataType="uint" bitLength="16">1</numElements>
                   <dataType dataType="string" bitLength="32" 
encoding="UTF-8">BOOL</dataType>
                 </S7Field>
               </hurz>

Reply via email to