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
|
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;
using System.Threading;
namespace Communication_MCS
{
public partial class Pc_mcs : Form
{
public byte[] bBufferBytes; //buffer a envoyer
public bool dataIsReceived = false;
public string str;
public int i=0;
public Pc_mcs()
{
InitializeComponent();
this.Refresh();
}
private void button_connecter_Click(object sender, EventArgs e)
{
serialPort1.PortName = portBox1.SelectedItem.ToString();
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.Parity = Parity.Even;
serialPort1.StopBits = StopBits.One;
serialPort1.Handshake = Handshake.None;
serialPort1.PortName = portBox1.Text;
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
try
{
serialPort1.Open(); //Ouvrez le SerialPort
toolStripStatusLabel1.Text = "le port série : " + portBox1.Text + " Opened";//Mettre à jour le StatusStrip
MessageBox.Show("Opened");
}
catch (Exception ex)
{
MessageBox.Show("Failed: " + ex.Message);
}
button_connecter.Enabled = false;
button_deconnecter.Enabled = true;
button_charger.Enabled = true;
button_envoyer.Enabled = true;
}
private void Pc_mcs_Load_1(object sender, EventArgs e)
{
//on commence par lister les voies séries présentes
String[] ports = SerialPort.GetPortNames();//l'événement Form_Load nous lire tous les ports série disponibles et nous assigner les valeurs à la liste déroulante.
//string[] ports = System.IO.Ports.SerialPort.GetPortNames();
for (int i = 0; i < ports.Length; i++) //on ajoute les ports au combo box
{
portBox1.Items.Add(ports[i]);
}
}
private void button_charger_Click(object sender, EventArgs e)
{
textBox1.Text = string.Empty; // On vide le TextBox
openFileDialog1.Title = "Chargement";// Titre
openFileDialog1.FilterIndex = 1;
toolStripStatusLabel1.Text = "Chargement en cours...";
if (openFileDialog1.ShowDialog(this) == DialogResult.OK) // Ouverture boite de dialogue OpenFile
{
StreamReader sr = new StreamReader(openFileDialog1.OpenFile(), Encoding.Default); // Ouverture du fichier sélectionné
// son nom est dans openFileDialog1.FileName
char[] tab = new char[100];
str = string.Empty;
str = sr.ReadToEnd();
textBox1.AppendText(str + "\r\n");
timer1.Start();
}
}
private void button_envoyer_Click(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez...";
char[] B = { (char)'\u000A' };// lancer la tache recvfil
serialPort1.Write(B, 0, 1);
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//int compteur = 0;
//int compeur1 = 0;
//progressBar1.Value = 0;
if (str.Length > 0)
{
int max = 50;
string don;
//int nboucle = 0;
if (i < str.Length - (str.Length % 50))
{
don = str.Substring(i, 50);
serialPort1.Write(don);
i += 50;
toolStripStatusLabel1.Text = "Télechargement en court...";
//compeur1++;
//progressBar2.Value = compeur1 * 100 / compteur;
//toolStripStatusLabel1.Text = progressBar1.Value.ToString() + "%" + "Télechargement en court...";
//progressBar1.Value = (nboucle*100 / str.Length);
//toolStripStatusLabel1.Text = progressBar1.Value.ToString() + "%" + "Transférés...";
}
else
{
max = str.Length % 50;
don = str.Substring(i, max);
serialPort1.WriteLine(don);
//toolStripStatusLabel1.Text = "Transfert Fini";
}
}
} |
Partager