Go Down

Topic: lire port serie avec Firmata en vb.net (Read 8 times) previous topic - next topic

nimbus629

Je résume :
J'ai une richtextbox qui affiche les données 'brut' (exactement comme le serial monitor de l'environnement arduino.J'ai une variable qui reçoit les données elle aussi et c'est a partir de cette variable que j'aimerais extraire les 3 valeurs des 3 axes. Voila :)

SamoLaw

Ok, as-tu essayé ce que j'ai mis ???

Cette variable en question dont tu aimerais extraire les 3 valeurs est de quel type ?? (char, int, float ...)

nimbus629

En fait je l'ai déclaré en tant que string mais je ne sais pas si c'est le plus approprié a ce type de valeur (sachant que la valeur est du genre 123 )

SamoLaw

Bah string c'est une chaîne de caractère.

Tu peux essayer le petit bout de programme que j'ai mis pour supprimer "acc=" et obtenir dans ton string que la valeur que tu cherches.

Pour convertir un string en un numérique, tu peux utiliser parse , un truc dans le genre.

B@tto

#14
Jan 24, 2011, 08:53 am Last Edit: Jan 24, 2011, 08:53 am by B@tto Reason: 1
Quote
Mais j'ai déjà essayé avec cette méthode et c'est encore pire, j'arrive a lire les données du port série mais lorsque je veux exécuter une autre action en même temps (déplacer la souris en fonction des valeurs de la nunchuk dans mon cas) j'ai des problèmes de thread et je n'ai jamais réussi a éviter cela, c'est pour sa que j'aurais aimé essayer avec Firmata mais si tu as une autre solution je prend !  


En fait il faut que tu utilises les deleguate pour résoudre ce problème. Perso je ne sais pas comment ça marche, mais j'utilise cette recette qui marche :

D'abord tu déclare le délégués au même endroit que les imports :

Code: [Select]
Delegate Sub Delegue1()

Ensuite dans ton évenement Serialport1_Datareceived tu mets  :

Code: [Select]
Try
Me. Invoke(New Delegue1(AdressOf Traitement Serie))
Catch
End Try


Et enfin tu mets tout ce que tu veux dans le sub Traitement Serie. D'après ce que j'ai compris, dans un évènement tu ne peux pas modifié un éléments (textbox ou autre) d'un autre thread, il faut que tu utilises un délégué qui va executer toutes ces tâches et reprendre la où tout s'est arrêté.

Go Up