2010-12-12 42 views
0

J'ai un servo-contrôleur connecté à mon ordinateur portable, pour le contrôler j'ai créé une application WPF, j'ai créé un contrôle de curseur qui, lorsque la valeur changée enverrait la position au servo.WPF envoyant des commandes rapides au matériel externe

Cela a fonctionné comme un charme, et le servo se déplace très lisse. Ensuite, j'ai ajouté une image et attaché un événement de déplacement de souris, de sorte que lorsque je déplace ma souris sur l'image, il déplace le servo à l'endroit où la souris est pointée sur l'image.

Mais quand je fais cela, il semble que l'application wpf n'envoie pas autant de commandes que lorsque j'ai utilisé le contrôle de curseur. Le contrôleur de servo est assez rapide, et le curseur fonctionne très bien, mais le survol de l'image rend le mouvement du servo vraiment cahoteux.

Que puis-je faire pour le rendre plus rapide? J'ai juste besoin de déclencher ALOT de commandes à certains moments, comme lorsque la souris est sur l'image, ou lorsque l'application est en cours d'exécution dans un autre mode où il envoie des commandes automatiquement. Plus le nombre de commandes reçues par le servo-contrôleur est élevé, plus le servo est en mouvement.

Pourrais-je utiliser un autre thread pour envoyer les commandes ou quelque chose?

Merci à l'avance =)

+0

Je pense que le problème est le contraire, vous envoyez * trop de * commandes lorsque vous utilisez la souris. Forcer le servo à acc/decel constant. Afficher les commandes du servo et comparer. –

+0

Je testerai que quand je reviens, devrait être assez facile à faire avec une boucle for et un thread.sleeps =) – Moulde

Répondre

0

Si vous envoyez à de nombreuses commandes le Reactive Extensions for .NET pourrait être intéressant. Ils vous permettent de créer des requêtes Linq sur une source d'événement et de limiter les événements.