سيريالبورت لا يقرأ الرسالة
-
13-12-2019 - |
سؤال
أحاول تشغيل اتصال تسلسلي باستخدام فئة [سيريالبورت].لقد صنعت مشروع تطبيق وحدة تحكم بسيط حيث أختبر هذه الفئة باستخدام هيبرترمينال.
هذا هو برنامجي:
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
ما يلي:عندما أكتب سطر (في وحدة التحكم) يمكن أن نرى في واجهة المستخدم الرسومية هيبرترمينال ما كتبته ، ولكن عندما أكتب خط باستخدام هيبرترمينال لا يتم قراءة رسالة من قبل برنامجي أن ثوروس دائما TimeoutException
.
لم؟
كيف يمكنني حل هذه المشكلة?
شكرا.
المحلول
جرب المنفذ.قراءة في حالة الميناء.ريدلاين ينتظر خط جديد !
نصائح أخرى
ماذا عن الاستفادة من سيريالبورت.حدث البيانات?
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx
لا تنتمي إلى StackOverflow