diff --git a/code-generation/language-python/src/main/java/org/apache/plc4x/language/python/PythonLanguageTemplateHelper.java b/code-generation/language-python/src/main/java/org/apache/plc4x/language/python/PythonLanguageTemplateHelper.java index 56e1534400a..e706ef78b70 100644 --- a/code-generation/language-python/src/main/java/org/apache/plc4x/language/python/PythonLanguageTemplateHelper.java +++ b/code-generation/language-python/src/main/java/org/apache/plc4x/language/python/PythonLanguageTemplateHelper.java @@ -212,6 +212,11 @@ public String getLanguageTypeNameForTypeReference(TypeReference typeReference, S } } + public String getReservedValue(ReservedField reservedField) { + final String languageTypeName = getLanguageTypeNameForTypeReference(reservedField.getType()); + return languageTypeName + "(" + reservedField.getReferenceValue() + ")"; + } + public String getFieldOptions(TypedField field, List parserArguments) { StringBuilder sb = new StringBuilder(); final Optional encodingOptional = field.getEncoding(); @@ -276,36 +281,33 @@ public String getDataReaderCall(SimpleTypeReference simpleTypeReference) { final int sizeInBits = simpleTypeReference.getSizeInBits(); switch (simpleTypeReference.getBaseType()) { case BIT: - return "read_boolean(read_buffer)"; + return "read_boolean"; case BYTE: - return "read_byte(read_buffer, " + sizeInBits + ")"; + return "read_byte"; case UINT: - if (sizeInBits <= 4) return "read_unsigned_byte(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 8) return "read_unsigned_short(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 16) return "read_unsigned_int(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 32) return "read_unsigned_long(read_buffer, " + sizeInBits + ")"; - return "read_unsigned_big_integer(read_buffer, " + sizeInBits + ")"; + if (sizeInBits <= 4) return "read_unsigned_byte"; + if (sizeInBits <= 8) return "read_unsigned_short"; + if (sizeInBits <= 16) return "read_unsigned_int"; + return "read_unsigned_long"; case INT: - if (sizeInBits <= 8) return "read_signed_byte(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 16) return "read_signed_short(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 32) return "read_signed_int(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 64) return "read_signed_long(read_buffer, " + sizeInBits + ")"; - return "read_signed_big_integer(read_buffer, " + sizeInBits + ")"; + if (sizeInBits <= 8) return "read_signed_byte"; + if (sizeInBits <= 16) return "read_signed_short"; + if (sizeInBits <= 32) return "read_signed_int"; + return "read_signed_long"; case FLOAT: - if (sizeInBits <= 32) return "read_float(read_buffer, " + sizeInBits + ")"; - if (sizeInBits <= 64) return "read_double(read_buffer, " + sizeInBits + ")"; - return "read_big_decimal(read_buffer, " + sizeInBits + ")"; + if (sizeInBits <= 32) return "read_float"; + return "read_double"; case STRING: - return "read_string(read_buffer, " + sizeInBits + ")"; + return "read_string"; case VSTRING: VstringTypeReference vstringTypeReference = (VstringTypeReference) simpleTypeReference; - return "read_string(read_buffer, " + toParseExpression(null, INT_TYPE_REFERENCE, vstringTypeReference.getLengthExpression(), null) + ")"; + return "read_string"; case TIME: - return "read_time(read_buffer)"; + return "read_time"; case DATE: - return "read_date(read_buffer)"; + return "read_date"; case DATETIME: - return "read_date_time(read_buffer)"; + return "read_date_time"; default: throw new UnsupportedOperationException("Unsupported type " + simpleTypeReference.getBaseType()); } @@ -674,31 +676,6 @@ public String getWriteBufferWriteMethodCall(String logicalName, SimpleTypeRefere } } - public String getReservedValue(ReservedField reservedField) { - final String languageTypeName = getLanguageTypeNameForTypeReference(reservedField.getType()); - switch (languageTypeName) { - case "*big.Int": - emitRequiredImport("math/big"); - return "big.NewInt(" + reservedField.getReferenceValue() + ")"; - case "*big.Float": - emitRequiredImport("math/big"); - return "*big.Float(" + reservedField.getReferenceValue() + ")"; - default: - return languageTypeName + "(" + reservedField.getReferenceValue() + ")"; - } - } - - public String toTypeSafeCompare(ReservedField reservedField) { - final String languageTypeName = getLanguageTypeNameForTypeReference(reservedField.getType()); - switch (languageTypeName) { - case "*big.Int": - case "*big.Float": - emitRequiredImport("math/big"); - return "reserved.Cmp(" + getReservedValue(reservedField) + ") != 0"; - default: - return "reserved != " + getReservedValue(reservedField); - } - } public String toParseExpression(Field field, TypeReference resultType, Term term, List parserArguments) { Tracer tracer = Tracer.start("toParseExpression"); @@ -815,8 +792,8 @@ private String toBinaryTermExpression(Field field, TypeReference fieldType, Bina switch (operation) { case "^": tracer = tracer.dive("^"); - emitRequiredImport("math"); - return tracer + "Math.pow(" + + emitRequiredImport("from math import pow"); + return tracer + "pow(" + castExpressionForTypeReference + "(" + toExpression(field, fieldType, a, parserArguments, serializerArguments, serialize, false) + "), " + castExpressionForTypeReference + "(" + toExpression(field, fieldType, b, parserArguments, serializerArguments, serialize, false) + "))"; // If we start casting for comparisons, equals or non equals, really messy things happen. @@ -853,9 +830,9 @@ private String toBinaryTermExpression(Field field, TypeReference fieldType, Bina toExpression(field, fieldType, b, parserArguments, serializerArguments, serialize, false); } return tracer + - castExpressionForTypeReference + "(" + toExpression(field, fieldType, a, parserArguments, serializerArguments, serialize, false) + ") " + + toExpression(field, fieldType, a, parserArguments, serializerArguments, serialize, false) + operation + " " + - castExpressionForTypeReference + "(" + toExpression(field, fieldType, b, parserArguments, serializerArguments, serialize, false) + ")"; + toExpression(field, fieldType, b, parserArguments, serializerArguments, serialize, false); } } @@ -884,7 +861,8 @@ private String toLiteralTermExpression(Field field, TypeReference fieldType, Ter return tracer + "None"; } else if (term instanceof BooleanLiteral) { tracer = tracer.dive("boolean literal instanceOf"); - return tracer + getCastExpressionForTypeReference(fieldType) + "(" + ((BooleanLiteral) term).getValue() + ")"; + String bool = Boolean.toString(((BooleanLiteral) term).getValue()); + return tracer + bool.substring(0,1).toUpperCase() + bool.substring(1); } else if (term instanceof NumericLiteral) { tracer = tracer.dive("numeric literal instanceOf"); if (getCastExpressionForTypeReference(fieldType).equals("string")) { @@ -1130,8 +1108,8 @@ private String toCeilVariableExpression(Field field, VariableLiteral variableLit .stream().findFirst().orElseThrow(IllegalStateException::new); // The Ceil function expects 64 bit floating point values. TypeReference tr = new DefaultFloatTypeReference(SimpleTypeReference.SimpleBaseType.FLOAT, 64); - emitRequiredImport("math"); - return tracer + "math.Ceil(" + toExpression(field, tr, va, parserArguments, serializerArguments, serialize, suppressPointerAccess) + ")"; + emitRequiredImport("from math import ceil"); + return tracer + "ceil(" + toExpression(field, tr, va, parserArguments, serializerArguments, serialize, suppressPointerAccess) + ")"; } private String toArraySizeInBytesVariableExpression(Field field, TypeReference typeReference, VariableLiteral variableLiteral, List parserArguments, List serializerArguments, boolean suppressPointerAccess, Tracer tracer) { @@ -1144,7 +1122,7 @@ private String toArraySizeInBytesVariableExpression(Field field, TypeReference t .asVariableLiteral() .orElseThrow(() -> new RuntimeException("ARRAY_SIZE_IN_BYTES needs a variable literal")); // "io" and "m" are always available in every parser. - boolean isSerializerArg = "readBuffer".equals(va.getName()) || "writeBuffer".equals(va.getName()) || "m".equals(va.getName()) || "element".equals(va.getName()); + boolean isSerializerArg = "read_buffer".equals(va.getName()) || "write_buffer".equals(va.getName()) || "self".equals(va.getName()) || "element".equals(va.getName()); if (!isSerializerArg && serializerArguments != null) { for (Argument serializerArgument : serializerArguments) { if (serializerArgument.getName().equals(va.getName())) { @@ -1159,7 +1137,8 @@ private String toArraySizeInBytesVariableExpression(Field field, TypeReference t } else { sb.append(toVariableExpression(field, typeReference, va, parserArguments, serializerArguments, true, suppressPointerAccess)); } - return tracer + getCastExpressionForTypeReference(typeReference) + "(" + va.getName() + "ArraySizeInBytes(" + sb + "))"; + emitRequiredImport("from sys import getsizeof"); + return tracer + getCastExpressionForTypeReference(typeReference) + "(getsizeof(" + sb + "))"; } private String toCountVariableExpression(Field field, TypeReference typeReference, VariableLiteral variableLiteral, List parserArguments, List serializerArguments, boolean serialize, boolean suppressPointerAccess, Tracer tracer) { @@ -1764,26 +1743,6 @@ public String capitalize(String str) { return extractedTrace + StringUtils.capitalize(cleanedString); } - public String getEndiannessOptions(boolean read, boolean separatorPrefix) { - return getEndiannessOptions(read, separatorPrefix, Collections.emptyList()); - } - - public String getEndiannessOptions(boolean read, boolean separatorPrefix, List parserArguments) { - Optional byteOrder = thisType.getAttribute("byteOrder"); - if (byteOrder.isPresent()) { - emitRequiredImport("encoding/binary"); - if(read) { - return (separatorPrefix ? ", " : "") + "utils.WithByteOrderForReadBufferByteBased(" + - toParseExpression(null, new DefaultByteOrderTypeReference(), byteOrder.orElseThrow(), parserArguments) + - ")"; - } else { - return (separatorPrefix ? ", " : "") + "utils.WithByteOrderForByteBasedBuffer(" + - toSerializationExpression(null, new DefaultByteOrderTypeReference(), byteOrder.orElseThrow(), parserArguments) + - ")"; - } - } - return ""; - } /** * Converts a camel-case string to snake-case. 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 e6e2584b036..11ce0db8316 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 @@ -220,7 +220,7 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()>(<#if ty # Array Field (${arrayField.name}) <#if arrayField.type.elementTypeReference.isByteBased()> - write_buffer.write_byte_array(self.${helper.camelCaseToSnakeCase(namedField.name)}, 8, logical_name="${namedField.name}") + write_buffer.write_byte_array(self.${helper.camelCaseToSnakeCase(namedField.name)}, logical_name="${namedField.name}") <#elseif arrayField.type.elementTypeReference.isSimpleTypeReference()> write_buffer.write_simple_array(self.${helper.camelCaseToSnakeCase(namedField.name)}, ${helper.getDataWriterCall(arrayField.type.elementTypeReference, namedField.name)}, logical_name="${namedField.name}") <#else> @@ -369,12 +369,12 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()>(<#if ty if self.${helper.camelCaseToSnakeCase(arrayField.name)} is not None: <#if arrayElementTypeReference.isSimpleTypeReference()> <#assign simpleTypeReference = arrayElementTypeReference.asSimpleTypeReference().orElseThrow()> - length_in_bits += ${simpleTypeReference.sizeInBits} * self.${helper.camelCaseToSnakeCase(arrayField.name)}.<#if arrayElementTypeReference.isByteBased()>length<#else>size() + length_in_bits += ${simpleTypeReference.sizeInBits} * len(self.${helper.camelCaseToSnakeCase(arrayField.name)}) <#elseif arrayField.isCountArrayField()> i: int = 0 <#assign nonSimpleTypeReference = arrayElementTypeReference.asNonSimpleTypeReference().orElseThrow()> for element in self.${helper.camelCaseToSnakeCase(arrayField.name)}: - last: bool = ++i >= self.${helper.camelCaseToSnakeCase(arrayField.name)}.size() + last: bool = ++i >= len(self.${helper.camelCaseToSnakeCase(arrayField.name)}) length_in_bits += element.get_length_in_bits() <#else> diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/DataItem.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/DataItem.py index ddbc20e5c23..58f87c19d6f 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/DataItem.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/DataItem.py @@ -99,15 +99,15 @@ def static_parse( if EvaluationHelper.equals(data_type, ModbusDataType.get_byte()): # List # Array field (value) # Count array - if c_int32(numberOfValues) * c_int32(c_int32(8)) > Integer.MAX_VALUE: + if numberOfValues * c_int32(8) > Integer.MAX_VALUE: raise ParseException( "Array count of " - + (c_int32(numberOfValues) * c_int32(c_int32(8))) + + (numberOfValues * c_int32(8)) + " exceeds the maximum allowed count of " + Integer.MAX_VALUE ) - item_count: int = int(c_int32(numberOfValues) * c_int32(c_int32(8))) + item_count: int = int(numberOfValues * c_int32(8)) value: List[PlcValue] = [] for cur_item in range(item_count): value.append(PlcBOOL(c_bool(read_buffer.readBit("")))) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusAsciiADU.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusAsciiADU.py index 8a06bc3a2d2..2a478ce6660 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusAsciiADU.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusAsciiADU.py @@ -88,9 +88,7 @@ def static_parse_builder( cur_pos: int = 0 address: c_uint8 = read_simple_field( - "address", - read_unsigned_short(read_buffer, 8), - WithOption.WithByteOrder(get_bi_g__endian()), + "address", read_unsigned_short, WithOption.WithByteOrder(get_bi_g__endian()) ) pdu: ModbusPDU = read_simple_field( @@ -103,7 +101,7 @@ def static_parse_builder( crc: c_uint8 = read_checksum_field( "crc", - read_unsigned_short(read_buffer, 8), + read_unsigned_short, (c_uint8)(ascii_lrc_check(address, pdu)), WithOption.WithByteOrder(get_bi_g__endian()), ) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusConstants.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusConstants.py index 5d35fc9fa9c..a007c12c9fd 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusConstants.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusConstants.py @@ -66,7 +66,7 @@ def static_parse_context(read_buffer: ReadBuffer): modbus_tcp_default_port: c_uint16 = read_const_field( "modbusTcpDefaultPort", - read_unsigned_int(read_buffer, 16), + read_unsigned_int, ModbusConstants.MODBUSTCPDEFAULTPORT, ) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationObject.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationObject.py index 259271e9c52..91d2cd9ddbb 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationObject.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationObject.py @@ -47,7 +47,7 @@ def serialize(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(object_length, logical_name="objectLength") # Array Field (data) - write_buffer.write_byte_array(self.data, 8, logical_name="data") + write_buffer.write_byte_array(self.data, logical_name="data") write_buffer.pop_context("ModbusDeviceInformationObject") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.data is not None: - length_in_bits += 8 * self.data.length + length_in_bits += 8 * len(self.data) return length_in_bits @@ -79,12 +79,10 @@ def static_parse_context(read_buffer: ReadBuffer): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - object_id: c_uint8 = read_simple_field( - "objectId", read_unsigned_short(read_buffer, 8) - ) + object_id: c_uint8 = read_simple_field("objectId", read_unsigned_short) object_length: c_uint8 = read_implicit_field( - "objectLength", read_unsigned_short(read_buffer, 8) + "objectLength", read_unsigned_short ) data: List[c_byte] = read_buffer.read_byte_array("data", int(objectLength)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py index 3f4e929ee48..37f45d9c28f 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py @@ -112,150 +112,148 @@ def static_parse_context(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - error_flag: c_bool = read_discriminator_field( - "errorFlag", read_boolean(read_buffer) - ) + error_flag: c_bool = read_discriminator_field("errorFlag", read_boolean) function_flag: c_uint8 = read_discriminator_field( - "functionFlag", read_unsigned_short(read_buffer, 7) + "functionFlag", read_unsigned_short ) # Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type) builder: ModbusPDUBuilder = None - if EvaluationHelper.equals(errorFlag, c_bool(c_bool(true))): + if EvaluationHelper.equals(errorFlag, c_bool(True)): builder = ModbusPDUError.staticParseBuilder(read_buffer, response) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x02)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadDiscreteInputsRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x02)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadDiscreteInputsResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x01)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadCoilsRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x01)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadCoilsResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x05)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUWriteSingleCoilRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x05)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUWriteSingleCoilResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0F)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUWriteMultipleCoilsRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0F)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUWriteMultipleCoilsResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x04)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadInputRegistersRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x04)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadInputRegistersResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x03)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadHoldingRegistersRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x03)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadHoldingRegistersResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x06)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUWriteSingleRegisterRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x06)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUWriteSingleRegisterResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x10)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUWriteMultipleHoldingRegistersRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x10)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUWriteMultipleHoldingRegistersResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x17)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ( ModbusPDUReadWriteMultipleHoldingRegistersRequest.staticParseBuilder( @@ -263,9 +261,9 @@ def static_parse_context(read_buffer: ReadBuffer, response: c_bool): ) ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x17)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ( ModbusPDUReadWriteMultipleHoldingRegistersResponse.staticParseBuilder( @@ -273,161 +271,161 @@ def static_parse_context(read_buffer: ReadBuffer, response: c_bool): ) ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x16)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUMaskWriteHoldingRegisterRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x16)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUMaskWriteHoldingRegisterResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x18)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadFifoQueueRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x18)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadFifoQueueResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x14)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadFileRecordRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x14)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadFileRecordResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x15)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUWriteFileRecordRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x15)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUWriteFileRecordResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x07)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadExceptionStatusRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x07)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadExceptionStatusResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x08)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUDiagnosticRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x08)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUDiagnosticResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0B)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUGetComEventCounterRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0B)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUGetComEventCounterResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0C)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUGetComEventLogRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x0C)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUGetComEventLogResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x11)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReportServerIdRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x11)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReportServerIdResponse.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x2B)) - and EvaluationHelper.equals(response, c_bool(c_bool(false))) + and EvaluationHelper.equals(response, c_bool(False)) ): builder = ModbusPDUReadDeviceIdentificationRequest.staticParseBuilder( read_buffer, response ) if ( - EvaluationHelper.equals(errorFlag, c_bool(c_bool(false))) + EvaluationHelper.equals(errorFlag, c_bool(False)) and EvaluationHelper.equals(functionFlag, c_uint8(0x2B)) - and EvaluationHelper.equals(response, c_bool(c_bool(true))) + and EvaluationHelper.equals(response, c_bool(True)) ): builder = ModbusPDUReadDeviceIdentificationResponse.staticParseBuilder( read_buffer, response diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticRequest.py index c64daebf0b9..33405fb7fef 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticRequest.py @@ -34,9 +34,9 @@ class ModbusPDUDiagnosticRequest(PlcMessage, ModbusPDU): sub_function: c_uint16 data: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x08 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - sub_function: c_uint16 = read_simple_field( - "subFunction", read_unsigned_int(read_buffer, 16) - ) + sub_function: c_uint16 = read_simple_field("subFunction", read_unsigned_int) - data: c_uint16 = read_simple_field("data", read_unsigned_int(read_buffer, 16)) + data: c_uint16 = read_simple_field("data", read_unsigned_int) read_buffer.close_context("ModbusPDUDiagnosticRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticResponse.py index ae00e092876..17218f27f7a 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticResponse.py @@ -34,9 +34,9 @@ class ModbusPDUDiagnosticResponse(PlcMessage, ModbusPDU): sub_function: c_uint16 data: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x08 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - sub_function: c_uint16 = read_simple_field( - "subFunction", read_unsigned_int(read_buffer, 16) - ) + sub_function: c_uint16 = read_simple_field("subFunction", read_unsigned_int) - data: c_uint16 = read_simple_field("data", read_unsigned_int(read_buffer, 16)) + data: c_uint16 = read_simple_field("data", read_unsigned_int) read_buffer.close_context("ModbusPDUDiagnosticResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUError.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUError.py index 0bc22be06fd..f16f2dc7d42 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUError.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUError.py @@ -33,7 +33,7 @@ class ModbusPDUError(PlcMessage, ModbusPDU): exception_code: ModbusErrorCode # Accessors for discriminator values. - error_flag: c_bool = c_bool(true) + error_flag: c_bool = True function_flag: c_uint8 = 0 response: c_bool = False @@ -72,9 +72,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): exception_code: ModbusErrorCode = read_enum_field( "exceptionCode", "ModbusErrorCode", - DataReaderEnumDefault( - ModbusErrorCode.enumForValue, read_unsigned_short(read_buffer, 8) - ), + DataReaderEnumDefault(ModbusErrorCode.enumForValue, read_unsigned_short), ) read_buffer.close_context("ModbusPDUError") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterRequest.py index ebd135c89c3..7969c246f36 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterRequest.py @@ -31,9 +31,9 @@ @dataclass class ModbusPDUGetComEventCounterRequest(PlcMessage, ModbusPDU): # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0B - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterResponse.py index c9bb72146c2..f6de691a254 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterResponse.py @@ -34,9 +34,9 @@ class ModbusPDUGetComEventCounterResponse(PlcMessage, ModbusPDU): status: c_uint16 event_count: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0B - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -74,13 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - status: c_uint16 = read_simple_field( - "status", read_unsigned_int(read_buffer, 16) - ) + status: c_uint16 = read_simple_field("status", read_unsigned_int) - event_count: c_uint16 = read_simple_field( - "eventCount", read_unsigned_int(read_buffer, 16) - ) + event_count: c_uint16 = read_simple_field("eventCount", read_unsigned_int) read_buffer.close_context("ModbusPDUGetComEventCounterResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogRequest.py index 6d641496d2e..b7a2775dfb1 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogRequest.py @@ -31,9 +31,9 @@ @dataclass class ModbusPDUGetComEventLogRequest(PlcMessage, ModbusPDU): # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0C - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogResponse.py index cd8d6286c54..ae854e58efc 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogResponse.py @@ -39,9 +39,9 @@ class ModbusPDUGetComEventLogResponse(PlcMessage, ModbusPDU): message_count: c_uint16 events: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0C - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -51,7 +51,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUGetComEventLogResponse") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint8 = c_uint8(c_uint8(len(self.events))) + c_uint8(c_uint8(6)) + byte_count: c_uint8 = c_uint8(len(self.events)) + c_uint8(6) write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Simple Field (status) @@ -66,7 +66,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): ) # Array Field (events) - write_buffer.write_byte_array(self.events, 8, logical_name="events") + write_buffer.write_byte_array(self.events, logical_name="events") write_buffer.pop_context("ModbusPDUGetComEventLogResponse") @@ -91,7 +91,7 @@ def get_length_in_bits(self) -> int: # Array field if self.events is not None: - length_in_bits += 8 * self.events.length + length_in_bits += 8 * len(self.events) return length_in_bits @@ -101,24 +101,16 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) - status: c_uint16 = read_simple_field( - "status", read_unsigned_int(read_buffer, 16) - ) + status: c_uint16 = read_simple_field("status", read_unsigned_int) - event_count: c_uint16 = read_simple_field( - "eventCount", read_unsigned_int(read_buffer, 16) - ) + event_count: c_uint16 = read_simple_field("eventCount", read_unsigned_int) - message_count: c_uint16 = read_simple_field( - "messageCount", read_unsigned_int(read_buffer, 16) - ) + message_count: c_uint16 = read_simple_field("messageCount", read_unsigned_int) events: List[c_byte] = read_buffer.read_byte_array( - "events", int(c_int32(byteCount) - c_int32(c_int32(6))) + "events", int(byteCount - c_int32(6)) ) read_buffer.close_context("ModbusPDUGetComEventLogResponse") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterRequest.py index 51137cb4128..346d1b33724 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterRequest.py @@ -35,9 +35,9 @@ class ModbusPDUMaskWriteHoldingRegisterRequest(PlcMessage, ModbusPDU): and_mask: c_uint16 or_mask: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x16 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -84,16 +84,12 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 reference_address: c_uint16 = read_simple_field( - "referenceAddress", read_unsigned_int(read_buffer, 16) + "referenceAddress", read_unsigned_int ) - and_mask: c_uint16 = read_simple_field( - "andMask", read_unsigned_int(read_buffer, 16) - ) + and_mask: c_uint16 = read_simple_field("andMask", read_unsigned_int) - or_mask: c_uint16 = read_simple_field( - "orMask", read_unsigned_int(read_buffer, 16) - ) + or_mask: c_uint16 = read_simple_field("orMask", read_unsigned_int) read_buffer.close_context("ModbusPDUMaskWriteHoldingRegisterRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterResponse.py index b67c7e9946e..6a3430e3950 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterResponse.py @@ -35,9 +35,9 @@ class ModbusPDUMaskWriteHoldingRegisterResponse(PlcMessage, ModbusPDU): and_mask: c_uint16 or_mask: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x16 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -84,16 +84,12 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 reference_address: c_uint16 = read_simple_field( - "referenceAddress", read_unsigned_int(read_buffer, 16) + "referenceAddress", read_unsigned_int ) - and_mask: c_uint16 = read_simple_field( - "andMask", read_unsigned_int(read_buffer, 16) - ) + and_mask: c_uint16 = read_simple_field("andMask", read_unsigned_int) - or_mask: c_uint16 = read_simple_field( - "orMask", read_unsigned_int(read_buffer, 16) - ) + or_mask: c_uint16 = read_simple_field("orMask", read_unsigned_int) read_buffer.close_context("ModbusPDUMaskWriteHoldingRegisterResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsRequest.py index 444b90bedcb..cfbada82544 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsRequest.py @@ -34,9 +34,9 @@ class ModbusPDUReadCoilsRequest(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x01 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUReadCoilsRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsResponse.py index 0ccdd3a6f0a..5ce3b8fec78 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadCoilsResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x01 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadCoilsResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationRequest.py index 7f2be71e4ba..aa32b5e1940 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationRequest.py @@ -37,9 +37,9 @@ class ModbusPDUReadDeviceIdentificationRequest(PlcMessage, ModbusPDU): object_id: c_uint8 MEITYPE: c_uint8 = 0x0E # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x2B - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -89,7 +89,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): mei_type: c_uint8 = read_const_field( "meiType", - read_unsigned_short(read_buffer, 8), + read_unsigned_short, ModbusPDUReadDeviceIdentificationRequest.MEITYPE, ) @@ -97,14 +97,11 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): "level", "ModbusDeviceInformationLevel", DataReaderEnumDefault( - ModbusDeviceInformationLevel.enumForValue, - read_unsigned_short(read_buffer, 8), + ModbusDeviceInformationLevel.enumForValue, read_unsigned_short ), ) - object_id: c_uint8 = read_simple_field( - "objectId", read_unsigned_short(read_buffer, 8) - ) + object_id: c_uint8 = read_simple_field("objectId", read_unsigned_short) read_buffer.close_context("ModbusPDUReadDeviceIdentificationRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationResponse.py index 4a35f54d776..1afcab8b391 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationResponse.py @@ -51,9 +51,9 @@ class ModbusPDUReadDeviceIdentificationResponse(PlcMessage, ModbusPDU): objects: List[ModbusDeviceInformationObject] MEITYPE: c_uint8 = 0x0E # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x2B - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -139,7 +139,7 @@ def get_length_in_bits(self) -> int: if self.objects is not None: i: int = 0 for element in self.objects: - last: bool = ++i >= self.objects.size() + last: bool = ++i >= len(self.objects) length_in_bits += element.get_length_in_bits() return length_in_bits @@ -152,7 +152,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): mei_type: c_uint8 = read_const_field( "meiType", - read_unsigned_short(read_buffer, 8), + read_unsigned_short, ModbusPDUReadDeviceIdentificationResponse.MEITYPE, ) @@ -160,21 +160,17 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): "level", "ModbusDeviceInformationLevel", DataReaderEnumDefault( - ModbusDeviceInformationLevel.enumForValue, - read_unsigned_short(read_buffer, 8), + ModbusDeviceInformationLevel.enumForValue, read_unsigned_short ), ) - individual_access: c_bool = read_simple_field( - "individualAccess", read_boolean(read_buffer) - ) + individual_access: c_bool = read_simple_field("individualAccess", read_boolean) conformity_level: ModbusDeviceInformationConformityLevel = read_enum_field( "conformityLevel", "ModbusDeviceInformationConformityLevel", DataReaderEnumDefault( - ModbusDeviceInformationConformityLevel.enumForValue, - read_unsigned_short(read_buffer, 7), + ModbusDeviceInformationConformityLevel.enumForValue, read_unsigned_short ), ) @@ -182,17 +178,14 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): "moreFollows", "ModbusDeviceInformationMoreFollows", DataReaderEnumDefault( - ModbusDeviceInformationMoreFollows.enumForValue, - read_unsigned_short(read_buffer, 8), + ModbusDeviceInformationMoreFollows.enumForValue, read_unsigned_short ), ) - next_object_id: c_uint8 = read_simple_field( - "nextObjectId", read_unsigned_short(read_buffer, 8) - ) + next_object_id: c_uint8 = read_simple_field("nextObjectId", read_unsigned_short) number_of_objects: c_uint8 = read_implicit_field( - "numberOfObjects", read_unsigned_short(read_buffer, 8) + "numberOfObjects", read_unsigned_short ) objects: List[ModbusDeviceInformationObject] = read_count_array_field( diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsRequest.py index 97b20800b8b..917bb03c7f8 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsRequest.py @@ -34,9 +34,9 @@ class ModbusPDUReadDiscreteInputsRequest(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x02 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUReadDiscreteInputsRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsResponse.py index afa39fcc4ee..fe3492ffdd1 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadDiscreteInputsResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x02 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadDiscreteInputsResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusRequest.py index be5fd8d8d23..9880d2c998d 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusRequest.py @@ -31,9 +31,9 @@ @dataclass class ModbusPDUReadExceptionStatusRequest(PlcMessage, ModbusPDU): # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x07 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusResponse.py index 7e66a893f99..4882eb8c5ec 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusResponse.py @@ -32,9 +32,9 @@ class ModbusPDUReadExceptionStatusResponse(PlcMessage, ModbusPDU): value: c_uint8 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x07 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -66,7 +66,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - value: c_uint8 = read_simple_field("value", read_unsigned_short(read_buffer, 8)) + value: c_uint8 = read_simple_field("value", read_unsigned_short) read_buffer.close_context("ModbusPDUReadExceptionStatusResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueRequest.py index 1a5dd76b9dd..b0bfdb5b0ba 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueRequest.py @@ -33,9 +33,9 @@ class ModbusPDUReadFifoQueueRequest(PlcMessage, ModbusPDU): fifo_pointer_address: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x18 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -70,7 +70,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 fifo_pointer_address: c_uint16 = read_simple_field( - "fifoPointerAddress", read_unsigned_int(read_buffer, 16) + "fifoPointerAddress", read_unsigned_int ) read_buffer.close_context("ModbusPDUReadFifoQueueRequest") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueResponse.py index cfa769833e6..febb4aacf28 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadFifoQueueResponse(PlcMessage, ModbusPDU): fifo_value: List[c_uint16] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x18 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -46,15 +46,15 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUReadFifoQueueResponse") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint16 = c_uint16( - (c_uint16(c_uint16(len(self.fifo_value))) * c_uint16(c_uint16(2))) - ) + c_uint16(c_uint16(2)) + byte_count: c_uint16 = ( + c_uint16(len(self.fifo_value)) * c_uint16(2) + ) + c_uint16(2) write_buffer.write_unsigned_short(byte_count, logical_name="byteCount") # Implicit Field (fifo_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - fifo_count: c_uint16 = c_uint16( - (c_uint16(c_uint16(len(self.fifo_value))) * c_uint16(c_uint16(2))) - ) / c_uint16(c_uint16(2)) + fifo_count: c_uint16 = ( + c_uint16(len(self.fifo_value)) * c_uint16(2) + ) / c_uint16(2) write_buffer.write_unsigned_short(fifo_count, logical_name="fifoCount") # Array Field (fifoValue) @@ -79,7 +79,7 @@ def get_length_in_bits(self) -> int: # Array field if self.fifo_value is not None: - length_in_bits += 16 * self.fifo_value.size() + length_in_bits += 16 * len(self.fifo_value) return length_in_bits @@ -89,16 +89,12 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint16 = read_implicit_field( - "byteCount", read_unsigned_int(read_buffer, 16) - ) + byte_count: c_uint16 = read_implicit_field("byteCount", read_unsigned_int) - fifo_count: c_uint16 = read_implicit_field( - "fifoCount", read_unsigned_int(read_buffer, 16) - ) + fifo_count: c_uint16 = read_implicit_field("fifoCount", read_unsigned_int) fifo_value: List[c_uint16] = read_count_array_field( - "fifoValue", read_unsigned_int(read_buffer, 16), fifo_count + "fifoValue", read_unsigned_int, fifo_count ) read_buffer.close_context("ModbusPDUReadFifoQueueResponse") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequest.py index 99850b8f931..5c82c4ca22a 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequest.py @@ -28,6 +28,7 @@ ModbusPDUReadFileRecordRequestItem, ) from plc4py.spi.generation.WriteBuffer import WriteBuffer +from sys import getsizeof from typing import List import math @@ -36,9 +37,9 @@ class ModbusPDUReadFileRecordRequest(PlcMessage, ModbusPDU): items: List[ModbusPDUReadFileRecordRequestItem] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x14 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -48,7 +49,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUReadFileRecordRequest") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint8 = c_uint8(itemsArraySizeInBytes(self.items)) + byte_count: c_uint8 = c_uint8(getsizeof(self.items)) write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (items) @@ -79,9 +80,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) items: List[ModbusPDUReadFileRecordRequestItem] = read_length_array_field( "items", diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequestItem.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequestItem.py index d7b322ba45c..5b4bd6870d5 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequestItem.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequestItem.py @@ -91,20 +91,14 @@ def static_parse_context(read_buffer: ReadBuffer): cur_pos: int = 0 reference_type: c_uint8 = read_simple_field( - "referenceType", read_unsigned_short(read_buffer, 8) + "referenceType", read_unsigned_short ) - file_number: c_uint16 = read_simple_field( - "fileNumber", read_unsigned_int(read_buffer, 16) - ) + file_number: c_uint16 = read_simple_field("fileNumber", read_unsigned_int) - record_number: c_uint16 = read_simple_field( - "recordNumber", read_unsigned_int(read_buffer, 16) - ) + record_number: c_uint16 = read_simple_field("recordNumber", read_unsigned_int) - record_length: c_uint16 = read_simple_field( - "recordLength", read_unsigned_int(read_buffer, 16) - ) + record_length: c_uint16 = read_simple_field("recordLength", read_unsigned_int) read_buffer.close_context("ModbusPDUReadFileRecordRequestItem") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponse.py index d00ce01c9c3..a2694e04ee1 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponse.py @@ -28,6 +28,7 @@ ModbusPDUReadFileRecordResponseItem, ) from plc4py.spi.generation.WriteBuffer import WriteBuffer +from sys import getsizeof from typing import List import math @@ -36,9 +37,9 @@ class ModbusPDUReadFileRecordResponse(PlcMessage, ModbusPDU): items: List[ModbusPDUReadFileRecordResponseItem] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x14 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -48,7 +49,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUReadFileRecordResponse") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint8 = c_uint8(itemsArraySizeInBytes(self.items)) + byte_count: c_uint8 = c_uint8(getsizeof(self.items)) write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (items) @@ -79,9 +80,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) items: List[ModbusPDUReadFileRecordResponseItem] = read_length_array_field( "items", diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponseItem.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponseItem.py index 63dc78d3d05..7ac3ee9a0ea 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponseItem.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponseItem.py @@ -41,7 +41,7 @@ def serialize(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUReadFileRecordResponseItem") # Implicit Field (data_length) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - data_length: c_uint8 = c_uint8(c_uint8(len(self.data))) + c_uint8(c_uint8(1)) + data_length: c_uint8 = c_uint8(len(self.data)) + c_uint8(1) write_buffer.write_unsigned_byte(data_length, logical_name="dataLength") # Simple Field (referenceType) @@ -50,7 +50,7 @@ def serialize(self, write_buffer: WriteBuffer): ) # Array Field (data) - write_buffer.write_byte_array(self.data, 8, logical_name="data") + write_buffer.write_byte_array(self.data, logical_name="data") write_buffer.pop_context("ModbusPDUReadFileRecordResponseItem") @@ -69,7 +69,7 @@ def get_length_in_bits(self) -> int: # Array field if self.data is not None: - length_in_bits += 8 * self.data.length + length_in_bits += 8 * len(self.data) return length_in_bits @@ -82,16 +82,14 @@ def static_parse_context(read_buffer: ReadBuffer): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - data_length: c_uint8 = read_implicit_field( - "dataLength", read_unsigned_short(read_buffer, 8) - ) + data_length: c_uint8 = read_implicit_field("dataLength", read_unsigned_short) reference_type: c_uint8 = read_simple_field( - "referenceType", read_unsigned_short(read_buffer, 8) + "referenceType", read_unsigned_short ) data: List[c_byte] = read_buffer.read_byte_array( - "data", int(c_int32(dataLength) - c_int32(c_int32(1))) + "data", int(dataLength - c_int32(1)) ) read_buffer.close_context("ModbusPDUReadFileRecordResponseItem") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersRequest.py index d647466eb1b..2755637cf26 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersRequest.py @@ -34,9 +34,9 @@ class ModbusPDUReadHoldingRegistersRequest(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x03 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUReadHoldingRegistersRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersResponse.py index 2f34aa94471..97f4481caf4 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadHoldingRegistersResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x03 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadHoldingRegistersResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersRequest.py index f417da4e023..aeb129918ec 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersRequest.py @@ -34,9 +34,9 @@ class ModbusPDUReadInputRegistersRequest(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x04 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUReadInputRegistersRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersResponse.py index b540e081369..dd58ee6093f 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadInputRegistersResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x04 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadInputRegistersResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersRequest.py index ba29db1fd05..5381ddd5a71 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersRequest.py @@ -39,9 +39,9 @@ class ModbusPDUReadWriteMultipleHoldingRegistersRequest(PlcMessage, ModbusPDU): write_quantity: c_uint16 value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x17 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -75,7 +75,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadWriteMultipleHoldingRegistersRequest") @@ -103,7 +103,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -114,24 +114,18 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 read_starting_address: c_uint16 = read_simple_field( - "readStartingAddress", read_unsigned_int(read_buffer, 16) + "readStartingAddress", read_unsigned_int ) - read_quantity: c_uint16 = read_simple_field( - "readQuantity", read_unsigned_int(read_buffer, 16) - ) + read_quantity: c_uint16 = read_simple_field("readQuantity", read_unsigned_int) write_starting_address: c_uint16 = read_simple_field( - "writeStartingAddress", read_unsigned_int(read_buffer, 16) + "writeStartingAddress", read_unsigned_int ) - write_quantity: c_uint16 = read_simple_field( - "writeQuantity", read_unsigned_int(read_buffer, 16) - ) + write_quantity: c_uint16 = read_simple_field("writeQuantity", read_unsigned_int) - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersResponse.py index 249c0da70bb..52e74ca9162 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReadWriteMultipleHoldingRegistersResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x17 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReadWriteMultipleHoldingRegistersResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdRequest.py index fd8e32be319..c55d8a9609f 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdRequest.py @@ -31,9 +31,9 @@ @dataclass class ModbusPDUReportServerIdRequest(PlcMessage, ModbusPDU): # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x11 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdResponse.py index a2087de9a99..447a3bbad28 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdResponse.py @@ -34,9 +34,9 @@ class ModbusPDUReportServerIdResponse(PlcMessage, ModbusPDU): value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x11 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -50,7 +50,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUReportServerIdResponse") @@ -66,7 +66,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -76,9 +76,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequest.py index 5b97b0ea396..2a945626259 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequest.py @@ -28,6 +28,7 @@ ModbusPDUWriteFileRecordRequestItem, ) from plc4py.spi.generation.WriteBuffer import WriteBuffer +from sys import getsizeof from typing import List import math @@ -36,9 +37,9 @@ class ModbusPDUWriteFileRecordRequest(PlcMessage, ModbusPDU): items: List[ModbusPDUWriteFileRecordRequestItem] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x15 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -48,7 +49,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUWriteFileRecordRequest") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint8 = c_uint8(itemsArraySizeInBytes(self.items)) + byte_count: c_uint8 = c_uint8(getsizeof(self.items)) write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (items) @@ -79,9 +80,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) items: List[ModbusPDUWriteFileRecordRequestItem] = read_length_array_field( "items", diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequestItem.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequestItem.py index 9f900ad63dc..b6d324a65fa 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequestItem.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequestItem.py @@ -57,13 +57,11 @@ def serialize(self, write_buffer: WriteBuffer): ) # Implicit Field (record_length) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - record_length: c_uint16 = c_uint16(c_uint16(len(self.record_data))) / c_uint16( - c_uint16(2) - ) + record_length: c_uint16 = c_uint16(len(self.record_data)) / c_uint16(2) write_buffer.write_unsigned_short(record_length, logical_name="recordLength") # Array Field (recordData) - write_buffer.write_byte_array(self.record_data, 8, logical_name="recordData") + write_buffer.write_byte_array(self.record_data, logical_name="recordData") write_buffer.pop_context("ModbusPDUWriteFileRecordRequestItem") @@ -88,7 +86,7 @@ def get_length_in_bits(self) -> int: # Array field if self.record_data is not None: - length_in_bits += 8 * self.record_data.length + length_in_bits += 8 * len(self.record_data) return length_in_bits @@ -102,23 +100,17 @@ def static_parse_context(read_buffer: ReadBuffer): cur_pos: int = 0 reference_type: c_uint8 = read_simple_field( - "referenceType", read_unsigned_short(read_buffer, 8) + "referenceType", read_unsigned_short ) - file_number: c_uint16 = read_simple_field( - "fileNumber", read_unsigned_int(read_buffer, 16) - ) + file_number: c_uint16 = read_simple_field("fileNumber", read_unsigned_int) - record_number: c_uint16 = read_simple_field( - "recordNumber", read_unsigned_int(read_buffer, 16) - ) + record_number: c_uint16 = read_simple_field("recordNumber", read_unsigned_int) - record_length: c_uint16 = read_implicit_field( - "recordLength", read_unsigned_int(read_buffer, 16) - ) + record_length: c_uint16 = read_implicit_field("recordLength", read_unsigned_int) record_data: List[c_byte] = read_buffer.read_byte_array( - "recordData", int(c_int32(recordLength) * c_int32(c_int32(2))) + "recordData", int(recordLength * c_int32(2)) ) read_buffer.close_context("ModbusPDUWriteFileRecordRequestItem") diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponse.py index 0b6c5b10fdf..4aa64c8e215 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponse.py @@ -28,6 +28,7 @@ ModbusPDUWriteFileRecordResponseItem, ) from plc4py.spi.generation.WriteBuffer import WriteBuffer +from sys import getsizeof from typing import List import math @@ -36,9 +37,9 @@ class ModbusPDUWriteFileRecordResponse(PlcMessage, ModbusPDU): items: List[ModbusPDUWriteFileRecordResponseItem] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x15 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -48,7 +49,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.push_context("ModbusPDUWriteFileRecordResponse") # Implicit Field (byte_count) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - byte_count: c_uint8 = c_uint8(itemsArraySizeInBytes(self.items)) + byte_count: c_uint8 = c_uint8(getsizeof(self.items)) write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (items) @@ -79,9 +80,7 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) items: List[ModbusPDUWriteFileRecordResponseItem] = read_length_array_field( "items", diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponseItem.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponseItem.py index c4f92aefb7f..58ef6c91a1d 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponseItem.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponseItem.py @@ -56,13 +56,11 @@ def serialize(self, write_buffer: WriteBuffer): ) # Implicit Field (record_length) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - record_length: c_uint16 = c_uint16(c_uint16(len(self.record_data))) / c_uint16( - c_uint16(2) - ) + record_length: c_uint16 = c_uint16(len(self.record_data)) / c_uint16(2) write_buffer.write_unsigned_short(record_length, logical_name="recordLength") # Array Field (recordData) - write_buffer.write_byte_array(self.record_data, 8, logical_name="recordData") + write_buffer.write_byte_array(self.record_data, logical_name="recordData") write_buffer.pop_context("ModbusPDUWriteFileRecordResponseItem") @@ -87,7 +85,7 @@ def get_length_in_bits(self) -> int: # Array field if self.record_data is not None: - length_in_bits += 8 * self.record_data.length + length_in_bits += 8 * len(self.record_data) return length_in_bits @@ -101,20 +99,14 @@ def static_parse_context(read_buffer: ReadBuffer): cur_pos: int = 0 reference_type: c_uint8 = read_simple_field( - "referenceType", read_unsigned_short(read_buffer, 8) + "referenceType", read_unsigned_short ) - file_number: c_uint16 = read_simple_field( - "fileNumber", read_unsigned_int(read_buffer, 16) - ) + file_number: c_uint16 = read_simple_field("fileNumber", read_unsigned_int) - record_number: c_uint16 = read_simple_field( - "recordNumber", read_unsigned_int(read_buffer, 16) - ) + record_number: c_uint16 = read_simple_field("recordNumber", read_unsigned_int) - record_length: c_uint16 = read_implicit_field( - "recordLength", read_unsigned_int(read_buffer, 16) - ) + record_length: c_uint16 = read_implicit_field("recordLength", read_unsigned_int) record_data: List[c_byte] = read_buffer.read_byte_array( "recordData", int(recordLength) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsRequest.py index a57653364be..c3a3710d543 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsRequest.py @@ -37,9 +37,9 @@ class ModbusPDUWriteMultipleCoilsRequest(PlcMessage, ModbusPDU): quantity: c_uint16 value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0F - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -61,7 +61,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUWriteMultipleCoilsRequest") @@ -83,7 +83,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -94,16 +94,12 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsResponse.py index 9575571c0a2..9b39bd2c444 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsResponse.py @@ -34,9 +34,9 @@ class ModbusPDUWriteMultipleCoilsResponse(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x0F - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteMultipleCoilsResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersRequest.py index d8c827ce037..c4fd0147d3a 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersRequest.py @@ -37,9 +37,9 @@ class ModbusPDUWriteMultipleHoldingRegistersRequest(PlcMessage, ModbusPDU): quantity: c_uint16 value: List[c_byte] # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x10 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -61,7 +61,7 @@ def serialize_modbus_pdu_child(self, write_buffer: WriteBuffer): write_buffer.write_unsigned_byte(byte_count, logical_name="byteCount") # Array Field (value) - write_buffer.write_byte_array(self.value, 8, logical_name="value") + write_buffer.write_byte_array(self.value, logical_name="value") write_buffer.pop_context("ModbusPDUWriteMultipleHoldingRegistersRequest") @@ -83,7 +83,7 @@ def get_length_in_bits(self) -> int: # Array field if self.value is not None: - length_in_bits += 8 * self.value.length + length_in_bits += 8 * len(self.value) return length_in_bits @@ -94,16 +94,12 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) - byte_count: c_uint8 = read_implicit_field( - "byteCount", read_unsigned_short(read_buffer, 8) - ) + byte_count: c_uint8 = read_implicit_field("byteCount", read_unsigned_short) value: List[c_byte] = read_buffer.read_byte_array("value", int(byteCount)) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersResponse.py index 4ea61b0482a..a9b3c87a17c 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersResponse.py @@ -34,9 +34,9 @@ class ModbusPDUWriteMultipleHoldingRegistersResponse(PlcMessage, ModbusPDU): starting_address: c_uint16 quantity: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x10 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -77,12 +77,10 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): cur_pos: int = 0 starting_address: c_uint16 = read_simple_field( - "startingAddress", read_unsigned_int(read_buffer, 16) + "startingAddress", read_unsigned_int ) - quantity: c_uint16 = read_simple_field( - "quantity", read_unsigned_int(read_buffer, 16) - ) + quantity: c_uint16 = read_simple_field("quantity", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteMultipleHoldingRegistersResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilRequest.py index 8ce893a370a..a55665ed45d 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilRequest.py @@ -34,9 +34,9 @@ class ModbusPDUWriteSingleCoilRequest(PlcMessage, ModbusPDU): address: c_uint16 value: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x05 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - address: c_uint16 = read_simple_field( - "address", read_unsigned_int(read_buffer, 16) - ) + address: c_uint16 = read_simple_field("address", read_unsigned_int) - value: c_uint16 = read_simple_field("value", read_unsigned_int(read_buffer, 16)) + value: c_uint16 = read_simple_field("value", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteSingleCoilRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilResponse.py index d7d8728e1e1..64a55d403e6 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilResponse.py @@ -34,9 +34,9 @@ class ModbusPDUWriteSingleCoilResponse(PlcMessage, ModbusPDU): address: c_uint16 value: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x05 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - address: c_uint16 = read_simple_field( - "address", read_unsigned_int(read_buffer, 16) - ) + address: c_uint16 = read_simple_field("address", read_unsigned_int) - value: c_uint16 = read_simple_field("value", read_unsigned_int(read_buffer, 16)) + value: c_uint16 = read_simple_field("value", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteSingleCoilResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterRequest.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterRequest.py index c6e6276f397..1cc9cc5fa8c 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterRequest.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterRequest.py @@ -34,9 +34,9 @@ class ModbusPDUWriteSingleRegisterRequest(PlcMessage, ModbusPDU): address: c_uint16 value: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x06 - response: c_bool = c_bool(false) + response: c_bool = False def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - address: c_uint16 = read_simple_field( - "address", read_unsigned_int(read_buffer, 16) - ) + address: c_uint16 = read_simple_field("address", read_unsigned_int) - value: c_uint16 = read_simple_field("value", read_unsigned_int(read_buffer, 16)) + value: c_uint16 = read_simple_field("value", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteSingleRegisterRequest") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterResponse.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterResponse.py index 2a9adefeedf..32e7ae5f4a0 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterResponse.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterResponse.py @@ -34,9 +34,9 @@ class ModbusPDUWriteSingleRegisterResponse(PlcMessage, ModbusPDU): address: c_uint16 value: c_uint16 # Accessors for discriminator values. - error_flag: c_bool = c_bool(false) + error_flag: c_bool = False function_flag: c_uint8 = 0x06 - response: c_bool = c_bool(true) + response: c_bool = True def __post_init__(self): super().__init__() @@ -74,11 +74,9 @@ def static_parse_builder(read_buffer: ReadBuffer, response: c_bool): start_pos: int = read_buffer.get_pos() cur_pos: int = 0 - address: c_uint16 = read_simple_field( - "address", read_unsigned_int(read_buffer, 16) - ) + address: c_uint16 = read_simple_field("address", read_unsigned_int) - value: c_uint16 = read_simple_field("value", read_unsigned_int(read_buffer, 16)) + value: c_uint16 = read_simple_field("value", read_unsigned_int) read_buffer.close_context("ModbusPDUWriteSingleRegisterResponse") # Create the instance diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusRtuADU.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusRtuADU.py index 9386f1e799d..e69805d713c 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusRtuADU.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusRtuADU.py @@ -89,9 +89,7 @@ def static_parse_builder( cur_pos: int = 0 address: c_uint8 = read_simple_field( - "address", - read_unsigned_short(read_buffer, 8), - WithOption.WithByteOrder(get_bi_g__endian()), + "address", read_unsigned_short, WithOption.WithByteOrder(get_bi_g__endian()) ) pdu: ModbusPDU = read_simple_field( @@ -104,7 +102,7 @@ def static_parse_builder( crc: c_uint16 = read_checksum_field( "crc", - read_unsigned_int(read_buffer, 16), + read_unsigned_int, (c_uint16)(rtu_crc_check(address, pdu)), WithOption.WithByteOrder(get_bi_g__endian()), ) diff --git a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusTcpADU.py b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusTcpADU.py index b8016d45cb3..9f32a57f282 100644 --- a/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusTcpADU.py +++ b/sandbox/plc4py/plc4py/protocols/modbus/readwrite/ModbusTcpADU.py @@ -60,9 +60,7 @@ def serialize_modbus_adu_child(self, write_buffer: WriteBuffer): ) # Implicit Field (length) (Used for parsing, but its value is not stored as it's implicitly given by the objects content) - length: c_uint16 = c_uint16(self.pdu.getlength_in_bytes(ctx)) + c_uint16( - c_uint16(1) - ) + length: c_uint16 = self.pdu.getlength_in_bytes(ctx) + c_uint16(1) write_buffer.write_unsigned_short(length, logical_name="length") # Simple Field (unitIdentifier) @@ -111,26 +109,24 @@ def static_parse_builder( transaction_identifier: c_uint16 = read_simple_field( "transactionIdentifier", - read_unsigned_int(read_buffer, 16), + read_unsigned_int, WithOption.WithByteOrder(get_bi_g__endian()), ) protocol_identifier: c_uint16 = read_const_field( "protocolIdentifier", - read_unsigned_int(read_buffer, 16), + read_unsigned_int, ModbusTcpADU.PROTOCOLIDENTIFIER, WithOption.WithByteOrder(get_bi_g__endian()), ) length: c_uint16 = read_implicit_field( - "length", - read_unsigned_int(read_buffer, 16), - WithOption.WithByteOrder(get_bi_g__endian()), + "length", read_unsigned_int, WithOption.WithByteOrder(get_bi_g__endian()) ) unit_identifier: c_uint8 = read_simple_field( "unitIdentifier", - read_unsigned_short(read_buffer, 8), + read_unsigned_short, WithOption.WithByteOrder(get_bi_g__endian()), ) diff --git a/sandbox/plc4py/plc4py/protocols/simulated/readwrite/Dummy.py b/sandbox/plc4py/plc4py/protocols/simulated/readwrite/Dummy.py index 7a4c5e59a52..74d6d892733 100644 --- a/sandbox/plc4py/plc4py/protocols/simulated/readwrite/Dummy.py +++ b/sandbox/plc4py/plc4py/protocols/simulated/readwrite/Dummy.py @@ -63,9 +63,7 @@ def static_parse_context(read_buffer: ReadBuffer): cur_pos: int = 0 dummy: c_uint16 = read_simple_field( - "dummy", - read_unsigned_int(read_buffer, 16), - WithOption.WithByteOrder(get_bi_g__endian()), + "dummy", read_unsigned_int, WithOption.WithByteOrder(get_bi_g__endian()) ) read_buffer.close_context("Dummy") diff --git a/sandbox/plc4py/plc4py/spi/generation/WriteBuffer.py b/sandbox/plc4py/plc4py/spi/generation/WriteBuffer.py index 25c85c0c5b3..a4eaaa0ad14 100644 --- a/sandbox/plc4py/plc4py/spi/generation/WriteBuffer.py +++ b/sandbox/plc4py/plc4py/spi/generation/WriteBuffer.py @@ -36,6 +36,7 @@ from bitarray.util import zeros from plc4py.api.exceptions.exceptions import SerializationException +from plc4py.api.messages.PlcMessage import PlcMessage from plc4py.utils.GenericTypes import ByteOrder, ByteOrderAware @@ -126,6 +127,11 @@ def write_str( def write_virtual(self, value: str, logical_name: str = "", **kwargs) -> None: raise NotImplementedError + def write_complex_array( + self, value: List[PlcMessage], logical_name: str = "", **kwargs + ) -> None: + raise NotImplementedError + # # This method can be used to influence serializing (e.g. intercept whole types and render them in a simplified form) # @@ -276,6 +282,14 @@ def write_double( raise SerializationException("Double can only contain max 64 bits") self._handle_numeric_encoding(c_double(value.value), bit_length, **kwargs) + def write_complex_array( + self, value: List[PlcMessage], logical_name: str = "", **kwargs + ) -> None: + for item in value: + self.push_context(logical_name, **kwargs) + self.write_serializable(item) + self.pop_context(logical_name, **kwargs) + def _handle_numeric_encoding(self, value: NUMERIC_UNION, bit_length: int, **kwargs): byte_order = kwargs.get("byte_order", self.byte_order) value_encoding: str = kwargs.get("encoding", "default")