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(); } }
// Кадр для установления логического соединения с названием порта public static void EstablishConnection() { List <byte> f = new List <byte>(); // делаем массив байтов для имени порта byte[] fBytes = Encoding.Default.GetBytes(PhysLayer.GetPortName()); //побайтово кладем в массив foreach (byte b in fBytes) { f.Add(b); } byte[] a = pack('E', f.ToArray()); a = DataLink.EncodeFrame(a); PhysLayer.Write(a); }
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 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"; } }