fix: Addressed the last warnings building plc4c (Still errors in the language test)
diff --git a/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java b/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
index 6593f68..b2e8dd6 100644
--- a/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
+++ b/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
@@ -300,15 +300,15 @@
         return filteredEnumValues.values();
     }
 
-    public Collection<EnumValue> getEnumValuesForUniqueConstantValues(List<EnumValue> enumValues, String constantName) {
+    public Map<String, EnumValue> getEnumValuesForUniqueConstantValues(List<EnumValue> enumValues, String constantName) {
         Map<String, EnumValue> filteredEnumValues = new TreeMap<>();
         for (EnumValue enumValue : enumValues) {
             String key = enumValue.getConstant(constantName).orElseThrow(() -> new FreemarkerException("No constant name " + constantName + " found in enum value" + enumValue));
-            if (!filteredEnumValues.containsKey(key)) {
+            if(!"null".equalsIgnoreCase(key) && !filteredEnumValues.containsKey(key)) {
                 filteredEnumValues.put(key, enumValue);
             }
         }
-        return filteredEnumValues.values();
+        return filteredEnumValues;
     }
 
     public SimpleTypeReference getEnumFieldSimpleTypeReference(NonSimpleTypeReference type, String fieldName) {
diff --git a/code-generation/language/c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java b/code-generation/language/c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
index ef65388..5b62a8f 100644
--- a/code-generation/language/c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
+++ b/code-generation/language/c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
@@ -572,8 +572,16 @@
                 }
                 String encoding = ((StringLiteral) encodingTerm).getValue();
                 String length = Integer.toString(simpleTypeReference.getSizeInBits());
+                int numChars;
+                if("UTF-8".equalsIgnoreCase(encoding)) {
+                    numChars = simpleTypeReference.getSizeInBits() / 8;
+                } else if("UTF-16".equalsIgnoreCase(encoding)) {
+                    numChars = simpleTypeReference.getSizeInBits() / 16;
+                } else {
+                    throw new FreemarkerException("Unsupported encoding " + encoding);
+                }
                 return "plc4c_spi_write_string(writeBuffer, " + length + ", \"" +
-                    encoding + "\", (const uint8_t*) " + fieldName + ")";
+                    encoding + "\", (const uint8_t*) " + (numChars == 1 ? "&" : "") + fieldName + ")";
             }
             case VSTRING: {
                 final Term encodingTerm = field.getEncoding().orElse(new DefaultStringLiteral("UTF-8"));
diff --git a/code-generation/language/c/src/main/resources/templates/c/enum-template.c.ftlh b/code-generation/language/c/src/main/resources/templates/c/enum-template.c.ftlh
index 774980c..fc8ced7 100644
--- a/code-generation/language/c/src/main/resources/templates/c/enum-template.c.ftlh
+++ b/code-generation/language/c/src/main/resources/templates/c/enum-template.c.ftlh
@@ -157,38 +157,33 @@
 ${helper.getCTypeName(type.name)} ${helper.getCTypeName(type.name)}_get_first_enum_for_field_${helper.camelCaseToSnakeCase(constantName)}(${helper.getLanguageTypeNameForTypeReference(constantType)} value) {
     <#assign uniqueEnumValues=helper.getEnumValuesForUniqueConstantValues(type.enumValues, constantName)>
     <#if constantType.isStringTypeReference() || constantType.isVstringTypeReference()>
-        <#list helper.getEnumValuesForUniqueConstantValues(type.enumValues, constantName) as enumValue>
+        <#list uniqueEnumValues?values as enumValue>
     if (strcmp(value, ${helper.escapeEnumValue(constantType, enumValue.getConstant(constantName).orElseThrow())?no_esc}) == 0) {
         return ${helper.getCTypeName(type.name)}_${enumValue.name};
     }
         </#list>
     return (${helper.getCTypeName(type.name)}) 0;
     <#elseif constantType.isBooleanTypeReference()>
-        if (!value) {
-        <#assign enumValue=uniqueEnumValues[0]>
-            return ${helper.getCTypeName(type.name)}_${enumValue.name};
-        } else {
-        <#if uniqueEnumValues?size &gt; 1>
-        <#assign enumValue=uniqueEnumValues[1]>
-            return ${helper.getCTypeName(type.name)}_${enumValue.name};
-        <#else>
-            return -1;
-        </#if>
-        }
+        <#list uniqueEnumValues as enumKey, enumValue>
+    if (value == ${enumKey}) {
+      return ${helper.getCTypeName(type.name)}_${enumValue.name};
+    }
+        </#list>
+    return -1;
     <#else>
     switch(value) {
-        <#list uniqueEnumValues as enumValue>
+        <#list uniqueEnumValues as enumKey, enumValue>
             <#if constantType.isSimpleTypeReference()>
-        case ${helper.escapeEnumValue(constantType, enumValue.getConstant(constantName).orElseThrow())?no_esc}: {
+      case ${helper.escapeEnumValue(constantType, enumValue.getConstant(constantName).orElseThrow())?no_esc}: {
             <#elseif constantType.isEnumTypeReference()>
-        case ${helper.getCTypeName(type.name)}_${enumValue.name}: /* '${enumValue.value}' */{
+      case ${helper.getLanguageTypeNameForTypeReference(constantType)}_${enumKey}: {
             </#if>
-            return ${helper.getCTypeName(type.name)}_${enumValue.name};
-        }
+        return ${helper.getCTypeName(type.name)}_${enumValue.name};
+      }
         </#list>
-        default: {
-            return -1;
-        }
+      default: {
+        return -1;
+      }
     }
     </#if>
 }
diff --git a/plc4c/generated-sources/modbus/src/data_item.c b/plc4c/generated-sources/modbus/src/data_item.c
index 42c9224..241e4b1 100644
--- a/plc4c/generated-sources/modbus/src/data_item.c
+++ b/plc4c/generated-sources/modbus/src/data_item.c
@@ -828,7 +828,7 @@
         } else         if((dataType == plc4c_modbus_read_write_modbus_data_type_CHAR) && (numberOfValues == 1)) { /* CHAR */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) (*data_item)->data.char_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) &(*data_item)->data.char_value);
                     if(_res != OK) {
                         return _res;
                     }
@@ -838,7 +838,7 @@
         } else         if((dataType == plc4c_modbus_read_write_modbus_data_type_WCHAR) && (numberOfValues == 1)) { /* WCHAR */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) (*data_item)->data.wchar_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) &(*data_item)->data.wchar_value);
                     if(_res != OK) {
                         return _res;
                     }
