Domanda

Sto cercando di eseguire una comunicazione seriale usando la classe [serialport].Ho fatto un semplice progetto di applicazione della console in cui testerò questa classe utilizzando hyperterminale .

Questo è il mio programma:

class Program
{
    private static bool _continue = true;
    private static SerialPort port;

    static void Main(string[] args)
    {
        try
        {
            port = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
            port.ReadTimeout = port.WriteTimeout = 5000;
            port.Open();

            Thread thread = new Thread(Read);
            thread.Start();

            while (_continue)
            {
                string message = Console.ReadLine();

                if (message.Equals("quit"))
                    _continue = false;
                else
                    port.Write(message);
            }

            thread.Join();
            port.Close();
        }
        catch (Exception ex)
        { }
    }

    private static void Read()
    {
        while (_continue)
        {
            try
            {
                string message = port.ReadLine();
                Console.WriteLine(message);
            }
            catch (TimeoutException) { }
        }
    }
}
.

The problem is Le seguenti: Quando scrivo una linea (nella console) A può vedere nella GUI iperterminale ciò che ho scritto, ma quando scrivo una linea utilizzando iperterminale Nessun messaggio viene letto dal mio programma che Thorws sempre un TimeoutException.br>

Perché?
Come posso risolvere questo problema?
Grazie.

È stato utile?

Soluzione

PORT PORT.Leggi nel caso in cui Port.readline è in attesa di nuova linea!

Altri suggerimenti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top