Отправить ответ на компьютер через COM-порт
Ребят, привет. Такая задача: нужно послать на телефон запрос через COM-порт (телефон подключен к ноутбуку через usb), через какое-либо приложение на телефоне сформировать ответ, отправить его назад и отобразить в самой программе. Как сделать ответ с телефона на компьютер?
SerialPort port; //создание объекта
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "";
comboBox2.SelectedIndex = 0;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try { port = new SerialPort(comboBox1.SelectedItem.ToString()); } //инициализация объекта port
catch (Exception) { label1.Text = "Ошибка при создании объекта.";
File.AppendAllText("text.txt", label1.Text + '\n');
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (comboBox1.SelectedItem == null) { label1.Text = "Не выбран порт.";
File.AppendAllText("text.txt", label1.Text+'\n');
return; }
label1.Text = "";
textBox2.Text = "";
port.ReadTimeout = 500; //таймаут на прием-передачу
port.WriteTimeout = 500;
port.Open();
if (comboBox2.SelectedIndex == 0)
{
port.WriteLine(textBox1.Text);
textBox2.AppendText(port.ReadLine());
File.AppendAllText("text.txt", port.ReadLine()+'\n');
}
if (comboBox2.SelectedIndex == 1)
{
port.RtsEnable = false;
textBox1.Text = "False" + Environment.NewLine;
textBox2.Text = port.CtsHolding.ToString() + Environment.NewLine;
port.RtsEnable = true;
textBox1.Text += "True";
textBox2.Text += port.CtsHolding.ToString();
File.AppendAllText("text.txt", textBox2.Text+'\n');
}
if (comboBox2.SelectedIndex == 2)
{
port.DtrEnable = false;
textBox1.Text = "False" + Environment.NewLine;
textBox2.Text = port.DsrHolding.ToString() + Environment.NewLine;
port.DtrEnable = true;
textBox1.Text += "True";
textBox2.Text += port.DsrHolding.ToString();
File.AppendAllText("text.txt", textBox2.Text +'\n');
}
port.Close();
}
catch (ArgumentNullException)
{
label1.Text = "Параметр str имеет значение null.";
File.AppendAllText("text.txt", label1.Text + '\n');
}
catch (InvalidOperationException)
{
label1.Text = "Указанный порт не открыт.";
}
catch (TimeoutException)
{
label1.Text = "Операция не была завершена до истечения срока ожидания.";
File.AppendAllText("text.txt", label1.Text + '\n');
}
catch (Exception)
{
label1.Text = "Неизвестная ошибка.";
File.AppendAllText("text.txt", label1.Text);
}
finally //закрытие порта
{
try { port.Close(); }
catch (Exception) { }
}
}
private void comboBox1_Click(object sender, EventArgs e)
{
label1.Text = "";
try
{
comboBox1.Items.Clear();
comboBox1.Items.AddRange(SerialPort.GetPortNames());
}
catch (Exception) { label1.Text = "Ошибка инициализации.";
File.AppendAllText("text.txt", label1.Text+'\n');
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}