Com порты для чайников - C#
Формулировка задачи:
Здравствуйте, не получается организовать вывод данных, принятых с com порта, в textbox.
настройки порта
Ругается на Передача данных в com порт происходит без проблем, а вот чтение не выходит
namespace Arduino
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
serialPort1.Close();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
}
private void BtnLED13on_Click(object sender, EventArgs e)
{
if (CbOnOff.Checked)
{
serialPort1.Write("13PinOn");
TextBoxLED.Text = "Питание на 13 пин подано";
}
else { }
}
private void BtnLED13off_Click(object sender, EventArgs e)
{
if (CbOnOff.Checked)
{
serialPort1.Write("13PinOff");
TextBoxLED.Text = "Питание на 13 пин отключено";
}
else { }
}
private void BtnLED13mig_Click(object sender, EventArgs e)
{
if (CbOnOff.Checked)
{
serialPort1.Write("13PinPulse");
TextBoxLED.Text = "Питание на 13 пин мигает";
}
else { }
}
private void CbOnOff_CheckedChanged(object sender, EventArgs e)
{
if (TXLOG.Text == "" && TXPASS.Text == "")
{
if (CbOnOff.Checked)
{
MessageBox.Show("Изменения разрешены");
serialPort1.Open();
}
else
{
MessageBox.Show("Изменения ЗАПРЕЩЕНЫ");
serialPort1.Close();
}
}
else
{
MessageBox.Show("АВТОРИЗУЙТЕСЬ!");
CbOnOff.Checked = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Write("Cmd:"+TBconsole.Text);
}
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
string readstring;
readstring = serialPort1.ReadLine();
TBconsole.AppendText(readstring);
}
}
} this.serialPort1.DtrEnable = true;
this.serialPort1.PortName = "COM4";
this.serialPort1.ReadTimeout = 500;
this.serialPort1.WriteTimeout = 500;
this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.DataReceivedHandler);TBconsole.AppendText(readstring);
Решение задачи: «Com порты для чайников»
textual
Листинг программы
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
string newText;
newText = serialPort1.ReadLine();
if (TBconsole.InvokeRequired)
{
TBconsole.Invoke(new Action<string>((s) => TBconsole.Text = s), newText);
}
else
{
TBconsole.Text = newText;
}
if (newText == "a")
{
TBout.Text = "АКТИВИРОВАН ПЕРВЫЙ РЕЖИМ РАБОТЫ";
}
if (newText == "b")
{
TBout.Text = "АКТИВИРОВАН ВТОРОЙ РЕЖИМ РАБОТЫ";
}
if (newText == "c")
{
TBout.Text = "АКТИВИРОВАН ТРЕТИЙ РЕЖИМ РАБОТЫ";
}
if (newText == "d")
{
TBout.Text = "АКТИВИРОВАН ЧЕТВЕРТЫЙ РЕЖИМ РАБОТЫ";
}
}