View Full Version : سوال: چطوری پورت مودم های سیستم را پیدا کنم؟
scorpion_sincity
پنج شنبه 05 خرداد 1390, 13:30 عصر
با سلام
چطوری می تونم تو لیست device manager بگردم و پورت مودم های موجود را پیدا کنم؟؟
مثلا: COM2
ممنون
Open-Source
پنج شنبه 05 خرداد 1390, 14:02 عصر
System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();
for (int i = 1; i < 10; i++)
{
try
{
sp.PortName = "COM" + i;
sp.Open();
sp.Write("AT\r");
System.Threading.Thread.Sleep(200);
if (sp.ReadExisting().ToUpper().Contains("OK"))
comboBox1.Items.Add(sp.PortName);
sp.Close();
}
catch
{
}
}
sp.Close();
scorpion_sincity
پنج شنبه 05 خرداد 1390, 14:23 عصر
واقعا ممنون
عالی بود
عالیی
ی سوال دیگه
چطوری می تونم اسم device اون پورت رو هم داشته باشم؟؟
Open-Source
پنج شنبه 05 خرداد 1390, 15:12 عصر
در مورد AT Command سرچ بزن و دستوری که برای پیدا کردن مدل Device بکار میره رو پیدا کن.
(فکر کنم ATI4 برای پیدا کردن مدل استفاده میشد:متفکر:)
scorpion_sincity
پنج شنبه 05 خرداد 1390, 16:15 عصر
در مورد AT Command سرچ بزن و دستوری که برای پیدا کردن مدل Device بکار میره رو پیدا کن.
(فکر کنم ATI4 برای پیدا کردن مدل استفاده میشد:متفکر:)
ATI4 رو کجا بنویسم؟؟
چطوری؟؟؟
omn!a2
پنج شنبه 05 خرداد 1390, 16:55 عصر
ATI4 رو کجا بنویسم؟؟
چطوری؟؟؟
AT+CGMI برای گرفتن نام كارخانه سازنده دستگاه
موفق باشی
Open-Source
پنج شنبه 05 خرداد 1390, 17:11 عصر
یه کلاس ساده نوشتم برای کا با مودم باستفاده از ATCommand که این کارها رو میکنه:
1.پرت همه مودم های فعال رو بر میگردونه
2.یه شماره پرت میگیره و مدل مودم رو بر میگردونه
3.شماره گیری - توقف شماره گیری - redial
4.یه تابع که دستوارت AT رو اجرا میکنه.
اینم از این کلاس:
/*
*
* http://open-source.blogfa.com
*
*/
using System;
using System.Collections.Generic;
using System.Text;
/////
using System.IO.Ports;
using System.Threading;
using System.Collections;
namespace Tele
{
class AmirOpenSourceModemClass
{
private SerialPort serialPort = new SerialPort();
//************************************************** ******************************** لیست همه مودم ها
/// <summary>
/// Return List Of Modems With AT Command Support in ArrayList DataType
/// </summary>
/// <returns></returns>
public ArrayList List_Of_Modem_Port()
{
Array comPorts = SerialPort.GetPortNames();//Get Active Ports
ArrayList modemPorts = new ArrayList();
SerialPort sp = new SerialPort();
foreach (string portName in comPorts)
{
try
{
if (sp.IsOpen) sp.Close();
sp.PortName = portName;
sp.Open();
sp.Write("AT\r\n");
Thread.Sleep(200);
if (sp.ReadExisting().ToUpper().Contains("OK"))
modemPorts.Add(sp.PortName);
}
catch { }
}
return modemPorts;
}
//************************************************** ******************************** گرفتن نام پرت و برگرداندن مدل مودم
/// <summary>
/// Get PortName And Return Device Model
/// </summary>
/// <param name="portName"></param>
/// <returns></returns>
public string Get_ModemName_By_PortName(string portName)
{
SerialPort sp = new SerialPort();
string result = "";
sp.PortName = portName;
if (!sp.IsOpen)
sp.Open();
sp.Write("ATI4" + "\r\n");
Thread.Sleep(200);
result = sp.ReadLine();//Command
result = sp.ReadLine();//Empty Line
result = sp.ReadLine();//Model
//result = sp.ReadExisting();
sp.Close();
return result;
}
//************************************************** ******************************** گرفتن یک شماره
/// <summary>
/// Get an Number And Dial It and Return True or False
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public void Dial_A_Number(string number, string portName)
{
if (serialPort.IsOpen) serialPort.Close();
serialPort.PortName = portName;
serialPort.Open();
serialPort.Write("ATDT" + number + "\r\n");
Thread.Sleep(200);
}
//************************************************** ******************************** کنسل کردن شماره گیری
/// <summary>
/// Cancel Dialing
/// </summary>
/// <param name="portName"></param>
public void Cancel_Dial(string portName)
{
if (serialPort.PortName == portName && serialPort.IsOpen)
{
serialPort.Write("ATH" + "\r\n");
Thread.Sleep(200);
}
else
{
if (serialPort.IsOpen) serialPort.Close();
}
}
//************************************************** ******************************** گرفتن مجدد آخرین شماره
/// <summary>
/// Redial Last Number And If Redial Is Success Return True Else Return False
/// </summary>
/// <param name="portName"></param>
/// <returns></returns>
public bool Redial_Last_Number(string portName)
{
bool bl = false;
if (serialPort.PortName == portName && serialPort.IsOpen)
{
serialPort.Write("ATDL" + "\r\n");
Thread.Sleep(200);
if (serialPort.ReadExisting().ToUpper().Contains("ATDT"))
bl = true;
}
return bl;
}
//************************************************** ******************************** اجرای یک ATCommand
/// <summary>
/// Get an ATCommand And Run It and Return ATCommand Result
/// </summary>
/// <param name="atCommand"></param>
/// <param name="portName"></param>
/// <returns></returns>
public string Run_An_ATCommand(string atCommand, string portName)
{
string result = "";
if (serialPort.PortName == portName && serialPort.IsOpen)
{
serialPort.Write(atCommand + "\r\n");
Thread.Sleep(200);
}
else
{
if (serialPort.IsOpen) serialPort.Close();
serialPort.PortName = portName;
serialPort.Open();
serialPort.Write(atCommand + "\r\n");
Thread.Sleep(200);
}
result = serialPort.ReadExisting();
return result;
}
//************************************************** ********************************
}
}
اینم یه Sample (http://open-source.persiangig.com/Blogfa/dotNet/Tele_CS.7z)
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.