Я хочу сделать универсальное приложение для Windows, которое считывает данные с датчика через последовательный порт, идея состоит в том, чтобы собрать доступные порты в комбинированном списке, забрать меня, если он подключен или нет в текстовом блоке и в другомTextBlock покажи мне полученные данные.
Это код приложения той же функции в формах Windows.
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
using System.Threading;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label6.Text = "SIN CONEXIÓN";
}
string[] puertos = System.IO.Ports.SerialPort.GetPortNames();
string puerto = "";
string dato ;
int contador = 0;
private void Form1_Load(object sender, EventArgs e)
{
foreach (string mostrar in puertos)
{
comboBox1.Items.Add(mostrar);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
puerto = comboBox1.Text;
try
{
serialPort1.PortName = puerto;
serialPort1.Open();
CheckForIllegalCrossThreadCalls = false;
if (serialPort1.IsOpen == true)
{
MessageBox.Show("SENSOR CONECTADO");
timer1.Start();
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR NO HAY CONEXIÓN");
timer1.Stop();
}
}
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Close();
serialPort1.Dispose();
label6.Text = "NO HAY CONEXIÓN CON NINGÚN SENSOR";
timer1.Stop();
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
dato = serialPort1.ReadExisting();
label6.Text = "RECIBIENDO DATOS DEL SENSOR";
string o2 = dato;
label4.Text = o2.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
label6.Text = "";
}
}
}
Как я могу сделать это в универсальном windows?