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

Valentin - 8 juin 2016 à 14:58
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 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

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 juin 2016 à 15:32
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 !)
0
bonjour,

je dirais que c'est du VB.net , j'utilise Microsoft Visual Basic 2010 express
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
8 juin 2016 à 17:15
Bonsoir

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



0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
8 juin 2016 à 19:47
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.


0
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
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
8 juin 2016 à 20:48
Et si tu essayais ce que je t'ai proposé?
0
Rejoignez-nous