You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/02/18 10:04:18 UTC
[plc4x] 01/02: Merge branch 'develop' into feature/plc4c-proxy-protocol
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch feature/plc4c-proxy-protocol
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit fe2960b7b79f885bbd6320ca8cf1eb5057ee6d9f
Merge: 605b562 394d759
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Feb 18 11:02:03 2022 +0100
Merge branch 'develop' into feature/plc4c-proxy-protocol
# Conflicts:
# code-generation/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
# code-generation/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
# plc4c/generated-sources/modbus/src/modbus_pdu.c
# plc4c/generated-sources/s7/include/s7_payload_user_data_item.h
# plc4c/generated-sources/s7/src/cotp_protocol_class.c
# plc4c/generated-sources/s7/src/cotp_tpdu_size.c
# plc4c/generated-sources/s7/src/device_group.c
# plc4c/generated-sources/s7/src/s7_data_alarm_message.c
# plc4c/generated-sources/s7/src/s7_parameter.c
# plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
# plc4c/generated-sources/s7/src/transport_size.c
.../BaseFreemarkerLanguageTemplateHelper.java | 7 +
.../plc4x/language/c/CLanguageTemplateHelper.java | 3 +-
.../resources/templates/c/enum-template.c.ftlh | 34 ++-
.../resources/templates/c/pojo-template.c.ftlh | 24 +-
.../resources/templates/c/pojo-template.h.ftlh | 2 +-
plc4c/generated-sources/modbus/src/modbus_pdu.c | 24 +-
.../s7/include/alarm_message_object_ack_type.h | 2 +-
.../s7/include/s7_data_alarm_message.h | 2 +-
.../s7/include/s7_payload_user_data_item.h | 4 +-
.../s7/src/alarm_message_object_ack_type.c | 8 +-
plc4c/generated-sources/s7/src/cotp_packet.c | 14 +-
plc4c/generated-sources/s7/src/cotp_parameter.c | 12 +-
.../generated-sources/s7/src/cotp_protocol_class.c | 4 +-
plc4c/generated-sources/s7/src/cotp_tpdu_size.c | 4 +-
.../generated-sources/s7/src/data_transport_size.c | 10 +-
plc4c/generated-sources/s7/src/device_group.c | 4 +-
plc4c/generated-sources/s7/src/s7_address.c | 4 +-
.../s7/src/s7_data_alarm_message.c | 10 +-
plc4c/generated-sources/s7/src/s7_message.c | 10 +-
plc4c/generated-sources/s7/src/s7_parameter.c | 2 +-
.../s7/src/s7_parameter_user_data_item.c | 4 +-
plc4c/generated-sources/s7/src/s7_payload.c | 10 +-
.../s7/src/s7_payload_user_data_item.c | 22 +-
.../s7/src/s7_var_request_parameter_item.c | 4 +-
plc4c/generated-sources/s7/src/transport_size.c | 51 +---
.../plc4x/java/bacnetip/RandomPackagesTest.java | 30 +--
plc4j/examples/hello-world-kotlin/pom.xml | 148 +++++++++++
.../src/main/kotlin/ReadModbusPal.kt | 43 ++++
.../src/main/resources/logback.xml | 2 +-
plc4j/examples/pom.xml | 1 +
.../utils/rawsockets/netty/RawSocketChannel.java | 4 +-
.../utils/rawsockets/netty/utils/ArpLookup.java | 132 ----------
.../utils/rawsockets/netty/utils/ArpUtils.java | 281 +++++++++++++++++++++
.../apache/plc4x/test/RequirePcapCondition.java | 2 +-
.../apache/plc4x/test/RequirePcapNgCondition.java | 2 +-
pom.xml | 96 +++----
36 files changed, 663 insertions(+), 353 deletions(-)
diff --cc code-generation/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
index 6ef18f4,d377df8..3ed92a5
--- a/code-generation/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
+++ b/code-generation/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
@@@ -154,7 -154,7 +154,7 @@@ struct ${helper.getCTypeName(type.name)
</#if>
</#list>
};
- <#elseif (field.type.isSimpleTypeReference() || helper.isEnumField(field)) && !field.isConstField() && !field.isOptionalField() && !field.isArrayField() && !field.isManualArrayField()>
- <#elseif (field.isTypedField() && field.type.isSimpleTypeReference() || helper.isEnumField(field)) && !field.isOptionalField() && !field.isArrayField() && !field.isManualArrayField()>
++ <#elseif (field.isTypedField() && field.type.isSimpleTypeReference() || helper.isEnumField(field)) && !field.isConstField() && !field.isOptionalField() && !field.isArrayField() && !field.isManualArrayField()>
<#assign namedField = field.asNamedField().orElseThrow()>
${helper.getLanguageTypeNameForField(field)} ${helper.camelCaseToSnakeCase(namedField.name)}${helper.getTypeSizeForField(field.asTypedField().orElseThrow())}<#if field.loopType??>${helper.getLoopExpressionSuffix(field.asTypedField().orElseThrow())}</#if>;
<#elseif field.isArrayField() || field.isManualArrayField()>
diff --cc plc4c/generated-sources/modbus/src/modbus_pdu.c
index a31aab5,eace41a..f9acbac
--- a/plc4c/generated-sources/modbus/src/modbus_pdu.c
+++ b/plc4c/generated-sources/modbus/src/modbus_pdu.c
@@@ -148,17 -148,18 +148,17 @@@ plc4c_return_code plc4c_modbus_read_wri
return _res;
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if( errorFlag == true ) { /* ModbusPDUError */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_error;
-
- // Simple Field (exceptionCode)
- plc4c_modbus_read_write_modbus_error_code* exceptionCode;
- _res = plc4c_modbus_read_write_modbus_error_code_parse(readBuffer, (void*) &exceptionCode);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_error_exception_code = *exceptionCode;
+ // Simple Field (exceptionCode)
+ plc4c_modbus_read_write_modbus_error_code exceptionCode;
+ _res = plc4c_modbus_read_write_modbus_error_code_parse(readBuffer, (void*) &exceptionCode);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_error_exception_code = exceptionCode;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x02 ) && ( response == false ) ) { /* ModbusPDUReadDiscreteInputsRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_discrete_inputs_request;
@@@ -182,35 -185,37 +182,35 @@@
} else
if( ( errorFlag == false ) && ( functionFlag == 0x02 ) && ( response == true ) ) { /* ModbusPDUReadDiscreteInputsResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_discrete_inputs_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_discrete_inputs_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x01 ) && ( response == false ) ) { /* ModbusPDUReadCoilsRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_coils_request;
@@@ -234,35 -241,37 +234,35 @@@
} else
if( ( errorFlag == false ) && ( functionFlag == 0x01 ) && ( response == true ) ) { /* ModbusPDUReadCoilsResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_coils_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_coils_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x05 ) && ( response == false ) ) { /* ModbusPDUWriteSingleCoilRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_coil_request;
@@@ -306,53 -319,57 +306,53 @@@ if( ( errorFlag == false ) && ( functio
} else
if( ( errorFlag == false ) && ( functionFlag == 0x0F ) && ( response == false ) ) { /* ModbusPDUWriteMultipleCoilsRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_coils_request;
-
- // Simple Field (startingAddress)
- uint16_t startingAddress = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_write_multiple_coils_request_starting_address = startingAddress;
-
-
-
- // Simple Field (quantity)
- uint16_t quantity = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Simple Field (startingAddress)
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_write_multiple_coils_request_starting_address = startingAddress;
+
+
+ // Simple Field (quantity)
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_write_multiple_coils_request_quantity = quantity;
+
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_write_multiple_coils_request_value = value;
-
+ }
+ (*_message)->modbus_pdu_write_multiple_coils_request_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x0F ) && ( response == true ) ) { /* ModbusPDUWriteMultipleCoilsResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_coils_response;
@@@ -396,35 -417,37 +396,35 @@@ if( ( errorFlag == false ) && ( functio
} else
if( ( errorFlag == false ) && ( functionFlag == 0x04 ) && ( response == true ) ) { /* ModbusPDUReadInputRegistersResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_input_registers_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_input_registers_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x03 ) && ( response == false ) ) { /* ModbusPDUReadHoldingRegistersRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_holding_registers_request;
@@@ -448,35 -473,37 +448,35 @@@
} else
if( ( errorFlag == false ) && ( functionFlag == 0x03 ) && ( response == true ) ) { /* ModbusPDUReadHoldingRegistersResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_holding_registers_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_holding_registers_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x06 ) && ( response == false ) ) { /* ModbusPDUWriteSingleRegisterRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_register_request;
@@@ -520,53 -551,57 +520,53 @@@ if( ( errorFlag == false ) && ( functio
} else
if( ( errorFlag == false ) && ( functionFlag == 0x10 ) && ( response == false ) ) { /* ModbusPDUWriteMultipleHoldingRegistersRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_holding_registers_request;
-
- // Simple Field (startingAddress)
- uint16_t startingAddress = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_write_multiple_holding_registers_request_starting_address = startingAddress;
-
-
-
- // Simple Field (quantity)
- uint16_t quantity = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Simple Field (startingAddress)
+ uint16_t startingAddress = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_write_multiple_holding_registers_request_starting_address = startingAddress;
+
+
+ // Simple Field (quantity)
+ uint16_t quantity = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_write_multiple_holding_registers_request_quantity = quantity;
+
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_write_multiple_holding_registers_request_value = value;
-
+ }
+ (*_message)->modbus_pdu_write_multiple_holding_registers_request_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x10 ) && ( response == true ) ) { /* ModbusPDUWriteMultipleHoldingRegistersResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_holding_registers_response;
@@@ -590,103 -627,111 +590,103 @@@
} else
if( ( errorFlag == false ) && ( functionFlag == 0x17 ) && ( response == false ) ) { /* ModbusPDUReadWriteMultipleHoldingRegistersRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_request;
-
- // Simple Field (readStartingAddress)
- uint16_t readStartingAddress = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &readStartingAddress);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address = readStartingAddress;
+ // Simple Field (readStartingAddress)
+ uint16_t readStartingAddress = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &readQuantity);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity = readQuantity;
+ // Simple Field (readQuantity)
+ uint16_t readQuantity = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &readQuantity);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity = readQuantity;
-
- // Simple Field (writeStartingAddress)
- uint16_t writeStartingAddress = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &writeStartingAddress);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address = writeStartingAddress;
+ // Simple Field (writeStartingAddress)
+ uint16_t writeStartingAddress = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &writeQuantity);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity = writeQuantity;
+ // Simple Field (writeQuantity)
+ uint16_t writeQuantity = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_write_multiple_holding_registers_request_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x17 ) && ( response == true ) ) { /* ModbusPDUReadWriteMultipleHoldingRegistersResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_read_write_multiple_holding_registers_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_read_write_multiple_holding_registers_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x16 ) && ( response == false ) ) { /* ModbusPDUMaskWriteHoldingRegisterRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_mask_write_holding_register_request;
@@@ -759,43 -811,46 +759,43 @@@ if( ( errorFlag == false ) && ( functio
} else
if( ( errorFlag == false ) && ( functionFlag == 0x18 ) && ( response == true ) ) { /* ModbusPDUReadFifoQueueResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &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 = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fifoCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (fifoValue)
- plc4c_list* fifoValue = NULL;
- plc4c_utils_list_create(&fifoValue);
- if(fifoValue == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) fifoCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- uint16_t* _value = malloc(sizeof(uint16_t));
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(fifoValue, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint16_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Implicit Field (fifoCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint16_t fifoCount = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fifoCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (fifoValue)
+ plc4c_list* fifoValue = NULL;
+ plc4c_utils_list_create(&fifoValue);
+ if(fifoValue == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) fifoCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ uint16_t* _value = malloc(sizeof(uint16_t));
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(fifoValue, _value);
}
- (*_message)->modbus_pdu_read_fifo_queue_response_fifo_value = fifoValue;
-
+ }
+ (*_message)->modbus_pdu_read_fifo_queue_response_fifo_value = fifoValue;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x14 ) && ( response == false ) ) { /* ModbusPDUReadFileRecordRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_file_record_request;
@@@ -1007,97 -1077,104 +1007,97 @@@ if( ( errorFlag == false ) && ( functio
} else
if( ( errorFlag == false ) && ( functionFlag == 0x0C ) && ( response == true ) ) { /* ModbusPDUGetComEventLogResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Simple Field (status)
- uint16_t status = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &status);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_get_com_event_log_response_status = status;
-
-
-
- // Simple Field (eventCount)
- uint16_t eventCount = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &eventCount);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_get_com_event_log_response_event_count = eventCount;
-
-
-
- // Simple Field (messageCount)
- uint16_t messageCount = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &messageCount);
- if(_res != OK) {
- return _res;
- }
- (*_message)->modbus_pdu_get_com_event_log_response_message_count = messageCount;
-
-
-
- // Array field (events)
- plc4c_list* events = NULL;
- plc4c_utils_list_create(&events);
- if(events == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) (byteCount) - (6);
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(events, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Simple Field (status)
+ uint16_t status = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &status);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_get_com_event_log_response_status = status;
+
+
+ // Simple Field (eventCount)
+ uint16_t eventCount = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &eventCount);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_get_com_event_log_response_event_count = eventCount;
+
+
+ // Simple Field (messageCount)
+ uint16_t messageCount = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &messageCount);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->modbus_pdu_get_com_event_log_response_message_count = messageCount;
+
+
+ // Array field (events)
+ plc4c_list* events = NULL;
+ plc4c_utils_list_create(&events);
+ if(events == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) (byteCount) - (6);
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(events, _value);
}
- (*_message)->modbus_pdu_get_com_event_log_response_events = events;
-
+ }
+ (*_message)->modbus_pdu_get_com_event_log_response_events = events;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x11 ) && ( response == false ) ) { /* ModbusPDUReportServerIdRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_report_server_id_request;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x11 ) && ( response == true ) ) { /* ModbusPDUReportServerIdResponse */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_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 = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
- if(_res != OK) {
- return _res;
- }
-
-
-
- // Array field (value)
- plc4c_list* value = NULL;
- plc4c_utils_list_create(&value);
- if(value == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) byteCount;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- char* _value = malloc(sizeof(char));
- _res = plc4c_spi_read_char(readBuffer, (char*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(value, _value);
+
+ // Implicit Field (byteCount) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t byteCount = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
+ if(_res != OK) {
+ return _res;
+ }
+
+
+ // Array field (value)
+ plc4c_list* value = NULL;
+ plc4c_utils_list_create(&value);
+ if(value == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) byteCount;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ char* _value = malloc(sizeof(char));
+ _res = plc4c_spi_read_char(readBuffer, (char*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(value, _value);
}
- (*_message)->modbus_pdu_report_server_id_response_value = value;
-
+ }
+ (*_message)->modbus_pdu_report_server_id_response_value = value;
} else
if( ( errorFlag == false ) && ( functionFlag == 0x2B ) && ( response == false ) ) { /* ModbusPDUReadDeviceIdentificationRequest */
(*_message)->_type = plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_device_identification_request;
diff --cc plc4c/generated-sources/s7/src/cotp_packet.c
index 877437f,53bc913..1269d02
--- a/plc4c/generated-sources/s7/src/cotp_packet.c
+++ b/plc4c/generated-sources/s7/src/cotp_packet.c
@@@ -133,10 -133,10 +133,10 @@@ if( tpduCode == 0xE0 ) { /* COTPPacketC
if(_res != OK) {
return _res;
}
- (*_message)->cotp_packet_connection_request_protocol_class = *protocolClass;
+ (*_message)->cotp_packet_connection_request_protocol_class = protocolClass;
} else
- if(tpduCode == 0xD0) { /* COTPPacketConnectionResponse */
+ if( tpduCode == 0xD0 ) { /* COTPPacketConnectionResponse */
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_connection_response;
// Simple Field (destinationReference)
@@@ -165,10 -165,10 +165,10 @@@
if(_res != OK) {
return _res;
}
- (*_message)->cotp_packet_connection_response_protocol_class = *protocolClass;
+ (*_message)->cotp_packet_connection_response_protocol_class = protocolClass;
} else
- if(tpduCode == 0x80) { /* COTPPacketDisconnectRequest */
+ if( tpduCode == 0x80 ) { /* COTPPacketDisconnectRequest */
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_disconnect_request;
// Simple Field (destinationReference)
@@@ -197,10 -197,10 +197,10 @@@
if(_res != OK) {
return _res;
}
- (*_message)->cotp_packet_disconnect_request_protocol_class = *protocolClass;
+ (*_message)->cotp_packet_disconnect_request_protocol_class = protocolClass;
} else
- if(tpduCode == 0xC0) { /* COTPPacketDisconnectResponse */
+ if( tpduCode == 0xC0 ) { /* COTPPacketDisconnectResponse */
(*_message)->_type = plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_disconnect_response;
// Simple Field (destinationReference)
diff --cc plc4c/generated-sources/s7/src/cotp_parameter.c
index 95b7cd4,2bfe285..a3fd60d
--- a/plc4c/generated-sources/s7/src/cotp_parameter.c
+++ b/plc4c/generated-sources/s7/src/cotp_parameter.c
@@@ -89,10 -89,10 +89,10 @@@ if( parameterType == 0xC0 ) { /* COTPPa
if(_res != OK) {
return _res;
}
- (*_message)->cotp_parameter_tpdu_size_tpdu_size = *tpduSize;
+ (*_message)->cotp_parameter_tpdu_size_tpdu_size = tpduSize;
} else
- if(parameterType == 0xC1) { /* COTPParameterCallingTsap */
+ if( parameterType == 0xC1 ) { /* COTPParameterCallingTsap */
(*_message)->_type = plc4c_s7_read_write_cotp_parameter_type_plc4c_s7_read_write_cotp_parameter_calling_tsap;
// Simple Field (tsapId)
diff --cc plc4c/generated-sources/s7/src/cotp_protocol_class.c
index b0005d0,cd95b14..d7e3d4f
--- a/plc4c/generated-sources/s7/src/cotp_protocol_class.c
+++ b/plc4c/generated-sources/s7/src/cotp_protocol_class.c
@@@ -30,45 -30,17 +30,45 @@@ plc4c_s7_read_write_cotp_protocol_clas
return plc4c_s7_read_write_cotp_protocol_class_null_const;
}
-// Parse function.
-plc4c_return_code plc4c_s7_read_write_cotp_protocol_class_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_cotp_protocol_class** _message) {
- plc4c_return_code _res = OK;
+int8_t plc4c_s7_read_write_cotp_protocol_class_get_value(plc4c_s7_read_write_cotp_protocol_class value) {
+ switch(value) {
+ case plc4c_s7_read_write_cotp_protocol_class_CLASS_0:
+ return (int8_t) 0x00;
+ case plc4c_s7_read_write_cotp_protocol_class_CLASS_1:
+ return (int8_t) 0x10;
+ case plc4c_s7_read_write_cotp_protocol_class_CLASS_2:
+ return (int8_t) 0x20;
+ case plc4c_s7_read_write_cotp_protocol_class_CLASS_3:
+ return (int8_t) 0x30;
+ case plc4c_s7_read_write_cotp_protocol_class_CLASS_4:
+ return (int8_t) 0x40;
+ }
+ return 0;
+}
- // Allocate enough memory to contain this data structure.
- (*_message) = malloc(sizeof(plc4c_s7_read_write_cotp_protocol_class));
- if(*_message == NULL) {
- return NO_MEMORY;
+plc4c_s7_read_write_cotp_protocol_class plc4c_s7_read_write_cotp_protocol_class_for_value(int8_t value) {
+ switch(value) {
+ case (int8_t) 0x00:
+ return plc4c_s7_read_write_cotp_protocol_class_CLASS_0;
+ case (int8_t) 0x10:
+ return plc4c_s7_read_write_cotp_protocol_class_CLASS_1;
+ case (int8_t) 0x20:
+ return plc4c_s7_read_write_cotp_protocol_class_CLASS_2;
+ case (int8_t) 0x30:
+ return plc4c_s7_read_write_cotp_protocol_class_CLASS_3;
+ case (int8_t) 0x40:
+ return plc4c_s7_read_write_cotp_protocol_class_CLASS_4;
}
+ return 0;
+}
+
+ // Parse function.
+plc4c_return_code plc4c_s7_read_write_cotp_protocol_class_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_cotp_protocol_class* _message) {
+ plc4c_return_code _res = OK;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) *_message);
+ int8_t value;
- _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
++ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
+ *_message = plc4c_s7_read_write_cotp_protocol_class_for_value(value);
return _res;
}
@@@ -76,8 -48,7 +76,8 @@@
plc4c_return_code plc4c_s7_read_write_cotp_protocol_class_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_protocol_class* _message) {
plc4c_return_code _res = OK;
- _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message);
+ int8_t value = plc4c_s7_read_write_cotp_protocol_class_get_value(*_message);
- _res = plc4c_spi_write_signed_byte(writeBuffer, 8, value);
++ _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, value);
return _res;
}
diff --cc plc4c/generated-sources/s7/src/cotp_tpdu_size.c
index c15405e,a3971fe..63f11af
--- a/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
+++ b/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
@@@ -30,53 -30,17 +30,53 @@@ plc4c_s7_read_write_cotp_tpdu_size plc4
return plc4c_s7_read_write_cotp_tpdu_size_null_const;
}
-// Parse function.
-plc4c_return_code plc4c_s7_read_write_cotp_tpdu_size_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_cotp_tpdu_size** _message) {
- plc4c_return_code _res = OK;
+int8_t plc4c_s7_read_write_cotp_tpdu_size_get_value(plc4c_s7_read_write_cotp_tpdu_size value) {
+ switch(value) {
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_128:
+ return (int8_t) 0x07;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_256:
+ return (int8_t) 0x08;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_512:
+ return (int8_t) 0x09;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_1024:
+ return (int8_t) 0x0a;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_2048:
+ return (int8_t) 0x0b;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_4096:
+ return (int8_t) 0x0c;
+ case plc4c_s7_read_write_cotp_tpdu_size_SIZE_8192:
+ return (int8_t) 0x0d;
+ }
+ return 0;
+}
- // Allocate enough memory to contain this data structure.
- (*_message) = malloc(sizeof(plc4c_s7_read_write_cotp_tpdu_size));
- if(*_message == NULL) {
- return NO_MEMORY;
+plc4c_s7_read_write_cotp_tpdu_size plc4c_s7_read_write_cotp_tpdu_size_for_value(int8_t value) {
+ switch(value) {
+ case (int8_t) 0x07:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_128;
+ case (int8_t) 0x08:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_256;
+ case (int8_t) 0x09:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_512;
+ case (int8_t) 0x0a:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_1024;
+ case (int8_t) 0x0b:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_2048;
+ case (int8_t) 0x0c:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_4096;
+ case (int8_t) 0x0d:
+ return plc4c_s7_read_write_cotp_tpdu_size_SIZE_8192;
}
+ return 0;
+}
+
+ // Parse function.
+plc4c_return_code plc4c_s7_read_write_cotp_tpdu_size_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_cotp_tpdu_size* _message) {
+ plc4c_return_code _res = OK;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) *_message);
+ int8_t value;
- _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
++ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
+ *_message = plc4c_s7_read_write_cotp_tpdu_size_for_value(value);
return _res;
}
@@@ -84,8 -48,7 +84,8 @@@
plc4c_return_code plc4c_s7_read_write_cotp_tpdu_size_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_tpdu_size* _message) {
plc4c_return_code _res = OK;
- _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message);
+ int8_t value = plc4c_s7_read_write_cotp_tpdu_size_get_value(*_message);
- _res = plc4c_spi_write_signed_byte(writeBuffer, 8, value);
++ _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, value);
return _res;
}
diff --cc plc4c/generated-sources/s7/src/device_group.c
index 5c6d0f0,f9d61ec..02ea0e4
--- a/plc4c/generated-sources/s7/src/device_group.c
+++ b/plc4c/generated-sources/s7/src/device_group.c
@@@ -30,37 -30,17 +30,37 @@@ plc4c_s7_read_write_device_group plc4c_
return plc4c_s7_read_write_device_group_null_const;
}
-// Parse function.
-plc4c_return_code plc4c_s7_read_write_device_group_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_device_group** _message) {
- plc4c_return_code _res = OK;
+int8_t plc4c_s7_read_write_device_group_get_value(plc4c_s7_read_write_device_group value) {
+ switch(value) {
+ case plc4c_s7_read_write_device_group_PG_OR_PC:
+ return (int8_t) 0x01;
+ case plc4c_s7_read_write_device_group_OS:
+ return (int8_t) 0x02;
+ case plc4c_s7_read_write_device_group_OTHERS:
+ return (int8_t) 0x03;
+ }
+ return 0;
+}
- // Allocate enough memory to contain this data structure.
- (*_message) = malloc(sizeof(plc4c_s7_read_write_device_group));
- if(*_message == NULL) {
- return NO_MEMORY;
+plc4c_s7_read_write_device_group plc4c_s7_read_write_device_group_for_value(int8_t value) {
+ switch(value) {
+ case (int8_t) 0x01:
+ return plc4c_s7_read_write_device_group_PG_OR_PC;
+ case (int8_t) 0x02:
+ return plc4c_s7_read_write_device_group_OS;
+ case (int8_t) 0x03:
+ return plc4c_s7_read_write_device_group_OTHERS;
}
+ return 0;
+}
+
+ // Parse function.
+plc4c_return_code plc4c_s7_read_write_device_group_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_device_group* _message) {
+ plc4c_return_code _res = OK;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) *_message);
+ int8_t value;
- _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
++ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
+ *_message = plc4c_s7_read_write_device_group_for_value(value);
return _res;
}
@@@ -68,8 -48,7 +68,8 @@@
plc4c_return_code plc4c_s7_read_write_device_group_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_device_group* _message) {
plc4c_return_code _res = OK;
- _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message);
+ int8_t value = plc4c_s7_read_write_device_group_get_value(*_message);
- _res = plc4c_spi_write_signed_byte(writeBuffer, 8, value);
++ _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, value);
return _res;
}
diff --cc plc4c/generated-sources/s7/src/s7_data_alarm_message.c
index d9d39c9,71cb236..a75f067
--- a/plc4c/generated-sources/s7/src/s7_data_alarm_message.c
+++ b/plc4c/generated-sources/s7/src/s7_data_alarm_message.c
@@@ -98,47 -98,63 +98,47 @@@ plc4c_return_code plc4c_s7_read_write_s
// throw new ParseException("Expected constant value " + PLC4C_S7_READ_WRITE_S7_DATA_ALARM_MESSAGE_NUMBER_MESSAGE_OBJ + " but got " + numberMessageObj);
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if( cpuFunctionType == 0x04 ) { /* S7MessageObjectRequest */
(*_message)->_type = plc4c_s7_read_write_s7_data_alarm_message_type_plc4c_s7_read_write_s7_message_object_request;
-
- // Const Field (variableSpec)
- uint8_t variableSpec = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &variableSpec);
- if(_res != OK) {
- return _res;
- }
- if(variableSpec != PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_VARIABLE_SPEC()) {
- return PARSE_ERROR;
- // throw new ParseException("Expected constant value " + PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_VARIABLE_SPEC + " but got " + variableSpec);
- }
+ // Const Field (variableSpec)
+ uint8_t variableSpec = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &variableSpec);
+ if(_res != OK) {
+ return _res;
+ }
+ if(variableSpec != PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_VARIABLE_SPEC()) {
+ return PARSE_ERROR;
+ // throw new ParseException("Expected constant value " + PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_VARIABLE_SPEC + " but got " + variableSpec);
+ }
-
- // Const Field (length)
- uint8_t length = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &length);
- if(_res != OK) {
- return _res;
- }
- if(length != PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_LENGTH()) {
- return PARSE_ERROR;
- // throw new ParseException("Expected constant value " + PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_LENGTH + " but got " + length);
- }
+ // Const Field (length)
+ uint8_t length = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &length);
+ if(_res != OK) {
+ return _res;
+ }
+ if(length != PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_LENGTH()) {
+ return PARSE_ERROR;
+ // throw new ParseException("Expected constant value " + PLC4C_S7_READ_WRITE_S7_MESSAGE_OBJECT_REQUEST_LENGTH + " but got " + length);
+ }
-
- // Simple Field (syntaxId)
- plc4c_s7_read_write_syntax_id_type* syntaxId;
- _res = plc4c_s7_read_write_syntax_id_type_parse(readBuffer, (void*) &syntaxId);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_message_object_request_syntax_id = *syntaxId;
-
-
-
- // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
- {
- uint8_t _reserved = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
- if(_res != OK) {
- return _res;
- }
- if(_reserved != 0x00) {
- printf("Expected constant value '%d' but got '%d' for reserved field.", 0x00, _reserved);
- }
- }
+ // Simple Field (syntaxId)
+ plc4c_s7_read_write_syntax_id_type syntaxId;
+ _res = plc4c_s7_read_write_syntax_id_type_parse(readBuffer, (void*) &syntaxId);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_message_object_request_syntax_id = syntaxId;
-
- // Simple Field (queryType)
- plc4c_s7_read_write_query_type* queryType;
- _res = plc4c_s7_read_write_query_type_parse(readBuffer, (void*) &queryType);
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ uint8_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
if(_res != OK) {
return _res;
}
diff --cc plc4c/generated-sources/s7/src/s7_parameter.c
index 62f0908,9b0aec7..ccff44e
--- a/plc4c/generated-sources/s7/src/s7_parameter.c
+++ b/plc4c/generated-sources/s7/src/s7_parameter.c
@@@ -76,14 -76,27 +76,14 @@@ plc4c_return_code plc4c_s7_read_write_s
return _res;
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if( parameterType == 0xF0 ) { /* S7ParameterSetupCommunication */
(*_message)->_type = plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_setup_communication;
-
- // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
- {
- uint8_t _reserved = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
- if(_res != OK) {
- return _res;
- }
- if(_reserved != 0x00) {
- printf("Expected constant value '%d' but got '%d' for reserved field.", 0x00, _reserved);
- }
- }
-
-
- // Simple Field (maxAmqCaller)
- uint16_t maxAmqCaller = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &maxAmqCaller);
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ uint8_t _reserved = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
if(_res != OK) {
return _res;
}
diff --cc plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
index 6aa74cb,2565395..399c51e
--- a/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
+++ b/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
@@@ -64,11 -64,11 +64,11 @@@ plc4c_return_code plc4c_s7_read_write_s
return _res;
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
- if(itemType == 0x12) { /* S7ParameterUserDataItemCPUFunctions */
+ // 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_plc4c_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)
+ // Implicit Field (itemLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
uint8_t itemLength = 0;
_res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemLength);
if(_res != OK) {
diff --cc plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
index 3dde04e,92f2173..a8848c5
--- a/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
+++ b/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
@@@ -100,6 -100,14 +100,10 @@@ static const uint8_t PLC4C_S7_READ_WRIT
uint8_t PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_LENGTH() {
return PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_LENGTH_const;
}
+ static const uint8_t PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_RESPONSE_NUMBER_MESSAGE_OBJ_const = 0x01;
+ uint8_t PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_RESPONSE_NUMBER_MESSAGE_OBJ() {
+ return PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_RESPONSE_NUMBER_MESSAGE_OBJ_const;
+ }
-static const uint8_t PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_VARIABLE_SPEC_const = 0x12;
-uint8_t PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_VARIABLE_SPEC() {
- return PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_ALARM_QUERY_VARIABLE_SPEC_const;
-}
// Parse function.
plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* readBuffer, uint8_t cpuFunctionType, uint8_t cpuSubfunction, plc4c_s7_read_write_s7_payload_user_data_item** _message) {
@@@ -135,71 -143,78 +139,71 @@@
return _res;
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
if( ( cpuFunctionType == 0x00 ) && ( cpuSubfunction == 0x03 ) ) { /* S7PayloadDiagnosticMessage */
(*_message)->_type = plc4c_s7_read_write_s7_payload_user_data_item_type_plc4c_s7_read_write_s7_payload_diagnostic_message;
-
- // Simple Field (EventId)
- uint16_t EventId = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &EventId);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_event_id = EventId;
+ // Simple Field (EventId)
+ uint16_t EventId = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &EventId);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_event_id = EventId;
-
- // Simple Field (PriorityClass)
- uint8_t PriorityClass = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &PriorityClass);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_priority_class = PriorityClass;
+ // Simple Field (PriorityClass)
+ uint8_t PriorityClass = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &PriorityClass);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_priority_class = PriorityClass;
-
- // Simple Field (ObNumber)
- uint8_t ObNumber = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &ObNumber);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_ob_number = ObNumber;
+ // Simple Field (ObNumber)
+ uint8_t ObNumber = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &ObNumber);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_ob_number = ObNumber;
-
- // Simple Field (DatId)
- uint16_t DatId = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &DatId);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_dat_id = DatId;
+ // Simple Field (DatId)
+ uint16_t DatId = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &DatId);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_dat_id = DatId;
-
- // Simple Field (Info1)
- uint16_t Info1 = 0;
- _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &Info1);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_info1 = Info1;
+ // Simple Field (Info1)
+ uint16_t Info1 = 0;
+ _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &Info1);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_info1 = Info1;
-
- // Simple Field (Info2)
- uint32_t Info2 = 0;
- _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &Info2);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_info2 = Info2;
+ // Simple Field (Info2)
+ uint32_t Info2 = 0;
+ _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &Info2);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_info2 = Info2;
-
- // Simple Field (TimeStamp)
- plc4c_s7_read_write_date_and_time* TimeStamp;
- _res = plc4c_s7_read_write_date_and_time_parse(readBuffer, (void*) &TimeStamp);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_diagnostic_message_time_stamp = TimeStamp;
+ // Simple Field (TimeStamp)
+ plc4c_s7_read_write_date_and_time* TimeStamp;
+ _res = plc4c_s7_read_write_date_and_time_parse(readBuffer, (void*) &TimeStamp);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_diagnostic_message_time_stamp = TimeStamp;
} else
if( ( cpuFunctionType == 0x00 ) && ( cpuSubfunction == 0x05 ) ) { /* S7PayloadAlarm8 */
(*_message)->_type = plc4c_s7_read_write_s7_payload_user_data_item_type_plc4c_s7_read_write_s7_payload_alarm8;
@@@ -537,44 -581,47 +541,44 @@@ if( ( cpuFunctionType == 0x04 ) && ( cp
} else
if( ( cpuFunctionType == 0x08 ) && ( cpuSubfunction == 0x0b ) ) { /* S7PayloadUserDataItemCpuFunctionAlarmAckResponse */
(*_message)->_type = plc4c_s7_read_write_s7_payload_user_data_item_type_plc4c_s7_read_write_s7_payload_user_data_item_cpu_function_alarm_ack_response;
-
- // Simple Field (functionId)
- uint8_t functionId = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &functionId);
- if(_res != OK) {
- return _res;
- }
- (*_message)->s7_payload_user_data_item_cpu_function_alarm_ack_response_function_id = functionId;
+
+ // Simple Field (functionId)
+ uint8_t functionId = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &functionId);
+ if(_res != OK) {
+ return _res;
+ }
+ (*_message)->s7_payload_user_data_item_cpu_function_alarm_ack_response_function_id = functionId;
-
- // Implicit Field (numberOfObjects) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- uint8_t numberOfObjects = 0;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numberOfObjects);
- if(_res != OK) {
- return _res;
- }
+ // Implicit Field (numberOfObjects) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ uint8_t numberOfObjects = 0;
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numberOfObjects);
+ if(_res != OK) {
+ return _res;
+ }
-
- // Array field (messageObjects)
- plc4c_list* messageObjects = NULL;
- plc4c_utils_list_create(&messageObjects);
- if(messageObjects == NULL) {
- return NO_MEMORY;
- }
- {
- // Count array
- uint16_t itemCount = (uint16_t) numberOfObjects;
- for(int curItem = 0; curItem < itemCount; curItem++) {
-
- uint8_t* _value = malloc(sizeof(uint8_t));
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) _value);
- if(_res != OK) {
- return _res;
- }
- plc4c_utils_list_insert_head_value(messageObjects, _value);
+ // Array field (messageObjects)
+ plc4c_list* messageObjects = NULL;
+ plc4c_utils_list_create(&messageObjects);
+ if(messageObjects == NULL) {
+ return NO_MEMORY;
+ }
+ {
+ // Count array
+ uint16_t itemCount = (uint16_t) numberOfObjects;
+ for(int curItem = 0; curItem < itemCount; curItem++) {
-
++
+ uint8_t* _value = malloc(sizeof(uint8_t));
+ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) _value);
+ if(_res != OK) {
+ return _res;
}
+ plc4c_utils_list_insert_head_value(messageObjects, _value);
}
- (*_message)->s7_payload_user_data_item_cpu_function_alarm_ack_response_message_objects = messageObjects;
-
+ }
+ (*_message)->s7_payload_user_data_item_cpu_function_alarm_ack_response_message_objects = messageObjects;
} else
if( ( cpuFunctionType == 0x04 ) && ( cpuSubfunction == 0x13 ) ) { /* S7PayloadUserDataItemCpuFunctionAlarmQuery */
(*_message)->_type = plc4c_s7_read_write_s7_payload_user_data_item_type_plc4c_s7_read_write_s7_payload_user_data_item_cpu_function_alarm_query;
diff --cc plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
index 33beaa0,13589f7..0460f7f
--- a/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
+++ b/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
@@@ -64,11 -64,11 +64,11 @@@ plc4c_return_code plc4c_s7_read_write_s
return _res;
}
- // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
- if(itemType == 0x12) { /* S7VarRequestParameterItemAddress */
+ // 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_plc4c_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)
+ // Implicit Field (itemLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
uint8_t itemLength = 0;
_res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemLength);
if(_res != OK) {
diff --cc plc4c/generated-sources/s7/src/transport_size.c
index 7a1f4fb,c6e3738..eceb20b
--- a/plc4c/generated-sources/s7/src/transport_size.c
+++ b/plc4c/generated-sources/s7/src/transport_size.c
@@@ -31,129 -31,17 +31,129 @@@ plc4c_s7_read_write_transport_size plc4
return plc4c_s7_read_write_transport_size_null_const;
}
-// Parse function.
-plc4c_return_code plc4c_s7_read_write_transport_size_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_transport_size** _message) {
- plc4c_return_code _res = OK;
+int8_t plc4c_s7_read_write_transport_size_get_value(plc4c_s7_read_write_transport_size value) {
+ switch(value) {
+ case plc4c_s7_read_write_transport_size_BOOL:
+ return (int8_t) 0x01;
+ case plc4c_s7_read_write_transport_size_BYTE:
+ return (int8_t) 0x02;
+ case plc4c_s7_read_write_transport_size_WORD:
+ return (int8_t) 0x03;
+ case plc4c_s7_read_write_transport_size_DWORD:
+ return (int8_t) 0x04;
+ case plc4c_s7_read_write_transport_size_LWORD:
+ return (int8_t) 0x05;
+ case plc4c_s7_read_write_transport_size_INT:
+ return (int8_t) 0x06;
+ case plc4c_s7_read_write_transport_size_UINT:
+ return (int8_t) 0x07;
+ case plc4c_s7_read_write_transport_size_SINT:
+ return (int8_t) 0x08;
+ case plc4c_s7_read_write_transport_size_USINT:
+ return (int8_t) 0x09;
+ case plc4c_s7_read_write_transport_size_DINT:
+ return (int8_t) 0x0A;
+ case plc4c_s7_read_write_transport_size_UDINT:
+ return (int8_t) 0x0B;
+ case plc4c_s7_read_write_transport_size_LINT:
+ return (int8_t) 0x0C;
+ case plc4c_s7_read_write_transport_size_ULINT:
+ return (int8_t) 0x0D;
+ case plc4c_s7_read_write_transport_size_REAL:
+ return (int8_t) 0x0E;
+ case plc4c_s7_read_write_transport_size_LREAL:
+ return (int8_t) 0x0F;
+ case plc4c_s7_read_write_transport_size_CHAR:
+ return (int8_t) 0x10;
+ case plc4c_s7_read_write_transport_size_WCHAR:
+ return (int8_t) 0x11;
+ case plc4c_s7_read_write_transport_size_STRING:
+ return (int8_t) 0x12;
+ case plc4c_s7_read_write_transport_size_WSTRING:
+ return (int8_t) 0x13;
+ case plc4c_s7_read_write_transport_size_TIME:
+ return (int8_t) 0x14;
+ case plc4c_s7_read_write_transport_size_LTIME:
+ return (int8_t) 0x16;
+ case plc4c_s7_read_write_transport_size_DATE:
+ return (int8_t) 0x17;
+ case plc4c_s7_read_write_transport_size_TIME_OF_DAY:
+ return (int8_t) 0x18;
+ case plc4c_s7_read_write_transport_size_TOD:
+ return (int8_t) 0x19;
+ case plc4c_s7_read_write_transport_size_DATE_AND_TIME:
+ return (int8_t) 0x1A;
+ case plc4c_s7_read_write_transport_size_DT:
+ return (int8_t) 0x1B;
+ }
+ return 0;
+}
- // Allocate enough memory to contain this data structure.
- (*_message) = malloc(sizeof(plc4c_s7_read_write_transport_size));
- if(*_message == NULL) {
- return NO_MEMORY;
+plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_for_value(int8_t value) {
+ switch(value) {
+ case (int8_t) 0x01:
+ return plc4c_s7_read_write_transport_size_BOOL;
+ case (int8_t) 0x02:
+ return plc4c_s7_read_write_transport_size_BYTE;
+ case (int8_t) 0x03:
+ return plc4c_s7_read_write_transport_size_WORD;
+ case (int8_t) 0x04:
+ return plc4c_s7_read_write_transport_size_DWORD;
+ case (int8_t) 0x05:
+ return plc4c_s7_read_write_transport_size_LWORD;
+ case (int8_t) 0x06:
+ return plc4c_s7_read_write_transport_size_INT;
+ case (int8_t) 0x07:
+ return plc4c_s7_read_write_transport_size_UINT;
+ case (int8_t) 0x08:
+ return plc4c_s7_read_write_transport_size_SINT;
+ case (int8_t) 0x09:
+ return plc4c_s7_read_write_transport_size_USINT;
+ case (int8_t) 0x0A:
+ return plc4c_s7_read_write_transport_size_DINT;
+ case (int8_t) 0x0B:
+ return plc4c_s7_read_write_transport_size_UDINT;
+ case (int8_t) 0x0C:
+ return plc4c_s7_read_write_transport_size_LINT;
+ case (int8_t) 0x0D:
+ return plc4c_s7_read_write_transport_size_ULINT;
+ case (int8_t) 0x0E:
+ return plc4c_s7_read_write_transport_size_REAL;
+ case (int8_t) 0x0F:
+ return plc4c_s7_read_write_transport_size_LREAL;
+ case (int8_t) 0x10:
+ return plc4c_s7_read_write_transport_size_CHAR;
+ case (int8_t) 0x11:
+ return plc4c_s7_read_write_transport_size_WCHAR;
+ case (int8_t) 0x12:
+ return plc4c_s7_read_write_transport_size_STRING;
+ case (int8_t) 0x13:
+ return plc4c_s7_read_write_transport_size_WSTRING;
+ case (int8_t) 0x14:
+ return plc4c_s7_read_write_transport_size_TIME;
+ case (int8_t) 0x16:
+ return plc4c_s7_read_write_transport_size_LTIME;
+ case (int8_t) 0x17:
+ return plc4c_s7_read_write_transport_size_DATE;
+ case (int8_t) 0x18:
+ return plc4c_s7_read_write_transport_size_TIME_OF_DAY;
+ case (int8_t) 0x19:
+ return plc4c_s7_read_write_transport_size_TOD;
+ case (int8_t) 0x1A:
+ return plc4c_s7_read_write_transport_size_DATE_AND_TIME;
+ case (int8_t) 0x1B:
+ return plc4c_s7_read_write_transport_size_DT;
}
+ return 0;
+}
+
+ // Parse function.
+plc4c_return_code plc4c_s7_read_write_transport_size_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_transport_size* _message) {
+ plc4c_return_code _res = OK;
- _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) *_message);
+ int8_t value;
- _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
++ _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
+ *_message = plc4c_s7_read_write_transport_size_for_value(value);
return _res;
}
@@@ -161,8 -49,7 +161,8 @@@
plc4c_return_code plc4c_s7_read_write_transport_size_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_transport_size* _message) {
plc4c_return_code _res = OK;
- _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message);
+ int8_t value = plc4c_s7_read_write_transport_size_get_value(*_message);
- _res = plc4c_spi_write_signed_byte(writeBuffer, 8, value);
++ _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, value);
return _res;
}