diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-14 10:38:34 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-14 10:38:34 +0200 |
commit | 51a4ef5de1bc542ac4f7072d95250cd62ea73ed6 (patch) | |
tree | b71db4faea6a0ac39e4fa28481421a2acc13a896 /mavlink/share/pyshared/pymavlink/generator/mavgen.py | |
parent | 5e0911046173e01a6c66b91d3e38212e093159d0 (diff) | |
parent | ddc8f1fa5f5b88549af5e4f5f46c751a5f3af3ce (diff) | |
download | px4-firmware-sbus2_sensors.tar.gz px4-firmware-sbus2_sensors.tar.bz2 px4-firmware-sbus2_sensors.zip |
merged upstream/master into sbus2_sensorssbus2_sensors
Diffstat (limited to 'mavlink/share/pyshared/pymavlink/generator/mavgen.py')
-rw-r--r-- | mavlink/share/pyshared/pymavlink/generator/mavgen.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/mavlink/share/pyshared/pymavlink/generator/mavgen.py b/mavlink/share/pyshared/pymavlink/generator/mavgen.py deleted file mode 100644 index 05f71f778..000000000 --- a/mavlink/share/pyshared/pymavlink/generator/mavgen.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python -''' -parse a MAVLink protocol XML file and generate a python implementation - -Copyright Andrew Tridgell 2011 -Released under GNU GPL version 3 or later -''' - -def mavgen(opts, args) : - """Generate mavlink message formatters and parsers (C and Python ) using options - and args where args are a list of xml files. This function allows python - scripts under Windows to control mavgen using the same interface as - shell scripts under Unix""" - import sys, textwrap, os - - import mavparse - import mavgen_python - import mavgen_c - - xml = [] - - for fname in args: - print("Parsing %s" % fname) - xml.append(mavparse.MAVXML(fname, opts.wire_protocol)) - - # expand includes - for x in xml[:]: - for i in x.include: - fname = os.path.join(os.path.dirname(x.filename), i) - print("Parsing %s" % fname) - xml.append(mavparse.MAVXML(fname, opts.wire_protocol)) - - # include message lengths and CRCs too - for idx in range(0, 256): - if x.message_lengths[idx] == 0: - x.message_lengths[idx] = xml[-1].message_lengths[idx] - x.message_crcs[idx] = xml[-1].message_crcs[idx] - x.message_names[idx] = xml[-1].message_names[idx] - - # work out max payload size across all includes - largest_payload = 0 - for x in xml: - if x.largest_payload > largest_payload: - largest_payload = x.largest_payload - for x in xml: - x.largest_payload = largest_payload - - if mavparse.check_duplicates(xml): - sys.exit(1) - - print("Found %u MAVLink message types in %u XML files" % ( - mavparse.total_msgs(xml), len(xml))) - - if opts.language == 'python': - mavgen_python.generate(opts.output, xml) - elif opts.language == 'C': - mavgen_c.generate(opts.output, xml) - else: - print("Unsupported language %s" % opts.language) - - -if __name__=="__main__": - import sys, textwrap, os - - from optparse import OptionParser - - # allow import from the parent directory, where mavutil.py is - sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '..')) - - import mavparse - import mavgen_python - import mavgen_c - - parser = OptionParser("%prog [options] <XML files>") - parser.add_option("-o", "--output", dest="output", default="mavlink", help="output directory.") - parser.add_option("--lang", dest="language", default="python", help="language of generated code: 'Python' or 'C' [default: %default]") - parser.add_option("--wire-protocol", dest="wire_protocol", default=mavparse.PROTOCOL_0_9, help="MAVLink protocol version: '0.9' or '1.0'. [default: %default]") - (opts, args) = parser.parse_args() - - if len(args) < 1: - parser.error("You must supply at least one MAVLink XML protocol definition") - mavgen(opts, args) |