2010-12-12 13 views
0

Ich habe einen Servo-Controller an meinen Laptop angeschlossen, um es zu steuern ich erstellte eine WPF-Anwendung, ich schuf einen Schieberegler, der, wenn Wert geändert würde die Position an das Servo senden.WPF sendet schnelle Befehle an externe Hardware

Das hat als ein Charme gearbeitet, und das Servo bewegt sich sehr glatt. Dann fügte ich ein Bild hinzu und befestigte ein Mausbewegungsereignis, so dass, wenn ich meine Maus über das Bild bewegte, es das Servo dorthin bewegen würde, wo die Maus auf das Bild gerichtet ist.

Aber wenn ich das tue, scheint es, dass die WPF-Anwendung nicht so viele Befehle sendet, als wenn ich den Schieberegler verwendet habe. Der Servo-Controller ich ziemlich schnell, und der Schieberegler arbeitete wirklich gut, aber die Bildmouseover macht die Servo-Bewegung wirklich holprig.

Was könnte ich tun, um es schneller zu machen? Ich muss nur viele Befehle zu bestimmten Zeiten auslösen, wenn sich die Maus über dem Bild befindet oder wenn die Anwendung in einem anderen Modus ausgeführt wird, in dem Befehle automatisch gesendet werden. Je mehr Befehle der Servocontroller erhält, desto weicher wird das Servo.

Kann ich einen anderen Thread verwenden, um die Befehle oder etwas zu senden?

Vielen Dank im Voraus =)

+0

Ich denke, das Problem ist das Gegenteil, Sie senden * zu viele * Befehle, wenn Sie die Maus verwenden. Forcieren des Servos auf konstante Acc/Decel. Zeigen Sie die Servo-Befehle an und vergleichen Sie. –

+0

Ich werde das testen, wenn ich zurückkomme, sollte ziemlich einfach sein mit einer for-Schleife und einigen thread.sleeps =) – Moulde

Antwort

0

Wenn Sie viele Befehle zu senden an die Reactive Extensions for .NET interessant sein könnte. Mit ihnen können Sie Linq-Abfragen für eine Ereignisquelle erstellen und die Ereignisse drosseln.

Verwandte Themen