You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/06/30 10:19:02 UTC
[plc4x] branch develop updated: - Refactored the read and write
functions in read_buffer and write_buffer to work with return codes. -
Adjusted the code-generation to these changes
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new b57e281 - Refactored the read and write functions in read_buffer and write_buffer to work with return codes. - Adjusted the code-generation to these changes
b57e281 is described below
commit b57e28143e8be9c704f39e3ad28e3d382d532cf5
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Tue Jun 30 12:18:54 2020 +0200
- Refactored the read and write functions in read_buffer and write_buffer to work with return codes.
- Adjusted the code-generation to these changes
---
.../BaseFreemarkerLanguageTemplateHelper.java | 6 +-
.../plc4x/language/c/CLanguageTemplateHelper.java | 67 +-
.../resources/templates/c/pojo-template-c.ftlh | 138 ++--
.../language/java/JavaLanguageTemplateHelper.java | 2 +-
.../modbus/src/modbus_constants.c | 8 +-
.../generated-sources/modbus/src/modbus_pdu.c | 768 +++++++++++++++------
.../src/modbus_pdu_read_file_record_request_item.c | 50 +-
.../modbus_pdu_read_file_record_response_item.c | 31 +-
.../modbus_pdu_write_file_record_request_item.c | 55 +-
.../modbus_pdu_write_file_record_response_item.c | 55 +-
.../modbus/src/modbus_serial_adu.c | 60 +-
.../generated-sources/modbus/src/modbus_tcp_adu.c | 54 +-
.../plc4c/generated-sources/s7/src/cotp_packet.c | 206 ++++--
.../generated-sources/s7/src/cotp_parameter.c | 73 +-
.../plc4c/generated-sources/s7/src/s7_address.c | 91 ++-
.../plc4c/generated-sources/s7/src/s7_message.c | 117 +++-
.../plc4c/generated-sources/s7/src/s7_parameter.c | 118 +++-
.../s7/src/s7_parameter_user_data_item.c | 115 ++-
.../plc4c/generated-sources/s7/src/s7_payload.c | 10 +-
.../s7/src/s7_payload_user_data_item.c | 79 ++-
.../s7/src/s7_var_payload_data_item.c | 55 +-
.../s7/src/s7_var_payload_status_item.c | 14 +-
.../s7/src/s7_var_request_parameter_item.c | 30 +-
.../generated-sources/s7/src/szl_data_tree_item.c | 56 +-
sandbox/plc4c/generated-sources/s7/src/szl_id.c | 38 +-
.../plc4c/generated-sources/s7/src/tpkt_packet.c | 41 +-
sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h | 26 +-
sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h | 32 +-
sandbox/plc4c/spi/src/read_buffer.c | 91 ++-
sandbox/plc4c/spi/src/write_buffer.c | 58 +-
sandbox/plc4c/spi/test/read_buffer_test.c | 138 ++--
31 files changed, 1842 insertions(+), 840 deletions(-)
diff --git a/build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java b/build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
index ee16231..c720b7e 100644
--- a/build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
+++ b/build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
@@ -113,7 +113,11 @@ public abstract class BaseFreemarkerLanguageTemplateHelper implements Freemarker
public abstract String getLanguageTypeNameForTypeReference(TypeReference typeReference);
- public abstract String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference);
+ public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference) {
+ return getReadBufferReadMethodCall(simpleTypeReference, null);
+ }
+
+ public abstract String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference, String valueString);
public abstract String getWriteBufferWriteMethodCall(SimpleTypeReference simpleTypeReference, String fieldName);
diff --git a/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java b/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
index 5f7eb15..84a3987 100644
--- a/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
+++ b/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
@@ -56,6 +56,15 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
"_" + camelCaseToSnakeCase(typeName).toLowerCase();
}
+ public String getFieldName(ComplexTypeDefinition baseType, NamedField field) {
+ StringBuilder sb = new StringBuilder();
+ if (baseType != getThisTypeDefinition()) {
+ sb.append(camelCaseToSnakeCase(baseType.getName())).append("_");
+ }
+ sb.append(camelCaseToSnakeCase(field.getName()));
+ return sb.toString();
+ }
+
/**
* Converts a camel-case string to snake-case.
*
@@ -227,6 +236,34 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
}
}
+ public String getDefaultValueForTypeReference(TypeReference typeReference) {
+ if (typeReference instanceof SimpleTypeReference) {
+ SimpleTypeReference simpleTypeReference = (SimpleTypeReference) typeReference;
+ switch (simpleTypeReference.getBaseType()) {
+ case BIT:
+ return "false";
+ case UINT:
+ case INT: {
+ return "0";
+ }
+ case FLOAT:
+ case UFLOAT:
+ return "0.0";
+ case STRING:
+ return "\"\"";
+ case TIME:
+ return "unsupported";
+ case DATE:
+ return "unsupported";
+ case DATETIME:
+ return "unsupported";
+ }
+ return "unsupported";
+ } else {
+ return "NULL";
+ }
+ }
+
public String getLoopExpressionSuffix(TypedField field) {
if (field instanceof ArrayField) {
ArrayField arrayField = (ArrayField) field;
@@ -339,55 +376,55 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
}
@Override
- public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference) {
+ public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference, String valueString) {
switch (simpleTypeReference.getBaseType()) {
case BIT: {
- return "plc4c_spi_read_bit(buf)";
+ return "plc4c_spi_read_bit(buf, " + valueString + ")";
}
case UINT: {
IntegerTypeReference integerTypeReference = (IntegerTypeReference) simpleTypeReference;
if (integerTypeReference.getSizeInBits() <= 4) {
- return "plc4c_spi_read_unsigned_byte(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_unsigned_byte(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 8) {
- return "plc4c_spi_read_unsigned_short(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_unsigned_short(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 16) {
- return "plc4c_spi_read_unsigned_int(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_unsigned_int(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 32) {
- return "plc4c_spi_read_unsigned_long(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_unsigned_long(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
- return "plc4c_spi_read_unsigned_big_integer(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_unsigned_big_integer(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
case INT: {
IntegerTypeReference integerTypeReference = (IntegerTypeReference) simpleTypeReference;
if (integerTypeReference.getSizeInBits() <= 8) {
- return "plc4c_spi_read_byte(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_byte(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 16) {
- return "plc4c_spi_read_short(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_short(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 32) {
- return "plc4c_spi_read_int(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_int(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
if (integerTypeReference.getSizeInBits() <= 64) {
- return "plc4c_spi_read_long(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_long(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
- return "plc4c_spi_read_big_integer(buf, " + integerTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_big_integer(buf, " + integerTypeReference.getSizeInBits() + ", " + valueString + ")";
}
case FLOAT: {
FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
if (floatTypeReference.getSizeInBits() <= 32) {
- return "plc4c_spi_read_float(buf, " + floatTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_float(buf, " + floatTypeReference.getSizeInBits() + ", " + valueString + ")";
} else {
- return "plc4c_spi_read_double(buf, " + floatTypeReference.getSizeInBits() + ")";
+ return "plc4c_spi_read_double(buf, " + floatTypeReference.getSizeInBits() + ", " + valueString + ")";
}
}
case STRING: {
StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
return "plc4c_spi_read_string(buf, " + stringTypeReference.getSizeInBits() + ", \"" +
- stringTypeReference.getEncoding() + "\")";
+ stringTypeReference.getEncoding() + "\"" + ", " + valueString + ")";
}
}
return "Hurz";
diff --git a/build-utils/language-c/src/main/resources/templates/c/pojo-template-c.ftlh b/build-utils/language-c/src/main/resources/templates/c/pojo-template-c.ftlh
index 0015d51..2a1e83b 100644
--- a/build-utils/language-c/src/main/resources/templates/c/pojo-template-c.ftlh
+++ b/build-utils/language-c/src/main/resources/templates/c/pojo-template-c.ftlh
@@ -92,13 +92,14 @@ plc4c_${helper.getCTypeName(type.name)}_discriminator plc4c_${helper.getCTypeNam
plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* buf, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>plc4c_${helper.getCTypeName(type.name)}** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_${helper.getCTypeName(type.name)}));
if(*_message == NULL) {
return NO_MEMORY;
}
-<#macro fieldName baseType field><#if baseType != type>${helper.camelCaseToSnakeCase(baseType.name)}_</#if>${helper.camelCaseToSnakeCase(field.name)}</#macro>
+<#macro fieldName baseType field>${helper.getFieldName(baseType, field)}</#macro>
<#macro fieldParser baseType field indentContent>
<#switch field.typeName>
<#case "array">
@@ -122,12 +123,16 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> <#if !helper.isSimpleTypeReference(arrayField.type)>bool lastItem = curItem == (itemCount - 1);</#if>
<#-- Inizialize a local variable with the simple type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if indentContent> </#if> <#if helper.isSimpleTypeReference(arrayField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getReadBufferReadMethodCall(arrayField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getDefaultValueForTypeReference(arrayField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(arrayField.type, "&_value")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> plc4c_utils_list_insert_head_value(${arrayField.name}, &_value);
<#else>
<#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)}* _value = NULL;
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
@@ -142,12 +147,16 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> while(plc4c_spi_read_get_pos(buf) < ${arrayField.name}EndPos) {
<#-- Inizialize a local variable with the simple type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if helper.isSimpleTypeReference(arrayField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getReadBufferReadMethodCall(arrayField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getDefaultValueForTypeReference(arrayField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(arrayField.type, "&_value")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> plc4c_utils_list_insert_head_value(${arrayField.name}, &_value);
<#else>
<#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)}* _value = NULL;
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
@@ -164,12 +173,16 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> while(!((boolean) (${helper.toParseExpression(baseType, arrayField, arrayField.loopExpression, baseType.parserArguments)}))) {
<#-- Inizialize a local variable with the simple type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if helper.isSimpleTypeReference(arrayField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getReadBufferReadMethodCall(arrayField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getDefaultValueForTypeReference(arrayField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(arrayField.type, "&_value")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> plc4c_utils_list_insert_head_value(${arrayField.name}, &_value);
<#else>
<#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)}* _value = NULL;
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(arrayField.type.name)}_parse(buf<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
@@ -192,7 +205,11 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> {
<#if indentContent> </#if> // Create an array of all the bytes read in this message element so far.
<#if indentContent> </#if> byte[] checksumRawData = plc4c_spi_read_get_bytes(buf, startPos, plc4c_spi_read_get_pos(buf));
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _checksumRef = ${helper.getReadBufferReadMethodCall(checksumField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _checksumRef = ${helper.getDefaultValueForTypeReference(checksumField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(checksumField.type, "&_checksumRef")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _checksum = (${helper.getLanguageTypeNameForField(field)}) (${helper.toParseExpression(baseType, checksumField, checksumField.checksumExpression, baseType.parserArguments)});
<#if indentContent> </#if> if(_checksum != _checksumRef) {
<#if indentContent> </#if> return PARSE_ERROR;
@@ -205,7 +222,11 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#assign simpleTypeReference = constField.type>
<#if indentContent> </#if> // Const Field (${constField.name})
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${constField.name} = ${helper.getReadBufferReadMethodCall(constField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${constField.name} = ${helper.getDefaultValueForTypeReference(constField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(constField.type, "&" + constField.name)};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> if(${constField.name} != ${helper.getCTypeName(baseType.name)?upper_case}_${helper.camelCaseToSnakeCase(constField.name)?upper_case}) {
<#if indentContent> </#if> return PARSE_ERROR;
<#if indentContent> </#if> // throw new ParseException("Expected constant value " + ${helper.getCTypeName(baseType.name)?upper_case}_${helper.camelCaseToSnakeCase(constField.name)?upper_case} + " but got " + ${constField.name});
@@ -216,13 +237,21 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#assign simpleTypeReference = discriminatorField.type>
<#if indentContent> </#if> // Discriminator Field (${discriminatorField.name}) (Used as input to a switch field)
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${discriminatorField.name} = ${helper.getReadBufferReadMethodCall(discriminatorField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${discriminatorField.name} = ${helper.getDefaultValueForTypeReference(discriminatorField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(discriminatorField.type, "&" + discriminatorField.name)};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#break>
<#case "enum">
<#assign enumField = field>
<#if indentContent> </#if> // Enum field (${enumField.name})
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${enumField.name} = ${helper.getReadBufferReadMethodCall(helper.getEnumBaseTypeReference(enumField.type))};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${enumField.name} = ${helper.getDefaultValueForTypeReference(enumField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(helper.getEnumBaseTypeReference(enumField.type), "&" + enumField.name)};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> (*_message)-><@fieldName baseType=baseType field=enumField/> = ${enumField.name};
<#break>
<#case "implicit">
@@ -230,7 +259,11 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#assign simpleTypeReference = implicitField.type>
<#if indentContent> </#if> // Implicit Field (${implicitField.name}) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${implicitField.name} = ${helper.getReadBufferReadMethodCall(implicitField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${implicitField.name} = ${helper.getDefaultValueForTypeReference(implicitField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(implicitField.type, "&" + implicitField.name)};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#break>
<#case "manualArray">
<#assign manualArrayField = field>
@@ -258,13 +291,14 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> return NO_MEMORY;
<#if indentContent> </#if> }
<#if helper.isSimpleTypeReference(optionalField.type)>
-<#if indentContent> </#if> *${optionalField.name} = ${helper.getReadBufferReadMethodCall(optionalField.type)};
+<#if indentContent> </#if> *${optionalField.name} = ${helper.getDefaultValueForTypeReference(optionalField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(optionalField.type, "&" + optionalField.name)};
<#else>
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(optionalField.type.name)}_parse(buf<#if optionalField.params?has_content>, <#list optionalField.params as parserTerm>${helper.toParseExpression(baseType, optionalField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, &${optionalField.name});
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(optionalField.type.name)}_parse(buf<#if optionalField.params?has_content>, <#list optionalField.params as parserTerm>${helper.toParseExpression(baseType, optionalField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, &${optionalField.name});
+ </#if>
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
- </#if>
<#if indentContent> </#if> (*_message)-><@fieldName baseType=baseType field=optionalField/> = ${optionalField.name};
<#if indentContent> </#if> }
<#break>
@@ -277,7 +311,11 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> bool _needsPadding = (bool) ((plc4c_spi_read_has_more(buf, ${helper.getNumBits(paddingField.type)})) && (${helper.toParseExpression(baseType, paddingField, paddingField.paddingCondition, baseType.parserArguments)}));
<#if indentContent> </#if> if(_needsPadding) {
<#if indentContent> </#if> // Just read the padding data and ignore it
-<#if indentContent> </#if> ${helper.getReadBufferReadMethodCall(paddingField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _paddingValue = ${helper.getDefaultValueForTypeReference(paddingField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(paddingField.type, "&_paddingValue")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> }
<#if indentContent> </#if> }
<#break>
@@ -287,7 +325,11 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
<#if indentContent> </#if> {
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _reserved = ${helper.getReadBufferReadMethodCall(reservedField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} _reserved = ${helper.getDefaultValueForTypeReference(reservedField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(reservedField.type, "_reserved")};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> if(_reserved != ${reservedField.referenceValue}) {
<#if indentContent> </#if> printf("Expected constant value '%d' but got '%d' for reserved field.", ${reservedField.referenceValue}, _reserved);
<#if indentContent> </#if> }
@@ -299,15 +341,16 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
<#if indentContent> </#if> // Simple Field (${simpleField.name})
<#-- Inizialize a local variable with the simple type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if helper.isSimpleTypeReference(simpleField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${simpleField.name} = ${helper.getReadBufferReadMethodCall(simpleField.type)};
+<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)} ${simpleField.name} = ${helper.getDefaultValueForTypeReference(simpleField.type)};
+<#if indentContent> </#if> _res = ${helper.getReadBufferReadMethodCall(simpleField.type, "&" + simpleField.name)};
<#else>
<#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
<#if indentContent> </#if> ${helper.getLanguageTypeNameForField(field)}* ${simpleField.name};
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(simpleField.type.name)}_parse(buf<#if simpleField.params?has_content>, <#list simpleField.params as parserTerm>${helper.toParseExpression(baseType, simpleField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${simpleField.name});
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(simpleField.type.name)}_parse(buf<#if simpleField.params?has_content>, <#list simpleField.params as parserTerm>${helper.toParseExpression(baseType, simpleField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${simpleField.name});
+ </#if>
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
- </#if>
<#if indentContent> </#if> (*_message)-><@fieldName baseType=baseType field=simpleField/> = ${simpleField.name};
<#break>
<#case "switch">
@@ -341,6 +384,7 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_b
}
plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* buf, plc4c_${helper.getCTypeName(type.name)}* _message<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>) {
+ plc4c_return_code _res = OK;
<#macro fieldSerializer baseType field indentContent>
<#switch field.typeName>
<#case "array">
@@ -398,9 +442,9 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#assign enumField = field>
<#if indentContent> </#if> // Enum field (${enumField.name})
-<#if indentContent> </#if> {
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(helper.getEnumBaseTypeReference(enumField.type))} _value = _message-><@fieldName baseType=baseType field=enumField/>;
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(helper.getEnumBaseTypeReference(enumField.type), "_value")};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(helper.getEnumBaseTypeReference(enumField.type), "_message->" + helper.getFieldName(baseType, enumField))};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
<#break>
<#case "implicit">
@@ -408,7 +452,10 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#assign simpleTypeReference = implicitField.type>
<#if indentContent> </#if> // Implicit Field (${implicitField.name}) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(implicitField.type, helper.toSerializationExpression(baseType, implicitField, implicitField.serializeExpression, baseType.parserArguments))};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(implicitField.type, helper.toSerializationExpression(baseType, implicitField, implicitField.serializeExpression, baseType.parserArguments))};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#break>
<#case "manualArray">
<#assign manualArrayField = field>
@@ -418,17 +465,14 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#case "manual">
<#assign manualField = field>
-<#if indentContent> </#if> // Manual Field (${manualField.name})
-<#if indentContent> </#if> {
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(manualField.type)}* _value = (${helper.getLanguageTypeNameForTypeReference(arrayField.type)}*) plc4c_utils_list_get_value(_message-><@fieldName baseType=baseType field=arrayField/>, curItem);
+<#if indentContent> </#if> // Manual Field (${manualField.name})<#if indentContent> </#if> {
<#if helper.isSimpleTypeReference(manualField.type)>
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(manualField.type, "*_value")};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(manualField.type, "(${helper.getLanguageTypeNameForTypeReference(arrayField.type)}*) plc4c_utils_list_get_value(_message->" + helper.getFieldName(baseType, arrayField))};
<#else>
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(manualField.type.name)}_serialize(buf, (void*) &_value);
-<#if indentContent> </#if> if(_res != OK) {
-<#if indentContent> </#if> return _res;
-<#if indentContent> </#if> }
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(manualField.type.name)}_serialize(buf, (void*) &_value);
</#if>
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
<#break>
<#case "optional">
@@ -437,15 +481,13 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#if indentContent> </#if> // Optional Field (${optionalField.name})
<#if indentContent> </#if> if(_message-><@fieldName baseType=baseType field=optionalField/> != NULL) {
<#if helper.isSimpleTypeReference(optionalField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(optionalField.type)}* _value = _message-><@fieldName baseType=baseType field=optionalField/>;
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(optionalField.type, "*_value")};
+<#if indentContent> </#if> _res= ${helper.getWriteBufferWriteMethodCall(optionalField.type, "_message->" + helper.getFieldName(baseType, optionalField))};
<#else>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(optionalField.type)}* _value = _message-><@fieldName baseType=baseType field=optionalField/>;
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(optionalField.type.name)}_serialize(buf, _value);
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(optionalField.type.name)}_serialize(buf, "_message-><@fieldName baseType=baseType field=optionalField/>");
+ </#if>
<#if indentContent> </#if> if(_res != OK) {
<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
- </#if>
<#if indentContent> </#if> }
<#break>
<#case "padding">
@@ -458,7 +500,10 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#if indentContent> </#if> bool _needsPadding = (bool) (${helper.toSerializationExpression(baseType, paddingField, paddingField.paddingCondition, baseType.parserArguments)});
<#if indentContent> </#if> if(_needsPadding) {
<#if indentContent> </#if> // Just output the default padding data
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(paddingField.type, helper.toParseExpression(baseType, paddingField, paddingField.paddingValue, baseType.parserArguments))};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(paddingField.type, helper.toParseExpression(baseType, paddingField, paddingField.paddingValue, baseType.parserArguments))};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#if indentContent> </#if> }
<#if indentContent> </#if> }
<#break>
@@ -467,23 +512,22 @@ plc4c_return_code plc4c_${helper.getCTypeName(type.name)}_serialize(plc4c_spi_wr
<#assign simpleTypeReference = reservedField.type>
<#if indentContent> </#if> // Reserved Field
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(reservedField.type, reservedField.referenceValue)};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(reservedField.type, reservedField.referenceValue)};
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
+<#if indentContent> </#if> }
<#break>
<#case "simple">
<#assign simpleField = field>
<#if indentContent> </#if> // Simple Field (${simpleField.name})
-<#if indentContent> </#if> {
<#if helper.isSimpleTypeReference(simpleField.type)>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(simpleField.type)} _value = _message-><@fieldName baseType=baseType field=simpleField/>;
-<#if indentContent> </#if> ${helper.getWriteBufferWriteMethodCall(simpleField.type, "_value")};
+<#if indentContent> </#if> _res = ${helper.getWriteBufferWriteMethodCall(simpleField.type, "_message->" + helper.getFieldName(baseType, simpleField))};
<#else>
-<#if indentContent> </#if> ${helper.getLanguageTypeNameForTypeReference(simpleField.type)}* _value = _message-><@fieldName baseType=baseType field=simpleField/>;
-<#if indentContent> </#if> plc4c_return_code _res = plc4c_${helper.getCTypeName(simpleField.type.name)}_serialize(buf, _value);
-<#if indentContent> </#if> if(_res != OK) {
-<#if indentContent> </#if> return _res;
-<#if indentContent> </#if> }
+<#if indentContent> </#if> _res = plc4c_${helper.getCTypeName(simpleField.type.name)}_serialize(buf, "_message-><@fieldName baseType=baseType field=simpleField/>");
</#if>
+<#if indentContent> </#if> if(_res != OK) {
+<#if indentContent> </#if> return _res;
<#if indentContent> </#if> }
<#break>
<#case "switch">
diff --git a/build-utils/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java b/build-utils/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
index dce14cf..4fc7f46 100644
--- a/build-utils/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
+++ b/build-utils/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
@@ -233,7 +233,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
}
}
- public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference) {
+ public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference, String valueString) {
switch (simpleTypeReference.getBaseType()) {
case BIT: {
return "io.readBit()";
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
index ce05483..eb0bb4b 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_constants** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_constants));
@@ -35,7 +36,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_
}
// Const Field (modbusTcpDefaultPort)
- uint16_t modbusTcpDefaultPort = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t modbusTcpDefaultPort = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &modbusTcpDefaultPort);
+ if(_res != OK) {
+ return _res;
+ }
if(modbusTcpDefaultPort != MODBUS_READ_WRITE_MODBUS_CONSTANTS_MODBUS_TCP_DEFAULT_PORT) {
return PARSE_ERROR;
// throw new ParseException("Expected constant value " + MODBUS_READ_WRITE_MODBUS_CONSTANTS_MODBUS_TCP_DEFAULT_PORT + " but got " + modbusTcpDefaultPort);
@@ -45,6 +50,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_
}
plc4c_return_code plc4c_modbus_read_write_modbus_constants_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_constants* _message) {
+ plc4c_return_code _res = OK;
// Const Field (modbusTcpDefaultPort)
plc4c_spi_write_unsigned_int(buf, 16, MODBUS_READ_WRITE_MODBUS_CONSTANTS_MODBUS_TCP_DEFAULT_PORT);
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
index ac91e89..c186c7a 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
@@ -110,6 +110,7 @@ plc4c_modbus_read_write_modbus_pdu_discriminator plc4c_modbus_read_write_modbus_
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer* buf, bool response, plc4c_modbus_read_write_modbus_pdu** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_pdu));
@@ -118,17 +119,29 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
}
// Discriminator Field (error) (Used as input to a switch field)
- bool error = plc4c_spi_read_bit(buf);
+ bool error = false;
+ _res = plc4c_spi_read_bit(buf, &error);
+ if(_res != OK) {
+ return _res;
+ }
// Discriminator Field (function) (Used as input to a switch field)
- unsigned int function = plc4c_spi_read_unsigned_short(buf, 7);
+ unsigned int function = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 7, &function);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(error == true) { /* ModbusPDUError */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_error;
// Simple Field (exceptionCode)
- uint8_t exceptionCode = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t exceptionCode = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &exceptionCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_error_exception_code = exceptionCode;
} else
@@ -136,13 +149,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_discrete_inputs_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_discrete_inputs_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_discrete_inputs_request_quantity = quantity;
} else
@@ -150,7 +171,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_discrete_inputs_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -165,7 +190,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -176,13 +205,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_coils_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_coils_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_coils_request_quantity = quantity;
} else
@@ -190,7 +227,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_coils_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -205,7 +246,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -216,13 +261,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_coil_request;
// Simple Field (address)
- uint16_t address = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t address = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &address);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_coil_request_address = address;
// Simple Field (value)
- uint16_t value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &value);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_coil_request_value = value;
} else
@@ -230,13 +283,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_coil_response;
// Simple Field (address)
- uint16_t address = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t address = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &address);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_coil_response_address = address;
// Simple Field (value)
- uint16_t value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &value);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_coil_response_value = value;
} else
@@ -244,19 +305,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_coils_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_coils_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_coils_request_quantity = quantity;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -271,7 +344,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -282,13 +359,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_coils_response;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_coils_response_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_coils_response_quantity = quantity;
} else
@@ -296,13 +381,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_input_registers_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_input_registers_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_input_registers_request_quantity = quantity;
} else
@@ -310,7 +403,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_input_registers_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -325,7 +422,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -336,13 +437,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_holding_registers_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_holding_registers_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_holding_registers_request_quantity = quantity;
} else
@@ -350,7 +459,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_holding_registers_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -365,7 +478,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -376,13 +493,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_register_request;
// Simple Field (address)
- uint16_t address = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t address = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &address);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_register_request_address = address;
// Simple Field (value)
- uint16_t value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &value);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_register_request_value = value;
} else
@@ -390,13 +515,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_register_response;
// Simple Field (address)
- uint16_t address = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t address = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &address);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_register_response_address = address;
// Simple Field (value)
- uint16_t value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &value);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_single_register_response_value = value;
} else
@@ -404,19 +537,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_holding_registers_request;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_holding_registers_request_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_holding_registers_request_quantity = quantity;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -431,7 +576,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -442,13 +591,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_holding_registers_response;
// Simple Field (startingAddress)
- uint16_t startingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_holding_registers_response_starting_address = startingAddress;
// Simple Field (quantity)
- uint16_t quantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &quantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_write_multiple_holding_registers_response_quantity = quantity;
} else
@@ -456,31 +613,51 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_request;
// Simple Field (readStartingAddress)
- uint16_t readStartingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t readStartingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &readStartingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address = readStartingAddress;
// Simple Field (readQuantity)
- uint16_t readQuantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t readQuantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &readQuantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity = readQuantity;
// Simple Field (writeStartingAddress)
- uint16_t writeStartingAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t writeStartingAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &writeStartingAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address = writeStartingAddress;
// Simple Field (writeQuantity)
- uint16_t writeQuantity = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t writeQuantity = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &writeQuantity);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity = writeQuantity;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -495,7 +672,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -506,7 +687,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -521,7 +706,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -532,19 +721,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_mask_write_holding_register_request;
// Simple Field (referenceAddress)
- uint16_t referenceAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t referenceAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &referenceAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_request_reference_address = referenceAddress;
// Simple Field (andMask)
- uint16_t andMask = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t andMask = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &andMask);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_request_and_mask = andMask;
// Simple Field (orMask)
- uint16_t orMask = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t orMask = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &orMask);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_request_or_mask = orMask;
} else
@@ -552,19 +753,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_mask_write_holding_register_response;
// Simple Field (referenceAddress)
- uint16_t referenceAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t referenceAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &referenceAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_response_reference_address = referenceAddress;
// Simple Field (andMask)
- uint16_t andMask = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t andMask = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &andMask);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_response_and_mask = andMask;
// Simple Field (orMask)
- uint16_t orMask = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t orMask = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &orMask);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_mask_write_holding_register_response_or_mask = orMask;
} else
@@ -572,7 +785,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_fifo_queue_request;
// Simple Field (fifoPointerAddress)
- uint16_t fifoPointerAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t fifoPointerAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &fifoPointerAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_fifo_queue_request_fifo_pointer_address = fifoPointerAddress;
} else
@@ -580,12 +797,20 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_fifo_queue_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t byteCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (fifoCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t fifoCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t fifoCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &fifoCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -600,7 +825,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- uint16_t _value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(fifoValue, &_value);
}
}
@@ -611,7 +840,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_file_record_request;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -626,7 +859,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
uint8_t itemsEndPos = plc4c_spi_read_get_pos(buf) + _itemsLength;
while(plc4c_spi_read_get_pos(buf) < itemsEndPos) {
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(buf, (void*) &_value);
+ _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -640,7 +873,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_file_record_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -655,7 +892,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
uint8_t itemsEndPos = plc4c_spi_read_get_pos(buf) + _itemsLength;
while(plc4c_spi_read_get_pos(buf) < itemsEndPos) {
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(buf, (void*) &_value);
+ _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -669,7 +906,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_file_record_request;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -684,7 +925,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
uint8_t itemsEndPos = plc4c_spi_read_get_pos(buf) + _itemsLength;
while(plc4c_spi_read_get_pos(buf) < itemsEndPos) {
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(buf, (void*) &_value);
+ _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -698,7 +939,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_file_record_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -713,7 +958,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
uint8_t itemsEndPos = plc4c_spi_read_get_pos(buf) + _itemsLength;
while(plc4c_spi_read_get_pos(buf) < itemsEndPos) {
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(buf, (void*) &_value);
+ _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -730,7 +975,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_exception_status_response;
// Simple Field (value)
- uint8_t value = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t value = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &value);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_read_exception_status_response_value = value;
} else
@@ -738,13 +987,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_diagnostic_request;
// Simple Field (status)
- uint16_t status = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t status = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &status);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_diagnostic_request_status = status;
// Simple Field (eventCount)
- uint16_t eventCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t eventCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &eventCount);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_diagnostic_request_event_count = eventCount;
} else
@@ -755,24 +1012,40 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_get_com_event_log_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (status)
- uint16_t status = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t status = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &status);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_get_com_event_log_response_status = status;
// Simple Field (eventCount)
- uint16_t eventCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t eventCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &eventCount);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_get_com_event_log_response_event_count = eventCount;
// Simple Field (messageCount)
- uint16_t messageCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t messageCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &messageCount);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->modbus_pdu_get_com_event_log_response_message_count = messageCount;
@@ -788,7 +1061,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(events, &_value);
}
}
@@ -802,7 +1079,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_report_server_id_response;
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t byteCount = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -817,7 +1098,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(value, &_value);
}
}
@@ -835,6 +1120,7 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer
}
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_pdu* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (error)
plc4c_spi_write_bit(buf, plc4c_modbus_read_write_modbus_pdu_get_discriminator(_message->_type).error);
@@ -847,9 +1133,9 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_error: {
// Simple Field (exceptionCode)
- {
- uint8_t _value = _message->modbus_pdu_error_exception_code;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->modbus_pdu_error_exception_code);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -857,15 +1143,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_discrete_inputs_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_discrete_inputs_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_discrete_inputs_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_read_discrete_inputs_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_discrete_inputs_request_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -873,7 +1159,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_discrete_inputs_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_discrete_inputs_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_discrete_inputs_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -890,15 +1179,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_coils_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_coils_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_coils_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_read_coils_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_coils_request_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -906,7 +1195,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_coils_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_coils_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_coils_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -923,15 +1215,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_coil_request: {
// Simple Field (address)
- {
- uint16_t _value = _message->modbus_pdu_write_single_coil_request_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_coil_request_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (value)
- {
- uint16_t _value = _message->modbus_pdu_write_single_coil_request_value;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_coil_request_value);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -939,15 +1231,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_coil_response: {
// Simple Field (address)
- {
- uint16_t _value = _message->modbus_pdu_write_single_coil_response_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_coil_response_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (value)
- {
- uint16_t _value = _message->modbus_pdu_write_single_coil_response_value;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_coil_response_value);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -955,19 +1247,22 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_coils_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_coils_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_coils_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_coils_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_coils_request_quantity);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_coils_request_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_coils_request_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -984,15 +1279,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_coils_response: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_coils_response_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_coils_response_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_coils_response_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_coils_response_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1000,15 +1295,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_input_registers_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_input_registers_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_input_registers_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_read_input_registers_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_input_registers_request_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1016,7 +1311,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_input_registers_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_input_registers_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_input_registers_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -1033,15 +1331,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_holding_registers_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_holding_registers_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_holding_registers_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_read_holding_registers_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_holding_registers_request_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1049,7 +1347,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_holding_registers_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_holding_registers_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_holding_registers_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -1066,15 +1367,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_register_request: {
// Simple Field (address)
- {
- uint16_t _value = _message->modbus_pdu_write_single_register_request_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_register_request_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (value)
- {
- uint16_t _value = _message->modbus_pdu_write_single_register_request_value;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_register_request_value);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1082,15 +1383,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_single_register_response: {
// Simple Field (address)
- {
- uint16_t _value = _message->modbus_pdu_write_single_register_response_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_register_response_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (value)
- {
- uint16_t _value = _message->modbus_pdu_write_single_register_response_value;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_single_register_response_value);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1098,19 +1399,22 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_holding_registers_request: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_holding_registers_request_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_holding_registers_request_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_holding_registers_request_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_holding_registers_request_quantity);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_holding_registers_request_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_holding_registers_request_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -1127,15 +1431,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_multiple_holding_registers_response: {
// Simple Field (startingAddress)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_holding_registers_response_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_holding_registers_response_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (quantity)
- {
- uint16_t _value = _message->modbus_pdu_write_multiple_holding_registers_response_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_write_multiple_holding_registers_response_quantity);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1143,31 +1447,34 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_request: {
// Simple Field (readStartingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (readQuantity)
- {
- uint16_t _value = _message->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (writeStartingAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (writeQuantity)
- {
- uint16_t _value = _message->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_request_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_request_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -1184,7 +1491,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
@@ -1201,21 +1511,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_mask_write_holding_register_request: {
// Simple Field (referenceAddress)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_request_reference_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_request_reference_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (andMask)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_request_and_mask;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_request_and_mask);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (orMask)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_request_or_mask;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_request_or_mask);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1223,21 +1533,21 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_mask_write_holding_register_response: {
// Simple Field (referenceAddress)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_response_reference_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_response_reference_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (andMask)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_response_and_mask;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_response_and_mask);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (orMask)
- {
- uint16_t _value = _message->modbus_pdu_mask_write_holding_register_response_or_mask;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_mask_write_holding_register_response_or_mask);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1245,9 +1555,9 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_fifo_queue_request: {
// Simple Field (fifoPointerAddress)
- {
- uint16_t _value = _message->modbus_pdu_read_fifo_queue_request_fifo_pointer_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_read_fifo_queue_request_fifo_pointer_address);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1255,10 +1565,16 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_fifo_queue_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) + (2));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) + (2));
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (fifoCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) / (2));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) / (2));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (fifoValue)
{
@@ -1275,7 +1591,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_file_record_request: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_request_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_request_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -1295,7 +1614,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_file_record_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_response_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_response_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -1315,7 +1637,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_file_record_request: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_request_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_request_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -1335,7 +1660,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_write_file_record_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_response_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_response_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -1359,9 +1687,9 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_read_exception_status_response: {
// Simple Field (value)
- {
- uint8_t _value = _message->modbus_pdu_read_exception_status_response_value;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->modbus_pdu_read_exception_status_response_value);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1369,15 +1697,15 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_diagnostic_request: {
// Simple Field (status)
- {
- uint16_t _value = _message->modbus_pdu_diagnostic_request_status;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_diagnostic_request_status);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (eventCount)
- {
- uint16_t _value = _message->modbus_pdu_diagnostic_request_event_count;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_diagnostic_request_event_count);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -1389,24 +1717,27 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_get_com_event_log_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, (plc4c_spi_evaluation_helper_count(_message->modbus_pdu_get_com_event_log_response_events)) + (6));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, (plc4c_spi_evaluation_helper_count(_message->modbus_pdu_get_com_event_log_response_events)) + (6));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (status)
- {
- uint16_t _value = _message->modbus_pdu_get_com_event_log_response_status;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_get_com_event_log_response_status);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (eventCount)
- {
- uint16_t _value = _message->modbus_pdu_get_com_event_log_response_event_count;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_get_com_event_log_response_event_count);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (messageCount)
- {
- uint16_t _value = _message->modbus_pdu_get_com_event_log_response_message_count;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->modbus_pdu_get_com_event_log_response_message_count);
+ if(_res != OK) {
+ return _res;
}
// Array field (events)
@@ -1428,7 +1759,10 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_b
case plc4c_modbus_read_write_modbus_pdu_type_modbus_read_write_modbus_pdu_report_server_id_response: {
// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_report_server_id_response_value));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_report_server_id_response_value));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (value)
{
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
index d739106..63766db 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item));
@@ -35,48 +36,65 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_it
}
// Simple Field (referenceType)
- uint8_t referenceType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t referenceType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &referenceType);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->reference_type = referenceType;
// Simple Field (fileNumber)
- uint16_t fileNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t fileNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &fileNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->file_number = fileNumber;
// Simple Field (recordNumber)
- uint16_t recordNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->record_number = recordNumber;
// Simple Field (recordLength)
- uint16_t recordLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordLength);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->record_length = recordLength;
return OK;
}
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (referenceType)
- {
- uint8_t _value = _message->reference_type;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->reference_type);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (fileNumber)
- {
- uint16_t _value = _message->file_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->file_number);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (recordNumber)
- {
- uint16_t _value = _message->record_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->record_number);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (recordLength)
- {
- uint16_t _value = _message->record_length;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->record_length);
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
index 24f28ac..bf90007 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item));
@@ -35,10 +36,18 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_i
}
// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t dataLength = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t dataLength = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &dataLength);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (referenceType)
- uint8_t referenceType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t referenceType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &referenceType);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->reference_type = referenceType;
// Array field (data)
@@ -51,7 +60,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_i
uint8_t _dataLength = (dataLength) - (1);
uint8_t dataEndPos = plc4c_spi_read_get_pos(buf) + _dataLength;
while(plc4c_spi_read_get_pos(buf) < dataEndPos) {
- uint16_t _value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(data, &_value);
}
}
@@ -61,14 +74,18 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_i
}
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* _message) {
+ plc4c_return_code _res = OK;
// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, (((plc4c_spi_evaluation_helper_count(_message->data)) * (2))) + (1));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, (((plc4c_spi_evaluation_helper_count(_message->data)) * (2))) + (1));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (referenceType)
- {
- uint8_t _value = _message->reference_type;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->reference_type);
+ if(_res != OK) {
+ return _res;
}
// Array field (data)
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
index 5f54f36..161ee2e 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item));
@@ -35,19 +36,35 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_i
}
// Simple Field (referenceType)
- uint8_t referenceType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t referenceType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &referenceType);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->reference_type = referenceType;
// Simple Field (fileNumber)
- uint16_t fileNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t fileNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &fileNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->file_number = fileNumber;
// Simple Field (recordNumber)
- uint16_t recordNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->record_number = recordNumber;
// Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t recordLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordLength);
+ if(_res != OK) {
+ return _res;
+ }
// Array field (recordData)
plc4c_list* recordData = malloc(sizeof(plc4c_list));
@@ -59,7 +76,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_i
uint8_t _recordDataLength = (recordLength) * (2);
uint8_t recordDataEndPos = plc4c_spi_read_get_pos(buf) + _recordDataLength;
while(plc4c_spi_read_get_pos(buf) < recordDataEndPos) {
- uint16_t _value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(recordData, &_value);
}
}
@@ -69,27 +90,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_i
}
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (referenceType)
- {
- uint8_t _value = _message->reference_type;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->reference_type);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (fileNumber)
- {
- uint16_t _value = _message->file_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->file_number);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (recordNumber)
- {
- uint16_t _value = _message->record_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->record_number);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->record_data)) * (2))) / (2));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->record_data)) * (2))) / (2));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (recordData)
{
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
index ae169af..af8e4f8 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item));
@@ -35,19 +36,35 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_
}
// Simple Field (referenceType)
- uint8_t referenceType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t referenceType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &referenceType);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->reference_type = referenceType;
// Simple Field (fileNumber)
- uint16_t fileNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t fileNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &fileNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->file_number = fileNumber;
// Simple Field (recordNumber)
- uint16_t recordNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->record_number = recordNumber;
// Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t recordLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t recordLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &recordLength);
+ if(_res != OK) {
+ return _res;
+ }
// Array field (recordData)
plc4c_list* recordData = malloc(sizeof(plc4c_list));
@@ -59,7 +76,11 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_
uint8_t _recordDataLength = (recordLength) * (2);
uint8_t recordDataEndPos = plc4c_spi_read_get_pos(buf) + _recordDataLength;
while(plc4c_spi_read_get_pos(buf) < recordDataEndPos) {
- uint16_t _value = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _value = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(recordData, &_value);
}
}
@@ -69,27 +90,31 @@ plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_
}
plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (referenceType)
- {
- uint8_t _value = _message->reference_type;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->reference_type);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (fileNumber)
- {
- uint16_t _value = _message->file_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->file_number);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (recordNumber)
- {
- uint16_t _value = _message->record_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->record_number);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->record_data)) * (2))) / (2));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((plc4c_spi_evaluation_helper_count(_message->record_data)) * (2))) / (2));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (recordData)
{
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
index 787c107..bda3e03 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read_buffer* buf, bool response, plc4c_modbus_read_write_modbus_serial_adu** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_serial_adu));
@@ -35,28 +36,44 @@ plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read
}
// Simple Field (transactionId)
- uint16_t transactionId = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t transactionId = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &transactionId);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->transaction_id = transactionId;
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
- uint16_t _reserved = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, _reserved);
+ if(_res != OK) {
+ return _res;
+ }
if(_reserved != 0x0000) {
printf("Expected constant value '%d' but got '%d' for reserved field.", 0x0000, _reserved);
}
}
// Simple Field (length)
- uint16_t length = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t length = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &length);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->length = length;
// Simple Field (address)
- uint8_t address = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t address = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &address);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->address = address;
// Simple Field (pdu)
plc4c_modbus_read_write_modbus_pdu* pdu;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_parse(buf, response, (void*) &pdu);
+ _res = plc4c_modbus_read_write_modbus_pdu_parse(buf, response, (void*) &pdu);
if(_res != OK) {
return _res;
}
@@ -66,35 +83,36 @@ plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read
}
plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_serial_adu* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (transactionId)
- {
- uint16_t _value = _message->transaction_id;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->transaction_id);
+ if(_res != OK) {
+ return _res;
}
// Reserved Field
- plc4c_spi_write_unsigned_int(buf, 16, 0x0000);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, 0x0000);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (length)
- {
- uint16_t _value = _message->length;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->length);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (address)
- {
- uint8_t _value = _message->address;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (pdu)
- {
- plc4c_modbus_read_write_modbus_pdu* _value = _message->pdu;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_serialize(buf, _value);
- if(_res != OK) {
- return _res;
- }
+ _res = plc4c_modbus_read_write_modbus_pdu_serialize(buf, "_message->pdu");
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
index 869e290..df13dc7 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_buffer* buf, bool response, plc4c_modbus_read_write_modbus_tcp_adu** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_modbus_read_write_modbus_tcp_adu));
@@ -35,26 +36,42 @@ plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_bu
}
// Simple Field (transactionIdentifier)
- uint16_t transactionIdentifier = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t transactionIdentifier = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &transactionIdentifier);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->transaction_identifier = transactionIdentifier;
// Const Field (protocolIdentifier)
- uint16_t protocolIdentifier = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t protocolIdentifier = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &protocolIdentifier);
+ if(_res != OK) {
+ return _res;
+ }
if(protocolIdentifier != MODBUS_READ_WRITE_MODBUS_TCP_ADU_PROTOCOL_IDENTIFIER) {
return PARSE_ERROR;
// throw new ParseException("Expected constant value " + MODBUS_READ_WRITE_MODBUS_TCP_ADU_PROTOCOL_IDENTIFIER + " but got " + protocolIdentifier);
}
// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t length = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t length = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &length);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (unitIdentifier)
- uint8_t unitIdentifier = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t unitIdentifier = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &unitIdentifier);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->unit_identifier = unitIdentifier;
// Simple Field (pdu)
plc4c_modbus_read_write_modbus_pdu* pdu;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_parse(buf, response, (void*) &pdu);
+ _res = plc4c_modbus_read_write_modbus_pdu_parse(buf, response, (void*) &pdu);
if(_res != OK) {
return _res;
}
@@ -64,32 +81,33 @@ plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_bu
}
plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_serialize(plc4c_spi_write_buffer* buf, plc4c_modbus_read_write_modbus_tcp_adu* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (transactionIdentifier)
- {
- uint16_t _value = _message->transaction_identifier;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->transaction_identifier);
+ if(_res != OK) {
+ return _res;
}
// Const Field (protocolIdentifier)
plc4c_spi_write_unsigned_int(buf, 16, MODBUS_READ_WRITE_MODBUS_TCP_ADU_PROTOCOL_IDENTIFIER);
// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (plc4c_modbus_read_write_modbus_pdu_length_in_bytes(_message->pdu)) + (1));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (plc4c_modbus_read_write_modbus_pdu_length_in_bytes(_message->pdu)) + (1));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (unitIdentifier)
- {
- uint8_t _value = _message->unit_identifier;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->unit_identifier);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (pdu)
- {
- plc4c_modbus_read_write_modbus_pdu* _value = _message->pdu;
- plc4c_return_code _res = plc4c_modbus_read_write_modbus_pdu_serialize(buf, _value);
- if(_res != OK) {
- return _res;
- }
+ _res = plc4c_modbus_read_write_modbus_pdu_serialize(buf, "_message->pdu");
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c b/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
index 1ce5a53..00a06cc 100644
--- a/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
+++ b/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
@@ -50,6 +50,7 @@ plc4c_s7_read_write_cotp_packet_discriminator plc4c_s7_read_write_cotp_packet_ge
plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* buf, uint16_t cotpLen, plc4c_s7_read_write_cotp_packet** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_cotp_packet));
@@ -58,23 +59,39 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
}
// Implicit Field (headerLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t headerLength = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t headerLength = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &headerLength);
+ if(_res != OK) {
+ return _res;
+ }
// Discriminator Field (tpduCode) (Used as input to a switch field)
- uint8_t tpduCode = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t tpduCode = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &tpduCode);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(tpduCode == 0xF0) { /* COTPPacketData */
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_data;
// Simple Field (eot)
- bool eot = plc4c_spi_read_bit(buf);
+ bool eot = false;
+ _res = plc4c_spi_read_bit(buf, &eot);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_data_eot = eot;
// Simple Field (tpduRef)
- unsigned int tpduRef = plc4c_spi_read_unsigned_short(buf, 7);
+ unsigned int tpduRef = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 7, &tpduRef);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_data_tpdu_ref = tpduRef;
} else
@@ -82,19 +99,31 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_connection_request;
// Simple Field (destinationReference)
- uint16_t destinationReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t destinationReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &destinationReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_request_destination_reference = destinationReference;
// Simple Field (sourceReference)
- uint16_t sourceReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t sourceReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &sourceReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_request_source_reference = sourceReference;
// Enum field (protocolClass)
- plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_cotp_protocol_class protocolClass = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &protocolClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_request_protocol_class = protocolClass;
} else
@@ -102,19 +131,31 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_connection_response;
// Simple Field (destinationReference)
- uint16_t destinationReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t destinationReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &destinationReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_response_destination_reference = destinationReference;
// Simple Field (sourceReference)
- uint16_t sourceReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t sourceReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &sourceReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_response_source_reference = sourceReference;
// Enum field (protocolClass)
- plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_cotp_protocol_class protocolClass = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &protocolClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_connection_response_protocol_class = protocolClass;
} else
@@ -122,19 +163,31 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_disconnect_request;
// Simple Field (destinationReference)
- uint16_t destinationReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t destinationReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &destinationReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_disconnect_request_destination_reference = destinationReference;
// Simple Field (sourceReference)
- uint16_t sourceReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t sourceReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &sourceReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_disconnect_request_source_reference = sourceReference;
// Enum field (protocolClass)
- plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_cotp_protocol_class protocolClass = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &protocolClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_disconnect_request_protocol_class = protocolClass;
} else
@@ -142,13 +195,21 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_disconnect_response;
// Simple Field (destinationReference)
- uint16_t destinationReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t destinationReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &destinationReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_disconnect_response_destination_reference = destinationReference;
// Simple Field (sourceReference)
- uint16_t sourceReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t sourceReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &sourceReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_disconnect_response_source_reference = sourceReference;
} else
@@ -156,13 +217,21 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_tpdu_error;
// Simple Field (destinationReference)
- uint16_t destinationReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t destinationReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &destinationReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_tpdu_error_destination_reference = destinationReference;
// Simple Field (rejectCause)
- uint8_t rejectCause = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t rejectCause = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &rejectCause);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_packet_tpdu_error_reject_cause = rejectCause;
}
@@ -179,7 +248,7 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
uint8_t parametersEndPos = plc4c_spi_read_get_pos(buf) + _parametersLength;
while(plc4c_spi_read_get_pos(buf) < parametersEndPos) {
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_cotp_parameter_parse(buf, (((headerLength) + (1))) - (curPos), (void*) &_value);
+ _res = plc4c_s7_read_write_cotp_parameter_parse(buf, (((headerLength) + (1))) - (curPos), (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -197,7 +266,7 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
if(payload == NULL) {
return NO_MEMORY;
}
- plc4c_return_code _res = plc4c_s7_read_write_s7_message_parse(buf, &payload);
+ _res = plc4c_s7_read_write_s7_message_parse(buf, &payload);
if(_res != OK) {
return _res;
}
@@ -208,9 +277,13 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* b
}
plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_cotp_packet* _message) {
+ plc4c_return_code _res = OK;
// Implicit Field (headerLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message)) - ((((((((_message->payload) != (NULL))) ? plc4c_s7_read_write_s7_message_length_in_bytes(_message->payload) : 0))) + (1))));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message)) - ((((((((_message->payload) != (NULL))) ? plc4c_s7_read_write_s7_message_length_in_bytes(_message->payload) : 0))) + (1))));
+ if(_res != OK) {
+ return _res;
+ }
// Discriminator Field (tpduCode)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_cotp_packet_get_discriminator(_message->_type).tpduCode);
@@ -220,15 +293,15 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_data: {
// Simple Field (eot)
- {
- bool _value = _message->cotp_packet_data_eot;
- plc4c_spi_write_bit(buf, _value);
+ _res = plc4c_spi_write_bit(buf, _message->cotp_packet_data_eot);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (tpduRef)
- {
- unsigned int _value = _message->cotp_packet_data_tpdu_ref;
- plc4c_spi_write_unsigned_short(buf, 7, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 7, _message->cotp_packet_data_tpdu_ref);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -236,21 +309,21 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_connection_request: {
// Simple Field (destinationReference)
- {
- uint16_t _value = _message->cotp_packet_connection_request_destination_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_connection_request_destination_reference);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sourceReference)
- {
- uint16_t _value = _message->cotp_packet_connection_request_source_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_connection_request_source_reference);
+ if(_res != OK) {
+ return _res;
}
// Enum field (protocolClass)
- {
- int8_t _value = _message->cotp_packet_connection_request_protocol_class;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->cotp_packet_connection_request_protocol_class);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -258,21 +331,21 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_connection_response: {
// Simple Field (destinationReference)
- {
- uint16_t _value = _message->cotp_packet_connection_response_destination_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_connection_response_destination_reference);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sourceReference)
- {
- uint16_t _value = _message->cotp_packet_connection_response_source_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_connection_response_source_reference);
+ if(_res != OK) {
+ return _res;
}
// Enum field (protocolClass)
- {
- int8_t _value = _message->cotp_packet_connection_response_protocol_class;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->cotp_packet_connection_response_protocol_class);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -280,21 +353,21 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_disconnect_request: {
// Simple Field (destinationReference)
- {
- uint16_t _value = _message->cotp_packet_disconnect_request_destination_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_disconnect_request_destination_reference);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sourceReference)
- {
- uint16_t _value = _message->cotp_packet_disconnect_request_source_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_disconnect_request_source_reference);
+ if(_res != OK) {
+ return _res;
}
// Enum field (protocolClass)
- {
- int8_t _value = _message->cotp_packet_disconnect_request_protocol_class;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->cotp_packet_disconnect_request_protocol_class);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -302,15 +375,15 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_disconnect_response: {
// Simple Field (destinationReference)
- {
- uint16_t _value = _message->cotp_packet_disconnect_response_destination_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_disconnect_response_destination_reference);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sourceReference)
- {
- uint16_t _value = _message->cotp_packet_disconnect_response_source_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_disconnect_response_source_reference);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -318,15 +391,15 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
case plc4c_s7_read_write_cotp_packet_type_s7_read_write_cotp_packet_tpdu_error: {
// Simple Field (destinationReference)
- {
- uint16_t _value = _message->cotp_packet_tpdu_error_destination_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_packet_tpdu_error_destination_reference);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (rejectCause)
- {
- uint8_t _value = _message->cotp_packet_tpdu_error_reject_cause;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->cotp_packet_tpdu_error_reject_cause);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -348,8 +421,7 @@ plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buff
// Optional Field (payload)
if(_message->payload != NULL) {
- plc4c_s7_read_write_s7_message* _value = _message->payload;
- plc4c_return_code _res = plc4c_s7_read_write_s7_message_serialize(buf, _value);
+ _res = plc4c_s7_read_write_s7_message_serialize(buf, "_message->payload");
if(_res != OK) {
return _res;
}
diff --git a/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c b/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
index e1cb8dc..36d15d1 100644
--- a/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
+++ b/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
@@ -48,6 +48,7 @@ plc4c_s7_read_write_cotp_parameter_discriminator plc4c_s7_read_write_cotp_parame
plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer* buf, uint8_t rest, plc4c_s7_read_write_cotp_parameter** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_cotp_parameter));
@@ -56,17 +57,29 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
}
// Discriminator Field (parameterType) (Used as input to a switch field)
- uint8_t parameterType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t parameterType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, ¶meterType);
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t parameterLength = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t parameterLength = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, ¶meterLength);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(parameterType == 0xC0) { /* COTPParameterTpduSize */
(*_message)->_type = plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_tpdu_size;
// Enum field (tpduSize)
- plc4c_s7_read_write_cotp_tpdu_size tpduSize = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_cotp_tpdu_size tpduSize = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &tpduSize);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_parameter_tpdu_size_tpdu_size = tpduSize;
} else
@@ -74,7 +87,11 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_calling_tsap;
// Simple Field (tsapId)
- uint16_t tsapId = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t tsapId = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &tsapId);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_parameter_calling_tsap_tsap_id = tsapId;
} else
@@ -82,7 +99,11 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_called_tsap;
// Simple Field (tsapId)
- uint16_t tsapId = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t tsapId = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &tsapId);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_parameter_called_tsap_tsap_id = tsapId;
} else
@@ -90,7 +111,11 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
(*_message)->_type = plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_checksum;
// Simple Field (crc)
- uint8_t crc = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t crc = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &crc);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->cotp_parameter_checksum_crc = crc;
} else
@@ -108,7 +133,11 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
for(int curItem = 0; curItem < itemCount; curItem++) {
- uint8_t _value = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t _value = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(data, &_value);
}
}
@@ -120,21 +149,25 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer
}
plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_cotp_parameter* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (parameterType)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_cotp_parameter_get_discriminator(_message->_type).parameterType);
// Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_cotp_parameter_length_in_bytes(_message)) - (2));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_cotp_parameter_length_in_bytes(_message)) - (2));
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending of the current type, serialize the sub-type elements)
switch(_message->_type) {
case plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_tpdu_size: {
// Enum field (tpduSize)
- {
- int8_t _value = _message->cotp_parameter_tpdu_size_tpdu_size;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->cotp_parameter_tpdu_size_tpdu_size);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -142,9 +175,9 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_b
case plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_calling_tsap: {
// Simple Field (tsapId)
- {
- uint16_t _value = _message->cotp_parameter_calling_tsap_tsap_id;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_parameter_calling_tsap_tsap_id);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -152,9 +185,9 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_b
case plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_called_tsap: {
// Simple Field (tsapId)
- {
- uint16_t _value = _message->cotp_parameter_called_tsap_tsap_id;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->cotp_parameter_called_tsap_tsap_id);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -162,9 +195,9 @@ plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_b
case plc4c_s7_read_write_cotp_parameter_type_s7_read_write_cotp_parameter_checksum: {
// Simple Field (crc)
- {
- uint8_t _value = _message->cotp_parameter_checksum_crc;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->cotp_parameter_checksum_crc);
+ if(_res != OK) {
+ return _res;
}
break;
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_address.c b/sandbox/plc4c/generated-sources/s7/src/s7_address.c
index 8b8af7a..f170db3 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_address.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_address.c
@@ -40,6 +40,7 @@ plc4c_s7_read_write_s7_address_discriminator plc4c_s7_read_write_s7_address_get_
plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_s7_address** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_address));
@@ -48,39 +49,63 @@ plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* bu
}
// Discriminator Field (addressType) (Used as input to a switch field)
- uint8_t addressType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t addressType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &addressType);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(addressType == 0x10) { /* S7AddressAny */
(*_message)->_type = plc4c_s7_read_write_s7_address_type_s7_read_write_s7_address_any;
// Enum field (transportSize)
- plc4c_s7_read_write_transport_size transportSize = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_transport_size transportSize = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &transportSize);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_transport_size = transportSize;
// Simple Field (numberOfElements)
- uint16_t numberOfElements = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t numberOfElements = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &numberOfElements);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_number_of_elements = numberOfElements;
// Simple Field (dbNumber)
- uint16_t dbNumber = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t dbNumber = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &dbNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_db_number = dbNumber;
// Enum field (area)
- plc4c_s7_read_write_memory_area area = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_memory_area area = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &area);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_area = area;
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
- unsigned int _reserved = plc4c_spi_read_unsigned_short(buf, 5);
+ unsigned int _reserved = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 5, _reserved);
+ if(_res != OK) {
+ return _res;
+ }
if(_reserved != 0x00) {
printf("Expected constant value '%d' but got '%d' for reserved field.", 0x00, _reserved);
}
@@ -89,13 +114,21 @@ plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* bu
// Simple Field (byteAddress)
- uint16_t byteAddress = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t byteAddress = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &byteAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_byte_address = byteAddress;
// Simple Field (bitAddress)
- unsigned int bitAddress = plc4c_spi_read_unsigned_byte(buf, 3);
+ unsigned int bitAddress = 0;
+ _res = plc4c_spi_read_unsigned_byte(buf, 3, &bitAddress);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_address_any_bit_address = bitAddress;
}
@@ -104,6 +137,7 @@ plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* bu
}
plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_address* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (addressType)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_address_get_discriminator(_message->_type).addressType);
@@ -113,42 +147,45 @@ plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffe
case plc4c_s7_read_write_s7_address_type_s7_read_write_s7_address_any: {
// Enum field (transportSize)
- {
- int8_t _value = _message->s7_address_any_transport_size;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->s7_address_any_transport_size);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (numberOfElements)
- {
- uint16_t _value = _message->s7_address_any_number_of_elements;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_address_any_number_of_elements);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (dbNumber)
- {
- uint16_t _value = _message->s7_address_any_db_number;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_address_any_db_number);
+ if(_res != OK) {
+ return _res;
}
// Enum field (area)
- {
- int8_t _value = _message->s7_address_any_area;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->s7_address_any_area);
+ if(_res != OK) {
+ return _res;
}
// Reserved Field
- plc4c_spi_write_unsigned_short(buf, 5, 0x00);
+ _res = plc4c_spi_write_unsigned_short(buf, 5, 0x00);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (byteAddress)
- {
- uint16_t _value = _message->s7_address_any_byte_address;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_address_any_byte_address);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (bitAddress)
- {
- unsigned int _value = _message->s7_address_any_bit_address;
- plc4c_spi_write_unsigned_byte(buf, 3, _value);
+ _res = plc4c_spi_write_unsigned_byte(buf, 3, _message->s7_address_any_bit_address);
+ if(_res != OK) {
+ return _res;
}
break;
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_message.c b/sandbox/plc4c/generated-sources/s7/src/s7_message.c
index 84780dc..99476a9 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_message.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_message.c
@@ -46,6 +46,7 @@ plc4c_s7_read_write_s7_message_discriminator plc4c_s7_read_write_s7_message_get_
plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_s7_message** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_message));
@@ -54,32 +55,56 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
}
// Const Field (protocolId)
- uint8_t protocolId = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t protocolId = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &protocolId);
+ if(_res != OK) {
+ return _res;
+ }
if(protocolId != S7_READ_WRITE_S7_MESSAGE_PROTOCOL_ID) {
return PARSE_ERROR;
// throw new ParseException("Expected constant value " + S7_READ_WRITE_S7_MESSAGE_PROTOCOL_ID + " but got " + protocolId);
}
// Discriminator Field (messageType) (Used as input to a switch field)
- uint8_t messageType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t messageType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &messageType);
+ if(_res != OK) {
+ return _res;
+ }
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
- uint16_t _reserved = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, _reserved);
+ if(_res != OK) {
+ return _res;
+ }
if(_reserved != 0x0000) {
printf("Expected constant value '%d' but got '%d' for reserved field.", 0x0000, _reserved);
}
}
// Simple Field (tpduReference)
- uint16_t tpduReference = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t tpduReference = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &tpduReference);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->tpdu_reference = tpduReference;
// Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t parameterLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t parameterLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, ¶meterLength);
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (payloadLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t payloadLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t payloadLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &payloadLength);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(messageType == 0x01) { /* S7MessageRequest */
@@ -89,13 +114,21 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
(*_message)->_type = plc4c_s7_read_write_s7_message_type_s7_read_write_s7_message_response;
// Simple Field (errorClass)
- uint8_t errorClass = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t errorClass = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &errorClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_message_response_error_class = errorClass;
// Simple Field (errorCode)
- uint8_t errorCode = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t errorCode = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &errorCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_message_response_error_code = errorCode;
} else
@@ -103,13 +136,21 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
(*_message)->_type = plc4c_s7_read_write_s7_message_type_s7_read_write_s7_message_response_data;
// Simple Field (errorClass)
- uint8_t errorClass = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t errorClass = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &errorClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_message_response_data_error_class = errorClass;
// Simple Field (errorCode)
- uint8_t errorCode = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t errorCode = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &errorCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_message_response_data_error_code = errorCode;
} else
@@ -124,7 +165,7 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
if(parameter == NULL) {
return NO_MEMORY;
}
- plc4c_return_code _res = plc4c_s7_read_write_s7_parameter_parse(buf, messageType, ¶meter);
+ _res = plc4c_s7_read_write_s7_parameter_parse(buf, messageType, ¶meter);
if(_res != OK) {
return _res;
}
@@ -138,7 +179,7 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
if(payload == NULL) {
return NO_MEMORY;
}
- plc4c_return_code _res = plc4c_s7_read_write_s7_payload_parse(buf, messageType, parameter, &payload);
+ _res = plc4c_s7_read_write_s7_payload_parse(buf, messageType, parameter, &payload);
if(_res != OK) {
return _res;
}
@@ -149,6 +190,7 @@ plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* bu
}
plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_message* _message) {
+ plc4c_return_code _res = OK;
// Const Field (protocolId)
plc4c_spi_write_unsigned_short(buf, 8, S7_READ_WRITE_S7_MESSAGE_PROTOCOL_ID);
@@ -157,19 +199,28 @@ plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffe
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_message_get_discriminator(_message->_type).messageType);
// Reserved Field
- plc4c_spi_write_unsigned_int(buf, 16, 0x0000);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, 0x0000);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (tpduReference)
- {
- uint16_t _value = _message->tpdu_reference;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->tpdu_reference);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((_message->parameter) != (NULL)) ? plc4c_s7_read_write_s7_parameter_length_in_bytes(_message->parameter) : 0));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((_message->parameter) != (NULL)) ? plc4c_s7_read_write_s7_parameter_length_in_bytes(_message->parameter) : 0));
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (payloadLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (((_message->payload) != (NULL)) ? plc4c_s7_read_write_s7_payload_length_in_bytes(_message->payload) : 0));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (((_message->payload) != (NULL)) ? plc4c_s7_read_write_s7_payload_length_in_bytes(_message->payload) : 0));
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending of the current type, serialize the sub-type elements)
switch(_message->_type) {
@@ -180,15 +231,15 @@ plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffe
case plc4c_s7_read_write_s7_message_type_s7_read_write_s7_message_response: {
// Simple Field (errorClass)
- {
- uint8_t _value = _message->s7_message_response_error_class;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_message_response_error_class);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (errorCode)
- {
- uint8_t _value = _message->s7_message_response_error_code;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_message_response_error_code);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -196,15 +247,15 @@ plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffe
case plc4c_s7_read_write_s7_message_type_s7_read_write_s7_message_response_data: {
// Simple Field (errorClass)
- {
- uint8_t _value = _message->s7_message_response_data_error_class;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_message_response_data_error_class);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (errorCode)
- {
- uint8_t _value = _message->s7_message_response_data_error_code;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_message_response_data_error_code);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -217,8 +268,7 @@ plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffe
// Optional Field (parameter)
if(_message->parameter != NULL) {
- plc4c_s7_read_write_s7_parameter* _value = _message->parameter;
- plc4c_return_code _res = plc4c_s7_read_write_s7_parameter_serialize(buf, _value);
+ _res = plc4c_s7_read_write_s7_parameter_serialize(buf, "_message->parameter");
if(_res != OK) {
return _res;
}
@@ -226,8 +276,7 @@ plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffe
// Optional Field (payload)
if(_message->payload != NULL) {
- plc4c_s7_read_write_s7_payload* _value = _message->payload;
- plc4c_return_code _res = plc4c_s7_read_write_s7_payload_serialize(buf, _value);
+ _res = plc4c_s7_read_write_s7_payload_serialize(buf, "_message->payload");
if(_res != OK) {
return _res;
}
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c b/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
index 9a107fb..40a01dd 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
@@ -50,6 +50,7 @@ plc4c_s7_read_write_s7_parameter_discriminator plc4c_s7_read_write_s7_parameter_
plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer* buf, uint8_t messageType, plc4c_s7_read_write_s7_parameter** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_parameter));
@@ -58,7 +59,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
}
// Discriminator Field (parameterType) (Used as input to a switch field)
- uint8_t parameterType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t parameterType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, ¶meterType);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(parameterType == 0xF0) { /* S7ParameterSetupCommunication */
@@ -66,7 +71,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
- uint8_t _reserved = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, _reserved);
+ if(_res != OK) {
+ return _res;
+ }
if(_reserved != 0x00) {
printf("Expected constant value '%d' but got '%d' for reserved field.", 0x00, _reserved);
}
@@ -75,19 +84,31 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
// Simple Field (maxAmqCaller)
- uint16_t maxAmqCaller = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t maxAmqCaller = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &maxAmqCaller);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_setup_communication_max_amq_caller = maxAmqCaller;
// Simple Field (maxAmqCallee)
- uint16_t maxAmqCallee = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t maxAmqCallee = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &maxAmqCallee);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_setup_communication_max_amq_callee = maxAmqCallee;
// Simple Field (pduLength)
- uint16_t pduLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t pduLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &pduLength);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_setup_communication_pdu_length = pduLength;
} else
@@ -95,7 +116,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_read_var_request;
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t numItems = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t numItems = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &numItems);
+ if(_res != OK) {
+ return _res;
+ }
@@ -110,7 +135,7 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(buf, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -124,7 +149,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_read_var_response;
// Simple Field (numItems)
- uint8_t numItems = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t numItems = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &numItems);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_read_var_response_num_items = numItems;
} else
@@ -132,7 +161,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_write_var_request;
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t numItems = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t numItems = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &numItems);
+ if(_res != OK) {
+ return _res;
+ }
@@ -147,7 +180,7 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(buf, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -161,7 +194,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_write_var_response;
// Simple Field (numItems)
- uint8_t numItems = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t numItems = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &numItems);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_write_var_response_num_items = numItems;
} else
@@ -169,7 +206,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_user_data;
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t numItems = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t numItems = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &numItems);
+ if(_res != OK) {
+ return _res;
+ }
@@ -184,7 +225,7 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_parameter_user_data_item_parse(buf, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_parameter_user_data_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -199,6 +240,7 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer*
}
plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_parameter* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (parameterType)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_parameter_get_discriminator(_message->_type).parameterType);
@@ -208,24 +250,27 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_setup_communication: {
// Reserved Field
- plc4c_spi_write_unsigned_short(buf, 8, 0x00);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, 0x00);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (maxAmqCaller)
- {
- uint16_t _value = _message->s7_parameter_setup_communication_max_amq_caller;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_parameter_setup_communication_max_amq_caller);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (maxAmqCallee)
- {
- uint16_t _value = _message->s7_parameter_setup_communication_max_amq_callee;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_parameter_setup_communication_max_amq_callee);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (pduLength)
- {
- uint16_t _value = _message->s7_parameter_setup_communication_pdu_length;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->s7_parameter_setup_communication_pdu_length);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -233,7 +278,10 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_read_var_request: {
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_read_var_request_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_read_var_request_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -253,9 +301,9 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_read_var_response: {
// Simple Field (numItems)
- {
- uint8_t _value = _message->s7_parameter_read_var_response_num_items;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_read_var_response_num_items);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -263,7 +311,10 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_write_var_request: {
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_write_var_request_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_write_var_request_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
@@ -283,9 +334,9 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_write_var_response: {
// Simple Field (numItems)
- {
- uint8_t _value = _message->s7_parameter_write_var_response_num_items;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_write_var_response_num_items);
+ if(_res != OK) {
+ return _res;
}
break;
@@ -293,7 +344,10 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buf
case plc4c_s7_read_write_s7_parameter_type_s7_read_write_s7_parameter_user_data: {
// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_user_data_items));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_user_data_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
index 2f47eb4..fa90799 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
@@ -40,6 +40,7 @@ plc4c_s7_read_write_s7_parameter_user_data_item_discriminator plc4c_s7_read_writ
plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_s7_parameter_user_data_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_parameter_user_data_item));
@@ -48,43 +49,71 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_sp
}
// Discriminator Field (itemType) (Used as input to a switch field)
- uint8_t itemType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t itemType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &itemType);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(itemType == 0x12) { /* S7ParameterUserDataItemCPUFunctions */
(*_message)->_type = plc4c_s7_read_write_s7_parameter_user_data_item_type_s7_read_write_s7_parameter_user_data_item_cpu_functions;
// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t itemLength = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t itemLength = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &itemLength);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (method)
- uint8_t method = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t method = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &method);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_method = method;
// Simple Field (cpuFunctionType)
- unsigned int cpuFunctionType = plc4c_spi_read_unsigned_byte(buf, 4);
+ unsigned int cpuFunctionType = 0;
+ _res = plc4c_spi_read_unsigned_byte(buf, 4, &cpuFunctionType);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_cpu_function_type = cpuFunctionType;
// Simple Field (cpuFunctionGroup)
- unsigned int cpuFunctionGroup = plc4c_spi_read_unsigned_byte(buf, 4);
+ unsigned int cpuFunctionGroup = 0;
+ _res = plc4c_spi_read_unsigned_byte(buf, 4, &cpuFunctionGroup);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_cpu_function_group = cpuFunctionGroup;
// Simple Field (cpuSubfunction)
- uint8_t cpuSubfunction = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t cpuSubfunction = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &cpuSubfunction);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_cpu_subfunction = cpuSubfunction;
// Simple Field (sequenceNumber)
- uint8_t sequenceNumber = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t sequenceNumber = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &sequenceNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_sequence_number = sequenceNumber;
@@ -96,7 +125,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_sp
if(dataUnitReferenceNumber == NULL) {
return NO_MEMORY;
}
- *dataUnitReferenceNumber = plc4c_spi_read_unsigned_short(buf, 8);
+ *dataUnitReferenceNumber = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &dataUnitReferenceNumber);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number = dataUnitReferenceNumber;
}
@@ -109,7 +142,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_sp
if(lastDataUnit == NULL) {
return NO_MEMORY;
}
- *lastDataUnit = plc4c_spi_read_unsigned_short(buf, 8);
+ *lastDataUnit = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &lastDataUnit);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_last_data_unit = lastDataUnit;
}
@@ -122,7 +159,11 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_sp
if(errorCode == NULL) {
return NO_MEMORY;
}
- *errorCode = plc4c_spi_read_unsigned_int(buf, 16);
+ *errorCode = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &errorCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->s7_parameter_user_data_item_cpu_functions_error_code = errorCode;
}
@@ -132,6 +173,7 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_sp
}
plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_parameter_user_data_item* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (itemType)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_parameter_user_data_item_get_discriminator(_message->_type).itemType);
@@ -141,54 +183,63 @@ plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4
case plc4c_s7_read_write_s7_parameter_user_data_item_type_s7_read_write_s7_parameter_user_data_item_cpu_functions: {
// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_s7_parameter_user_data_item_length_in_bytes(_message)) - (2));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, (plc4c_s7_read_write_s7_parameter_user_data_item_length_in_bytes(_message)) - (2));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (method)
- {
- uint8_t _value = _message->s7_parameter_user_data_item_cpu_functions_method;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_user_data_item_cpu_functions_method);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (cpuFunctionType)
- {
- unsigned int _value = _message->s7_parameter_user_data_item_cpu_functions_cpu_function_type;
- plc4c_spi_write_unsigned_byte(buf, 4, _value);
+ _res = plc4c_spi_write_unsigned_byte(buf, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_type);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (cpuFunctionGroup)
- {
- unsigned int _value = _message->s7_parameter_user_data_item_cpu_functions_cpu_function_group;
- plc4c_spi_write_unsigned_byte(buf, 4, _value);
+ _res = plc4c_spi_write_unsigned_byte(buf, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_group);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (cpuSubfunction)
- {
- uint8_t _value = _message->s7_parameter_user_data_item_cpu_functions_cpu_subfunction;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_user_data_item_cpu_functions_cpu_subfunction);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sequenceNumber)
- {
- uint8_t _value = _message->s7_parameter_user_data_item_cpu_functions_sequence_number;
- plc4c_spi_write_unsigned_short(buf, 8, _value);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_user_data_item_cpu_functions_sequence_number);
+ if(_res != OK) {
+ return _res;
}
// Optional Field (dataUnitReferenceNumber)
if(_message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number != NULL) {
- uint8_t* _value = _message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number;
- plc4c_spi_write_unsigned_short(buf, 8, *_value);
+ _res= plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number);
+ if(_res != OK) {
+ return _res;
+ }
}
// Optional Field (lastDataUnit)
if(_message->s7_parameter_user_data_item_cpu_functions_last_data_unit != NULL) {
- uint8_t* _value = _message->s7_parameter_user_data_item_cpu_functions_last_data_unit;
- plc4c_spi_write_unsigned_short(buf, 8, *_value);
+ _res= plc4c_spi_write_unsigned_short(buf, 8, _message->s7_parameter_user_data_item_cpu_functions_last_data_unit);
+ if(_res != OK) {
+ return _res;
+ }
}
// Optional Field (errorCode)
if(_message->s7_parameter_user_data_item_cpu_functions_error_code != NULL) {
- uint16_t* _value = _message->s7_parameter_user_data_item_cpu_functions_error_code;
- plc4c_spi_write_unsigned_int(buf, 16, *_value);
+ _res= plc4c_spi_write_unsigned_int(buf, 16, _message->s7_parameter_user_data_item_cpu_functions_error_code);
+ if(_res != OK) {
+ return _res;
+ }
}
break;
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_payload.c b/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
index dbafb86..80abe8d 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
@@ -46,6 +46,7 @@ plc4c_s7_read_write_s7_payload_discriminator plc4c_s7_read_write_s7_payload_get_
plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* buf, uint8_t messageType, plc4c_s7_read_write_s7_parameter* parameter, plc4c_s7_read_write_s7_payload** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_payload));
@@ -68,7 +69,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* bu
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(buf, lastItem, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(buf, lastItem, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -92,7 +93,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* bu
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(buf, lastItem, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(buf, lastItem, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -116,7 +117,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* bu
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_var_payload_status_item_parse(buf, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_var_payload_status_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -140,7 +141,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* bu
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_s7_payload_user_data_item_parse(buf, ((plc4c_s7_read_write_s7_parameter_user_data_item*) (plc4c_utils_list_get(((plc4c_s7_read_write_s7_parameter*) (parameter))->s7_parameter_user_data_items, 0)))->s7_parameter_user_data_item_cpu_functions_cpu_function_type, (void*) &_value);
+ _res = plc4c_s7_read_write_s7_payload_user_data_item_parse(buf, ((plc4c_s7_read_write_s7_parameter_user_data_item*) (plc4c_utils_list_get(((plc4c_s7_read_write_s7_parameter*) (parameter))->s7_parameter_user_data_items, 0)))->s7_parameter_user_data_item_cpu_functions_cpu_function_type, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -155,6 +156,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* bu
}
plc4c_return_code plc4c_s7_read_write_s7_payload_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_payload* _message) {
+ plc4c_return_code _res = OK;
// Switch Field (Depending of the current type, serialize the sub-type elements)
switch(_message->_type) {
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
index 50dba2c..8c3ec93 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
@@ -42,6 +42,7 @@ plc4c_s7_read_write_s7_payload_user_data_item_discriminator plc4c_s7_read_write_
plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* buf, unsigned int cpuFunctionType, plc4c_s7_read_write_s7_payload_user_data_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_payload_user_data_item));
@@ -50,26 +51,42 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
}
// Enum field (returnCode)
- plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_data_transport_error_code returnCode = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &returnCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->return_code = returnCode;
// Enum field (transportSize)
- plc4c_s7_read_write_data_transport_size transportSize = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_data_transport_size transportSize = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &transportSize);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->transport_size = transportSize;
// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t dataLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t dataLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &dataLength);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (szlId)
plc4c_s7_read_write_szl_id* szlId;
- plc4c_return_code _res = plc4c_s7_read_write_szl_id_parse(buf, (void*) &szlId);
+ _res = plc4c_s7_read_write_szl_id_parse(buf, (void*) &szlId);
if(_res != OK) {
return _res;
}
(*_message)->szl_id = szlId;
// Simple Field (szlIndex)
- uint16_t szlIndex = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t szlIndex = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &szlIndex);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->szl_index = szlIndex;
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
@@ -80,7 +97,11 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
(*_message)->_type = plc4c_s7_read_write_s7_payload_user_data_item_type_s7_read_write_s7_payload_user_data_item_cpu_function_read_szl_response;
// Const Field (szlItemLength)
- uint16_t szlItemLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t szlItemLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &szlItemLength);
+ if(_res != OK) {
+ return _res;
+ }
if(szlItemLength != S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_READ_SZL_RESPONSE_SZL_ITEM_LENGTH) {
return PARSE_ERROR;
// throw new ParseException("Expected constant value " + S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_READ_SZL_RESPONSE_SZL_ITEM_LENGTH + " but got " + szlItemLength);
@@ -89,7 +110,11 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
// Implicit Field (szlItemCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t szlItemCount = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t szlItemCount = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &szlItemCount);
+ if(_res != OK) {
+ return _res;
+ }
@@ -104,7 +129,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
for(int curItem = 0; curItem < itemCount; curItem++) {
bool lastItem = curItem == (itemCount - 1);
plc4c_list* _value = NULL;
- plc4c_return_code _res = plc4c_s7_read_write_szl_data_tree_item_parse(buf, (void*) &_value);
+ _res = plc4c_s7_read_write_szl_data_tree_item_parse(buf, (void*) &_value);
if(_res != OK) {
return _res;
}
@@ -119,35 +144,36 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
}
plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_payload_user_data_item* _message) {
+ plc4c_return_code _res = OK;
// Enum field (returnCode)
- {
- int8_t _value = _message->return_code;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->return_code);
+ if(_res != OK) {
+ return _res;
}
// Enum field (transportSize)
- {
- int8_t _value = _message->transport_size;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->transport_size);
+ if(_res != OK) {
+ return _res;
}
// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (plc4c_s7_read_write_s7_payload_user_data_item_length_in_bytes(_message)) - (4));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (plc4c_s7_read_write_s7_payload_user_data_item_length_in_bytes(_message)) - (4));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (szlId)
- {
- plc4c_s7_read_write_szl_id* _value = _message->szl_id;
- plc4c_return_code _res = plc4c_s7_read_write_szl_id_serialize(buf, _value);
- if(_res != OK) {
- return _res;
- }
+ _res = plc4c_s7_read_write_szl_id_serialize(buf, "_message->szl_id");
+ if(_res != OK) {
+ return _res;
}
// Simple Field (szlIndex)
- {
- uint16_t _value = _message->szl_index;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->szl_index);
+ if(_res != OK) {
+ return _res;
}
// Switch Field (Depending of the current type, serialize the sub-type elements)
@@ -162,7 +188,10 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_
plc4c_spi_write_unsigned_int(buf, 16, S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_READ_SZL_RESPONSE_SZL_ITEM_LENGTH);
// Implicit Field (szlItemCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, plc4c_spi_evaluation_helper_count(_message->s7_payload_user_data_item_cpu_function_read_szl_response_items));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, plc4c_spi_evaluation_helper_count(_message->s7_payload_user_data_item_cpu_function_read_szl_response_items));
+ if(_res != OK) {
+ return _res;
+ }
// Array field (items)
{
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
index 22e0e71..7840ad0 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_read_buffer* buf, bool lastItem, plc4c_s7_read_write_s7_var_payload_data_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_var_payload_data_item));
@@ -35,15 +36,27 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_r
}
// Enum field (returnCode)
- plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_data_transport_error_code returnCode = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &returnCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->return_code = returnCode;
// Enum field (transportSize)
- plc4c_s7_read_write_data_transport_size transportSize = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_data_transport_size transportSize = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &transportSize);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->transport_size = transportSize;
// Simple Field (dataLength)
- uint16_t dataLength = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t dataLength = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &dataLength);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->data_length = dataLength;
// Array field (data)
@@ -57,7 +70,11 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_r
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(data, &_value);
}
}
@@ -68,7 +85,11 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_r
bool _needsPadding = (bool) ((plc4c_spi_read_has_more(buf, 8)) && ((!(lastItem)) && (((((plc4c_spi_evaluation_helper_count(data)) % (2))) == (1)))));
if(_needsPadding) {
// Just read the padding data and ignore it
- plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t _paddingValue = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &_paddingValue);
+ if(_res != OK) {
+ return _res;
+ }
}
}
@@ -76,23 +97,24 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_r
}
plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_var_payload_data_item* _message, bool lastItem) {
+ plc4c_return_code _res = OK;
// Enum field (returnCode)
- {
- int8_t _value = _message->return_code;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->return_code);
+ if(_res != OK) {
+ return _res;
}
// Enum field (transportSize)
- {
- int8_t _value = _message->transport_size;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->transport_size);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (dataLength)
- {
- uint16_t _value = _message->data_length;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->data_length);
+ if(_res != OK) {
+ return _res;
}
// Array field (data)
@@ -110,7 +132,10 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_s
bool _needsPadding = (bool) ((!(lastItem)) && (((((plc4c_spi_evaluation_helper_count(_message->data)) % (2))) == (1))));
if(_needsPadding) {
// Just output the default padding data
- plc4c_spi_write_unsigned_short(buf, 8, 0);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, 0);
+ if(_res != OK) {
+ return _res;
+ }
}
}
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
index 663db6b..794a2a7 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_s7_var_payload_status_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_var_payload_status_item));
@@ -35,18 +36,23 @@ plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi
}
// Enum field (returnCode)
- plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_data_transport_error_code returnCode = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &returnCode);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->return_code = returnCode;
return OK;
}
plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_var_payload_status_item* _message) {
+ plc4c_return_code _res = OK;
// Enum field (returnCode)
- {
- int8_t _value = _message->return_code;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->return_code);
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
index 8493dc9..7696b33 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
@@ -40,6 +40,7 @@ plc4c_s7_read_write_s7_var_request_parameter_item_discriminator plc4c_s7_read_wr
plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_s7_var_request_parameter_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_s7_var_request_parameter_item));
@@ -48,20 +49,28 @@ plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_
}
// Discriminator Field (itemType) (Used as input to a switch field)
- uint8_t itemType = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t itemType = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &itemType);
+ if(_res != OK) {
+ return _res;
+ }
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if(itemType == 0x12) { /* S7VarRequestParameterItemAddress */
(*_message)->_type = plc4c_s7_read_write_s7_var_request_parameter_item_type_s7_read_write_s7_var_request_parameter_item_address;
// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t itemLength = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t itemLength = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &itemLength);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (address)
plc4c_s7_read_write_s7_address* address;
- plc4c_return_code _res = plc4c_s7_read_write_s7_address_parse(buf, (void*) &address);
+ _res = plc4c_s7_read_write_s7_address_parse(buf, (void*) &address);
if(_res != OK) {
return _res;
}
@@ -73,6 +82,7 @@ plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_
}
plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_s7_var_request_parameter_item* _message) {
+ plc4c_return_code _res = OK;
// Discriminator Field (itemType)
plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_var_request_parameter_item_get_discriminator(_message->_type).itemType);
@@ -82,15 +92,15 @@ plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(pl
case plc4c_s7_read_write_s7_var_request_parameter_item_type_s7_read_write_s7_var_request_parameter_item_address: {
// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_address_length_in_bytes(_message->s7_var_request_parameter_item_address_address));
+ _res = plc4c_spi_write_unsigned_short(buf, 8, plc4c_s7_read_write_s7_address_length_in_bytes(_message->s7_var_request_parameter_item_address_address));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (address)
- {
- plc4c_s7_read_write_s7_address* _value = _message->s7_var_request_parameter_item_address_address;
- plc4c_return_code _res = plc4c_s7_read_write_s7_address_serialize(buf, _value);
- if(_res != OK) {
- return _res;
- }
+ _res = plc4c_s7_read_write_s7_address_serialize(buf, "_message->s7_var_request_parameter_item_address_address");
+ if(_res != OK) {
+ return _res;
}
break;
diff --git a/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c b/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
index 4934f0f..f508054 100644
--- a/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_szl_data_tree_item** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_szl_data_tree_item));
@@ -35,7 +36,11 @@ plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_bu
}
// Simple Field (itemIndex)
- uint16_t itemIndex = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t itemIndex = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &itemIndex);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->item_index = itemIndex;
// Array field (mlfb)
@@ -49,33 +54,50 @@ plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_bu
for(int curItem = 0; curItem < itemCount; curItem++) {
- int8_t _value = plc4c_spi_read_byte(buf, 8);
+ int8_t _value = 0;
+ _res = plc4c_spi_read_byte(buf, 8, &_value);
+ if(_res != OK) {
+ return _res;
+ }
plc4c_utils_list_insert_head_value(mlfb, &_value);
}
}
(*_message)->mlfb = mlfb;
// Simple Field (moduleTypeId)
- uint16_t moduleTypeId = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t moduleTypeId = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &moduleTypeId);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->module_type_id = moduleTypeId;
// Simple Field (ausbg)
- uint16_t ausbg = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t ausbg = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &ausbg);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->ausbg = ausbg;
// Simple Field (ausbe)
- uint16_t ausbe = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t ausbe = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &ausbe);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->ausbe = ausbe;
return OK;
}
plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_szl_data_tree_item* _message) {
+ plc4c_return_code _res = OK;
// Simple Field (itemIndex)
- {
- uint16_t _value = _message->item_index;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->item_index);
+ if(_res != OK) {
+ return _res;
}
// Array field (mlfb)
@@ -89,21 +111,21 @@ plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_wri
}
// Simple Field (moduleTypeId)
- {
- uint16_t _value = _message->module_type_id;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->module_type_id);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (ausbg)
- {
- uint16_t _value = _message->ausbg;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->ausbg);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (ausbe)
- {
- uint16_t _value = _message->ausbe;
- plc4c_spi_write_unsigned_int(buf, 16, _value);
+ _res = plc4c_spi_write_unsigned_int(buf, 16, _message->ausbe);
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/s7/src/szl_id.c b/sandbox/plc4c/generated-sources/s7/src/szl_id.c
index 12b6aca..0c4a1f8 100644
--- a/sandbox/plc4c/generated-sources/s7/src/szl_id.c
+++ b/sandbox/plc4c/generated-sources/s7/src/szl_id.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_szl_id** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_szl_id));
@@ -35,38 +36,51 @@ plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* buf, p
}
// Enum field (typeClass)
- plc4c_s7_read_write_szl_module_type_class typeClass = plc4c_spi_read_byte(buf, 4);
+ plc4c_s7_read_write_szl_module_type_class typeClass = NULL;
+ _res = plc4c_spi_read_byte(buf, 4, &typeClass);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->type_class = typeClass;
// Simple Field (sublistExtract)
- unsigned int sublistExtract = plc4c_spi_read_unsigned_byte(buf, 4);
+ unsigned int sublistExtract = 0;
+ _res = plc4c_spi_read_unsigned_byte(buf, 4, &sublistExtract);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->sublist_extract = sublistExtract;
// Enum field (sublistList)
- plc4c_s7_read_write_szl_sublist sublistList = plc4c_spi_read_byte(buf, 8);
+ plc4c_s7_read_write_szl_sublist sublistList = NULL;
+ _res = plc4c_spi_read_byte(buf, 8, &sublistList);
+ if(_res != OK) {
+ return _res;
+ }
(*_message)->sublist_list = sublistList;
return OK;
}
plc4c_return_code plc4c_s7_read_write_szl_id_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_szl_id* _message) {
+ plc4c_return_code _res = OK;
// Enum field (typeClass)
- {
- int _value = _message->type_class;
- plc4c_spi_write_byte(buf, 4, _value);
+ _res = plc4c_spi_write_byte(buf, 4, _message->type_class);
+ if(_res != OK) {
+ return _res;
}
// Simple Field (sublistExtract)
- {
- unsigned int _value = _message->sublist_extract;
- plc4c_spi_write_unsigned_byte(buf, 4, _value);
+ _res = plc4c_spi_write_unsigned_byte(buf, 4, _message->sublist_extract);
+ if(_res != OK) {
+ return _res;
}
// Enum field (sublistList)
- {
- int8_t _value = _message->sublist_list;
- plc4c_spi_write_byte(buf, 8, _value);
+ _res = plc4c_spi_write_byte(buf, 8, _message->sublist_list);
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c b/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
index 259c90f..b144b40 100644
--- a/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
+++ b/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
@@ -27,6 +27,7 @@
plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* buf, plc4c_s7_read_write_tpkt_packet** _message) {
uint16_t startPos = plc4c_spi_read_get_pos(buf);
uint16_t curPos;
+ plc4c_return_code _res = OK;
// Allocate enough memory to contain this data structure.
(*_message) = malloc(sizeof(plc4c_s7_read_write_tpkt_packet));
@@ -35,7 +36,11 @@ plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* b
}
// Const Field (protocolId)
- uint8_t protocolId = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t protocolId = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, &protocolId);
+ if(_res != OK) {
+ return _res;
+ }
if(protocolId != S7_READ_WRITE_TPKT_PACKET_PROTOCOL_ID) {
return PARSE_ERROR;
// throw new ParseException("Expected constant value " + S7_READ_WRITE_TPKT_PACKET_PROTOCOL_ID + " but got " + protocolId);
@@ -43,18 +48,26 @@ plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* b
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
- uint8_t _reserved = plc4c_spi_read_unsigned_short(buf, 8);
+ uint8_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_short(buf, 8, _reserved);
+ if(_res != OK) {
+ return _res;
+ }
if(_reserved != 0x00) {
printf("Expected constant value '%d' but got '%d' for reserved field.", 0x00, _reserved);
}
}
// Implicit Field (len) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint16_t len = plc4c_spi_read_unsigned_int(buf, 16);
+ uint16_t len = 0;
+ _res = plc4c_spi_read_unsigned_int(buf, 16, &len);
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (payload)
plc4c_s7_read_write_cotp_packet* payload;
- plc4c_return_code _res = plc4c_s7_read_write_cotp_packet_parse(buf, (len) - (4), (void*) &payload);
+ _res = plc4c_s7_read_write_cotp_packet_parse(buf, (len) - (4), (void*) &payload);
if(_res != OK) {
return _res;
}
@@ -64,23 +77,27 @@ plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* b
}
plc4c_return_code plc4c_s7_read_write_tpkt_packet_serialize(plc4c_spi_write_buffer* buf, plc4c_s7_read_write_tpkt_packet* _message) {
+ plc4c_return_code _res = OK;
// Const Field (protocolId)
plc4c_spi_write_unsigned_short(buf, 8, S7_READ_WRITE_TPKT_PACKET_PROTOCOL_ID);
// Reserved Field
- plc4c_spi_write_unsigned_short(buf, 8, 0x00);
+ _res = plc4c_spi_write_unsigned_short(buf, 8, 0x00);
+ if(_res != OK) {
+ return _res;
+ }
// Implicit Field (len) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- plc4c_spi_write_unsigned_int(buf, 16, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message->payload)) + (4));
+ _res = plc4c_spi_write_unsigned_int(buf, 16, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message->payload)) + (4));
+ if(_res != OK) {
+ return _res;
+ }
// Simple Field (payload)
- {
- plc4c_s7_read_write_cotp_packet* _value = _message->payload;
- plc4c_return_code _res = plc4c_s7_read_write_cotp_packet_serialize(buf, _value);
- if(_res != OK) {
- return _res;
- }
+ _res = plc4c_s7_read_write_cotp_packet_serialize(buf, "_message->payload");
+ if(_res != OK) {
+ return _res;
}
return OK;
diff --git a/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h b/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
index 85c4133..a0e2a6f 100644
--- a/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
+++ b/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
@@ -47,45 +47,45 @@ bool plc4c_spi_read_has_more(plc4c_spi_read_buffer* buf, uint16_t num_bits);
plc4c_return_code plc4c_spi_read_get_bytes(plc4c_spi_read_buffer* buf, uint16_t start_pos_in_bytes, uint16_t end_pos_in_bytes, uint8_t** dest);
-uint8_t plc4c_spi_read_peek_byte(plc4c_spi_read_buffer* buf, uint16_t offset_in_bytes);
+plc4c_return_code plc4c_spi_read_peek_byte(plc4c_spi_read_buffer* buf, uint16_t offset_in_bytes, uint8_t* value);
-bool plc4c_spi_read_bit(plc4c_spi_read_buffer* buf);
+plc4c_return_code plc4c_spi_read_bit(plc4c_spi_read_buffer* buf, bool* value);
// Unsigned Integers ...
-uint8_t plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint8_t* value);
-uint16_t plc4c_spi_read_unsigned_short(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_unsigned_short(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint16_t* value);
-uint32_t plc4c_spi_read_unsigned_int(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_unsigned_int(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint32_t* value);
-uint64_t plc4c_spi_read_unsigned_long(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_unsigned_long(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint64_t* value);
// TODO: Not sure which type to use in this case ...
//uint128_t plc4c_spi_read_unsigned_big_integer(plc4c_spi_read_buffer* buf, uint8_t num_bits);
// Signed Integers ...
-int8_t plc4c_spi_read_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits, int8_t* value);
-int16_t plc4c_spi_read_short(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_short(plc4c_spi_read_buffer* buf, uint8_t num_bits, int16_t* value);
-int32_t plc4c_spi_read_int(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_int(plc4c_spi_read_buffer* buf, uint8_t num_bits, int32_t* value);
-int64_t plc4c_spi_read_long(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_long(plc4c_spi_read_buffer* buf, uint8_t num_bits, int64_t* value);
// TODO: Not sure which type to use in this case ...
//int128_t plc4c_spi_read_big_integer(plc4c_spi_read_buffer* buf, uint8_t num_bits);
// Floating Point Numbers ...
-float plc4c_spi_read_float(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_float(plc4c_spi_read_buffer* buf, uint8_t num_bits, float* value);
-double plc4c_spi_read_double(plc4c_spi_read_buffer* buf, uint8_t num_bits);
+plc4c_return_code plc4c_spi_read_double(plc4c_spi_read_buffer* buf, uint8_t num_bits, double* value);
// TODO: Not sure which type to use in this case ...
//doubledouble plc4c_spi_read_big_decimal(plc4c_spi_read_buffer* buf, uint8_t num_bits);
-char* plc4c_spi_read_string(plc4c_spi_read_buffer* buf, uint8_t num_bits, char* encoding);
+plc4c_return_code plc4c_spi_read_string(plc4c_spi_read_buffer* buf, uint8_t num_bits, char* encoding, char** value);
#endif // PLC4C_READ_BUFFER_H_
\ No newline at end of file
diff --git a/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h b/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
index 5dcf7e4..a326386 100644
--- a/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
+++ b/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
@@ -32,47 +32,47 @@ uint8_t* plc4c_spi_write_get_data(plc4c_spi_write_buffer* buf);
uint32_t plc4c_spi_write_get_pos(plc4c_spi_write_buffer* buf);
-uint8_t* plc4c_spi_write_get_bytes(plc4c_spi_write_buffer* buf, uint32_t start_pos_in_bytes, uint32_t end_pos_in_bytes);
+plc4c_return_code plc4c_spi_write_get_bytes(plc4c_spi_write_buffer* buf, uint32_t start_pos_in_bytes, uint32_t end_pos_in_bytes, uint8_t** dest);
-uint8_t plc4c_spi_write_peek_byte(plc4c_spi_write_buffer* buf, uint32_t offset_in_bytes);
+plc4c_return_code plc4c_spi_write_peek_byte(plc4c_spi_write_buffer* buf, uint32_t offset_in_bytes, uint8_t* value);
-void plc4c_spi_write_bit(plc4c_spi_write_buffer* buf, bool value);
+plc4c_return_code plc4c_spi_write_bit(plc4c_spi_write_buffer* buf, bool value);
// Unsigned Integers ...
-void plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint8_t value);
+plc4c_return_code plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint8_t value);
-void plc4c_spi_write_unsigned_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint16_t value);
+plc4c_return_code plc4c_spi_write_unsigned_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint16_t value);
-void plc4c_spi_write_unsigned_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint32_t value);
+plc4c_return_code plc4c_spi_write_unsigned_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint32_t value);
-void plc4c_spi_write_unsigned_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint64_t value);
+plc4c_return_code plc4c_spi_write_unsigned_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint64_t value);
// TODO: Not sure which type to use in this case ...
//void plc4c_spi_write_unsigned_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint128_t value);
// Signed Integers ...
-void plc4c_spi_write_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, int8_t value);
+plc4c_return_code plc4c_spi_write_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, int8_t value);
-void plc4c_spi_write_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, int16_t value);
+plc4c_return_code plc4c_spi_write_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, int16_t value);
-void plc4c_spi_write_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, int32_t value);
+plc4c_return_code plc4c_spi_write_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, int32_t value);
-void plc4c_spi_write_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, int64_t value);
+plc4c_return_code plc4c_spi_write_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, int64_t value);
// TODO: Not sure which type to use in this case ...
-//void plc4c_spi_write_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, int128_t);
+//plc4c_return_code plc4c_spi_write_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, int128_t);
// Floating Point Numbers ...
-void plc4c_spi_write_float(plc4c_spi_write_buffer* buf, uint8_t num_bits, float value);
+plc4c_return_code plc4c_spi_write_float(plc4c_spi_write_buffer* buf, uint8_t num_bits, float value);
-void plc4c_spi_write_double(plc4c_spi_write_buffer* buf, uint8_t num_bits, double value);
+plc4c_return_code plc4c_spi_write_double(plc4c_spi_write_buffer* buf, uint8_t num_bits, double value);
// TODO: Not sure which type to use in this case ...
-//void plc4c_spi_write_big_decimal(plc4c_spi_write_buffer* buf, uint8_t num_bits, doubledouble value);
+//plc4c_return_code plc4c_spi_write_big_decimal(plc4c_spi_write_buffer* buf, uint8_t num_bits, doubledouble value);
-void plc4c_spi_write_string(plc4c_spi_write_buffer* buf, uint8_t num_bits, char* encoding, char* value);
+plc4c_return_code plc4c_spi_write_string(plc4c_spi_write_buffer* buf, uint8_t num_bits, char* encoding, char* value);
#endif // PLC4C_WRITE_BUFFER_H_
\ No newline at end of file
diff --git a/sandbox/plc4c/spi/src/read_buffer.c b/sandbox/plc4c/spi/src/read_buffer.c
index 09732b6..a7f7a7b 100644
--- a/sandbox/plc4c/spi/src/read_buffer.c
+++ b/sandbox/plc4c/spi/src/read_buffer.c
@@ -20,6 +20,8 @@
#include <plc4c/spi/read_buffer.h>
#include <string.h>
+uint8_t bit_mask[9] = {0, 1, 3, 7, 15, 31, 63, 127, 255};
+
plc4c_return_code plc4c_spi_read_buffer_create(uint8_t* data, uint16_t length, plc4c_spi_read_buffer** buffer) {
*buffer = malloc(sizeof(plc4c_spi_read_buffer));
if(*buffer == NULL) {
@@ -76,23 +78,24 @@ plc4c_return_code plc4c_spi_read_get_bytes(plc4c_spi_read_buffer* buf, uint16_t
return OK;
}
-uint8_t plc4c_spi_read_peek_byte(plc4c_spi_read_buffer* buf, uint16_t offset_in_bytes) {
+plc4c_return_code plc4c_spi_read_peek_byte(plc4c_spi_read_buffer* buf, uint16_t offset_in_bytes, uint8_t* value) {
if(buf == NULL) {
- return 0;
+ return NULL_VALUE;
}
if(buf->curPosByte + offset_in_bytes > buf->length) {
- return 0;
+ return OUT_OF_RANGE;
}
- return (*buf->data) + (buf->curPosByte + offset_in_bytes);
+ *value = (*buf->data) + (buf->curPosByte + offset_in_bytes);
+ return OK;
}
-bool plc4c_spi_read_bit(plc4c_spi_read_buffer* buf) {
+plc4c_return_code plc4c_spi_read_bit(plc4c_spi_read_buffer* buf, bool* value) {
uint8_t cur_byte = (*buf->data) + buf->curPosByte;
// We have to invert the position as bit 0 will be the first
// (most significant bit).
unsigned int bit_pos = ((unsigned int) 7) - buf->curPosBit;
// Get the bit's value.
- bool value = ((cur_byte >> bit_pos) & 1) != 0;
+ *value = ((cur_byte >> bit_pos) & 1) != 0;
// If this was the last bit in this byte, move on to the next one.
if(buf->curPosBit == 7) {
buf->curPosByte++;
@@ -100,63 +103,89 @@ bool plc4c_spi_read_bit(plc4c_spi_read_buffer* buf) {
} else {
buf->curPosBit++;
}
- return value;
+ return OK;
}
// Unsigned Integers ...
-uint8_t plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint8_t* value) {
+ // If the bit-offset is currently 0, then we simply read a byte ...
+ if(buf->curPosBit == 0) {
+ uint8_t cur_byte = (*buf->data) + buf->curPosByte;
+ buf->curPosByte++;
+ return cur_byte;
+ } else {
+ uint8_t cur_byte = (*buf->data) + buf->curPosByte;
+ cur_byte = cur_byte << buf->curPosBit;
+ uint8_t next_byte = (*buf->data) + (buf->curPosByte + 1);
+ next_byte = next_byte >> buf->curPosBit;
+ uint8_t virtual_byte = cur_byte | next_byte;
+ buf->curPosByte++;
+ return virtual_byte;
+ }
}
-uint16_t plc4c_spi_read_unsigned_short(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_unsigned_short(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint16_t* value) {
+ // If the bit-offset is currently 0, then we simply read a byte ...
+ if(buf->curPosBit == 0) {
+ uint16_t cur_short = (*buf->data) + buf->curPosByte;
+ buf->curPosByte += 2;
+ return cur_short;
+ } else {
+ uint8_t cur_short = (*buf->data) + buf->curPosByte;
+ cur_short = cur_short << buf->curPosBit;
+ uint8_t next_byte = (*buf->data) + (buf->curPosByte + 1);
+ next_byte = next_byte >> buf->curPosBit;
+ uint8_t virtual_byte = cur_short | next_byte;
+ buf->curPosByte++;
+ return virtual_byte;
+ }
}
-uint32_t plc4c_spi_read_unsigned_int(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_unsigned_int(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint32_t* value) {
+ return OK;
}
-uint64_t plc4c_spi_read_unsigned_long(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_unsigned_long(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint64_t* value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
/*uint128_t plc4c_spi_read_unsigned_big_integer(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+ return OK;
}*/
// Signed Integers ...
-int8_t plc4c_spi_read_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits, int8_t* value) {
+ return OK;
}
-int16_t plc4c_spi_read_short(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_short(plc4c_spi_read_buffer* buf, uint8_t num_bits, int16_t* value) {
+ return OK;
}
-int32_t plc4c_spi_read_int(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_int(plc4c_spi_read_buffer* buf, uint8_t num_bits, int32_t* value) {
+ return OK;
}
-int64_t plc4c_spi_read_long(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_long(plc4c_spi_read_buffer* buf, uint8_t num_bits, int64_t* value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
/*int128_t plc4c_spi_read_big_integer(plc4c_spi_read_buffer* buf, uint8_t num_bits);
- * return 0;
+ * return OK;
* }*/
// Floating Point Numbers ...
-float plc4c_spi_read_float(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_float(plc4c_spi_read_buffer* buf, uint8_t num_bits, float* value) {
+ return OK;
}
-double plc4c_spi_read_double(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
- return 0;
+plc4c_return_code plc4c_spi_read_double(plc4c_spi_read_buffer* buf, uint8_t num_bits, double* value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
@@ -164,6 +193,6 @@ double plc4c_spi_read_double(plc4c_spi_read_buffer* buf, uint8_t num_bits) {
* return 0;
* } */
-char* plc4c_spi_read_string(plc4c_spi_read_buffer* buf, uint8_t num_bits, char* encoding) {
- return NULL;
+plc4c_return_code plc4c_spi_read_string(plc4c_spi_read_buffer* buf, uint8_t num_bits, char* encoding, char** value) {
+ return OK;
}
diff --git a/sandbox/plc4c/spi/src/write_buffer.c b/sandbox/plc4c/spi/src/write_buffer.c
index f06b321..7fbbe4f 100644
--- a/sandbox/plc4c/spi/src/write_buffer.c
+++ b/sandbox/plc4c/spi/src/write_buffer.c
@@ -27,76 +27,76 @@ uint32_t plc4c_spi_write_get_pos(plc4c_spi_write_buffer* buf) {
return 0;
}
-uint8_t* plc4c_spi_write_get_bytes(plc4c_spi_write_buffer* buf, uint32_t start_pos_in_bytes, uint32_t end_pos_in_bytes) {
- return NULL;
+plc4c_return_code plc4c_spi_write_get_bytes(plc4c_spi_write_buffer* buf, uint32_t start_pos_in_bytes, uint32_t end_pos_in_bytes, uint8_t** dest) {
+ return OK;
}
-uint8_t plc4c_spi_write_peek_byte(plc4c_spi_write_buffer* buf, uint32_t offset_in_bytes) {
- return 0;
+plc4c_return_code plc4c_spi_write_peek_byte(plc4c_spi_write_buffer* buf, uint32_t offset_in_bytes, uint8_t* value) {
+ return OK;
}
-void plc4c_spi_write_bit(plc4c_spi_write_buffer* buf, bool value) {
-
+plc4c_return_code plc4c_spi_write_bit(plc4c_spi_write_buffer* buf, bool value) {
+ return OK;
}
// Unsigned Integers ...
-void plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint8_t value) {
-
+plc4c_return_code plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint8_t value) {
+ return OK;
}
-void plc4c_spi_write_unsigned_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint16_t value) {
-
+plc4c_return_code plc4c_spi_write_unsigned_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint16_t value) {
+ return OK;
}
-void plc4c_spi_write_unsigned_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint32_t value) {
-
+plc4c_return_code plc4c_spi_write_unsigned_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint32_t value) {
+ return OK;
}
-void plc4c_spi_write_unsigned_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint64_t value) {
-
+plc4c_return_code plc4c_spi_write_unsigned_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint64_t value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
-/*void plc4c_spi_write_unsigned_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint128_t value) {
+/*plc4c_return_code plc4c_spi_write_unsigned_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint128_t value) {
* } */
// Signed Integers ...
-void plc4c_spi_write_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, int8_t value) {
-
+plc4c_return_code plc4c_spi_write_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, int8_t value) {
+ return OK;
}
-void plc4c_spi_write_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, int16_t value) {
-
+plc4c_return_code plc4c_spi_write_short(plc4c_spi_write_buffer* buf, uint8_t num_bits, int16_t value) {
+ return OK;
}
-void plc4c_spi_write_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, int32_t value) {
-
+plc4c_return_code plc4c_spi_write_int(plc4c_spi_write_buffer* buf, uint8_t num_bits, int32_t value) {
+ return OK;
}
-void plc4c_spi_write_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, int64_t value) {
-
+plc4c_return_code plc4c_spi_write_long(plc4c_spi_write_buffer* buf, uint8_t num_bits, int64_t value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
-/*void plc4c_spi_write_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, int128_t) {
+/*plc4c_return_code plc4c_spi_write_big_integer(plc4c_spi_write_buffer* buf, uint8_t num_bits, int128_t) {
* } */
// Floating Point Numbers ...
-void plc4c_spi_write_float(plc4c_spi_write_buffer* buf, uint8_t num_bits, float value) {
-
+plc4c_return_code plc4c_spi_write_float(plc4c_spi_write_buffer* buf, uint8_t num_bits, float value) {
+ return OK;
}
-void plc4c_spi_write_double(plc4c_spi_write_buffer* buf, uint8_t num_bits, double value) {
-
+plc4c_return_code plc4c_spi_write_double(plc4c_spi_write_buffer* buf, uint8_t num_bits, double value) {
+ return OK;
}
// TODO: Not sure which type to use in this case ...
/*void plc4c_spi_write_big_decimal(plc4c_spi_write_buffer* buf, uint8_t num_bits, doubledouble value) {
* } */
-void plc4c_spi_write_string(plc4c_spi_write_buffer* buf, uint8_t num_bits, char* encoding, char* value) {
+plc4c_return_code plc4c_spi_write_string(plc4c_spi_write_buffer* buf, uint8_t num_bits, char* encoding, char* value) {
}
diff --git a/sandbox/plc4c/spi/test/read_buffer_test.c b/sandbox/plc4c/spi/test/read_buffer_test.c
index a991f08..e09c148 100644
--- a/sandbox/plc4c/spi/test/read_buffer_test.c
+++ b/sandbox/plc4c/spi/test/read_buffer_test.c
@@ -16,19 +16,21 @@
* specific language governing permissions and limitations
* under the License.
*/
+#include "plc4c/spi/read_buffer.h"
+
#include <stdlib.h>
#include <unity.h>
-#include "plc4c/spi/read_buffer.h"
void test_plc4c_spi_read_buffer_create_args(
- uint8_t *data, uint16_t length, plc4c_return_code expected_return_code) {
-
- printf("Running read_buffer create test with %d, expecting return code %d", length, expected_return_code);
+ uint8_t* data, uint16_t length, plc4c_return_code expected_return_code) {
+ printf("Running read_buffer create test with %d, expecting return code %d",
+ length, expected_return_code);
// Create a new read_buffer instance
plc4c_spi_read_buffer* read_buffer;
- plc4c_return_code return_code = plc4c_spi_read_buffer_create(data, length, &read_buffer);
+ plc4c_return_code return_code =
+ plc4c_spi_read_buffer_create(data, length, &read_buffer);
TEST_ASSERT_EQUAL_INT(expected_return_code, return_code);
if (expected_return_code != OK) {
@@ -42,20 +44,16 @@ void test_plc4c_spi_read_buffer_create_args(
void test_plc4c_spi_read_buffer_create(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4,5,6,7,8};
+ uint8_t data[] = {1, 2, 3, 4, 5, 6, 7, 8};
// Run test
test_plc4c_spi_read_buffer_create_args(&data[0], 8, OK);
}
-
-
-
-
void test_plc4c_spi_read_buffer_get_total_bytes_args(
plc4c_spi_read_buffer* read_buffer, uint16_t expected_length) {
-
- printf("Running read_buffer get_total_bytes test. Expecting %d length", expected_length);
+ printf("Running read_buffer get_total_bytes test. Expecting %d length",
+ expected_length);
uint32_t length = plc4c_spi_read_get_total_bytes(read_buffer);
@@ -65,7 +63,7 @@ void test_plc4c_spi_read_buffer_get_total_bytes_args(
void test_plc4c_spi_read_buffer_get_total_bytes(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4,5,6,7,8};
+ uint8_t data[] = {1, 2, 3, 4, 5, 6, 7, 8};
plc4c_spi_read_buffer* read_buffer;
plc4c_spi_read_buffer_create(data, 8, &read_buffer);
@@ -73,13 +71,12 @@ void test_plc4c_spi_read_buffer_get_total_bytes(void) {
test_plc4c_spi_read_buffer_get_total_bytes_args(read_buffer, 8);
}
-
-
-
void test_plc4c_spi_read_buffer_has_more_args(
- plc4c_spi_read_buffer* read_buffer, uint16_t num_bytes, bool expected_result) {
-
- printf("Running read_buffer has_more test. Checking if %d bytes are available", num_bytes);
+ plc4c_spi_read_buffer* read_buffer, uint16_t num_bytes,
+ bool expected_result) {
+ printf(
+ "Running read_buffer has_more test. Checking if %d bytes are available",
+ num_bytes);
bool result = plc4c_spi_read_has_more(read_buffer, num_bytes);
@@ -89,7 +86,7 @@ void test_plc4c_spi_read_buffer_has_more_args(
void test_plc4c_spi_read_buffer_has_more(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4};
+ uint8_t data[] = {1, 2, 3, 4};
plc4c_spi_read_buffer* read_buffer;
plc4c_spi_read_buffer_create(data, 4, &read_buffer);
@@ -106,23 +103,25 @@ void test_plc4c_spi_read_buffer_has_more(void) {
test_plc4c_spi_read_buffer_has_more_args(read_buffer, 50, false);
}
-
-
-
void test_plc4c_spi_read_buffer_get_bytes_args(
- plc4c_spi_read_buffer* read_buffer, uint16_t start_byte, uint16_t end_byte, plc4c_return_code expected_return_code, uint8_t* expected_bytes, uint8_t expected_bytes_length) {
-
- printf("Running read_buffer get_bytes test. Checking if reading from %d to %d bytes gives the correct response", start_byte, end_byte);
+ plc4c_spi_read_buffer* read_buffer, uint16_t start_byte, uint16_t end_byte,
+ plc4c_return_code expected_return_code, const uint8_t* expected_bytes,
+ uint8_t expected_bytes_length) {
+ printf(
+ "Running read_buffer get_bytes test. Checking if reading from %d to %d "
+ "bytes gives the correct response",
+ start_byte, end_byte);
uint8_t* read_bytes = NULL;
- plc4c_return_code result = plc4c_spi_read_get_bytes(read_buffer, start_byte, end_byte, &read_bytes);
+ plc4c_return_code result =
+ plc4c_spi_read_get_bytes(read_buffer, start_byte, end_byte, &read_bytes);
TEST_ASSERT_EQUAL_INT(expected_return_code, result);
- if(expected_return_code != OK) {
+ if (expected_return_code != OK) {
TEST_ASSERT_NULL(read_bytes);
} else {
TEST_ASSERT_NOT_NULL(read_bytes);
- for(int i = 0; i < expected_bytes_length; i++) {
+ for (int i = 0; i < expected_bytes_length; i++) {
uint8_t cur_byte = *read_buffer->data + start_byte + i;
uint8_t expected_byte = *expected_bytes + i;
TEST_ASSERT_EQUAL_INT(expected_byte, cur_byte);
@@ -134,39 +133,50 @@ void test_plc4c_spi_read_buffer_get_bytes_args(
void test_plc4c_spi_read_buffer_get_bytes(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4,5,6,7};
+ uint8_t data[] = {1, 2, 3, 4, 5, 6, 7};
plc4c_spi_read_buffer* read_buffer;
plc4c_spi_read_buffer_create(data, 8, &read_buffer);
// Run test
uint8_t result_data1[] = {1};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 0, 0, OK, result_data1, 1);
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 0, 0, OK, result_data1,
+ 1);
uint8_t result_data2[] = {2};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 1, 1, OK, result_data2, 1);
- uint8_t result_data3[] = {2,3};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 1, 2, OK, result_data3, 2);
- uint8_t result_data4[] = {4,5,6};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 3, 5, OK, result_data4, 3);
- uint8_t result_data5[] = {4,5,6,7};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 3, 6, OK, result_data5, 4);
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 1, 1, OK, result_data2,
+ 1);
+ uint8_t result_data3[] = {2, 3};
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 1, 2, OK, result_data3,
+ 2);
+ uint8_t result_data4[] = {4, 5, 6};
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 3, 5, OK, result_data4,
+ 3);
+ uint8_t result_data5[] = {4, 5, 6, 7};
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 3, 6, OK, result_data5,
+ 4);
// These should fail for various reasons ...
uint8_t result_data6[] = {};
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 0, 10, OUT_OF_RANGE, result_data6, 0);
- test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 6, 3, INVALID_ARGUMENT, result_data6, 0);
- test_plc4c_spi_read_buffer_get_bytes_args(NULL, 0, 0, NULL_VALUE, result_data6, 0);
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 0, 10, OUT_OF_RANGE,
+ result_data6, 0);
+ test_plc4c_spi_read_buffer_get_bytes_args(read_buffer, 6, 3, INVALID_ARGUMENT,
+ result_data6, 0);
+ test_plc4c_spi_read_buffer_get_bytes_args(NULL, 0, 0, NULL_VALUE,
+ result_data6, 0);
}
-
-
-
void test_plc4c_spi_read_buffer_peek_byte_args(
- plc4c_spi_read_buffer* read_buffer, uint16_t peek_byte, uint8_t expected_value) {
-
- printf("Running read_buffer peek_byte test. Checking if peeking byte number %d gives the correct response", peek_byte);
+ plc4c_spi_read_buffer* read_buffer, uint16_t peek_byte,
+ plc4c_return_code expected_return_code, uint8_t expected_value) {
+ printf(
+ "Running read_buffer peek_byte test. Checking if peeking byte number %d "
+ "gives the correct response",
+ peek_byte);
- uint8_t peeked_byte = plc4c_spi_read_peek_byte(read_buffer, peek_byte);
+ uint8_t peeked_byte = 0;
+ plc4c_return_code result =
+ plc4c_spi_read_peek_byte(read_buffer, peek_byte, &peeked_byte);
+ TEST_ASSERT_EQUAL_INT(expected_return_code, result);
TEST_ASSERT_EQUAL_INT(expected_value, peeked_byte);
printf(" -> OK\n");
@@ -174,33 +184,33 @@ void test_plc4c_spi_read_buffer_peek_byte_args(
void test_plc4c_spi_read_buffer_peek_byte(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4,5,6,7};
+ uint8_t data[] = {1, 2, 3, 4, 5, 6, 7};
plc4c_spi_read_buffer* read_buffer;
plc4c_spi_read_buffer_create(data, 8, &read_buffer);
// Run test
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 0, 1);
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 4, 5);
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 4, 5);
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 6, 7);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 0, OK, 1);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 4, OK, 5);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 4, OK, 5);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 6, OK, 7);
// Bump the cur buffer position.
read_buffer->curPosByte = 2;
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 2, 5);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 2, OK, 5);
// These should fail
- test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 8, 0);
+ test_plc4c_spi_read_buffer_peek_byte_args(read_buffer, 8, OUT_OF_RANGE, 0);
}
-
-
-
void test_plc4c_spi_read_buffer_read_bit_args(
plc4c_spi_read_buffer* read_buffer, bool expected_value) {
+ printf(
+ "Running read_buffer peek_byte test. Checking if reading a bit gives the "
+ "correct response");
- printf("Running read_buffer peek_byte test. Checking if reading a bit gives the correct response");
-
- bool value = plc4c_spi_read_bit(read_buffer);
+ bool value = false;
+ plc4c_return_code result = plc4c_spi_read_bit(read_buffer, &value);
+ TEST_ASSERT_EQUAL_INT(OK, result);
TEST_ASSERT_EQUAL_INT(expected_value, value);
printf(" -> OK\n");
@@ -208,7 +218,7 @@ void test_plc4c_spi_read_buffer_read_bit_args(
void test_plc4c_spi_read_buffer_read_bit(void) {
// Prepare input data
- uint8_t data[] = {1,2,3,4,5,6,7};
+ uint8_t data[] = {1, 2, 3, 4, 5, 6, 7};
plc4c_spi_read_buffer* read_buffer;
plc4c_spi_read_buffer_create(data, 8, &read_buffer);
@@ -239,10 +249,6 @@ void test_plc4c_spi_read_buffer_read_bit(void) {
test_plc4c_spi_read_buffer_read_bit_args(read_buffer, true);
}
-
-
-
-
void test_plc4c_spi_read_buffer(void) {
test_plc4c_spi_read_buffer_create();
test_plc4c_spi_read_buffer_get_total_bytes();