Skip to content

Commit

Permalink
mavparse.py: append ENUM_END only after merging/sorting to allow exte…
Browse files Browse the repository at this point in the history
…nding enum values in custom message definitions.
  • Loading branch information
mpaperno authored and Andrew Tridgell committed Dec 3, 2014
1 parent aa32024 commit 7e248d6
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions pymavlink/generator/mavparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,6 @@ def start_element(name, attrs):
self.enum[-1].entry[-1].param.append(MAVEnumParam(attrs['index']))

def end_element(name):
in_element = '.'.join(in_element_list)
if in_element == "mavlink.enums.enum":
# add a ENUM_END
self.enum[-1].entry.append(MAVEnumEntry("%s_ENUM_END" % self.enum[-1].name,
self.enum[-1].highest_value+1, end_marker=True))
in_element_list.pop()

def char_data(data):
Expand Down Expand Up @@ -314,19 +309,20 @@ def merge_enums(xml):
newenums = []
for enum in x.enum:
if enum.name in emap:
emap[enum.name].entry.pop() # remove end marker
emap[enum.name].entry.extend(enum.entry)
print("Merged enum %s" % enum.name)
else:
newenums.append(enum)
emap[enum.name] = enum
x.enum = newenums
# sort by value
for e in emap:
# sort by value
emap[e].entry = sorted(emap[e].entry,
key=operator.attrgetter('value'),
reverse=False)

# add a ENUM_END
emap[e].entry.append(MAVEnumEntry("%s_ENUM_END" % emap[e].name,
emap[e].entry[-1].value+1, end_marker=True))

def check_duplicates(xml):
'''check for duplicate message IDs'''
Expand Down

0 comments on commit 7e248d6

Please sign in to comment.