startIndex ne peut pas être supérieur à la longueur de la chaîne.
Nom du paramètre : startIndex
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace SerialComm { public partial class Form1 : Form { static SerialPort serialPort1; public Form1() { serialPort1 = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One); InitializeComponent(); serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); } private void Form1_Load(object sender, EventArgs e) { serialPort1.Open(); } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { string value = ""; serialPort1.DiscardInBuffer(); char[] buffer = new char[6]; while ((serialPort1.BytesToRead > 0) && (serialPort1.BytesToRead < 6)) { int bytes_read = serialPort1.Read(buffer, 0, buffer.Length); for (int i = 0; i < bytes_read; i++) { value += buffer[i]; } } safeInput(value.ToString()); } private void safeInput(string msg) { textBox1.Invoke(new EventHandler(delegate { // donnée isolée de la 3 en prenant 1 donnée (1 byte) string message1 = msg.Substring(0,1); string message2 = msg.Substring(1,1); string message3 = msg.Substring(2,1); string message4 = msg.Substring(3,1); textBox1.SelectedText = string.Empty; textBox1.AppendText(message1); textBox1.ScrollToCaret(); textBox2.SelectedText = string.Empty; textBox2.AppendText(message2); textBox2.ScrollToCaret(); textBox3.SelectedText = string.Empty; textBox3.AppendText(message3); textBox3.ScrollToCaret(); textBox4.SelectedText = string.Empty; textBox4.AppendText(message4); textBox4.ScrollToCaret(); })); } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question