Ecouter port com en binaire

Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 20 janv. 2009 à 10:26
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 22 janv. 2009 à 11:43
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 janv. 2009 à 10:44
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))
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
21 janv. 2009 à 13:36
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.
0
Profil bloqué
22 janv. 2009 à 00:24
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
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
22 janv. 2009 à 11:43
Merci pour le lien Galain!
0
Rejoignez-nous