Bonjour,
je me remet au C# que j'ai abandonné depuis quelque temps. et je but sur un truc vraiment idiot car je savais le faire.
Je communique en port série avec un Arduino. et lorsque je lui envoie une requête, il me renvoie plusieurs trames.
Dans DataReceived en C# par contre j'ai une seule trame en général mais parfois en 2 ou 3 morceaux.
J'ai fait quelques essaie pour récupérer ce que je veut en dans un tableaux puis je cherche à le convertir en string. Cela marche pas si mal mais je trouve sa moche. depuis quelque temps je travaille en VB et VB.net et j’avoue que cela me perturbe de ne pas pouvoir affecter un tableau dynamiquement en fonction de mes besoins avec Redim.Preserve .
Voici ce que j’ai fait.
Je trouve sa pas beau, qu'en pensez-vous?.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string[] ln; byte[] Car = new byte [80]; int count; int y = 0; byte[] f =System.Text.Encoding.ASCII.GetBytes ("\r"); count = serialPort1.BytesToRead; for (int i = 0 ; i<= count; i++) { Car[y] = Convert.ToByte(serialPort1.ReadByte()); if (Car[y] == 10 ) { line =System.Text.Encoding.ASCII.GetString (Car); ln = line.Split('/'); switch (ln[0]) { case "Get_Osci": SetGet_Osci(ln); break; } line = ""; Car = new byte[80]; y = 0; } else y = y + 1; } }
pour le moment j'ai qu'un contrôle sur le Get_Osci il y en aurait plein d'autre.
merci
Partager