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>