Port Série, début de tram et exploitation des données

- - Dernière réponse : Whismeril
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
- 8 juin 2016 à 20:48
Bonjour,
je cherche actuellement une solution pour décoder une trame que j'envoie depuis mon arduino vers une application VB, la tram est constitué de la façon suivante:

Elle commence par un $ et elle est suivi de 24 '0' ou '1'
"$111111111111111111111111"
chaque bit me retourne une information ON = 1 et OFF = 0.

Je cherche à isoler chaque bit pour pouvoir changer la couleur d'un bouton par exemple l’or du changement d’état du bit.

magret plusieurs essaie d’écriture, changement de variable etc etc je n'y arrive pas et commence à être complètement perdu...

je sais que mon code devrait ressembler à ça :

si le port série reçoit des datas et que le début de la trame commence bien part "$"
alors remplir le tableau


mais je ne trouve pas la bonne façon de l'écrire


Cordialement
Afficher la suite 

Votre réponse

7 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Entre les morceaux de canard (magret) et les métaux précieux (l'or), ... !!! (C'est un restaurant "au canard royal", que tu installes ?)
Pour être un peu plus sérieux :
Tu as ouvert cette discussion dans le forum général Visual Basic (qui comprend plusieurs sous-forums).
Sous quoi développes-tu donc ? (solutions différentes en fonction de cette précision pour le moins importante !)
Commenter la réponse de ucfoutu
0
Merci
bonjour,

je dirais que c'est du VB.net , j'utilise Microsoft Visual Basic 2010 express
Commenter la réponse de Valentin
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Bonsoir

regardes du coté de la classe SerialPort et de son événement DataRecieved.



Commenter la réponse de Whismeril
0
Merci
bonjour,Whismeril

Merci pour le conseil mais le site de Microsoft est toujours ouvert ;)

j'ai bien regarder sur le site de Microsoft, leur exemple fonctionne évidement mais il ne met pas en place de filtre, ici mon filtre de trame c'est "$" et je n'arrive pas a mettre ça en place deplus je ne sais pas trop comment mettre ma trame dans un tableau.
Commenter la réponse de Valentin
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Ok, mais comme tu n'as présenté aucun code testé, j'ai commencé par le début.

Avant de filtrer, il faut lire ce qui arrive sur le port.

Une fois que tu as un tableau de byte, tu le convertis en string avec
Encoding.ASCII.GetString(), puis tu fais StartWith.


Commenter la réponse de Whismeril
0
Merci
bonjour,

Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim text(25) As Char
If SerialPort1.Equals("$") Then
Text = SerialPort1.ReadLine()
End If
End Sub


c'est comme ça que je comptait faire l'opération
Commenter la réponse de Valentin
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Et si tu essayais ce que je t'ai proposé?
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.