bonjour,
voila de puis un mois que j'essaye de faire une interface de communication pour envoyer et recevoir des données via le ports série mais j'arrive pas a faire quelle que chose.
-lire les données sur le port série.
-pour envoyer les données je doit télécharger le fichier de mon pc puis les stock dans un buffer un tableau, les afficher sur textbox et les envoyer sur le port.
pour le moment j'ai réalisé l'interface et réussi a télécharger le fichier de mon pc, mais pour l'envoyer et recevoir je n'arrive pas
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
 
namespace Communicatio_1
{
    public partial class Form1 : Form
 public byte[] bBufferBytes; //buffer a envoyer
 
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void Form1_Load(object sender, EventArgs e) //l'événement Form_Load nous lire tous les ports série disponibles et nous assigner les valeurs à la liste déroulante.
        {
            //on commence par lister les voies séries présentes
            String[] ports = SerialPort.GetPortNames(); //fonction statique
            //string [] ports = System.IO.Ports.SerialPort.GetPortNames ();
            for (int i = 0; i < ports.Length; i++) //on ajoute les ports au combo box
            {
                portBox.Items.Add(ports[i]);
            }
 
        }
 
 
        private void button_charger_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "Chargement";// Titre
            openFileDialog1.FilterIndex = 1;
 
            if (openFileDialog1.ShowDialog(this) == DialogResult.OK) // Ouverture boite de dialogue OpenFile
            {
                textBox1.Text = string.Empty; // On vide le TextBox
                StreamReader sr = new StreamReader(openFileDialog1.OpenFile(), Encoding.Default); // Ouverture du fichier sélectionné
                // son nom est dans openFileDialog1.FileName
               try
                {
                    string data = sr.ReadLine();
                    bBufferBytes = System.Text.Encoding.ASCII.GetBytes(data); //Place le contenu dans un buffer d'octets (ASCII: 1 char = 1 octet) (UNICODE: 1 Char = 2 octets)
                    while (data != null)
                    {
                        textBox1.AppendText(data + "\r\n");
                        data = sr.ReadLine();
                        serialPort1.Write(bBufferBytes, 0, bBufferBytes.Length); // Ecrit le buffer complet sur le SerialPort
                    }
                }
                finally
                {
                    if (sr != null)
                        sr.Close();
                }
            }
        }
        private void button_connecter_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = portBox.SelectedItem.ToString();
            serialPort1.BaudRate = 9600;
            serialPort1.Parity = Parity.None;
            serialPort1.StopBits = StopBits.One;
            serialPort1.DataBits = 8;
            serialPort1.Handshake = Handshake.None;
            serialPort1.PortName = portBox.Text;
            // serialPort1.Open();
           // serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
            try
            {
                serialPort1.Open();  //Ouvrez le SerialPort
                statusStrip1.Text = "Port : " + portBox.Text + " Opened"; //Mettre à jour le StatusStrip
                //label11.Text = "Port " + comboBox1.Text + " Fermé";
                MessageBox.Show("Opened");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed: " + ex.Message);
            }
 
            button_connecter.Enabled = false;
            button_deconnecter.Enabled = true;
            textBox1.ReadOnly = false;
            radioButton.Enabled = true;
            radioButton.BackColor = Color.Black;
 
        }
 
        private void button_deconnecter_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.Close();  //fermer le SerialPort
                //statusStrip1.Text = "SerialPort : " + portBox.Text + " Opened"; //Mettre à jour le StatusStrip
                MessageBox.Show("Closed");
 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed: " + ex.Message);
            }
 
            button_connecter.Enabled = true; // activer le button connecter
            button_deconnecter.Enabled = false;// desctiver le bitton deconnecter
            textBox1.ReadOnly = true;
        }
 
        private void button_recevoir_Click(object sender, EventArgs e)
        {
 
        }
 
 
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
             SerialPort sp = (SerialPort)sender;
            string msg = sp.ReadLine();
            this.Invoke(new EventHandler(delegate
                {
                    textBox2.AppendText(msg + "\n");
                    textBox2.ScrollToCaret();
                }));
 
        }
 
 
        private void checkPortDataTimer_Tick(object sender, EventArgs e)
        {
            //You may want to check available bytes instead of this.
            string recievedData = serialPort1.ReadExisting();
            if (!string.IsNullOrEmpty(recievedData))
                textBox2.Text += recievedData;
        }
 
        private void button_envoyer_Click(object sender, EventArgs e)
        {
 
        }
    }
 
}
je travaille avec des button.
j'utilise ce port série pour relier mon pc et un ma commande d'axe MCS 32EX SERAD, avec mon programme j'arrive a me connecter, mais les led TX RX ne s'allume pas quand j'essaye d'envoyer faut-il les configurer dans le programme ???

Nom : Capture.PNG
Affichages : 622
Taille : 108,7 Ko


pouvez-vous m'aider