Make access more robust and take care in more situations if a read method is even required

pull/75/head
Simon Stürz 2022-08-08 14:03:47 +02:00
parent 4cd6118d12
commit 8e6f96ac2e
3 changed files with 22 additions and 10 deletions

View File

@ -30,11 +30,11 @@ def writePropertyGetSetMethodDeclarationsRtu(fileDescriptor, registerDefinitions
writeLine(fileDescriptor, ' /* %s - Address: %s, Size: %s */' % (registerDefinition['description'], registerDefinition['address'], registerDefinition['size']))
# Check if we require a read method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'RO':
if 'R' in registerDefinition['access']:
writeLine(fileDescriptor, ' %s %s() const;' % (propertyTyp, propertyName))
# Check if we require a write method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'WO':
if 'W' in registerDefinition['access']:
writeLine(fileDescriptor, ' ModbusRtuReply *set%s(%s %s);' % (propertyName[0].upper() + propertyName[1:], propertyTyp, propertyName))
writeLine(fileDescriptor)
@ -46,7 +46,7 @@ def writePropertyGetSetMethodImplementationsRtu(fileDescriptor, className, regis
propertyTyp = getCppDataType(registerDefinition)
# Check if we require a read method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'RO':
if 'R' in registerDefinition['access']:
if 'enum' in registerDefinition:
writeLine(fileDescriptor, '%s::%s %s::%s() const' % (className, propertyTyp, className, propertyName))
else:
@ -58,7 +58,7 @@ def writePropertyGetSetMethodImplementationsRtu(fileDescriptor, className, regis
writeLine(fileDescriptor)
# Check if we require a write method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'WO':
if 'W' in registerDefinition['access']:
writeLine(fileDescriptor, 'ModbusRtuReply *%s::set%s(%s %s)' % (className, propertyName[0].upper() + propertyName[1:], propertyTyp, propertyName))
writeLine(fileDescriptor, '{')

View File

@ -28,11 +28,11 @@ def writePropertyGetSetMethodDeclarationsTcp(fileDescriptor, registerDefinitions
writeLine(fileDescriptor, ' /* %s - Address: %s, Size: %s */' % (registerDefinition['description'], registerDefinition['address'], registerDefinition['size']))
# Check if we require a read method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'RO':
if 'R' in registerDefinition['access']:
writeLine(fileDescriptor, ' %s %s() const;' % (propertyTyp, propertyName))
# Check if we require a write method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'WO':
if 'W' in registerDefinition['access']:
writeLine(fileDescriptor, ' QModbusReply *set%s(%s %s);' % (propertyName[0].upper() + propertyName[1:], propertyTyp, propertyName))
writeLine(fileDescriptor)
@ -44,7 +44,7 @@ def writePropertyGetSetMethodImplementationsTcp(fileDescriptor, className, regis
propertyTyp = getCppDataType(registerDefinition)
# Check if we require a read method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'RO':
if 'R' in registerDefinition['access']:
if 'enum' in registerDefinition:
writeLine(fileDescriptor, '%s::%s %s::%s() const' % (className, propertyTyp, className, propertyName))
else:
@ -56,7 +56,7 @@ def writePropertyGetSetMethodImplementationsTcp(fileDescriptor, className, regis
writeLine(fileDescriptor)
# Check if we require a write method
if registerDefinition['access'] == 'RW' or registerDefinition['access'] == 'WO':
if 'W' in registerDefinition['access']:
writeLine(fileDescriptor, 'QModbusReply *%s::set%s(%s %s)' % (className, propertyName[0].upper() + propertyName[1:], propertyTyp, propertyName))
writeLine(fileDescriptor, '{')

View File

@ -427,7 +427,7 @@ def writeBlocksUpdateMethodDeclarations(fileDescriptor, blockDefinitions):
def writeRegistersDebugLine(fileDescriptor, debugObjectParamName, registerDefinitions):
for registerDefinition in registerDefinitions:
if registerDefinition['access'] == 'WO':
if not 'R' in registerDefinition['access']:
continue
propertyName = registerDefinition['id']
@ -440,6 +440,9 @@ def writeRegistersDebugLine(fileDescriptor, debugObjectParamName, registerDefini
def writePropertyChangedSignals(fileDescriptor, registerDefinitions):
for registerDefinition in registerDefinitions:
if not 'R' in registerDefinition['access']:
continue
propertyName = registerDefinition['id']
propertyTyp = getCppDataType(registerDefinition)
if propertyTyp == 'QString':
@ -452,6 +455,9 @@ def writePropertyChangedSignals(fileDescriptor, registerDefinitions):
def writeProtectedPropertyMembers(fileDescriptor, registerDefinitions):
for registerDefinition in registerDefinitions:
if not 'R' in registerDefinition['access']:
continue
propertyName = registerDefinition['id']
propertyTyp = getCppDataType(registerDefinition)
if 'defaultValue' in registerDefinition:
@ -463,6 +469,9 @@ def writeProtectedPropertyMembers(fileDescriptor, registerDefinitions):
def writePropertyProcessMethodDeclaration(fileDescriptor, registerDefinitions):
propertyVariables = []
for registerDefinition in registerDefinitions:
if not 'R' in registerDefinition['access']:
continue
propertyName = registerDefinition['id']
writeLine(fileDescriptor, ' void process%sRegisterValues(const QVector<quint16> values);' % (propertyName[0].upper() + propertyName[1:]))
@ -472,6 +481,9 @@ def writePropertyProcessMethodDeclaration(fileDescriptor, registerDefinitions):
def writePropertyProcessMethodImplementations(fileDescriptor, className, registerDefinitions):
propertyVariables = []
for registerDefinition in registerDefinitions:
if not 'R' in registerDefinition['access']:
continue
propertyName = registerDefinition['id']
propertyTyp = getCppDataType(registerDefinition)