PDA

View Full Version : پورت سریال(دوستا برنامه نویس نگاه کنند)



MOJTABA AR
شنبه 29 دی 1386, 08:30 صبح
یک برنامه ساده بصورت زیر نوشتم اما هر وقت اجراش میکنم خطا میزنه لطفا ایراد کار رو بمن
بگید.در ضمن میخواستم بدونم توی سی شارپ ایا احتیاج به dll هست.هر کی میدونه جواب بده با تشکر

using System.IO.Ports;
namespace com_port
{
publicpartialclassForm1 : Form
{

///<summary>
//////</summary>

SerialPort sp = newSerialPort("COM1", 9600,Parity.None, 8, StopBits.One);
public Form1()
{
InitializeComponent();
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
}

privatevoid button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
serialPort1.WriteLine(textBox1.Text);

}
}

scorpion_man
شنبه 29 دی 1386, 11:14 صبح
یک برنامه ساده بصورت زیر نوشتم اما هر وقت اجراش میکنم خطا میزنه لطفا ایراد کار رو بمن
بگید.در ضمن میخواستم بدونم توی سی شارپ ایا احتیاج به dll هست.هر کی میدونه جواب بده با تشکر

using System.IO.Ports;
namespace com_port
{
publicpartialclassForm1 : Form
{

///<summary>
//////</summary>

SerialPort sp = newSerialPort("COM1", 9600,Parity.None, 8, StopBits.One);
public Form1()
{
InitializeComponent();
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
}

privatevoid button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
serialPort1.WriteLine(textBox1.Text);

}
}

با سلام به دوست عزیز
این برنامه قرار هست چیکار بکنه فقط سریال پورت رو باز میکنه فقط همین؟؟؟
خوب لطفا error ی که میده رو هم اینجا بذار تا بشه بیشتر کمکت کرد چون نوع خطا مشخص میکنه که مشکل از کجاست
موفق باشید

scorpion_man
شنبه 29 دی 1386, 11:17 صبح
راستی چه تو c# چه بقیه syntax ها که تو .net هستند برای این کار نیازی به dll خاص بیرونی نداری میتونی از کلاسهای خود .net این کارو انجام بدی و رو هر سیستمی که .net framwork نصب باشه کار خواهد کرد
موفق باشید

application_13
شنبه 29 دی 1386, 14:46 عصر
سلام دوست عزیز.
اول به قول دوستمون scorpion خطایی رو که میده بذار.
بعد هم من تا جایی که متوجه شدم شما یه اشتباهی کردید.
ابتدا یه sp از نوع serialport تعریف کردی ولی همچین اسمی رو تو باز کردن پورت نیاوردی. یعنی یه اسم دیگه گذاشتی:

serialport1.open(); serialport1.writeline(textbox1.text);
بجای serialport1 بنویس sp

MOJTABA AR
سه شنبه 02 بهمن 1386, 09:55 صبح
سلام دوست عزیز راستش من هم به جای

serialport قبلا sp گذاشته بودم ولی موقعی که میخواستم داخل تاپیک برای دوستان بذارم اشتباه کردم برنامه صحیح اونو براتون فرستادم در ضمن این برنا مه فقط پرت سریال و باز میکنه واما خطایی که میده اینه که اگر :



sp.open();

رو ننویسم خطا میده که ( serial port is closed )



و وقتی sp.open(); رو مینویسم خطا میده که (serial port already opened)


