PDA

View Full Version : سوال: خواندن از پورت com فقط زمانی که داده وجود دارد



mahdi bg
شنبه 10 مهر 1389, 17:16 عصر
سلام

من یک متغییر از نوغ portserial ساختم
چطوری می تونم بفهمم که داده روی پورت هستش؟
(فقط زمانی دستور readline رو بدم که داده به پورت ارسال شده است)

مثلا تابعی نداره مثل listen که منتظر بومنه تا داده وارد بشه؟

s.khoshfekran
شنبه 10 مهر 1389, 17:38 عصر
از DataRecieved Event استفاده کن!

mahdi bg
شنبه 10 مهر 1389, 19:51 عصر
سلام
ممنون

برای اطلاع بیشتر
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx

mahdi bg
یک شنبه 11 مهر 1389, 20:07 عصر
سلام


توی گد زیر



class PortDataReceived
{
public static void Main()
{
SerialPort mySerialPort = new SerialPort("COM1");

mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;

mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceviedHandler );

mySerialPort.Open();

Console.WriteLine("Press any key to continue...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}

private static void DataReceviedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("Data Received:");
Console.Write(indata);
}
}



توی بخش DataReceviedHandler وقتی کد زیر رو می نویسم

this.Controls.Add(Lbl[Temp]);
this.Controls.Add(Txt[Temp]);

آرایه های از lable و Textbox
پیغام خطا میده باید چکار کنم?

اینم عکس خطا
http://up.iranblog.com/Files73/3ea05558485f40abb418.jpg


ممنون