Bonjour;

mon projet consiste à réaliser une interface de communication envoi et réception des données entre mon pc et une commande d'axe via un port série avec C#.

pour le moment, je travail avec l'hyper terminal pour la communication.

pour l'envoi des données je dois télécharger un fichier sur mon bureau puis l'envoyer sur le port série, donc ça j'ai réussi à le faire.j'affiche tout les données dans l'hyper terminal.

mon blockage actuel est le suivant:

pour la reception des données j'ai mis en oeuvre l’événement Datareceived, quand j'essaye d'envoyer des données de puis l'hyper terminal il m'affiche dans ma textBox2 ça:
Nom : Capture2.PNG
Affichages : 285
Taille : 7,1 Ko

si tout ce qu'il s'affiche.

ps: la textBox2 si la ou je veux afficher les données en reception.

voila mon code:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
           switch (e.EventType)
            {
                case SerialData.Chars:
                    {
                        if (!serialPort1.IsOpen) return; // Si le port est ouvert, le fermer
                        int bytes = serialPort1.BytesToRead;// Obtenir le nombre d'octets en attente dans le tampon du port
                        byte[] buffer = new byte[bytes]; // Créez une zone tampon (tableau d'octets) pour stocker les données entrantes
                        serialPort1.Read(buffer, 0, bytes); // Lire les données du port et de le stocker dans la mémoire tampon
                       // timer1.Start();
                      string s = Reverse(ByteArrayToHexString(buffer)).Substring(0, 1);
 
                         MethodInvoker method = delegate
                         {
                             textBox2.Text = string.Empty; // On vide le TextBox
                            textBox2.Text=(buffer + "\r\n");
                             //textBox2.AppendText(bytes + "\r\n");
                         };
                        if (InvokeRequired)
                            BeginInvoke(method);
                        else
                            method.Invoke();
                        // MessageBox.Show(s);
                        break;
                    }
                case SerialData.Eof:
                    {
                        serialPort1.Close();
                        break;
                    }
 
            } 
        }
 
 
 
        //Convertit un tableau d'octets en une chaîne formatée de chiffres hexadécimaux.
        private string ByteArrayToHexString(byte[] data)
        {
            StringBuilder sb = new StringBuilder();
            foreach (byte b in data)
                sb.Append(Convert.ToString(b, 16).PadLeft(2, '0').PadRight(3, ' '));
 
            return sb.ToString().ToUpper();
        }
 
        static public string ReverseString(string str)
        {
            char[] charArray = str.ToCharArray();
            Array.Reverse(charArray);
            return new string(charArray);
        }
 
        public static string Reverse(string text)
        {
            string retour = "";
            string[] str = text.Split(' ');
            for (int i = 0; i < str.Length; i++)
            {
                retour += ReverseString(str[i]);
                retour += " ";
            }
            return retour;
        }
pouvez-vous m'aider???