diff options
author | Christian Balcom <robot.inventor@gmail.com> | 2022-08-05 17:21:26 +0300 |
---|---|---|
committer | Christian Balcom <robot.inventor@gmail.com> | 2022-08-05 17:21:26 +0300 |
commit | 08487ae13bce377daf553540059222382847870b (patch) | |
tree | 08675a33d479b255f9bdd3fc05888ab9c2d27537 | |
parent | 99490162a781f938bd8cfd40a7c894c2cb0b5857 (diff) |
Generate ENUMTYPE macros for enums instead of MSGTYPE macros.
-rwxr-xr-x | generator/nanopb_generator.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index c9fc4cf..77036b2 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -1422,7 +1422,7 @@ class Message(ProtoElement): result += '#define %s_DEFAULT NULL\n' % Globals.naming_style.define_name(self.name) for field in sorted_fields: - if field.pbtype in ['MESSAGE', 'MSG_W_CB', "UENUM"]: + if field.pbtype in ['MESSAGE', 'MSG_W_CB']: if field.rules == 'ONEOF': result += "#define %s_%s_%s_MSGTYPE %s\n" % ( Globals.naming_style.type_name(self.name), @@ -1437,6 +1437,21 @@ class Message(ProtoElement): Globals.naming_style.type_name(field.ctype) ) + if field.pbtype in ['ENUM', "UENUM"]: + if field.rules == 'ONEOF': + result += "#define %s_%s_%s_ENUMTYPE %s\n" % ( + Globals.naming_style.type_name(self.name), + Globals.naming_style.var_name(field.union_name), + Globals.naming_style.var_name(field.name), + Globals.naming_style.type_name(field.ctype) + ) + else: + result += "#define %s_%s_ENUMTYPE %s\n" % ( + Globals.naming_style.type_name(self.name), + Globals.naming_style.var_name(field.name), + Globals.naming_style.type_name(field.ctype) + ) + return result def fields_declaration_cpp_lookup(self): |