PDA

View Full Version : سوال: درباره سریال پورت



nazanins66
چهارشنبه 06 آبان 1388, 18:02 عصر
سلام. من در یک فرم از کامپوننت سریال پورت استفاده کردم و پورت اون همیشه باز است و با آن شماره گیری می کنم . در داخل این فرم می خوام فرم دیگری رو که دفتر چه تلفنم است باز کنم و در آن از سریال پورت فرم اصلی استفاده کنم و با شماره ای که در textbax قرار می گیره هم بتونم شماره گیری کنم. اما نمی تونم از اون سریال پورت استفاده کنم .

لطفا بفرمایید که چکار کنم و از چه کدی باید استفاده کنم؟ ممنون

kiosksoft
چهارشنبه 06 آبان 1388, 18:48 عصر
دوست عزیز

هنگام تعریف یک کاپوننت یا آبجکت داخل یک فرم خود دات نت کنترل ها را بصورت private تعریف میکند طوری که شما از طریق یک فرم دیگر به آنها دسترسی نخواهید داشت. برای استفاده از یک کنترل فرم در داخل یک فرم دیگر باید در فایل Designer فرم مورد نظر نحوه تعریف کنترل را بصورت دستی تغییر دهید .

بطور مثال در فایل Designer تغییرات ذیل را انجام دهید :


private System.IO.Ports.SerialPort serialPort1;
تغییر ...

public System.IO.Ports.SerialPort serialPort1;

حال در فرم دوم یک آبجکت از فرم اول بسازید و از همان serialPort1 استفاده نمایید.

nazanins66
پنج شنبه 07 آبان 1388, 10:30 صبح
دوست عزیز

هنگام تعریف یک کاپوننت یا آبجکت داخل یک فرم خود دات نت کنترل ها را بصورت private تعریف میکند طوری که شما از طریق یک فرم دیگر به آنها دسترسی نخواهید داشت. برای استفاده از یک کنترل فرم در داخل یک فرم دیگر باید در فایل Designer فرم مورد نظر نحوه تعریف کنترل را بصورت دستی تغییر دهید .

بطور مثال در فایل Designer تغییرات ذیل را انجام دهید :


private System.IO.Ports.SerialPort serialPort1;
تغییر ...

public System.IO.Ports.SerialPort serialPort1;

حال در فرم دوم یک آبجکت از فرم اول بسازید و از همان serialPort1 استفاده نمایید.




با تشکر از شما. من این کار رو کردم و در فرم دوم به سریال پورت دسترسی دارم. اما چون من در فرم اول در لود فرم پورت com3 را باز می کنم و همیشه باز است و حالا که می خواهم در فرم دوم با استفاده از سریال پورت فرم اول شماره گیری کنم خطا می دهد که دسترسی به com3 نمی تواند داشته باشد. لطفا کمکم کنید چون خیلی کارم گیر کرده. ممنون

kiosksoft
پنج شنبه 07 آبان 1388, 14:51 عصر
دوست عزیز

یه نمونه از برنامه ت بزار اینجا بررسی کنم . جواب ش رو میفرستم براتون

vafaei
پنج شنبه 07 آبان 1388, 17:12 عصر
سلام
من هم می خواهم در C#‎‎ از کامپوننت سریال پورت استفاده کردم با آن شماره گیری می کنم و به اينترنت وصل بشم. اما اصلا نمیدونم چطور!
لطفا کدتون رو بزارین.
در صورت امکان راهنمایی کنید.

با تشکر

nazanins66
پنج شنبه 07 آبان 1388, 22:23 عصر
دوست عزیز

یه نمونه از برنامه ت بزار اینجا بررسی کنم . جواب ش رو میفرستم براتون


در فرم اول در قسمت لود آن نوشتم:


for (int i = 3; i < 5; i++)
{
serialPort1.Close();
serialPort1.PortName = "COM" + i;
serialPort1.Open();
serialPort1.Write("AT\r");
Thread.Sleep(200);
if (serialPort1.ReadExisting().ToUpper().Contains("OK"))
{
serialPort1.Close();
serialPort1.PortName = "COM" + i;
serialPort1.Open();
lblStatus.Text = " ں¢­ںé پي©¢ " + serialPort1.PortName + " ©ç©ں© ¬§";

}
break;
}



و در فرم دوم در رویداد کلیک buton نوشتم:



private void btndial_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
if (string.IsNullOrEmpty(txtTelephon.Text))
{
MessageBox.Show("éلهں ¬êں©ى ¢éهë ©ں يں©§ کëی§");
return;
}
if (!form1.serialPort1.IsOpen)
form1.serialPort1.Open();
form1.serialPort1.Write("ATDT" + txtTelephon.Text + Convert.ToChar(13));
}


و
txtTelephon تکست باکسی که شماره تلفن را در آن وارد می کنم.

خواهش می کنم که کمکم کنید.

vafaei
شنبه 09 آبان 1388, 09:00 صبح
سلام
از اينکه کدتون رو گذاشتین متشکرم.
می تونيد یه توضيح کوچولو رو اون بدین.
اگه بتونيد Comment گذاری کنيد واقعا عالیه.
در ضمن متن فارسی قابل خوندن نیست.

system32
شنبه 09 آبان 1388, 09:28 صبح
ببینید اگه پورت را ببیندید و دوباره باز کنید مشکل حل می شود؟