diff --git a/plc4c/generated-sources/modbus/src/modbus_data_type.c b/plc4c/generated-sources/modbus/src/modbus_data_type.c
index c17b607..cec0ccc 100644
--- a/plc4c/generated-sources/modbus/src/modbus_data_type.c
+++ b/plc4c/generated-sources/modbus/src/modbus_data_type.c
@@ -329,21 +329,21 @@
 
 plc4c_modbus_read_write_modbus_data_type plc4c_modbus_read_write_modbus_data_type_get_first_enum_for_field_data_type_size(uint8_t value) {
     switch(value) {
-        case 1: {
-            return plc4c_modbus_read_write_modbus_data_type_CHAR;
-        }
-        case 2: {
-            return plc4c_modbus_read_write_modbus_data_type_BOOL;
-        }
-        case 4: {
-            return plc4c_modbus_read_write_modbus_data_type_DWORD;
-        }
-        case 8: {
-            return plc4c_modbus_read_write_modbus_data_type_LWORD;
-        }
-        default: {
-            return -1;
-        }
+      case 1: {
+        return plc4c_modbus_read_write_modbus_data_type_CHAR;
+      }
+      case 2: {
+        return plc4c_modbus_read_write_modbus_data_type_BOOL;
+      }
+      case 4: {
+        return plc4c_modbus_read_write_modbus_data_type_DWORD;
+      }
+      case 8: {
+        return plc4c_modbus_read_write_modbus_data_type_LWORD;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
diff --git a/plc4c/generated-sources/plc4x/src/plc4x_value.c b/plc4c/generated-sources/plc4x/src/plc4x_value.c
index 1f0bc04..301b15b 100644
--- a/plc4c/generated-sources/plc4x/src/plc4x_value.c
+++ b/plc4c/generated-sources/plc4x/src/plc4x_value.c
@@ -440,14 +440,14 @@
         } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_CHAR) { /* STRING */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) (*data_item)->data.string_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) &(*data_item)->data.string_value);
                     if(_res != OK) {
                         return _res;
                     }
         } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WCHAR) { /* STRING */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) (*data_item)->data.string_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) &(*data_item)->data.string_value);
                     if(_res != OK) {
                         return _res;
                     }
