private void button2_Click(object sender, EventArgs e) { bool prev = PhysLayer.IsOpen(); string port = PhysLayer.GetPortName(); ConnectionSettings SettingsForm = new ConnectionSettings(); SettingsForm.ShowDialog(); // Чисто для прикола))) if (PhysLayer.IsOpen()) { if (!prev) { textBox1.Text += "Etsablished connection via " + PhysLayer.GetPortName() + " with parameters: speed = " + PhysLayer.GetSpeed() + "\r\n"; } textBox1.SelectionStart = textBox1.TextLength; textBox1.ScrollToCaret(); } else { if (prev) { textBox1.Text += "Connection via " + port + " was dropped.\r\n"; } textBox1.SelectionStart = textBox1.TextLength; textBox1.ScrollToCaret(); } }
private void ConnectionSettings_Load(object sender, EventArgs e) { // Выключаем до выбора ком-порта button1.Enabled = false; button2.Enabled = false; //Сканим порты foreach (string port in PhysLayer.scanPorts()) { PortBox.Items.Add(port); } if (!PhysLayer.IsOpen()) { // Дефолтные значения параметров SpeedBox.SelectedIndex = 4; BitBox.SelectedIndex = 3; StopBitBox.SelectedIndex = 0; EvenBox.SelectedIndex = 0; } else { DisableAllBoxes(); button2.Enabled = true; SpeedBox.Text = PhysLayer.GetSpeed(); BitBox.Text = PhysLayer.GetDataBits(); PortBox.Text = PhysLayer.GetPortName(); StopBitBox.Text = PhysLayer.GetStopBits(); EvenBox.Text = PhysLayer.GetParity(); } }
private void button2_Click(object sender, EventArgs e) { PhysLayer.DropConnection(); if (!PhysLayer.IsOpen()) { EnableAllBoxes(); button1.Enabled = true; button2.Enabled = false; } }
private void textBox1_DoubleClick(object sender, EventArgs e) { if (PhysLayer.IsOpen()) { textBox1.Text += PhysLayer.GetDataBits() + " " + PhysLayer.GetSpeed() + " / " + PhysLayer.GetPortName() + "\r\n" + Convert.ToString(PhysLayer.DsrSignal()); } else { textBox1.Text += "FALSE\r\n"; } }
private void PortBox_SelectedValueChanged(object sender, EventArgs e) { if (!PhysLayer.IsOpen()) { if (PortBox.Text != "") { button1.Enabled = true; } else { button1.Enabled = false; } } }
private void ConnectionWorker_DoWork(object sender, DoWorkEventArgs e) { while (true) { if (PhysLayer.DsrSignal()) { label3.Invoke((MethodInvoker) delegate { label3.Text = "Соединение активно"; label3.ForeColor = Color.Green; }); UpdateButton.Invoke((MethodInvoker) delegate { if (!DataLink.FileRecieving && !DataLink.FileSending) { UpdateButton.Enabled = true; } else { UpdateButton.Enabled = false; } }); ActionLabel.Invoke((MethodInvoker) delegate { if (!DataLink.FileRecieving && !DataLink.FileSending) { ActionLabel.Text = ""; } }); // Если есть соединение логическое, то пишем название порта к которому подключены if (PhysLayer.PortReciever != "" && DataLink.Connection) { label1.Invoke((MethodInvoker) delegate { label1.Text = "Подключение через " + PhysLayer.GetPortName() + " к " + PhysLayer.PortReciever; }); } else { label1.Invoke((MethodInvoker) delegate { label1.Text = "Подключен к порту " + PhysLayer.GetPortName(); }); if (!DataLink.Connection) { DataLink.EstablishConnection(); DataLink.Connection = true; } } } else { label3.Invoke((MethodInvoker) delegate { label3.Text = "Соединение отсутствует"; label3.ForeColor = Color.Red; }); UpdateButton.Invoke((MethodInvoker) delegate { UpdateButton.Enabled = false; }); label1.Invoke((MethodInvoker) delegate { if (PhysLayer.IsOpen()) { label1.Text = "Подключен к порту " + PhysLayer.GetPortName(); } else { label1.Text = "Порт закрыт"; } }); progressBar1.Invoke((MethodInvoker) delegate { progressBar1.Value = 0; }); ActionLabel.Invoke((MethodInvoker) delegate { ActionLabel.Text = ""; }); DataLink.Connection = false; PhysLayer.PortReciever = ""; } System.Threading.Thread.Sleep(1000); } }
private void button1_Click(object sender, EventArgs e) { // Переменные под открытие соединения string name = PortBox.Text; int rate = Convert.ToInt32(SpeedBox.Text); int dataBits = Convert.ToInt32(BitBox.Text); // Выбор значения стоп-битов StopBits S = new StopBits(); switch (StopBitBox.SelectedIndex) { case 0: { S = StopBits.One; break; } case 1: { S = StopBits.OnePointFive; break; } case 2: { S = StopBits.Two; break; } } // Выбор значения четности Parity P = new Parity(); switch (EvenBox.SelectedIndex) { case 0: { P = Parity.None; break; } case 1: { P = Parity.Even; break; } case 2: { P = Parity.Odd; break; } } PhysLayer.OpenPort(name, rate, dataBits, S, P); if (PhysLayer.IsOpen()) { button1.Enabled = false; DisableAllBoxes(); button2.Enabled = true; } }