PDA

View Full Version : Dialing



morika
پنج شنبه 19 شهریور 1388, 12:22 عصر
سلام

با چه کدی میشه کاری کرد که برنامه عین پنجره Dial Up شماره داخل تکس باکس رو بگیره؟

ممنون

mlf_mlv
پنج شنبه 19 شهریور 1388, 12:56 عصر
سلام

با چه کدی میشه کاری کرد که برنامه عین پنجره Dial Up شماره داخل تکس باکس رو بگیره؟

ممنون
میشه بیشتر توضیح بدید؟منظورتون اینه کانکت شید؟:متفکر:

Saeed Hamed
پنج شنبه 19 شهریور 1388, 16:58 عصر
با چه کدی میشه کاری کرد که برنامه عین پنجره Dial Up شماره داخل تکس باکس رو بگیره؟

دوست عزیز اگه منظورت شماره گیری تنها هستش با استفاد از اتصال به مودم از طریق پورت COM با استفاده از کنترل Serial Port می تونید این کار رو انجام بدین. برای این کار باید دستورات AT را به مودم ارسال کنید. توی یکی از این دستورات فکر کنم دستوری برای ایجاد ارتباط به صورت دیتا هم داریم ولی اگه می خوای با این کار به یک ISP وصل بشی بحثش فرق می کنه که منم خودم یه مدتی کوتاهی دنبالش بودم و به نتیجه ای هم نرسیدم. فکر کنم این ارتباط از پروتکل خاصی استفاده می کنه ولی یه دستور API هستش که خود صفحۀ Dialup رو باز میکنه. اگه دستورات AT رو خواستی بگو تا برات بزارم. خودتم بگردی پیدا می کنی.
یا علی

morika
جمعه 20 شهریور 1388, 12:50 عصر
خیر دوستان
من می خوام شماره تلفن نوشته شده تو تکس باکس رو بگیره یعنی زنگ بزنه
ببینید شما وقتی تو dialup شماره تلفن موبایل خودتون رو بنویسید موبایل شما زنگ می زنه من می خوام این کد فقط همین کارو بکنه. یعنی با شماره تلفن ارتباط برقرار کنه

Saeed Hamed
جمعه 20 شهریور 1388, 15:16 عصر
من می خوام شماره تلفن نوشته شده تو تکس باکس رو بگیره یعنی زنگ بزنه


شما از همون دستورات AT استفاده کنی مشکلت حل میشه. استفاده از اونم به صورت زیر هستش.
1- یک کنترل Serial Port به برنامت اضافه کن
2- خاصیت PortName رو برابر با شمارۀ پورت مودم قرار بده که معمولاً مودم روی پورت COM3 هستش. (SerialPort1.PortName = "COM3")
3- با استفاده از متد Open کنترل Serial پورت رو باز می کنی.
4- حالا دستور AT مربوطه را به مودم می فرستی.
این آدرس لیستی از پرکاربرد ترین دستورات مودم رو داره یه سری بزن و دستور مورد نظرتو پیدا کن. http://www.dialogic.com/support/helpweb/lasat/manuals/saf/Command/atlist.htm

دستور شماره گیره ATD هستش و به عنوان مثال اگه شما بخوای یه شمارۀ 05112222222 رو شماره گیری کنی باید به این صورت عمل کنی:
SerialPort1.WriteLine("ATD05112222222")
فکر کنم تقریباً کامل بود.
موفق باشی یاعلی.

morika
جمعه 20 شهریور 1388, 22:02 عصر
دوست عزیز من کد رو اینجوری نوشتم اما جواب نمی ده



SerialPort1.Open()
SerialPort1.WriteLine("ATD09372903122")

Saeed Hamed
شنبه 21 شهریور 1388, 02:23 صبح
اما جواب نمی ده

حق با شماست من یک چیز رو از قلم انداختم :خجالت: اونم اینکه در انتهای دستور باید یک Enter وارد بشه و این کار رو هم با ثابت vbNewLine انجام می دیم.
من یک نمونه پروژه برات درست کردم و گذاشتم امیدوارم که مشکلت حل بشه.
یا حق.

morika
دوشنبه 23 شهریور 1388, 17:06 عصر
آقا دم شما گرم مشکل ما حل شد فقط یه چیز دیگه اونم این که چه جوری میشه کاری کرد که وقتی برنامه در حال شماره گیریه label1.text بشه dialing و زمانی تماس برقرار شد بشه contact و اگه تماس حاصل نشد بشه Faild ؟
خیلی خیلی ممنون

morika
پنج شنبه 26 شهریور 1388, 16:18 عصر
کسی نمی تونه به ما کمک کنه؟

Saeed Hamed
شنبه 28 شهریور 1388, 02:40 صبح
آقا دم شما گرم مشکل ما حل شد فقط یه چیز دیگه اونم این که چه جوری میشه کاری کرد که وقتی برنامه در حال شماره گیریه label1.text بشه dialing و زمانی تماس برقرار شد بشه contact و اگه تماس حاصل نشد بشه Faild ؟


دوست عزیز شما برای اینکه بخوای وضعیت خط رو به کاربر گزارش بدی باید جواب مودم رو در برابر دستوراتت بخونی. اگه با دقت به اون لیتکی که برای دستورات AT بود دوباره یک نگاه بندازی خیلی چیزا دستگیرت میشه.
این رو هم باید در نظر داشته باشی که برای گزارش وضعیت خط باید مودم نیز این امکان رو داشته باشه به عنوان مثال مودم من برای تمام خطاهای خط مثل اشغالی، وصل نبودن خط و ... پیام NO CARRIER رو ارسال می کنه ولی اگه مودم تمام امکانات رو داشته باشه تک تک وضعیت ها رو بهت گزارش میده و فکر می کنم برای اینکه این گزارشات روفعال کنی باید از دستور AT X3 استفاده کنی که اگر اشتباه نکرده باشم شرح کامل رو در همون لینک گفته.

موفق باشی