diff --git a/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh b/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh index 97797346da..a98008359d 100644 --- a/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh +++ b/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh @@ -278,9 +278,9 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()>(<#if ty <#if optionalField.conditionExpression.present> if ${helper.toSerializationExpression(optionalField, helper.boolTypeReference, optionalField.conditionExpression.get(), parserArguments)}: <#if optionalField.type.isEnumTypeReference()> - write_buffer.${helper.getEnumDataWriterCall(optionalField.type, optionalField.name, "value")}(self.${helper.camelCaseToSnakeCase(optionalField.name)}, logical_name="${optionalField.name}") + write_buffer.${helper.getEnumDataWriterCall(optionalField.type, optionalField.name, "value")}(self.${helper.camelCaseToSnakeCase(optionalField.name)}, logical_name="${optionalField.name}") <#elseif optionalField.type.isDataIoTypeReference()> - write_buffer.${helper.getDataWriterCall(typedField.type, optionalField.name)}(self.${helper.camelCaseToSnakeCase(optionalField.name)}, logical_name="${optionalField.name}", <#list optionalField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as param>${helper.toParseExpression(optionalField, helper.anyTypeReference, param, parserArguments)}<#sep>, ))) + write_buffer.${helper.getDataWriterCall(typedField.type, optionalField.name)}(self.${helper.camelCaseToSnakeCase(optionalField.name)}, logical_name="${optionalField.name}", <#list optionalField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as param>${helper.toParseExpression(optionalField, helper.anyTypeReference, param, parserArguments)}<#sep>, ))) <#else> write_buffer.${helper.getDataWriterCall(typedField.type, optionalField.name)}(self.${helper.camelCaseToSnakeCase(optionalField.name)}, logical_name="${optionalField.name}"<#if optionalField.conditionExpression.present>) @@ -444,16 +444,16 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()>(<#if ty <#assign simpleTypeReference = optionalField.type.asSimpleTypeReference().orElseThrow()> <#if simpleTypeReference.isVstringTypeReference()> <#assign vstringTypeReference = simpleTypeReference.asVstringTypeReference().orElseThrow()> - length_in_bits += ${helper.toSerializationExpression(optionalField, helper.intTypeReference, vstringTypeReference.getLengthExpression(), parserArguments)} + length_in_bits += ${helper.toSerializationExpression(optionalField, helper.intTypeReference, vstringTypeReference.getLengthExpression(), parserArguments)} <#else> - length_in_bits += ${simpleTypeReference.sizeInBits} + length_in_bits += ${simpleTypeReference.sizeInBits} <#elseif helper.isEnumField(field)> - length_in_bits += ${helper.getEnumBaseTypeReference(optionalField.type).sizeInBits} + length_in_bits += ${helper.getEnumBaseTypeReference(optionalField.type).sizeInBits} <#elseif optionalField.type.isDataIoTypeReference()> - length_in_bits += ${optionalField.type.asComplexTypeReference().orElseThrow().name}.length_in_bits(self.${helper.camelCaseToSnakeCase(optionalField.name)}<#if optionalField.type.asComplexTypeReference().orElseThrow().params?has_content>, <#list optionalField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as param>${helper.toParseExpression(optionalField, helper.anyTypeReference, param, parserArguments)}<#sep>, ) + length_in_bits += ${optionalField.type.asComplexTypeReference().orElseThrow().name}.length_in_bits(self.${helper.camelCaseToSnakeCase(optionalField.name)}<#if optionalField.type.asComplexTypeReference().orElseThrow().params?has_content>, <#list optionalField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as param>${helper.toParseExpression(optionalField, helper.anyTypeReference, param, parserArguments)}<#sep>, ) <#else> - length_in_bits += self.${helper.camelCaseToSnakeCase(optionalField.name)}.length_in_bits() + length_in_bits += self.${helper.camelCaseToSnakeCase(optionalField.name)}.length_in_bits() <#break> diff --git a/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py b/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py index 6f2fe3f3e5..f00e66ef40 100644 --- a/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py +++ b/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py @@ -269,6 +269,15 @@ def static_parse_context( UmasPDUWriteVariableResponse, ) + if umas_function_key == int(0xFE) and umas_request_function_key == int(0x23): + + builder = UmasPDUWriteVariableResponse.static_parse_builder( + read_buffer, umas_request_function_key, byte_length + ) + from plc4py.protocols.umas.readwrite.UmasPDUWriteVariableResponse import ( + UmasPDUWriteVariableResponse, + ) + if umas_function_key == int(0xFE) and umas_request_function_key == int(0x23): builder = UmasPDUWriteVariableResponse.static_parse_builder(