Add registers enum for convinience
parent
4e9f98ddee
commit
d22b5b6e91
|
|
@ -111,6 +111,54 @@ def writeLicenseHeader(fileDescriptor):
|
||||||
writeLine(fileDescriptor)
|
writeLine(fileDescriptor)
|
||||||
|
|
||||||
|
|
||||||
|
def writeRegistersEnum(fileDescriptor, registerJson):
|
||||||
|
print('Writing enum for all registers')
|
||||||
|
|
||||||
|
registerEnums = {}
|
||||||
|
|
||||||
|
# Read all register names and addresses
|
||||||
|
if 'blocks' in registerJson:
|
||||||
|
for blockDefinition in registerJson['blocks']:
|
||||||
|
blockRegisters = blockDefinition['registers']
|
||||||
|
for blockRegister in blockRegisters:
|
||||||
|
registerName = blockRegister['id']
|
||||||
|
registerAddress = blockRegister['address']
|
||||||
|
registerEnums[registerAddress] = registerName
|
||||||
|
|
||||||
|
for registerDefinition in registerJson['registers']:
|
||||||
|
registerName = registerDefinition['id']
|
||||||
|
registerAddress = registerDefinition['address']
|
||||||
|
registerEnums[registerAddress] = registerName
|
||||||
|
|
||||||
|
|
||||||
|
# Sort the enum map
|
||||||
|
registersKeys = registerEnums.keys()
|
||||||
|
sortedRegistersKeys = sorted(registersKeys)
|
||||||
|
sortedRegisterEnumList = []
|
||||||
|
|
||||||
|
print('Sorted registers')
|
||||||
|
for registerAddress in sortedRegistersKeys:
|
||||||
|
print('--> %s : %s' % (registerAddress, registerEnums[registerAddress]))
|
||||||
|
enumData = {}
|
||||||
|
enumData['key'] = registerEnums[registerAddress]
|
||||||
|
enumData['value'] = registerAddress
|
||||||
|
sortedRegisterEnumList.append(enumData)
|
||||||
|
|
||||||
|
enumName = 'Registers'
|
||||||
|
writeLine(fileDescriptor, ' enum %s {' % enumName)
|
||||||
|
for i in range(len(sortedRegisterEnumList)):
|
||||||
|
enumData = sortedRegisterEnumList[i]
|
||||||
|
line = (' Register%s = %s' % (enumData['key'][0].upper() + enumData['key'][1:] , enumData['value']))
|
||||||
|
if i < (len(sortedRegisterEnumList) - 1):
|
||||||
|
line += ','
|
||||||
|
|
||||||
|
writeLine(fileDescriptor, line)
|
||||||
|
|
||||||
|
writeLine(fileDescriptor, ' };')
|
||||||
|
writeLine(fileDescriptor, ' Q_ENUM(%s)' % enumName)
|
||||||
|
writeLine(fileDescriptor)
|
||||||
|
|
||||||
|
|
||||||
def writeEnumDefinition(fileDescriptor, enumDefinition):
|
def writeEnumDefinition(fileDescriptor, enumDefinition):
|
||||||
print('Writing enum', enumDefinition)
|
print('Writing enum', enumDefinition)
|
||||||
enumName = enumDefinition['name']
|
enumName = enumDefinition['name']
|
||||||
|
|
@ -900,6 +948,9 @@ def writeTcpHeaderFile():
|
||||||
# Public members
|
# Public members
|
||||||
writeLine(headerFile, 'public:')
|
writeLine(headerFile, 'public:')
|
||||||
|
|
||||||
|
# Write enum for all register values
|
||||||
|
writeRegistersEnum(headerFile, registerJson)
|
||||||
|
|
||||||
# Enum declarations
|
# Enum declarations
|
||||||
if 'enums' in registerJson:
|
if 'enums' in registerJson:
|
||||||
for enumDefinition in registerJson['enums']:
|
for enumDefinition in registerJson['enums']:
|
||||||
|
|
@ -1060,6 +1111,9 @@ def writeRtuHeaderFile():
|
||||||
# Public members
|
# Public members
|
||||||
writeLine(headerFile, 'public:')
|
writeLine(headerFile, 'public:')
|
||||||
|
|
||||||
|
# Write enum for all register values
|
||||||
|
writeRegistersEnum(headerFile, registerJson)
|
||||||
|
|
||||||
# Enum declarations
|
# Enum declarations
|
||||||
if 'enums' in registerJson:
|
if 'enums' in registerJson:
|
||||||
for enumDefinition in registerJson['enums']:
|
for enumDefinition in registerJson['enums']:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue