Ecouter port com en binaire

Signaler
Messages postés
148
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
9 novembre 2013
-
Messages postés
148
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
9 novembre 2013
-
Bonjour à tous!

Je cherche à faire un programme pour écouter sur un port com donné des messages entrant en binaire. J'ai trouvé un super composant pour ça ici mais je n'arrive pas à écouter et récupérer les messages en binaire.

Je reçois mes infos sur 9600 bauds, avec 1 bit de stop, 1 de start et 8 de message, sans parité. Depuis l'exemple de la page de la msdn qui est en lien au dessus(celui en .net), j'ai deux choses à faire: gérer l'écoute et récupérer mes résultats en binaire.

Je n'arrive à faire aucune des deux...

Pour lancer l'écoute, si je suis le tutorial, il faut créer un autre thread. Je suppose que je dois importer System.Threading.Thread pour ça et je mets ça en .net (sans certitude):

 Dim rxThread = New Thread(New ThreadStart(Me.ReceiveThread))
        rxThread.Name = "ComBaseRx"
        rxThread.Priority = ThreadPriority.AboveNormal
        rxThread.Start()
        Thread.Sleep(1)
J'ai une erreur sur Me.ReceiveThread avec "Le délégué 'System.Threading.ThreadStart' requiert une expression 'AddressOf' ou une expression lambda en tant qu'unique argument de son constructeur."

Ayant déjà essayé douloureusement de travailler avec des threads sans succès, je viens chercher de l'aide. Probablement que l'article sur lequel je me base est plus clair pour certians d'entre vous.

Pour récupérer mes résultats en binaire, est ce que je dois les convertir depusi l'ASCII ou  est-il possible de les récupérer directement?

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
si tu fais :

Dim rxThread = New Thread(New ThreadStart(Me.ReceiveThread))

ca ne va pas. en effet, ThreadStart veux l'adresse d'une fonction:

Dim rxThread = New Thread(New ThreadStart(AddressOf Me.ReceiveThread))
Messages postés
148
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
9 novembre 2013

Merci pour ton aide Renfield. En fait, étant plus bricoleur que programmeur, j'essayais de refaire ce qui est décrit dans l'article (http://msdn.microsoft.com/en-us/magazine/cc301786.aspx) mais je crois que j'ai pas le bon profil de lecteur, ça s'adresse plus à des gens qui savent (correctement) programmer. C'est la conclusion après pas mal d'heures d'acharnement.

Le pépin du moment est " 'JH.CommBase.CommBase.Private Sub ReceiveThread()' n'est pas accessible dans ce contexte, car il est 'Private'.". Il est dans une classe publique, donc je présume que ça explique des choses. Vu que c'est vraiment le genre d'erreur que je rencontre tout le temps (portée des variables et privé/public, pas le bon contexte....) je pense apprendre avant de m'y remettre.

Si vous avez un pense bête qui va bien pour expliquer les portées de variables en vb.net je suis preneur.
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
http://plasserre.developpez.com/vsommair.htm

Un cous VB net bien utile avec lequel j'ai appris et j'en apprends encore
Un lien à conserver avec soin

Bon courage
Messages postés
148
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
9 novembre 2013

Merci pour le lien Galain!