PDA

View Full Version : خبر: وصل شدن به پورت COM بصورت اتوماتیک



pesare
پنج شنبه 20 تیر 1392, 13:23 عصر
سلام دوستان


چطوری میشه بصورت اتوماتیک به پورت کام وصل شد؟

mhmd.tv
پنج شنبه 20 تیر 1392, 15:34 عصر
توی form load دستور port.open() را بزنید.

pesare
پنج شنبه 20 تیر 1392, 16:00 عصر
این دستور چه پورتی رو باز میکنه؟


توی form load دستور port.open() را بزنید.

mhmd.tv
پنج شنبه 20 تیر 1392, 18:25 عصر
از منوی toolbox یه serialport به برنامتون اضافه کنید و شماره پورتی رو که می خواهید باز بشه رو بهش بدید

sohil_ww
پنج شنبه 20 تیر 1392, 19:26 عصر
از منوی toolbox یه serialport به برنامتون اضافه کنید و شماره پورتی رو که می خواهید باز بشه رو بهش بدید

دوستمون اگه اشتباه نکنم نمی دونم برای مثال مودم به چه پرتی به سیتم وصل میشه(COM 3 , Com5 و...) می خواد پورت که مودم وصله پیدا کنه(مودم 1 مثال بوده شاید مد نظر 1 چیزه دیگه ای باشه)

mhmd.tv
پنج شنبه 20 تیر 1392, 19:38 عصر
دوستمون اگه اشتباه نکنم نمی دونم برای مثال مودم به چه پرتی به سیتم وصل میشه(COM 3 , Com5 و...) می خواد پورت که مودم وصله پیدا کنه(مودم 1 مثال بوده شاید مد نظر 1 چیزه دیگه ای باشه)

اگه اینطور باشه که شما میگی می تونه بگرده هر پورتی رو که پیدا کرد باز کنه

sohil_ww
پنج شنبه 20 تیر 1392, 21:04 عصر
اگه اینطور باشه که شما میگی می تونه بگرده هر پورتی رو که پیدا کرد باز کنه

انگار دوستمون سئوال پرسیده رفته !
یکم در مورد سئوالت توضیح بده حداقل ما تو ابهام نمونیم

pesare
جمعه 21 تیر 1392, 09:03 صبح
من نمیدونم که به چه پورتی قراره وصل بشه , به خاطر همین باید بگرده ببینه مودم به چه پورتی وصل شده , به اون پورت وصل بشه و مقادیر Bit Rate و ... رو مقدار دهی کنه

انگار دوستمون سئوال پرسیده رفته !
یکم در مورد سئوالت توضیح بده حداقل ما تو ابهام نمونیم

asghar2008
جمعه 21 تیر 1392, 10:19 صبح
من نمیدونم که به چه پورتی قراره وصل بشه , به خاطر همین باید بگرده ببینه مودم به چه پورتی وصل شده , به اون پورت وصل بشه و مقادیر Bit Rate و ... رو مقدار دهی کنه


سلام

معمولا پورت مودم Com3 هستش!

pesare
جمعه 21 تیر 1392, 11:36 صبح
نه , من با گوشیم که مودم جی اس ام داخلی داره وصل میشم پورتش COM8 البته وقتی با کابل وصل میشم , اما وقتی با بلوتوث وصل میشم پورتش COM16 هست

pesare
جمعه 21 تیر 1392, 17:20 عصر
کسی نیست کمک کنه؟

pesare
شنبه 22 تیر 1392, 09:29 صبح
کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــک

pesare
یک شنبه 23 تیر 1392, 10:47 صبح
کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــک

pesare
یک شنبه 23 تیر 1392, 17:09 عصر
کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــک

jblaox
یک شنبه 23 تیر 1392, 19:52 عصر
سلام

فرض من این گونه قرار میدهم که شما تجربه عملی کامل داری و همچنین وسیله به دستگاه وصل است ...

یک حلقه مینویسی با do و نه For و نه while ...

داخل حلقه میای با for یکی یکی شماره پورت عوض میکنی از 1 برو تا 60 الی 70 .... (من تا 30 بیشتر نمیرم مگر کار خاص باشه ...)
یک حلقه هم مینویسی باد ریت عوض کنه ...
حالا دستور میدی پورت باز بشه ببینه چیزی میگره یا نه !!
اگر باز شد و اطلاعات مورد نظر گرفت که بپر بیرون !!
اگر نه ببند پورت ، واجب ، پورت همینچجوری باز نذار ...

همین به همین سادگی ....


این کد که خودم کار میکنم میتونم اینجا بذارم اما به سبک بسیار بد تاپیک های مرتبط با C++‎ کد نمیگذارم ...

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

