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

hutcheb 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 0900b34e15 fix(plc4j/profinet): Fixed issue with endianess - still 
need to specify the rest
0900b34e15 is described below

commit 0900b34e153297eb9b4262f799d49049b1ff7220
Author: Ben Hutcheson <[email protected]>
AuthorDate: Tue Feb 7 10:08:35 2023 +0100

    fix(plc4j/profinet): Fixed issue with endianess - still need to specify the 
rest
---
 .../readwrite/PnIoCm_ModuleDiffBlockApi.java       |  32 ++++--
 .../PnIoCm_ModuleDiffBlockApi_Module.java          |  48 +++++++--
 .../PnIoCm_ModuleDiffBlockApi_Submodule.java       | 108 ++++++++++++++++-----
 .../plc4x/java/profinet/device/ProfinetDevice.java |   3 +
 .../java/profinet/device/ProfinetModuleImpl.java   |   8 +-
 .../resources/protocols/profinet/profinet.mspec    |   6 +-
 6 files changed, 157 insertions(+), 48 deletions(-)

diff --git 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi.java
 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi.java
index 31373dd3c2..13490b7e16 100644
--- 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi.java
+++ 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi.java
@@ -63,15 +63,24 @@ public class PnIoCm_ModuleDiffBlockApi implements Message {
     writeBuffer.pushContext("PnIoCm_ModuleDiffBlockApi");
 
     // Const Field (api)
-    writeConstField("api", API, writeUnsignedLong(writeBuffer, 32));
+    writeConstField(
+        "api",
+        API,
+        writeUnsignedLong(writeBuffer, 32),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Implicit Field (numModules) (Used for parsing, but its value is not 
stored as it's implicitly
     // given by the objects content)
     int numModules = (int) (COUNT(getModules()));
-    writeImplicitField("numModules", numModules, writeUnsignedInt(writeBuffer, 
16));
+    writeImplicitField(
+        "numModules",
+        numModules,
+        writeUnsignedInt(writeBuffer, 16),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Array Field (modules)
-    writeComplexTypeArrayField("modules", modules, writeBuffer);
+    writeComplexTypeArrayField(
+        "modules", modules, writeBuffer, 
WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     writeBuffer.popContext("PnIoCm_ModuleDiffBlockApi");
   }
@@ -119,16 +128,25 @@ public class PnIoCm_ModuleDiffBlockApi implements Message 
{
     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
 
     long api =
-        readConstField("api", readUnsignedLong(readBuffer, 32), 
PnIoCm_ModuleDiffBlockApi.API);
-
-    int numModules = readImplicitField("numModules", 
readUnsignedInt(readBuffer, 16));
+        readConstField(
+            "api",
+            readUnsignedLong(readBuffer, 32),
+            PnIoCm_ModuleDiffBlockApi.API,
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+
+    int numModules =
+        readImplicitField(
+            "numModules",
+            readUnsignedInt(readBuffer, 16),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     List<PnIoCm_ModuleDiffBlockApi_Module> modules =
         readCountArrayField(
             "modules",
             new DataReaderComplexDefault<>(
                 () -> 
PnIoCm_ModuleDiffBlockApi_Module.staticParse(readBuffer), readBuffer),
-            numModules);
+            numModules,
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     readBuffer.closeContext("PnIoCm_ModuleDiffBlockApi");
     // Create the instance
diff --git 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Module.java
 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Module.java
index ac9b21889e..f568fee4ee 100644
--- 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Module.java
+++ 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Module.java
@@ -78,10 +78,18 @@ public class PnIoCm_ModuleDiffBlockApi_Module implements 
Message {
     writeBuffer.pushContext("PnIoCm_ModuleDiffBlockApi_Module");
 
     // Simple Field (slotNumber)
-    writeSimpleField("slotNumber", slotNumber, writeUnsignedInt(writeBuffer, 
16));
+    writeSimpleField(
+        "slotNumber",
+        slotNumber,
+        writeUnsignedInt(writeBuffer, 16),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (moduleIdentNumber)
-    writeSimpleField("moduleIdentNumber", moduleIdentNumber, 
writeUnsignedLong(writeBuffer, 32));
+    writeSimpleField(
+        "moduleIdentNumber",
+        moduleIdentNumber,
+        writeUnsignedLong(writeBuffer, 32),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (moduleState)
     writeSimpleEnumField(
@@ -91,15 +99,21 @@ public class PnIoCm_ModuleDiffBlockApi_Module implements 
Message {
         new DataWriterEnumDefault<>(
             PnIoCm_ModuleState::getValue,
             PnIoCm_ModuleState::name,
-            writeUnsignedInt(writeBuffer, 16)));
+            writeUnsignedInt(writeBuffer, 16)),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Implicit Field (numSubmodules) (Used for parsing, but its value is not 
stored as it's
     // implicitly given by the objects content)
     int numSubmodules = (int) (COUNT(getSubmodules()));
-    writeImplicitField("numSubmodules", numSubmodules, 
writeUnsignedInt(writeBuffer, 16));
+    writeImplicitField(
+        "numSubmodules",
+        numSubmodules,
+        writeUnsignedInt(writeBuffer, 16),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Array Field (submodules)
-    writeComplexTypeArrayField("submodules", submodules, writeBuffer);
+    writeComplexTypeArrayField(
+        "submodules", submodules, writeBuffer, 
WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     writeBuffer.popContext("PnIoCm_ModuleDiffBlockApi_Module");
   }
@@ -153,25 +167,39 @@ public class PnIoCm_ModuleDiffBlockApi_Module implements 
Message {
     int curPos;
     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
 
-    int slotNumber = readSimpleField("slotNumber", readUnsignedInt(readBuffer, 
16));
+    int slotNumber =
+        readSimpleField(
+            "slotNumber",
+            readUnsignedInt(readBuffer, 16),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
-    long moduleIdentNumber = readSimpleField("moduleIdentNumber", 
readUnsignedLong(readBuffer, 32));
+    long moduleIdentNumber =
+        readSimpleField(
+            "moduleIdentNumber",
+            readUnsignedLong(readBuffer, 32),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     PnIoCm_ModuleState moduleState =
         readEnumField(
             "moduleState",
             "PnIoCm_ModuleState",
             new DataReaderEnumDefault<>(
-                PnIoCm_ModuleState::enumForValue, readUnsignedInt(readBuffer, 
16)));
+                PnIoCm_ModuleState::enumForValue, readUnsignedInt(readBuffer, 
16)),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
-    int numSubmodules = readImplicitField("numSubmodules", 
readUnsignedInt(readBuffer, 16));
+    int numSubmodules =
+        readImplicitField(
+            "numSubmodules",
+            readUnsignedInt(readBuffer, 16),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     List<PnIoCm_ModuleDiffBlockApi_Submodule> submodules =
         readCountArrayField(
             "submodules",
             new DataReaderComplexDefault<>(
                 () -> 
PnIoCm_ModuleDiffBlockApi_Submodule.staticParse(readBuffer), readBuffer),
-            numSubmodules);
+            numSubmodules,
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     readBuffer.closeContext("PnIoCm_ModuleDiffBlockApi_Module");
     // Create the instance
diff --git 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Submodule.java
 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Submodule.java
index b41c4f4068..919bdf7f1c 100644
--- 
a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Submodule.java
+++ 
b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_ModuleDiffBlockApi_Submodule.java
@@ -120,14 +120,25 @@ public class PnIoCm_ModuleDiffBlockApi_Submodule 
implements Message {
     writeBuffer.pushContext("PnIoCm_ModuleDiffBlockApi_Submodule");
 
     // Simple Field (subslotNumber)
-    writeSimpleField("subslotNumber", subslotNumber, 
writeUnsignedInt(writeBuffer, 16));
+    writeSimpleField(
+        "subslotNumber",
+        subslotNumber,
+        writeUnsignedInt(writeBuffer, 16),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (submoduleIdentNumber)
     writeSimpleField(
-        "submoduleIdentNumber", submoduleIdentNumber, 
writeUnsignedLong(writeBuffer, 32));
+        "submoduleIdentNumber",
+        submoduleIdentNumber,
+        writeUnsignedLong(writeBuffer, 32),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (codingUsesIdentInfo)
-    writeSimpleField("codingUsesIdentInfo", codingUsesIdentInfo, 
writeBoolean(writeBuffer));
+    writeSimpleField(
+        "codingUsesIdentInfo",
+        codingUsesIdentInfo,
+        writeBoolean(writeBuffer),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (identInfo)
     writeSimpleEnumField(
@@ -135,7 +146,8 @@ public class PnIoCm_ModuleDiffBlockApi_Submodule implements 
Message {
         "PnIoCm_IdentInfo",
         identInfo,
         new DataWriterEnumDefault<>(
-            PnIoCm_IdentInfo::getValue, PnIoCm_IdentInfo::name, 
writeUnsignedByte(writeBuffer, 4)));
+            PnIoCm_IdentInfo::getValue, PnIoCm_IdentInfo::name, 
writeUnsignedByte(writeBuffer, 4)),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (arInfo)
     writeSimpleEnumField(
@@ -143,19 +155,36 @@ public class PnIoCm_ModuleDiffBlockApi_Submodule 
implements Message {
         "PnIoCm_ArInfo",
         arInfo,
         new DataWriterEnumDefault<>(
-            PnIoCm_ArInfo::getValue, PnIoCm_ArInfo::name, 
writeUnsignedByte(writeBuffer, 4)));
+            PnIoCm_ArInfo::getValue, PnIoCm_ArInfo::name, 
writeUnsignedByte(writeBuffer, 4)),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (diagInfoAvailable)
-    writeSimpleField("diagInfoAvailable", diagInfoAvailable, 
writeBoolean(writeBuffer));
+    writeSimpleField(
+        "diagInfoAvailable",
+        diagInfoAvailable,
+        writeBoolean(writeBuffer),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (maintenanceDemanded)
-    writeSimpleField("maintenanceDemanded", maintenanceDemanded, 
writeBoolean(writeBuffer));
+    writeSimpleField(
+        "maintenanceDemanded",
+        maintenanceDemanded,
+        writeBoolean(writeBuffer),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (maintenanceRequired)
-    writeSimpleField("maintenanceRequired", maintenanceRequired, 
writeBoolean(writeBuffer));
+    writeSimpleField(
+        "maintenanceRequired",
+        maintenanceRequired,
+        writeBoolean(writeBuffer),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (qualifiedInfo)
-    writeSimpleField("qualifiedInfo", qualifiedInfo, 
writeBoolean(writeBuffer));
+    writeSimpleField(
+        "qualifiedInfo",
+        qualifiedInfo,
+        writeBoolean(writeBuffer),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     // Simple Field (addInfo)
     writeSimpleEnumField(
@@ -163,7 +192,8 @@ public class PnIoCm_ModuleDiffBlockApi_Submodule implements 
Message {
         "PnIoCm_AddInfo",
         addInfo,
         new DataWriterEnumDefault<>(
-            PnIoCm_AddInfo::getValue, PnIoCm_AddInfo::name, 
writeUnsignedByte(writeBuffer, 3)));
+            PnIoCm_AddInfo::getValue, PnIoCm_AddInfo::name, 
writeUnsignedByte(writeBuffer, 3)),
+        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     writeBuffer.popContext("PnIoCm_ModuleDiffBlockApi_Submodule");
   }
@@ -226,41 +256,71 @@ public class PnIoCm_ModuleDiffBlockApi_Submodule 
implements Message {
     int curPos;
     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
 
-    int subslotNumber = readSimpleField("subslotNumber", 
readUnsignedInt(readBuffer, 16));
+    int subslotNumber =
+        readSimpleField(
+            "subslotNumber",
+            readUnsignedInt(readBuffer, 16),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     long submoduleIdentNumber =
-        readSimpleField("submoduleIdentNumber", readUnsignedLong(readBuffer, 
32));
+        readSimpleField(
+            "submoduleIdentNumber",
+            readUnsignedLong(readBuffer, 32),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
-    boolean codingUsesIdentInfo = readSimpleField("codingUsesIdentInfo", 
readBoolean(readBuffer));
+    boolean codingUsesIdentInfo =
+        readSimpleField(
+            "codingUsesIdentInfo",
+            readBoolean(readBuffer),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     PnIoCm_IdentInfo identInfo =
         readEnumField(
             "identInfo",
             "PnIoCm_IdentInfo",
             new DataReaderEnumDefault<>(
-                PnIoCm_IdentInfo::enumForValue, readUnsignedByte(readBuffer, 
4)));
+                PnIoCm_IdentInfo::enumForValue, readUnsignedByte(readBuffer, 
4)),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     PnIoCm_ArInfo arInfo =
         readEnumField(
             "arInfo",
             "PnIoCm_ArInfo",
             new DataReaderEnumDefault<>(
-                PnIoCm_ArInfo::enumForValue, readUnsignedByte(readBuffer, 4)));
-
-    boolean diagInfoAvailable = readSimpleField("diagInfoAvailable", 
readBoolean(readBuffer));
-
-    boolean maintenanceDemanded = readSimpleField("maintenanceDemanded", 
readBoolean(readBuffer));
-
-    boolean maintenanceRequired = readSimpleField("maintenanceRequired", 
readBoolean(readBuffer));
-
-    boolean qualifiedInfo = readSimpleField("qualifiedInfo", 
readBoolean(readBuffer));
+                PnIoCm_ArInfo::enumForValue, readUnsignedByte(readBuffer, 4)),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+
+    boolean diagInfoAvailable =
+        readSimpleField(
+            "diagInfoAvailable",
+            readBoolean(readBuffer),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+
+    boolean maintenanceDemanded =
+        readSimpleField(
+            "maintenanceDemanded",
+            readBoolean(readBuffer),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+
+    boolean maintenanceRequired =
+        readSimpleField(
+            "maintenanceRequired",
+            readBoolean(readBuffer),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+
+    boolean qualifiedInfo =
+        readSimpleField(
+            "qualifiedInfo",
+            readBoolean(readBuffer),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     PnIoCm_AddInfo addInfo =
         readEnumField(
             "addInfo",
             "PnIoCm_AddInfo",
             new DataReaderEnumDefault<>(
-                PnIoCm_AddInfo::enumForValue, readUnsignedByte(readBuffer, 
3)));
+                PnIoCm_AddInfo::enumForValue, readUnsignedByte(readBuffer, 3)),
+            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 
     readBuffer.closeContext("PnIoCm_ModuleDiffBlockApi_Submodule");
     // Create the instance
diff --git 
a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
 
b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
index 769c217c8a..e10de6e0b4 100644
--- 
a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
+++ 
b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
@@ -349,6 +349,9 @@ public class ProfinetDevice implements PlcSubscriber{
         ReadBuffer buffer = new 
ReadBufferByteBased(cyclicPdu.getDataUnit().getData());
 
         try {
+            if (deviceContext.getModules() == null) {
+                logger.error("HH");
+            }
             for (ProfinetModule module : deviceContext.getModules()) {
                 module.parseTags(tags, deviceContext.getDeviceName(), buffer);
             }
diff --git 
a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetModuleImpl.java
 
b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetModuleImpl.java
index 5063a2fc23..cc987b22cd 100644
--- 
a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetModuleImpl.java
+++ 
b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetModuleImpl.java
@@ -275,8 +275,8 @@ public class ProfinetModuleImpl implements ProfinetModule {
                         for (ProfinetIoDataInput input : 
virtual.getIoData().getInput()) {
                             for (ProfinetDataItem item : 
input.getDataItemList()) {
                                 if (item.isUseAsBits()) {
-                                    for (ProfinetBitDataItem bitItem : 
item.getBitDataItem()) {
-                                        String tagName = addressSpace + "." + 
this.slot + "." + block.getSubSlotNumber() + "." + item.getTextId() + "." + 
bitItem.getBitOffset();
+                                    for (int i = 0; i < 
ProfinetDataType.firstEnumForFieldConversion(item.getDataType().toUpperCase()).getDataTypeSize()
 * 8; i++) {
+                                        String tagName = addressSpace + "." + 
this.slot + "." + block.getSubSlotNumber() + "." + item.getTextId() + "." + i;
                                         browseItems.add(new 
DefaultPlcBrowseItem(ProfinetTag.of(tagName + ":BOOL"), tagName, false, false, 
true, new HashMap<>(), options));
                                     }
                                 } else {
@@ -318,8 +318,8 @@ public class ProfinetModuleImpl implements ProfinetModule {
                         for (ProfinetIoDataInput input : 
virtual.getIoData().getInput()) {
                             for (ProfinetDataItem item : 
input.getDataItemList()) {
                                 if (item.isUseAsBits()) {
-                                    for (ProfinetBitDataItem bitItem : 
item.getBitDataItem()) {
-                                        String tagName = addressSpace + "." + 
this.slot + "." + block.getSubSlotNumber() + "." + item.getTextId() + "." + 
bitItem.getBitOffset();
+                                    for (int i = 0; i < 
ProfinetDataType.firstEnumForFieldConversion(item.getDataType().toUpperCase()).getDataTypeSize()
 * 8; i++) {
+                                        String tagName = addressSpace + "." + 
this.slot + "." + block.getSubSlotNumber() + "." + item.getTextId() + "." + i;
                                         tags.put(tagName, new 
ResponseItem<>(PlcResponseCode.OK, DataItem.staticParse(buffer, 
ProfinetDataType.BOOL, 1)));
                                     }
                                 } else {
diff --git 
a/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec 
b/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec
index 6cd2a87f18..a2775061ed 100644
--- a/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec
+++ b/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec
@@ -1122,13 +1122,13 @@
     [array    PnIoCm_Submodule submodules        count               
'numSubmodules']
 ]
 
-[type PnIoCm_ModuleDiffBlockApi
+[type PnIoCm_ModuleDiffBlockApi byteOrder='BIG_ENDIAN'
     [const    uint 32                          api        0x00000000           
         ]
     [implicit uint 16                          numModules 'COUNT(modules)'     
           ]
     [array    PnIoCm_ModuleDiffBlockApi_Module modules    count               
'numModules']
 ]
 
-[type PnIoCm_ModuleDiffBlockApi_Module
+[type PnIoCm_ModuleDiffBlockApi_Module byteOrder='BIG_ENDIAN'
     [simple   uint 16                             slotNumber                   
                        ]
     [simple   uint 32                             moduleIdentNumber            
                        ]
     [simple   PnIoCm_ModuleState                  moduleState                  
                        ]
@@ -1136,7 +1136,7 @@
     [array    PnIoCm_ModuleDiffBlockApi_Submodule submodules        count      
         'numSubmodules']
 ]
 
-[type PnIoCm_ModuleDiffBlockApi_Submodule
+[type PnIoCm_ModuleDiffBlockApi_Submodule byteOrder='BIG_ENDIAN'
     [simple uint 16          subslotNumber       ]
     [simple uint 32          submoduleIdentNumber]
     [simple bit              codingUsesIdentInfo ]

Reply via email to