diff --git a/plc4c/generated-sources/s7/src/cotp_tpdu_size.c b/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
index 3816cab..1a3f08d 100644
--- a/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
+++ b/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
@@ -149,30 +149,30 @@
 
 plc4c_s7_read_write_cotp_tpdu_size plc4c_s7_read_write_cotp_tpdu_size_get_first_enum_for_field_size_in_bytes(uint16_t value) {
     switch(value) {
-        case 1024: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_1024;
-        }
-        case 128: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_128;
-        }
-        case 2048: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_2048;
-        }
-        case 256: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_256;
-        }
-        case 4096: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_4096;
-        }
-        case 512: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_512;
-        }
-        case 8192: {
-            return plc4c_s7_read_write_cotp_tpdu_size_SIZE_8192;
-        }
-        default: {
-            return -1;
-        }
+      case 1024: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_1024;
+      }
+      case 128: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_128;
+      }
+      case 2048: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_2048;
+      }
+      case 256: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_256;
+      }
+      case 4096: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_4096;
+      }
+      case 512: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_512;
+      }
+      case 8192: {
+        return plc4c_s7_read_write_cotp_tpdu_size_SIZE_8192;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
diff --git a/plc4c/generated-sources/s7/src/data_item.c b/plc4c/generated-sources/s7/src/data_item.c
index 3401d9e..90d7490 100644
--- a/plc4c/generated-sources/s7/src/data_item.c
+++ b/plc4c/generated-sources/s7/src/data_item.c
@@ -593,14 +593,14 @@
         } else         if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) (*data_item)->data.char_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (const uint8_t*) &(*data_item)->data.char_value);
                     if(_res != OK) {
                         return _res;
                     }
         } else         if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
 
                     // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) (*data_item)->data.char_value);
+                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (const uint8_t*) &(*data_item)->data.char_value);
                     if(_res != OK) {
                         return _res;
                     }