pesare
یک شنبه 23 تیر 1392, 23:09 عصر
اگه کد بزاری ازت ممنون میشم


سلام

فرض من این گونه قرار میدهم که شما تجربه عملی کامل داری و همچنین وسیله به دستگاه وصل است ...

یک حلقه مینویسی با do و نه For و نه while ...

داخل حلقه میای با for یکی یکی شماره پورت عوض میکنی از 1 برو تا 60 الی 70 .... (من تا 30 بیشتر نمیرم مگر کار خاص باشه ...)
یک حلقه هم مینویسی باد ریت عوض کنه ...
حالا دستور میدی پورت باز بشه ببینه چیزی میگره یا نه !!
اگر باز شد و اطلاعات مورد نظر گرفت که بپر بیرون !!
اگر نه ببند پورت ، واجب ، پورت همینچجوری باز نذار ...

همین به همین سادگی ....


این کد که خودم کار میکنم میتونم اینجا بذارم اما به سبک بسیار بد تاپیک های مرتبط با C++‎ کد نمیگذارم ...

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

habibb
یک شنبه 23 تیر 1392, 23:36 عصر
سلام هدفت چیه که می خواهی به پورت کام وصل بشی؟
مودمی که اکنون شما باهاش داخل اینترنت هستی این پورت کاملا بسته شده و در حال استفاده توسط مودم هست و شما نمی تونید بهش وصل بشید
مگر اینکه disconnect کنید و از اینترنت بیاین بیرون بعد می شه به پورت مودم وصل شد.

pesare
یک شنبه 23 تیر 1392, 23:54 عصر
میخوام وصل شوم به مودم gms برای ارسال اس ام اس


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

habibb
یک شنبه 23 تیر 1392, 23:54 عصر
برای اینکه شماره ی پورت های مودم ها تون رو بفهمید در ویندوز xp توی این مسیر برید و ببینید
در پنجره ی کنترل پنل گزینه ی Phone and Modem Options و بعد تب مودم تمام پورت ها رو میشه دید .
مثلا مودم من با com4 به اینترنت وصل میشه

اگر بتونیم با کد نویسی بگیم مودم من به این نام برو شماره ی پورتش رو بخوان از مسیر بالا بعد اون شماره پورت رو بریز توی فیلد کام serialport
و بعدش open بشه.

باید توی فرم لود هم باشه این تنها راهشه تا اتوماتیک باشه و گرنه شما دستی میرید توی اون مسیر شماره پورت رو نگاه می کنید و قرار می دین:متعجب:

کدش رو دوستان بگذارند :متفکر:

habibb
دوشنبه 24 تیر 1392, 00:05 صبح
میخوام وصل شوم به مودم gms برای ارسال اس ام اس
کدش بگذار تا منم با موبایلم sms بدم با کامپیوتر:لبخند:

pesare
دوشنبه 24 تیر 1392, 14:41 عصر
کمـــــــــــــــــــــــ ـــک

pesare
پنج شنبه 27 تیر 1392, 09:48 صبح
کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــک

hamid_hr
پنج شنبه 27 تیر 1392, 09:56 صبح
از اين طريق ميتوني اطلاغات پورتو در بياري ببين ميشه فهميد gms هست يا نه
http://stackoverflow.com/questions/2837985/getting-serial-port-information

asghar2008
پنج شنبه 27 تیر 1392, 10:08 صبح
کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــک


سلام دوست عزیز

بنده منظور شما رو متوجه نشدم !! وصل شدن به پورت Com بصورت اتوماتیک یعنی چی؟؟

فقط میخواین پورت رو باز کنید؟؟ و بهش وصل بشید ؟

یا کدی میخوای که هم وصل بشه و هم برات اس ام اس بفرسته ؟

برای ارسال اس ام اس و کار با پورت کام شما باید دستورات At command رو بلد باشید.

بنده #C کار نکردم اما با VB.Net قبلا یه برنامه ارسال اس ام اس نوشتم.
تعریف متغیر از نوع سریال پورت :


Dim SerialPort1 As New System.IO.Ports.SerialPort()


در Load فرم کد زیر رو کپی کن. به محض لود شدن فرم پورت سریال یا همون کام آماده استفاده میشه. و پورت برای دستورات At command شما باز میشه :(با دستورات VB.Net :خجالت:)

SerialPort1.PortName = "COM8"
SerialPort1.BaudRate = 9600
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.DataBits = 8
SerialPort1.Handshake = Handshake.RequestToSend
SerialPort1.DtrEnable = True
SerialPort1.RtsEnable = True
SerialPort1.NewLine = vbCrLf
SerialPort1.Open()



