универсальная серийная связь windows - PullRequest
0 голосов
/ 04 марта 2019

Я хочу сделать универсальное приложение для 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?

...