PDA

View Full Version : سوال: برنامه ای برای تک زنگ زدن از طریق مودم



hamed rak
سه شنبه 18 اسفند 1388, 02:46 صبح
سلام
راستش می خواستم یه برنامه بنویسم که به شماره های مختلف تک زنگ بزنه.
به نظر شما چطور می تونم تک زنگ خوردن و یا اشغال بودن شماره ی مورد نظر رو بررسی کنم.
ممنون

hossein-khoshseyar
پنج شنبه 20 اسفند 1388, 22:02 عصر
سلام
راستش می خواستم یه برنامه بنویسم که به شماره های مختلف تک زنگ بزنه.
به نظر شما چطور می تونم تک زنگ خوردن و یا اشغال بودن شماره ی مورد نظر رو بررسی کنم.
ممنون
تو اصلا به زنگ زدن به اون شماره خاص آشنا هستی؟
اگه بلدی و می دونی که باید با AT command این کار بکنی. پس حتما باید بدونی که خود AT command هم دستوری برای اینکه بفهمه خط مشغول یا نه داره !!

hamed rak
جمعه 21 اسفند 1388, 20:39 عصر
سلام
ممنون از توجهتون.
من این کار رو با کامپوننت ها، انجام دادم. این کامپوننت ها این دستور رو دارن ولی نمی دونم چرا نمی تونن مشغول بودن رو تشخیص بدن
راستی واسه فهمیدن خطاهای مودم تو vb چه دستوری وجود داره
بازم ممنون

hossein-khoshseyar
جمعه 21 اسفند 1388, 20:58 عصر
سلام
ممنون از توجهتون.
من این کار رو با کامپوننت ها، انجام دادم. این کامپوننت ها این دستور رو دارن ولی نمی دونم چرا نمی تونن مشغول بودن رو تشخیص بدن
راستی واسه فهمیدن خطاهای مودم تو vb چه دستوری وجود داره
بازم ممنون


بهترین راه برای استفاده از مودم ارتباط مستقیم مودم توسط ارتباط سریال با استفاده از پروتکل at command
برای اینکار می تونی از کامپوننت mscomm32.ocx استفاده کنی
با این کامپوننت می تونی از طریق کام با مودم در ارتباط باشی
برای اجرای هر فرمان می تونی یک کامند به مودم بفرستی و مودم هم همیشه رویداها از قبیل مشغول بودن خط و .... رو با کامند بهت اعلام می کنه

pirmard
جمعه 21 اسفند 1388, 21:45 عصر
سلام
ممنون از توجهتون.
من این کار رو با کامپوننت ها، انجام دادم. این کامپوننت ها این دستور رو دارن ولی نمی دونم چرا نمی تونن مشغول بودن رو تشخیص بدن
راستی واسه فهمیدن خطاهای مودم تو vb چه دستوری وجود داره
بازم ممنون



با چه اکتیوکسی این کارو انچام می دادید ؟
tapiex ? kdetele ? another one ?

hamed rak
شنبه 22 اسفند 1388, 11:07 صبح
سلام
از KDTele و TAPIEx رو امتحان کردم. هر دوشون قابلیت تشخیص اشغالی رو دارن ولی جواب نمی دادن.
ممنون

Shahram_Shobeiri
شنبه 22 اسفند 1388, 13:25 عصر
آقا چرا از at command استفاده نمی کنی و متوسل به اجانب (اکتیوایکس ها!!!) می شی؟
ببین با این کد کارت راه می افته؟



Private GSM_Port As IO.Ports.SerialPort

Public Sub Delay(ByRef W As Integer)
'one tick = 100 nanoseconds so one tick * 10,000,000 = one second
Dim Now_Tick As Int64 = DateTime.Now.Ticks
Do
Loop Until DateTime.Now.Ticks - Now_Tick >= W
End Sub

Public Function Dial(ByRef Phone_Number As String, ByRef Wait As Byte) As Boolean
'ATD <Phone_Number>;
Clear_Buffer()
GSM_Port.WriteLine("ATD" + Phone_Number + ";" + Chr(13))
Delay(Wait * 10000000)
Dim busy As String = GSM_Port.ReadLine()
If (busy = "NO CARRIER") Then Return False Else Return True
End Sub



همونطور که از کد پیداس اگر خروجی Dial غلط (False) باشد یعنی خط اشغال است.

hamed rak
یک شنبه 23 اسفند 1388, 18:24 عصر
سلام
از همتون ممنونم
از at command هم استفاده کردم ولی نمیشه اشغال بودن رو باهاش تشخیص داد