PDA

View Full Version : آموزش: خطا در كد شماره گيري با مودم



csharpprogramer88
پنج شنبه 26 آذر 1388, 18:52 عصر
سلام
من كد شماره گيري با مودم را توي تاپيك ها جستجو كردم اين كد را پيدا كردم كه با آن پورت ها را جستجو مي كند كه پورت 3 مودم است


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace modem9
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

}

private SerialPort Port = new SerialPort();

private int SearchModemPort()
{
Port.Close();
for (int i = 1; i < 10; i++)
{
try
{
Port.PortName = "COM" + i;
Port.Open();
Port.Write("AT\r");
Thread.Sleep(200);
if (Port.ReadExisting().ToUpper().Contains("OK"))
return i;
Port.Close();
}
catch { MessageBox.Show("error" + Port.PortName); }
}
return 0;
}

private void button1_Click(object sender, EventArgs e)
{
if (SearchModemPort() != 0)
{
MessageBox.Show(String.Format(".مودم بر روی پورت {0} یافت شد", Port.PortName), "پورت مودم");
Port.Write("ATDT 09111576910");
}
else
{
MessageBox.Show(".مودم یافت نشد", "پورت مودم");
Application.Exit();
}
}
}
}



برنامه اجرا مي شود پورت را هم پيدا مي كند ولي شماره نمي گيرد و خطلايي هم نمي دهد
دوستاني كه برنامه هاي مشابه انجام دادند به من كمك كنند

M_Ali_Safdari
شنبه 28 آذر 1388, 22:36 عصر
این خط رو
Port.Write("ATDT 09111576910");
به
Port.Write("ATDT09111576910");
تغییر بدید.
اگر مشکل حل نشد . بگید تا دیباگ کردن رو ادامه بدیم.

csharpprogramer88
شنبه 28 آذر 1388, 23:01 عصر
این خط رو
Port.Write("ATDT 09111576910");
به
Port.Write("ATDT09111576910");
تغییر بدید.
اگر مشکل حل نشد . بگید تا دیباگ کردن رو ادامه بدیم.


از شما دوست گرامي سپاسگزارم

تغيير دادم ولي باز مثل قبله هيچ تغيير نكرد نه خطلايي نه چيزي

M_Ali_Safdari
شنبه 28 آذر 1388, 23:39 عصر
من پیشنهاد میکنم اول شماره گیری رو با Hyper terminal تست کنید.
تا مطمئن باشیم سخت افزار و درایور مودم شما نیاز به تنظیم خاصی نداره.

sylvester
یک شنبه 29 آذر 1388, 01:11 صبح
Port.Write("ATDT 09111576910"+ Convert.ToChar(13((;


این خط رو جایگزین کنید درست میشه

M_Ali_Safdari
یک شنبه 29 آذر 1388, 08:40 صبح
Port.Write("ATDT 09111576910"+ Convert.ToChar(13((;


این خط رو جایگزین کنید درست میشه

به نکته درستی اشاره کردند،اصلا حواسمان نبود که انتهای رشته نیاز به Enter هست!
در ضمن اگر کاراکتر ( linefeed (without carriage return رو هم اضافه کنید ، فکر می کنم بهتر باشه.



Port.Write("ATDT 09111576910"+ Convert.ToChar(13)+Convert.tochar(10));

lalecarbon
شنبه 05 دی 1388, 21:42 عصر
مي تونيد از متد writeline هم استفاده كنيد

mehrsa_fr
پنج شنبه 08 بهمن 1388, 21:15 عصر
میشه یه توضیحی بدید چجوری میشه callerid موقع زنگ زدن بردارم ممنون میشم جواب بدید

csharpprogramer88
یک شنبه 18 بهمن 1388, 21:55 عصر
سلام کدی را که دارم می فرستم روی سیستم من بدون مشکل پورت مودم را پیدا می کنه و شماره هم می گیره دوستان استفاده کنند و حتما اگر مشکلی دارند اعلام کنند تا هم مشکل خودشان و هم اگر دیگران مشکل مشابه انها را دارند حل بشه