حالا شما باید 2 تا Textbox (یکی برای وارد کردن شماره موبایل و یکی هم برای وارد کردن متن اس ام اس) و یک Button رو فرم بگذارید. بعد تو رویداد کلیک دکمه اول چک کنید که آیا پورت مورد نظر بازه (isopen) هست:



If SerialPort1.IsOpen() Then
SerialPort1.Write("AT" & vbCrLf)
.
.
.



با دستورSerialPort1.Write میتونی دستورات At command رو به مودم ارسال کنی.

کدهارو میتونی به صورت آنلاین تبدیل به #C کنی.

موفق باشی

pesare
پنج شنبه 27 تیر 1392, 18:16 عصر
من میخوام وقتی مودم رو به کامپیوتر وصل کردم , نیام بصورت دستی مثلا بدم پورت COM8 یا COM9 ... , از طریق کد بیام پورت ها رو بررسی کنم ببینم مودم به چه پورتی وصل شده

hamid_hr
یک شنبه 30 تیر 1392, 12:54 عصر
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_POTSModem");

foreach (ManagementObject queryObj in searcher.Get())
{
//if (queryObj["Caption"].ToString().Contains("(COM"))
//{

string s = queryObj["Caption"].ToString();
try
{
s += ": " + queryObj["AttachedTo"].ToString();
listBox1.Items.Add("serial port : " + s);
}
catch { }
//Console.WriteLine("serial port : {0}", queryObj["Caption"]);
//}

}
}
catch (ManagementException exx)
{
MessageBox.Show(exx.Message);
}

pesare
یک شنبه 30 تیر 1392, 13:22 عصر
NameSpace ها هم که اضافه میکنم بازم خطا میگیره , این کد رو از جاهای دیگه گرفتم و تست کردم


try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_POTSModem");

foreach (ManagementObject queryObj in searcher.Get())
{
//if (queryObj["Caption"].ToString().Contains("(COM"))
//{

string s = queryObj["Caption"].ToString();
try
{
s += ": " + queryObj["AttachedTo"].ToString();
listBox1.Items.Add("serial port : " + s);
}
catch { }
//Console.WriteLine("serial port : {0}", queryObj["Caption"]);
//}

}
}
catch (ManagementException exx)
{
MessageBox.Show(exx.Message);
}

hamid_hr
یک شنبه 30 تیر 1392, 13:32 عصر
بايد بري به رفرنس هات اينو اضافه كني
System.Management;

kazem235
یک شنبه 30 تیر 1392, 22:36 عصر
به نظر من اگه از یه Combo Box استفاده کنی بهتره.توی اون Port ها رو بزار و با یه Button چک کن بببین وصله یا نه.

pesare
دوشنبه 31 تیر 1392, 08:40 صبح
اگه خودم میخواستم استفاده کنم که مشکلی نبود , میخوام بدم به یه کاربر بیسواد که از کامپیوتر سر در نمیاره


به نظر من اگه از یه Combo Box استفاده کنی بهتره.توی اون Port ها رو بزار و با یه Button چک کن بببین وصله یا نه.

love_iran1983
چهارشنبه 02 مرداد 1392, 16:57 عصر
سلام
من دستورات زیر رو وارد کردم برای ارسال اس ام اس اما ارسال نشد .
لطفا یک نفر راهنمایی کنه :

If SerialPort1.IsOpen = True Then SerialPort1.Close()

Try
With SerialPort1

.PortName = ComboBox1.Text

.BaudRate = 9600

.Parity = IO.Ports.Parity.None

.DataBits = 8

.StopBits = IO.Ports.StopBits.One

End With
SerialPort1.Open()
SerialPort1.Write("AT+CMGF=1" & vbCrLf)
SerialPort1.Write("AT+CMGS= " & "09155107440" & vbCrLf)
SerialPort1.Write("test" & Chr(26))
SerialPort1.ReadExisting()

SerialPort1.Write(("ATDT " & RichTextBox1.Text & vbCrLf))

Catch ex As Exception
End Try

hojjatshariffam
چهارشنبه 02 مرداد 1392, 17:31 عصر
ببین این کد چک می کنه که ببینه پورتی که پیدا کرده مودمه یا نه
اول با این چک کن ببین اگه پورت مودم بود بعدبرو سراغازسال

private bool PortIsModem(string portToCheck)
{
if (port.IsOpen)
port.Close();
port.PortName = portToCheck;
port.BaudRate = this.Settings.BaudRate;
port.Parity = this.Settings.Parity;
port.StopBits = this.Settings.StopBits;
port.DtrEnable = true;
port.ReadTimeout = 500;
try
{
port.Open();
port.Write("AT" + Convert.ToChar(13));
System.Threading.Thread.Sleep(200);
port.Read(new char[1], 0, 1);
port.Close();
return true;
}
catch (Exception)
{
if (port.IsOpen)
port.Close();
return false;
}
}