diff --git a/plc4c/generated-sources/s7/src/data_transport_size.c b/plc4c/generated-sources/s7/src/data_transport_size.c
index c5196e7..17fb3b9 100644
--- a/plc4c/generated-sources/s7/src/data_transport_size.c
+++ b/plc4c/generated-sources/s7/src/data_transport_size.c
@@ -148,11 +148,13 @@
 }
 
 plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_data_transport_size_get_first_enum_for_field_size_in_bits(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_data_transport_size_NULL;
-        } else {
-            return plc4c_s7_read_write_data_transport_size_BIT;
-        }
+    if (value == false) {
+      return plc4c_s7_read_write_data_transport_size_NULL;
+    }
+    if (value == true) {
+      return plc4c_s7_read_write_data_transport_size_BIT;
+    }
+    return -1;
 }
 
 uint16_t plc4c_s7_read_write_data_transport_size_length_in_bytes(plc4x_spi_context ctx, plc4c_s7_read_write_data_transport_size* _message) {
diff --git a/plc4c/generated-sources/s7/src/transport_size.c b/plc4c/generated-sources/s7/src/transport_size.c
index 6c839b9..59cb266 100644
--- a/plc4c/generated-sources/s7/src/transport_size.c
+++ b/plc4c/generated-sources/s7/src/transport_size.c
@@ -380,11 +380,13 @@
 }
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_supported__s7_300(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        } else {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
+    if (value == false) {
+      return plc4c_s7_read_write_transport_size_LWORD;
+    }
+    if (value == true) {
+      return plc4c_s7_read_write_transport_size_BOOL;
+    }
+    return -1;
 }
 
 bool plc4c_s7_read_write_transport_size_get_supported__logo(plc4c_s7_read_write_transport_size value) {
@@ -492,11 +494,13 @@
 }
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_supported__logo(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        } else {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
+    if (value == false) {
+      return plc4c_s7_read_write_transport_size_LWORD;
+    }
+    if (value == true) {
+      return plc4c_s7_read_write_transport_size_BOOL;
+    }
+    return -1;
 }
 
 uint8_t plc4c_s7_read_write_transport_size_get_code(plc4c_s7_read_write_transport_size value) {
@@ -605,45 +609,45 @@
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_code(uint8_t value) {
     switch(value) {
-        case 0: {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        }
-        case 1: {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
-        case 2: {
-            return plc4c_s7_read_write_transport_size_BYTE;
-        }
-        case 3: {
-            return plc4c_s7_read_write_transport_size_CHAR;
-        }
-        case 4: {
-            return plc4c_s7_read_write_transport_size_WORD;
-        }
-        case 5: {
-            return plc4c_s7_read_write_transport_size_INT;
-        }
-        case 6: {
-            return plc4c_s7_read_write_transport_size_DWORD;
-        }
-        case 7: {
-            return plc4c_s7_read_write_transport_size_DINT;
-        }
-        case 8: {
-            return plc4c_s7_read_write_transport_size_REAL;
-        }
-        case 10: {
-            return plc4c_s7_read_write_transport_size_TOD;
-        }
-        case 19: {
-            return plc4c_s7_read_write_transport_size_WCHAR;
-        }
-        case 28: {
-            return plc4c_s7_read_write_transport_size_COUNTER;
-        }
-        default: {
-            return -1;
-        }
+      case 0: {
+        return plc4c_s7_read_write_transport_size_LWORD;
+      }
+      case 1: {
+        return plc4c_s7_read_write_transport_size_BOOL;
+      }
+      case 2: {
+        return plc4c_s7_read_write_transport_size_BYTE;
+      }
+      case 3: {
+        return plc4c_s7_read_write_transport_size_CHAR;
+      }
+      case 4: {
+        return plc4c_s7_read_write_transport_size_WORD;
+      }
+      case 5: {
+        return plc4c_s7_read_write_transport_size_INT;
+      }
+      case 6: {
+        return plc4c_s7_read_write_transport_size_DWORD;
+      }
+      case 7: {
+        return plc4c_s7_read_write_transport_size_DINT;
+      }
+      case 8: {
+        return plc4c_s7_read_write_transport_size_REAL;
+      }
+      case 10: {
+        return plc4c_s7_read_write_transport_size_TOD;
+      }
+      case 19: {
+        return plc4c_s7_read_write_transport_size_WCHAR;
+      }
+      case 28: {
+        return plc4c_s7_read_write_transport_size_COUNTER;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
@@ -753,24 +757,24 @@
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_size_in_bytes(uint8_t value) {
     switch(value) {
-        case 1: {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
-        case 12: {
-            return plc4c_s7_read_write_transport_size_DTL;
-        }
-        case 2: {
-            return plc4c_s7_read_write_transport_size_WORD;
-        }
-        case 4: {
-            return plc4c_s7_read_write_transport_size_DWORD;
-        }
-        case 8: {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        }
-        default: {
-            return -1;
-        }
+      case 1: {
+        return plc4c_s7_read_write_transport_size_BOOL;
+      }
+      case 12: {
+        return plc4c_s7_read_write_transport_size_DTL;
+      }
+      case 2: {
+        return plc4c_s7_read_write_transport_size_WORD;
+      }
+      case 4: {
+        return plc4c_s7_read_write_transport_size_DWORD;
+      }
+      case 8: {
+        return plc4c_s7_read_write_transport_size_LWORD;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
@@ -879,11 +883,13 @@
 }
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_supported__s7_400(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        } else {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
+    if (value == false) {
+      return plc4c_s7_read_write_transport_size_LWORD;
+    }
+    if (value == true) {
+      return plc4c_s7_read_write_transport_size_BOOL;
+    }
+    return -1;
 }
 
 bool plc4c_s7_read_write_transport_size_get_supported__s7_1200(plc4c_s7_read_write_transport_size value) {
@@ -991,11 +997,13 @@
 }
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_supported__s7_1200(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_transport_size_LWORD;
-        } else {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
+    if (value == false) {
+      return plc4c_s7_read_write_transport_size_LWORD;
+    }
+    if (value == true) {
+      return plc4c_s7_read_write_transport_size_BOOL;
+    }
+    return -1;
 }
 
 uint8_t plc4c_s7_read_write_transport_size_get_short_name(plc4c_s7_read_write_transport_size value) {
@@ -1104,21 +1112,21 @@
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_short_name(uint8_t value) {
     switch(value) {
-        case 'B': {
-            return plc4c_s7_read_write_transport_size_BYTE;
-        }
-        case 'D': {
-            return plc4c_s7_read_write_transport_size_DWORD;
-        }
-        case 'W': {
-            return plc4c_s7_read_write_transport_size_WORD;
-        }
-        case 'X': {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
-        default: {
-            return -1;
-        }
+      case 'B': {
+        return plc4c_s7_read_write_transport_size_BYTE;
+      }
+      case 'D': {
+        return plc4c_s7_read_write_transport_size_DWORD;
+      }
+      case 'W': {
+        return plc4c_s7_read_write_transport_size_WORD;
+      }
+      case 'X': {
+        return plc4c_s7_read_write_transport_size_BOOL;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
@@ -1227,11 +1235,10 @@
 }
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_supported__s7_1500(bool value) {
-        if (!value) {
-            return plc4c_s7_read_write_transport_size_BOOL;
-        } else {
-            return -1;
-        }
+    if (value == true) {
+      return plc4c_s7_read_write_transport_size_BOOL;
+    }
+    return -1;
 }
 
 plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_transport_size_get_data_transport_size(plc4c_s7_read_write_transport_size value) {
@@ -1340,24 +1347,24 @@
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_data_transport_size(plc4c_s7_read_write_data_transport_size value) {
     switch(value) {
-        case plc4c_s7_read_write_transport_size_BOOL: /* '0x01' */{
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
-        case plc4c_s7_read_write_transport_size_BYTE: /* '0x02' */{
-            return plc4c_s7_read_write_transport_size_BYTE;
-        }
-        case plc4c_s7_read_write_transport_size_INT: /* '0x06' */{
-            return plc4c_s7_read_write_transport_size_INT;
-        }
-        case plc4c_s7_read_write_transport_size_COUNTER: /* '0x1C' */{
-            return plc4c_s7_read_write_transport_size_COUNTER;
-        }
-        case plc4c_s7_read_write_transport_size_REAL: /* '0x0E' */{
-            return plc4c_s7_read_write_transport_size_REAL;
-        }
-        default: {
-            return -1;
-        }
+      case plc4c_s7_read_write_data_transport_size_BIT: {
+        return plc4c_s7_read_write_transport_size_BOOL;
+      }
+      case plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD: {
+        return plc4c_s7_read_write_transport_size_BYTE;
+      }
+      case plc4c_s7_read_write_data_transport_size_INTEGER: {
+        return plc4c_s7_read_write_transport_size_INT;
+      }
+      case plc4c_s7_read_write_data_transport_size_OCTET_STRING: {
+        return plc4c_s7_read_write_transport_size_COUNTER;
+      }
+      case plc4c_s7_read_write_data_transport_size_REAL: {
+        return plc4c_s7_read_write_transport_size_REAL;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
@@ -1659,24 +1666,21 @@
 
 plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_enum_for_field_base_type(plc4c_s7_read_write_transport_size value) {
     switch(value) {
-        case plc4c_s7_read_write_transport_size_UINT: /* '0x07' */{
-            return plc4c_s7_read_write_transport_size_UINT;
-        }
-        case plc4c_s7_read_write_transport_size_LREAL: /* '0x0F' */{
-            return plc4c_s7_read_write_transport_size_LREAL;
-        }
-        case plc4c_s7_read_write_transport_size_LTIME: /* '0x16' */{
-            return plc4c_s7_read_write_transport_size_LTIME;
-        }
-        case plc4c_s7_read_write_transport_size_DWORD: /* '0x04' */{
-            return plc4c_s7_read_write_transport_size_DWORD;
-        }
-        case plc4c_s7_read_write_transport_size_BOOL: /* '0x01' */{
-            return plc4c_s7_read_write_transport_size_BOOL;
-        }
-        default: {
-            return -1;
-        }
+      case plc4c_s7_read_write_transport_size_INT: {
+        return plc4c_s7_read_write_transport_size_UINT;
+      }
+      case plc4c_s7_read_write_transport_size_REAL: {
+        return plc4c_s7_read_write_transport_size_LREAL;
+      }
+      case plc4c_s7_read_write_transport_size_TIME: {
+        return plc4c_s7_read_write_transport_size_LTIME;
+      }
+      case plc4c_s7_read_write_transport_size_WORD: {
+        return plc4c_s7_read_write_transport_size_DWORD;
+      }
+      default: {
+        return -1;
+      }
     }
 }
 
diff --git a/protocols/s7/src/main/resources/protocols/s7/s7.mspec b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
index 7d39b9c..45085a7 100644
--- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec
+++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
@@ -888,7 +888,7 @@
     ['0x0B' UDINT          ['0x07'     , 'D'             , '4'               , 'INT'                 , 'INTEGER'                          , 'IEC61131_UDINT'          , 'false'             , 'false'             , 'true'               , 'true'               , 'true'              ]]
     ['0x0C' LINT           ['0x00'     , 'X'             , '8'               , 'INT'                 , 'BYTE_WORD_DWORD'                  , 'IEC61131_LINT'           , 'false'             , 'false'             , 'false'              , 'true'               , 'false'             ]]
     ['0x0D' ULINT          ['0x00'     , 'X'             , '8'               , 'INT'                 , 'BYTE_WORD_DWORD'                  , 'IEC61131_ULINT'          , 'false'             , 'false'             , 'false'              , 'true'               , 'false'             ]]
-    ['0x1C' COUNTER        ['0x1C'     , 'X'             , '2'               , 'null'                , 'OCTET_STRING'                  , 'IEC61131_INT'           , 'true'              , 'true'              , 'true'               , 'true'               , 'false'             ]]
+    ['0x1C' COUNTER        ['0x1C'     , 'X'             , '2'               , 'null'                , 'OCTET_STRING'                     , 'IEC61131_INT'            , 'true'              , 'true'              , 'true'               , 'true'               , 'false'             ]]
 
     // Floating point values
     ['0x0E' REAL           ['0x08'     , 'D'             , '4'               , 'null'                , 'REAL'                             , 'IEC61131_REAL'           , 'true'              , 'true'              , 'true'               , 'true'               , 'true'              ]]