using System.IO.Ports;
namespace com_port
{
publicpartialclassForm1 : Form
{

///<summary>
//////</summary>
SerialPort sp = newSerialPort("COM1", 9600,Parity.None, 8, StopBits.One);public Form1()
{
InitializeComponent();
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
}

privatevoid button1_Click(object sender, EventArgs e)
{
sp.Open();
sp.WriteLine(textBox1.Text);

}
}




در مورد دستور


text box1.text=sp.readline(); هم همین خطا رو میده . در ضمن از شما هم ممنونم


در ضمن من هنوز سحت اافزار رو به پورت سیریال وصل نکردم (میکرو کنترلر avr ) ایا امکانش هست که خطا به خاطر این باشه.

scorpion_man
سه شنبه 02 بهمن 1386, 14:17 عصر
سلام دوست عزیز راستش من هم به جای

serialport قبلا sp گذاشته بودم ولی موقعی که میخواستم داخل تاپیک برای دوستان بذارم اشتباه کردم برنامه صحیح اونو براتون فرستادم در ضمن این برنا مه فقط پرت سریال و باز میکنه واما خطایی که میده اینه که اگر :



sp.open();

رو ننویسم خطا میده که ( serial port is closed )



و وقتی sp.open(); رو مینویسم خطا میده که (serial port already opened)


using System.IO.Ports;
namespace com_port
{
publicpartialclassForm1 : Form
{

///<summary>
//////</summary>
SerialPort sp = newSerialPort("COM1", 9600,Parity.None, 8, StopBits.One);public Form1()
{
InitializeComponent();
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
}

privatevoid button1_Click(object sender, EventArgs e)
{
sp.Open();
sp.WriteLine(textBox1.Text);

}
}




در مورد دستور


text box1.text=sp.readline(); هم همین خطا رو میده . در ضمن از شما هم ممنونم


در ضمن من هنوز سحت اافزار رو به پورت سیریال وصل نکردم (میکرو کنترلر avr ) ایا امکانش هست که خطا به خاطر این باشه.



دوست عزیز لطفا این tag های font رو پاک بکنید تا بشه فهمید کی به کیه و چی به چیه این کدها که کاملا error هست:چشمک:
موفق باشید

application_13
سه شنبه 02 بهمن 1386, 18:23 عصر
سلام.
لطف کنید کدهایی رو که نوشتید رو مرتب بذارید. آخه چیزه زیادی نمیشه فهمید.

در ضمن من هنوز سحت اافزار رو به پورت سریال وصل نکردم ایا امکانش هست که خطا به خاطر این باشه
خیر.
من برای شما یه نمونه برنامه میذارم. شاید بدردت بخوره.
به این صورت که پورت رو باز کنه و چند عدد به میکرو بفرسته.

application_13
سه شنبه 02 بهمن 1386, 23:31 عصر
سلام دوست عزیز.
اینم برنامه ای که قولش رو داده بودم.
فقط یه چیزی. اینکه موقع باز کردن پورت ها ( به خصوص واسه مودم که COM3 هست) باهاشون کار نکن. مثلا وقتی میخوای تو برنامه COM3 رو باز کنی به اینترنت وصل نباش.چون اگه باشی هنگ میکنه. که این ایراد توسط TRY و CATCH حل میشه که من بلد نیستم باهاشون کار کنم. اگه کسی بلده لطفا راهنمایی کنه.

scorpion_man
سه شنبه 02 بهمن 1386, 23:54 عصر
سلام دوست عزیز.
اینم برنامه ای که قولش رو داده بودم.
فقط یه چیزی. اینکه موقع باز کردن پورت ها ( به خصوص واسه مودم که COM3 هست) باهاشون کار نکن. مثلا وقتی میخوای تو برنامه COM3 رو باز کنی به اینترنت وصل نباش.چون اگه باشی هنگ میکنه. که این ایراد توسط TRY و CATCH حل میشه که من بلد نیستم باهاشون کار کنم. اگه کسی بلده لطفا راهنمایی کنه.

دوست عزیز


try
کدهایی که در صورت ایجاد خطا گرفته خواهند شد در این محل قرار میگیرند
catch ex as exception
کدهایی که بعد از ایجاد خطا انجام خواهند شد مثل بستن پرت و غیره
finally
کدهایی که در هر حالت چه بروز خطا چه پایان صحیح کدها بعد از انجام تمامی کدهای بالا انجام خواهند شد
end try

البته اون exception رو میتونید با توجه به خطاهای رخ داده شده قرار بدید تا مدیریت دقیقتری رو خطا ها داشته باشید ولی exception تمامی خطاها رو catch میکنه و تمامی کلاسها exception از این کلاس ارث بری دارند البته اگه منظورتون توضیح try catch بوده میتونه کمک بکنه اگه منظورتون خطاهای برنامه هست باید یه با تستش بکنم
موفق باشید