This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch feature/s7strings in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit a5e854dc489968c3b12f9b23ef362231f7a30aa3 Author: Christofer Dutz <[email protected]> AuthorDate: Thu Nov 30 21:51:15 2023 +0100 fix: Fixed some issues with writing values in S7 --- plc4c/generated-sources/s7/src/data_item.c | 10 ++-------- plc4c/generated-sources/s7/src/transport_size.c | 11 +++++++---- plc4go/protocols/s7/readwrite/model/TransportSize.go | 8 ++++---- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/plc4c/generated-sources/s7/src/data_item.c b/plc4c/generated-sources/s7/src/data_item.c index c0e09c4108..b02d7f210c 100644 --- a/plc4c/generated-sources/s7/src/data_item.c +++ b/plc4c/generated-sources/s7/src/data_item.c @@ -687,17 +687,11 @@ uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc } else if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */ // Manual Field (value) - { - char* _value = data_item->data.string_value; - lengthInBits += (plc4c_spi_evaluation_helper_str_len(_value)) + (2); - } + lengthInBits += (((stringLength) * (8))) + (16); } else if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */ // Manual Field (value) - { - char* _value = data_item->data.string_value; - lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) * (2))) + (2); - } + lengthInBits += (((stringLength) * (16))) + (32); } else if(strcmp(dataProtocolId, "IEC61131_TIME") == 0) { /* TIME */ // Simple field (milliseconds) diff --git a/plc4c/generated-sources/s7/src/transport_size.c b/plc4c/generated-sources/s7/src/transport_size.c index b681e48047..adffef17cc 100644 --- a/plc4c/generated-sources/s7/src/transport_size.c +++ b/plc4c/generated-sources/s7/src/transport_size.c @@ -1105,16 +1105,16 @@ plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_transport_size_get_d return -1; } case plc4c_s7_read_write_transport_size_CHAR: { /* '0x10' */ - return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; + return plc4c_s7_read_write_data_transport_size_OCTET_STRING; } case plc4c_s7_read_write_transport_size_WCHAR: { /* '0x11' */ - return -1; + return plc4c_s7_read_write_data_transport_size_OCTET_STRING; } case plc4c_s7_read_write_transport_size_STRING: { /* '0x12' */ - return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; + return plc4c_s7_read_write_data_transport_size_OCTET_STRING; } case plc4c_s7_read_write_transport_size_WSTRING: { /* '0x13' */ - return -1; + return plc4c_s7_read_write_data_transport_size_OCTET_STRING; } case plc4c_s7_read_write_transport_size_TIME: { /* '0x14' */ return -1; @@ -1154,6 +1154,9 @@ plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_ case plc4c_s7_read_write_transport_size_INT: /* '0x06' */{ return plc4c_s7_read_write_transport_size_INT; } + case plc4c_s7_read_write_transport_size_CHAR: /* '0x10' */{ + return plc4c_s7_read_write_transport_size_CHAR; + } case plc4c_s7_read_write_transport_size_REAL: /* '0x0E' */{ return plc4c_s7_read_write_transport_size_REAL; } diff --git a/plc4go/protocols/s7/readwrite/model/TransportSize.go b/plc4go/protocols/s7/readwrite/model/TransportSize.go index bae8674263..e3d65199f8 100644 --- a/plc4go/protocols/s7/readwrite/model/TransportSize.go +++ b/plc4go/protocols/s7/readwrite/model/TransportSize.go @@ -1154,19 +1154,19 @@ func (e TransportSize) DataTransportSize() DataTransportSize { } case 0x10: { /* '0x10' */ - return DataTransportSize_BYTE_WORD_DWORD + return DataTransportSize_OCTET_STRING } case 0x11: { /* '0x11' */ - return 0 + return DataTransportSize_OCTET_STRING } case 0x12: { /* '0x12' */ - return DataTransportSize_BYTE_WORD_DWORD + return DataTransportSize_OCTET_STRING } case 0x13: { /* '0x13' */ - return 0 + return DataTransportSize_OCTET_STRING } case 0x14: { /* '0x14' */
