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
|
namespace WindowsApplication1
{
public partial class TestSerialCom : Form
{
private string strPortCom = "COM5";
//private string strNameSys = "Application1";
private string strMess = "PING";
private string strUserName = "Yo";
private string strUserDistant = "User Test";
public TestSerialCom()
{
//init des composant graphiques
InitializeComponent();
//Abonnement à l'événement DataReceived de l'obj DataReceived => réalisé dans TestSerialCom.Designer.cs
//this.serialPort1.DataReceived +=new SerialDataReceivedEventHandler(serialPort1_DataReceived)
// Obtenir la liste des noms de Port
string[] ports = SerialPort.GetPortNames();
Console.WriteLine(" Les ports suivants ont été trouvés: ");
rtbEchange.AppendText(" Les ports suivants ont été trouvés: \n\n");
// Affiche la liste des ports dispo
foreach (string port in ports)
{
Console.WriteLine(port);
rtbEchange.AppendText(String.Format("port = {0} \n", port));
cboxListPort.Items.Add(port);
}
}
private void btnEnvoi_click(object sender, EventArgs e)
{
if (tbEnvoi.Text != "" && serialPort1.IsOpen)
{
serialPort1.WriteLine(String.Format("[{0}] >> [{1}] :{2}", strUserName, strUserDistant, tbEnvoi.Text));
rtbEchange.AppendText(String.Format("[{0}] >> [{1}] :{2} \n", strUserName, strUserDistant, tbEnvoi.Text));
}
if (serialPort1.IsOpen == false )
{
textBox1.Text = "Port " + strPortCom + " fermé";
}
textBox1.Text = "";
}
#region Evenements
private void TestSerialCom_Load(object sender, EventArgs e)
{
serialPort1.ReadBufferSize = 2;
serialPort1.ReceivedBytesThreshold = 2;
serialPort1.Handshake = Handshake.None;
serialPort1.ReadTimeout = 500;
serialPort1.WriteTimeout = 500;
///serialPort1.BreakState = true;
// instance du SerialPort
serialPort1 = new SerialPort(strPortCom, 9600, Parity.None, 8, StopBits.One);
// ouverture du port COM1
serialPort1.Open();
// envoi d'une trame PING
serialPort1.WriteLine(String.Format("Nouvelle session <{0}>: {1}", strUserName, strMess));
textBox1.Text = strPortCom;
}
private void TestSerialCom_FormClosing(object sender, FormClosingEventArgs e)
{
serialPort1.Close();
}
//Gestion événementielle de la réception des données sur le port serie
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Console.WriteLine(String.Format("Value={0}",e.EventType.ToString()));
rtbEchange.AppendText(String.Format("[{0}]<<[{1}] :{2} \n",strUserName ,strUserDistant , serialPort1.ReadLine()));
}
private void quitterToolStripMenuItem_Click(object sender, EventArgs e)
{
serialPort1.Close();
this.Close();
this.Dispose();
}
private void cboxListPort_SelectedIndexChanged(object sender, EventArgs e)
{
strPortCom = cboxListPort.SelectedItem.ToString();
}
#endregion
}
} |
Partager