Witam,
mam napisaną aplikację, w której chodzi o odczytywanie danych z portu COM. Póki co mam tą funkcję zrealizowaną za pomocą przycisku (po wciśnięciu dopiero zostają odczytane dane). Próbowałem i myślałem i nie mogę rozwiązać problemu na to, aby odczyt danych z portu COM odbywał się automatycznie w momencie nadawania danych do komputera przez port. Myślę, że jest to możliwe ponieważ w najprostszym terminalu jest taka zasada działania. Wklejony kod jest kodem z jednego okna (plik Form.cs). Z góry dziękuję za wszelką podpowiedź.
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 WindowsFormsApplication3
{
public partial class Form2 : Form
{
SerialPort port = new SerialPort(" ", 9600, Parity.None, 8, StopBits.One); //deklaracja portu szeregowego
public Form2()
{
InitializeComponent();
String[] ports = SerialPort.GetPortNames(); //przypisanie aktywnego nr portu COM
foreach (String x in ports)
comboBox1.Items.Add(x); //wyświetlenie nazwy aktywnego portu COM
button2.Enabled = false;
button3.Enabled = false;
if (port.IsOpen == true)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
button2.Enabled = true;
button3.Enabled = true;
}
private void button2_Click(object sender, EventArgs e) // przycisk "połącz"
{
if (port.IsOpen == false)
{
port.PortName = comboBox1.SelectedItem.ToString();
port.Open();
}
if (port.IsOpen == true)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
}
}