From: Petteri Aimonen Date: Sat, 12 Sep 2015 09:15:27 +0000 (+0300) Subject: Add packed_enum option to generator. X-Git-Tag: 5.0.2~186^2~124 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=612a51c608504f59fcd86c74eedac2903f088a0a;p=apps%2Fagl-service-can-low-level.git Add packed_enum option to generator. This can be generally useful for saving RAM, but also makes it easier to test for issue #164. --- diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 8fd45372..aaa0d2f1 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -160,11 +160,17 @@ class Enum: self.values = [(names + x.name, x.number) for x in desc.value] self.value_longnames = [self.names + x.name for x in desc.value] + self.packed = enum_options.packed_enum def __str__(self): result = 'typedef enum _%s {\n' % self.names result += ',\n'.join([" %s = %d" % x for x in self.values]) - result += '\n} %s;' % self.names + result += '\n}' + + if self.packed: + result += ' pb_packed' + + result += ' %s;' % self.names if not self.options.long_names: # Define the long names always so that enum value references diff --git a/generator/proto/nanopb.proto b/generator/proto/nanopb.proto index 3f2ed8e0..b8671bbd 100644 --- a/generator/proto/nanopb.proto +++ b/generator/proto/nanopb.proto @@ -51,6 +51,9 @@ message NanoPBOptions { // accesses to variables. optional bool packed_struct = 5 [default = false]; + // Add 'packed' attribute to generated enums. + optional bool packed_enum = 10 [default = false]; + // Skip this message optional bool skip_message = 6 [default = false];