def generateHeaders(XML_FILE):

    filename = XML_FILE.split("/")[-1][:-4]
    outputpath = OUTPUT_FOLDER + filename + "/mavlink.h"

    #print os.path.getmtime(outputpath)
    #print os.path.getmtime(XML_FILE)

    #try:
    #    if os.path.getmtime(XML_FILE) < os.path.getmtime(outputpath):
    #        print "NOTHING TO BE DONE FOR: " + XML_FILE + " already generated newer version"
    #        return 0
    #except OSError:
    #    pass

    # Generate headers
    opts = MavgenOptions(LANGUAGE, PROTOCOL, OUTPUT_FOLDER, ERROR_LIMIT);
    args = [XML_FILE]

    try:
        mavgen(opts,args)
    except Exception as ex:
        exStr = formatErrorMessage(str(ex));

        print exStr
        return 1
    return 0
Ejemplo n.º 2
0
    def generateHeaders(self):
        # Verify settings
        rex = re.compile(".*\\.xml$", re.IGNORECASE)
        if not self.xml_value.get():
            tkinter.messagebox.showerror('Error Generating Headers','An XML message defintion file must be specified.')
            return

        if not self.out_value.get():
            tkinter.messagebox.showerror('Error Generating Headers', 'An output directory must be specified.')
            return


        if os.path.isdir(self.out_value.get()):
            if not tkinter.messagebox.askokcancel('Overwrite Headers?','The output directory \'{0}\' already exists. Headers may be overwritten if they already exist.'.format(self.out_value.get())):
                return

        # Verify XML file with schema (or do this in mavgen)
        # TODO write XML schema (XDS)

        # Generate headers
        opts = MavgenOptions(self.language_value.get(), self.protocol_value.get()[1:], self.out_value.get());
        args = [self.xml_value.get()]
        if DEBUG:
            print("Generating headers")
            self.pp.pprint(opts)
            self.pp.pprint(args)
        try:
            mavgen(opts,args)
            tkinter.messagebox.showinfo('Successfully Generated Headers', 'Headers generated succesfully.')

        except Exception as ex:
            if DEBUG:
                print('An occurred while generating headers:\n\t{0!s}'.format(ex))
            tkinter.messagebox.showerror('Error Generating Headers','An error occurred in mavgen: {0!s}'.format(ex))
            return
Ejemplo n.º 3
0
    def generateHeaders(self):
        # Verify settings
        rex = re.compile(".*\\.xml$", re.IGNORECASE)
        if not self.xml_value.get():
            tkinter.messagebox.showerror(
                'Error Generating Headers',
                'An XML message defintion file must be specified.')
            return

        if not self.out_value.get():
            tkinter.messagebox.showerror(
                'Error Generating Headers',
                'An output directory must be specified.')
            return

        if os.path.isdir(self.out_value.get()):
            if not tkinter.messagebox.askokcancel(
                    'Overwrite Headers?',
                    'The output directory \'{0}\' already exists. Headers may be overwritten if they already exist.'
                    .format(self.out_value.get())):
                return

        # Verify XML file with schema (or do this in mavgen)
        # TODO write XML schema (XDS)

        # Generate headers
        opts = MavgenOptions(self.language_value.get(),
                             self.protocol_value.get()[1:],
                             self.out_value.get(), error_limit)
        args = [self.xml_value.get()]
        if DEBUG:
            print("Generating headers")
            self.pp.pprint(opts)
            self.pp.pprint(args)
        try:
            mavgen(opts, args)
            tkinter.messagebox.showinfo('Successfully Generated Headers',
                                        'Headers generated succesfully.')

        except Exception as ex:
            exStr = formatErrorMessage(str(ex))
            if DEBUG:
                print('An occurred while generating headers:\n\t{0!s}'.format(
                    ex))
            tkinter.messagebox.showerror('Error Generating Headers',
                                         '{0!s}'.format(exStr))
            return
Ejemplo n.º 4
0
    import tkinter.filedialog
    import tkinter.messagebox
except ImportError as ex:
    # Must be using Python 2.x, import and rename
    from Tkinter import *
    import tkFileDialog
    import tkMessageBox

    tkinter.filedialog = tkFileDialog
    del tkFileDialog
    tkinter.messagebox = tkMessageBox
    del tkMessageBox

sys.path.append(os.path.join('pymavlink', 'generator'))
from mavgen import *


class MavgenOptions:
    def __init__(self, language, protocol, output, error_limit):
        self.language = language
        self.wire_protocol = protocol
        self.output = output
        self.error_limit = error_limit


if __name__ == '__main__':
    # Generate headers
    opts = MavgenOptions('Java', '1.0', '../src/com/MAVLink/Messages', '200')
    args = ['./message_definitions/ardupilotmega.xml']
    mavgen(opts, args)
Ejemplo n.º 5
0
    from tkinter import *
    import tkinter.filedialog
    import tkinter.messagebox
except ImportError as ex:
    # Must be using Python 2.x, import and rename
    from Tkinter import *
    import tkFileDialog
    import tkMessageBox

    tkinter.filedialog = tkFileDialog
    del tkFileDialog
    tkinter.messagebox = tkMessageBox
    del tkMessageBox

sys.path.append(os.path.join('pymavlink','generator'))
from mavgen import *

class MavgenOptions:
    def __init__(self,language,protocol,output,error_limit):
        self.language = language
        self.wire_protocol = protocol
        self.output = output
        self.error_limit = error_limit;


if __name__ == '__main__':
# Generate headers
    opts = MavgenOptions('Java', '1.0', '../src/com/MAVLink/Messages', '200');
    args = ['./message_definitions/ardupilotmega.xml']
    mavgen(opts,args)