RS232

laurentkreps Messages postés 4 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 13 avril 2011 - 11 avril 2011 à 12:16
laurentkreps Messages postés 4 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 13 avril 2011 - 13 avril 2011 à 00:07
Bonjour,

j'ai parcouru ce forum (et d'autres) et il me semble que pas mal de personnes ont du mal avec le RS232.

J'ai aussi l'impression que tout ça a pas mal changé au fil des versions de VB.

Voici mon problème: j'ai commencé un projet de soft qui doit pouvoir attribuer et lire des cartes RFID.

J'arrive à lire dans une première form la carte (créé un port avec IO serialport : Friend WithEvents RS232 As System.IO.Ports.SerialPort)

La fait est que je ne peux pas créer un bouton qui lit la carte vu que l'impulsion vient justement du scan de la carte (si on lit le port avant ou après ça marche pas)

J'ai créé une fonction qui gère cet événement de lecture: Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived

Cette fonction copie les infos de la carte dans un textbox.

Dans une autre form, je voudrais faire la même chose: j'ai tout fait de même (je crois que quelques notions de base me manque un peu, notamment le fonctionnement de "handles RS232.DataReceived"; je suppose que cela veut dire que la fonction réagit à cet événement. Comment faire pour que dans cet autre form, le résultat de la lecture de la carte aille dans un autre textbox ?

J'espère avoir été suffisamment clair et vous remercie mille fois pour votre aide.

Laurent

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 avril 2011 à 12:27
Salut

Dans ta RS232_DataReceived, mets simplement un monAutreForme.TextBox.Text = LesDatas

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
laurentkreps Messages postés 4 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 13 avril 2011
11 avril 2011 à 16:30
Bonjour,

merci pour votre réponse. Malheureusement, cela ne résout pas mon problème.
J'ai un form, nommé Dialog2 pour dans lequel tout fonctionne.

Par contre, si j'essaie le même code dans une autre form (qui ne s'exécute que quand Dialog2 est fermé) rien ne se passe.
Je me demande si le fait d'avoir une fonction qui gère déjà les événements sur le port com ne fait pas en sorte qu'ici, rien ne se passe puisque la fonction n'est jamais invoquée (ce sera celle du form fermé qui est appelée ?)

Donc, au risque de démontrer mon incompétence, pouvez-vous me dire s'il est possible de faire une classe qui surveille le RS232 et qui lorsqu'un événement se produit, fait une action sur la fenêtre ouverte.

Merci d'avance,

Laurent
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 avril 2011 à 01:24
Pour que les évènements liées à la première forme continuent à réagir, il faut que l'appel de la seconde forme soit fait en ModeLess, car en Modal, la forme appelante est comme figée durant la présence de la seconde.
0
laurentkreps Messages postés 4 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 13 avril 2011
13 avril 2011 à 00:07
bonsoir,

merci pour votre aide, j'ai trouvé le problème et j'ai un peu honte de dire ce que c'était

j'ai commencé ce prog il y a quelques mois et du coup, j'ai oublié d'insérer un élément "serialport" dans le form (dans l'IDE)

je n'avais reproduit qu'une partie de sa description dans le designer de ma form.

Enfin bref, ça marche, mille merci
0
Rejoignez-nous