def __init__(self): self.input_queue = Queue.Queue() self.rl = None self.console = wxconsole.MessageConsole(title='MAVExplorer') self.exit = False self.status = MEStatus() self.settings = MPSettings( [ MPSetting('marker', str, '+', 'data marker', tab='Graph'), MPSetting('condition', str, None, 'condition'), MPSetting('xaxis', str, None, 'xaxis'), MPSetting('linestyle', str, None, 'linestyle'), MPSetting('show_flightmode', bool, True, 'show flightmode'), MPSetting('legend', str, 'upper left', 'legend position'), MPSetting('legend2', str, 'upper right', 'legend2 position') ] ) self.mlog = None self.command_map = command_map self.completions = { "set" : ["(SETTING)"], "condition" : ["(VARIABLE)"], "graph" : ['(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)'], "map" : ['(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)'] } self.aliases = {} self.graphs = [] self.flightmode_selections = [] self.last_graph = GraphDefinition('Untitled', '', '', [], None)
def init(_mpstate): '''initialise module''' global mpstate mpstate = _mpstate mpstate.console_state = module_state() mpstate.console = wxconsole.MessageConsole(title='Console') # setup some default status information mpstate.console.set_status('Mode', 'UNKNOWN', row=0, fg='blue') mpstate.console.set_status('GPS', 'GPS: --', fg='red', row=0) mpstate.console.set_status('Vcc', 'Vcc: --', fg='red', row=0) mpstate.console.set_status('Radio', 'Radio: --', row=0) mpstate.console.set_status('Heading', 'Hdg ---/---', row=2) mpstate.console.set_status('Alt', 'Alt ---', row=2) mpstate.console.set_status('AGL', 'AGL ---', row=2) mpstate.console.set_status('AirSpeed', 'AirSpeed --', row=2) mpstate.console.set_status('GPSSpeed', 'GPSSpeed --', row=2) mpstate.console.set_status('Thr', 'Thr ---', row=2) mpstate.console.set_status('Roll', 'Roll ---', row=2) mpstate.console.set_status('Pitch', 'Pitch ---', row=2) mpstate.console.set_status('WP', 'WP --', row=3) mpstate.console.set_status('WPDist', 'Distance ---', row=3) mpstate.console.set_status('WPBearing', 'Bearing ---', row=3) mpstate.console.set_status('AltError', 'AltError --', row=3) mpstate.console.set_status('AspdError', 'AspdError --', row=3) mpstate.console.set_status('FlightTime', 'FlightTime --', row=3) mpstate.console.set_status('ETR', 'ETR --', row=3) mpstate.console.ElevationMap = mp_elevation.ElevationModel()
def __init__(self, mpstate): super(ConsoleModule, self).__init__(mpstate, "console", "GUI console", public=True, multi_vehicle=True) self.in_air = False self.start_time = 0.0 self.total_time = 0.0 self.speed = 0 self.max_link_num = 0 self.last_sys_status_health = 0 mpstate.console = wxconsole.MessageConsole(title='Console') # setup some default status information mpstate.console.set_status('Mode', 'UNKNOWN', row=0, fg='blue') mpstate.console.set_status('SysID', '', row=0, fg='blue') mpstate.console.set_status('ARM', 'ARM', fg='grey', row=0) mpstate.console.set_status('GPS', 'GPS: --', fg='red', row=0) mpstate.console.set_status('Vcc', 'Vcc: --', fg='red', row=0) mpstate.console.set_status('Radio', 'Radio: --', row=0) mpstate.console.set_status('INS', 'INS', fg='grey', row=0) mpstate.console.set_status('MAG', 'MAG', fg='grey', row=0) mpstate.console.set_status('AS', 'AS', fg='grey', row=0) mpstate.console.set_status('RNG', 'RNG', fg='grey', row=0) mpstate.console.set_status('AHRS', 'AHRS', fg='grey', row=0) mpstate.console.set_status('EKF', 'EKF', fg='grey', row=0) mpstate.console.set_status('LOG', 'LOG', fg='grey', row=0) mpstate.console.set_status('Heading', 'Hdg ---/---', row=2) mpstate.console.set_status('Alt', 'Alt ---', row=2) mpstate.console.set_status('AGL', 'AGL ---/---', row=2) mpstate.console.set_status('AirSpeed', 'AirSpeed --', row=2) mpstate.console.set_status('GPSSpeed', 'GPSSpeed --', row=2) mpstate.console.set_status('Thr', 'Thr ---', row=2) mpstate.console.set_status('Roll', 'Roll ---', row=2) mpstate.console.set_status('Pitch', 'Pitch ---', row=2) mpstate.console.set_status('Wind', 'Wind ---/---', row=2) mpstate.console.set_status('WP', 'WP --', row=3) mpstate.console.set_status('WPDist', 'Distance ---', row=3) mpstate.console.set_status('WPBearing', 'Bearing ---', row=3) mpstate.console.set_status('AltError', 'AltError --', row=3) mpstate.console.set_status('AspdError', 'AspdError --', row=3) mpstate.console.set_status('FlightTime', 'FlightTime --', row=3) mpstate.console.set_status('ETR', 'ETR --', row=3) mpstate.console.ElevationMap = mp_elevation.ElevationModel() self.vehicle_list = [] self.vehicle_menu = None self.vehicle_name_by_sysid = {} self.component_name = {} self.last_param_sysid_timestamp = None # create the main menu if mp_util.has_wxpython: self.menu = MPMenuTop([]) self.add_menu(MPMenuSubMenu('MAVProxy', items=[MPMenuItem('Settings', 'Settings', 'menuSettings'), MPMenuItem('Map', 'Load Map', '# module load map')])) self.vehicle_menu = MPMenuSubMenu('Vehicle', items=[]) self.add_menu(self.vehicle_menu)
def __init__(self): self.input_queue = multiproc.Queue() self.rl = None self.console = wxconsole.MessageConsole(title='MAVExplorer') self.exit = False self.status = MEStatus() self.settings = MPSettings([ MPSetting('marker', str, '+', 'data marker', tab='Graph'), MPSetting('condition', str, None, 'condition'), MPSetting('xaxis', str, None, 'xaxis'), MPSetting('linestyle', str, None, 'linestyle'), MPSetting('show_flightmode', bool, True, 'show flightmode'), MPSetting('sync_xzoom', bool, True, 'sync X-axis zoom'), MPSetting('sync_xmap', bool, True, 'sync X-axis zoom for map'), MPSetting('legend', str, 'upper left', 'legend position'), MPSetting('legend2', str, 'upper right', 'legend2 position'), MPSetting('title', str, None, 'Graph title'), MPSetting('debug', int, 0, 'debug level'), MPSetting('paramdocs', bool, True, 'show param docs'), ]) self.mlog = None self.mav_param = None self.filename = None self.command_map = command_map self.completions = { "set": ["(SETTING)"], "condition": ["(VARIABLE)"], "graph": [ '(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)' ], "map": ['(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)'], "param": ['download', 'check', 'help (PARAMETER)'], } self.aliases = {} self.graphs = [] self.flightmode_selections = [] self.last_graph = GraphDefinition(self.settings.title, '', '', [], None) #pipe to the wxconsole for any child threads (such as the save dialog box) self.parent_pipe_recv_console, self.child_pipe_send_console = multiproc.Pipe( duplex=False) #pipe for creating graphs (such as from the save dialog box) self.parent_pipe_recv_graph, self.child_pipe_send_graph = multiproc.Pipe( duplex=False) self.param_help = param_help.ParamHelp() tConsoleWrite = threading.Thread(target=self.pipeRecvConsole) tConsoleWrite.daemon = True tConsoleWrite.start() tGraphWrite = threading.Thread(target=self.pipeRecvGraph) tGraphWrite.daemon = True tGraphWrite.start()
def __init__(self, mpstate): super(ConsoleModule, self).__init__(mpstate, "console", "GUI console", public=True) self.in_air = False self.start_time = 0.0 self.total_time = 0.0 self.speed = 0 self.max_link_num = 0 mpstate.console = wxconsole.MessageConsole(title='Console') # setup some default status information mpstate.console.set_status('Mode', 'UNKNOWN', row=0, fg='blue') mpstate.console.set_status('GPS', 'GPS: --', fg='red', row=0) mpstate.console.set_status('Vcc', 'Vcc: --', fg='red', row=0) mpstate.console.set_status('Radio', 'Radio: --', row=0) mpstate.console.set_status('INS', 'INS', fg='grey', row=0) mpstate.console.set_status('MAG', 'MAG', fg='grey', row=0) mpstate.console.set_status('AS', 'AS', fg='grey', row=0) mpstate.console.set_status('RNG', 'RNG', fg='grey', row=0) mpstate.console.set_status('AHRS', 'AHRS', fg='grey', row=0) mpstate.console.set_status('Heading', 'Hdg ---/---', row=2) mpstate.console.set_status('Alt', 'Alt ---', row=2) mpstate.console.set_status('AGL', 'AGL ---/---', row=2) mpstate.console.set_status('AirSpeed', 'AirSpeed --', row=2) mpstate.console.set_status('GPSSpeed', 'GPSSpeed --', row=2) mpstate.console.set_status('Thr', 'Thr ---', row=2) mpstate.console.set_status('Roll', 'Roll ---', row=2) mpstate.console.set_status('Pitch', 'Pitch ---', row=2) mpstate.console.set_status('Wind', 'Wind ---/---', row=2) mpstate.console.set_status('WP', 'WP --', row=3) mpstate.console.set_status('WPDist', 'Distance ---', row=3) mpstate.console.set_status('WPBearing', 'Bearing ---', row=3) mpstate.console.set_status('AltError', 'AltError --', row=3) mpstate.console.set_status('AspdError', 'AspdError --', row=3) mpstate.console.set_status('FlightTime', 'FlightTime --', row=3) mpstate.console.set_status('ETR', 'ETR --', row=3) mpstate.console.ElevationMap = mp_elevation.ElevationModel() # create the main menu self.menu = MPMenuTop([]) self.add_menu( MPMenuSubMenu('MAVProxy', items=[ MPMenuItem('Settings', 'Settings', 'menuSettings'), MPMenuItem('Map', 'Load Map', '# module load map') ]))
def __init__(self): self.input_queue = queue.Queue() self.rl = None self.console = wxconsole.MessageConsole(title='MAVExplorer') self.exit = False self.status = MEStatus() self.settings = MPSettings([ MPSetting('marker', str, '+', 'data marker', tab='Graph'), MPSetting('condition', str, None, 'condition'), MPSetting('xaxis', str, None, 'xaxis'), MPSetting('linestyle', str, None, 'linestyle'), MPSetting('show_flightmode', bool, True, 'show flightmode'), MPSetting('legend', str, 'upper left', 'legend position'), MPSetting('legend2', str, 'upper right', 'legend2 position') ]) self.mlog = None self.command_map = command_map self.completions = { "set": ["(SETTING)"], "condition": ["(VARIABLE)"], "graph": [ '(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)' ], "map": ['(VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE) (VARIABLE)'] } self.aliases = {} self.graphs = [] self.flightmode_selections = [] self.last_graph = GraphDefinition('Untitled', '', '', [], None) #pipe to the wxconsole for any child threads (such as the save dialog box) self.parent_pipe_recv_console, self.child_pipe_send_console = Pipe( duplex=False) #pipe for creating graphs (such as from the save dialog box) self.parent_pipe_recv_graph, self.child_pipe_send_graph = Pipe( duplex=False) tConsoleWrite = threading.Thread(target=self.pipeRecvConsole) tConsoleWrite.daemon = True tConsoleWrite.start() tGraphWrite = threading.Thread(target=self.pipeRecvGraph) tGraphWrite.daemon = True tGraphWrite.start()
def __init__(self, mpstate): super(MDlinkModule, self).__init__(mpstate, "mdlink", "GUI mdlink", public=True) self.in_air = False self.start_time = 0.0 self.total_time = 0.0 self.speed = 0 self.max_link_num = 0 mpstate.mdlink = wxconsole.MessageConsole(title='MDlink') #======================================================================== self.MissionDirector_time_between_hbs = 1 self.MissionDirector_time_of_last_hb = -100 self.current_wp = 0 self.wp_to_loiter_at = 3 self.loiter_command_given = 0 self.time_when_loiter_given = 0.0 self.time_to_loiter_until_returning_home = 60.0 self.return_home_command_given = 0 #======================================================================== # setup some default status information mpstate.mdlink.set_status('Mode', 'UNKNOWN', row=0, fg='blue') mpstate.mdlink.set_status('GPS', 'GPS: --', fg='red', row=0) mpstate.mdlink.set_status('Vcc', 'Vcc: --', fg='red', row=0) mpstate.mdlink.set_status('Radio', 'Radio: --', row=0) mpstate.mdlink.set_status('INS', 'INS', fg='grey', row=0) mpstate.mdlink.set_status('MAG', 'MAG', fg='grey', row=0) mpstate.mdlink.set_status('AS', 'AS', fg='grey', row=0) mpstate.mdlink.set_status('RNG', 'RNG', fg='grey', row=0) mpstate.mdlink.set_status('AHRS', 'AHRS', fg='grey', row=0) mpstate.mdlink.set_status('Heading', 'Hdg ---/---', row=2) mpstate.mdlink.set_status('Alt', 'Alt ---', row=2) mpstate.mdlink.set_status('AGL', 'AGL ---/---', row=2) mpstate.mdlink.set_status('AirSpeed', 'AirSpeed --', row=2) mpstate.mdlink.set_status('GPSSpeed', 'GPSSpeed --', row=2) mpstate.mdlink.set_status('Thr', 'Thr ---', row=2) mpstate.mdlink.set_status('Roll', 'Roll ---', row=2) mpstate.mdlink.set_status('Pitch', 'Pitch ---', row=2) mpstate.mdlink.set_status('Wind', 'Wind ---/---', row=2) mpstate.mdlink.set_status('WP', 'WP --', row=3) mpstate.mdlink.set_status('WPDist', 'Distance ---', row=3) mpstate.mdlink.set_status('WPBearing', 'Bearing ---', row=3) mpstate.mdlink.set_status('AltError', 'AltError --', row=3) mpstate.mdlink.set_status('AspdError', 'AspdError --', row=3) mpstate.mdlink.set_status('FlightTime', 'FlightTime --', row=3) mpstate.mdlink.set_status('ETR', 'ETR --', row=3) mpstate.mdlink.ElevationMap = mp_elevation.ElevationModel() # create the main menu self.menu = MPMenuTop([]) self.add_menu( MPMenuSubMenu('MAVProxy', items=[ MPMenuItem('Settings', 'Settings', 'menuSettings'), MPMenuItem('Map', 'Load Map', '# module load map') ]))
def __init__(self, mpstate): super(ConsoleModule, self).__init__(mpstate, "console", "Raven console", public=True, multi_vehicle=True) self.in_air = False self.start_time = 0.0 self.total_time = 0.0 self.speed = 0 self.max_link_num = 0 self.last_sys_status_health = 0 mpstate.console = wxconsole.MessageConsole(title='Raven Console') # setup some default status information mpstate.console.set_status('Mode', 'UNKNOWN', row=0, fg='blue') mpstate.console.set_status('SysID', '', row=0, fg='blue') mpstate.console.set_status('ARM', 'ARM', fg='grey', row=0) mpstate.console.set_status('GPS', 'GPS: --', fg='red', row=0) mpstate.console.set_status('Vcc', 'Vcc: --', fg='red', row=0) mpstate.console.set_status('Radio', 'Radio: --', row=0) mpstate.console.set_status('INS', 'INS', fg='grey', row=0) mpstate.console.set_status('MAG', 'MAG', fg='grey', row=0) mpstate.console.set_status('AS', 'AS', fg='grey', row=0) mpstate.console.set_status('RNG', 'RNG', fg='grey', row=0) mpstate.console.set_status('AHRS', 'AHRS', fg='grey', row=0) mpstate.console.set_status('EKF', 'EKF', fg='grey', row=0) mpstate.console.set_status('LOG', 'LOG', fg='grey', row=0) mpstate.console.set_status('Heading', 'Head ---/---', row=2) mpstate.console.set_status('Alt', 'Alt ---', row=2) mpstate.console.set_status('AGL', 'AGL ---/---', row=2) mpstate.console.set_status('AirSpeed', 'AirSpeed --', row=2) mpstate.console.set_status('GPSSpeed', 'GPSSpeed --', row=2) mpstate.console.set_status('Thr', 'Thr ---', row=2) mpstate.console.set_status('Roll', 'Roll ---', row=2) mpstate.console.set_status('Pitch', 'Pitch ---', row=2) mpstate.console.set_status('Wind', 'Wind ---/---', row=2) mpstate.console.set_status('WP', 'WP --', row=3) mpstate.console.set_status('WPDist', 'Distance ---', row=3) mpstate.console.set_status('WPBearing', 'Bearing ---', row=3) mpstate.console.set_status('AltError', 'AltError --', row=3) mpstate.console.set_status('AspdError', 'AspdError --', row=3) mpstate.console.set_status('FlightTime', 'FlightTime --', row=3) mpstate.console.set_status('ETR', 'ETR --', row=3) mpstate.console.ElevationMap = mp_elevation.ElevationModel() self.vehicle_list = [] self.vehicle_menu = None self.vehicle_name_by_sysid = {} self.last_param_sysid_timestamp = None # create the main menu if mp_util.has_wxpython: self.menu = MPMenuTop([]) self.arm_menu = MPMenuSubMenu( 'Arm/Disarm', items=[ MPMenuItem('Arming', 'Arming', '# arm throttle'), MPMenuItem('Disarming', 'Disarming', '# disarm') ]) self.graph_menu = MPMenuSubMenu( 'Add Graph', items=[ MPMenuItem('Ground and Air Speed', 'Ground and Air Speed', '# graph VFR_HUD.groundspeed VFR_HUD.airspeed'), MPMenuItem( 'Attitude/Roll and Pitch', 'Attitude/Roll and Pitch', '# graph degrees(ATTITUDE.roll) degrees(ATTITUDE.pitch)' ), MPMenuItem('Altitude', 'Altitude', '# graph VFR_HUD.alt') ]) self.add_menu( MPMenuSubMenu('Main Menu', items=[ self.arm_menu, MPMenuItem('Settings', 'Settings', 'menuSettings'), MPMenuItem('Add Graph Module', 'Load Graph', '# module load graph'), MPMenuItem('Add Map Module', 'Load Map', '# module load map'), self.graph_menu, MPMenuItem('Prachute Release', 'Load Parachute', '# parachute release'), MPMenuItem('Save Data', 'Save Data', '# param save data.csv') ]))