From 27553ed64c6da6f1847fad2e7d399613d8048a94 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 27 Jan 2022 17:25:18 +0100 Subject: [PATCH] Fix wrong return type of generated getter methods --- modbus/tools/generate-connection.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/modbus/tools/generate-connection.py b/modbus/tools/generate-connection.py index 0cd9e61..d279b18 100644 --- a/modbus/tools/generate-connection.py +++ b/modbus/tools/generate-connection.py @@ -282,7 +282,7 @@ def getValueConversionMethod(registerDefinition): return ('ModbusDataUtils::convertToString(values)') -def writePropertyGetSetMethodDeclarations(fileDescriptor, registerDefinitions): +def writePropertyGetSetMethodDeclarationsTcp(fileDescriptor, registerDefinitions): for registerDefinition in registerDefinitions: propertyName = registerDefinition['id'] propertyTyp = getCppDataType(registerDefinition) @@ -300,6 +300,24 @@ def writePropertyGetSetMethodDeclarations(fileDescriptor, registerDefinitions): writeLine(fileDescriptor) +def writePropertyGetSetMethodDeclarationsRtu(fileDescriptor, registerDefinitions): + for registerDefinition in registerDefinitions: + propertyName = registerDefinition['id'] + propertyTyp = getCppDataType(registerDefinition) + if 'unit' in registerDefinition and registerDefinition['unit'] != '': + writeLine(fileDescriptor, ' /* %s [%s] - Address: %s, Size: %s */' % (registerDefinition['description'], registerDefinition['unit'], registerDefinition['address'], registerDefinition['size'])) + else: + writeLine(fileDescriptor, ' /* %s - Address: %s, Size: %s */' % (registerDefinition['description'], registerDefinition['address'], registerDefinition['size'])) + + writeLine(fileDescriptor, ' %s %s() const;' % (propertyTyp, propertyName)) + + # Check if we require a set method + if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'WO': + writeLine(fileDescriptor, ' ModbusRtuReply *set%s(%s %s);' % (propertyName[0].upper() + propertyName[1:], propertyTyp, propertyName)) + + writeLine(fileDescriptor) + + def writePropertyGetSetMethodImplementationsTcp(fileDescriptor, className, registerDefinitions): for registerDefinition in registerDefinitions: propertyName = registerDefinition['id'] @@ -1031,7 +1049,7 @@ def writeRtuHeaderFile(): writeLine(headerFile) # Write registers get/set method declarations - writePropertyGetSetMethodDeclarations(headerFile, registerJson['registers']) + writePropertyGetSetMethodDeclarationsRtu(headerFile, registerJson['registers']) # Write block get/set method declarations writeBlocksUpdateMethodDeclarations(headerFile, registerJson['blocks'])