Beispiel #1
0
    def __init__(self):
        wx.Frame.__init__(self,
                          id=-1,
                          parent=None,
                          name=u'RCWatchFrame',
                          size=wx.Size(WIDTH, HEIGHT),
                          title=u'RC Status')
        self.Bind(wx.EVT_CLOSE, self.OnClose)

        self.rc_statusText = wx.StaticText(self, -1, "UNKWN")

        pygame.mixer.init()
        self.alertSound = pygame.mixer.Sound("crossing.wav")
        self.alertChannel = pygame.mixer.Channel(False)

        self.setFont(self.rc_statusText)

        self.notification = pynotify.Notification("RC Link Warning!",
                                                  "RC Link status not OK!",
                                                  "dialog-warning")

        self.rc_status = -1

        pynotify.init("RC Status")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.rc_statusText, 1, wx.EXPAND)
        self.SetSizer(sizer)
        sizer.Layout()
        self.interface = IvyMessagesInterface("radiowatchframe")
        self.interface.subscribe(self.message_recv)
        self.update_timer = wx.CallLater(UPDATE_INTERVAL, self.gui_update)
Beispiel #2
0
    def __init__(self, parent, frame):
        self.parent = parent  # we are drawing on our parent, so dc comes from this
        self.frame = frame  # the frame owns any controls we might need to update

        parent.SetDropTarget(TextDropTarget(self))  # calls self.OnDropText when drag and drop complete

        self.width = 800
        self.height = 200
        self.margin = min(self.height / 10, 20)
        self.font = wx.Font(self.margin / 2, wx.DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
        self.pixmap = wx.EmptyBitmap(self.width, self.height)
        self.plot_size = self.width
        self.max = -1e32
        self.min = 1e32
        self.plot_interval = 200
        self.plots = {}
        self.auto_scale = True
        self.offset = 0.0
        self.scale = 1.0
        self.x_axis = None

        messages_xml_map.parse_messages()

        self.ivy_interface = IvyMessagesInterface(_IVY_APPNAME)

        # start the timer
        self.timer = wx.FutureCall(self.plot_interval, self.OnTimer)
Beispiel #3
0
 def __init__(self, redishost, redisport, verbose=False):
     self.verbose = verbose
     self.interface = IvyMessagesInterface(self.message_recv)
     self.r = redis.StrictRedis(host=redishost, port=redisport, db=0)
     self.keep_running = True
     print("Connected to redis server %s on port %i" %
           (redishost, redisport))
    def __init__(self, parent, callback, initIvy=True):
        wx.Frame.__init__(self, parent, name="MessagePicker", title=u'Message Picker', size=wx.Size(320,640))

        self.aircrafts = {}
        self.callback = callback

        self.tree = wx.TreeCtrl(self)
        self.root = self.tree.AddRoot("Telemetry")
        self.tree.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick)
        self.tree.Bind(wx.EVT_CHAR, self.OnKeyChar)
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.message_interface = IvyMessagesInterface(self.msg_recv, initIvy)
Beispiel #5
0
    def __init__(self, msg_class="telemetry"):
        wx.Frame.__init__(self, id=-1, parent=None, name=u'MessagesFrame', size=wx.Size(WIDTH, HEIGHT), style=wx.DEFAULT_FRAME_STYLE, title=u'Messages')
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.notebook = wx.Notebook(self)
        self.aircrafts = {}

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.notebook, 1, wx.EXPAND)
        self.SetSizer(sizer)
        sizer.Layout()
        self.timer = threading.Timer(0.1, self.update_leds)
        self.timer.start()
        self.msg_class = msg_class
        self.interface = IvyMessagesInterface(self.message_recv)
Beispiel #6
0
 def __init__(self, ac_id, verbose=False):
     self.ac_id = ac_id
     self.verbose = verbose
     self._interface = None
     self.auto2_index = None
     try:
         settings = PaparazziACSettings(self.ac_id)
     except Exception as e:
         print(e)
         return
     try:
         self.auto2_index = settings.name_lookup['auto2'].index
     except Exception as e:
         print(e)
         print("auto2 setting not found, mode change not possible.")
     self._interface = IvyMessagesInterface(self.message_recv)
Beispiel #7
0
 def __init__(self, verbose=False):
     self.verbose = verbose
     self._interface = IvyMessagesInterface("WaypointMover")
Beispiel #8
0
                "%s %s CONFIG_REQ %s" % (larg[0], larg[1], larg[2]))


if __name__ == "__main__":
    signal.signal(signal.SIGINT, signal_handler)

    if len(sys.argv) < 2:
        print "Must supply one argument (ac_id)"
        sys.exit(-1)

    aircraft_id = int(sys.argv[1])

    dmw.init()
    dmw.init_pub("ground%d" % (aircraft_id))

    interface = IvyMessagesInterface(process_messages,
                                     bind_regex='(.*)',
                                     verbose=True)
    ivyId1 = IvyBindMsg(on_aircraft_req_msg, '((\\S*) (\\S*) AIRCRAFTS_REQ)')
    ivyId2 = IvyBindMsg(on_config_req_msg, '((\\S*) (\\S*) CONFIG_REQ (\\S*))')

    # Subscribe to messages from gcs.
    t = SubscriptionThread(interface, aircraft_id)
    t.setDaemon(True)
    t.start()

    while True:
        time.sleep(0.1)

    print("Exiting app")
 def __init__(self, verbose=False):
     self.verbose = verbose
     self._interface = IvyMessagesInterface(self.message_recv)
Beispiel #10
0
def on_aircrafts_msg( self, agent, *larg ):
    dmw.publish( "pprz", "opaque", "%s %s AIRCRAFTS %s"%( larg[0], larg[1], larg[2] ) )

def on_config_msg( self, agent, *larg ):
    dmw.publish( "pprz", "opaque", "%s %s CONFIG %s"%( larg[0], larg[1], larg[2] ) )

if __name__ == "__main__":
    signal.signal(signal.SIGINT, signal_handler)

    if len(sys.argv) < 2:
        print "Must supply one argument (ac_id)"
        sys.exit(-1)
    
    vehicle = Vehicle( int( sys.argv[1] ) )

    dmw.init()
    dmw.init_pub( str(vehicle.ac_id) )

    interface = IvyMessagesInterface( process_messages, verbose=True )
    ivyId1 = IvyBindMsg( on_aircrafts_msg, '((\\S*) (\\S*) AIRCRAFTS (\\S*))')
    ivyId1 = IvyBindMsg( on_config_msg, '((\\S*) (\\S*) CONFIG (.*))')
    
    # Subscribe to messages from gcs.
    t = SubscriptionThread( interface )
    t.setDaemon( True )
    t.start()

    while True:
        time.sleep(0.1)