توی دستور AT+CNMI=3,1
ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.
توی دستور AT+CNMI=3,1
ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.
این SR چیه
من توی فرمان ها فقط MT,ME,SM رو دیدم
سلام،
همین جور شلاقی سوال کردی!
آیا شما در جواب دستور AT جوابی که میگیرین OK است یا Error ؟
اگه OK باشه پس نتیجتا این جوری برداشت میشه که وسیله ای که شما دارین از این دستور پشتیبانی نمیکنه!!! ولی اگه Error باشه یعنی شما به مودم متصل نیستید.
اینکه مودم شما چیرو پشتیبانی می کنه به خودش مربوطه!!!
مگه من گفتم حتما اونی که من نوشتم وحی منزله!!!!
مودمی که من دارم DWM-152 است و مثل اینکه شما گفتین حالت 3 نداره و دارم از روش دومی که گفتم استفاده می کنم. البته اینم بگم تو نرم افزارم اومدم حالتهای مختلف رو دیدم، از بهترین تا بدترین، به ترتیب هر کدوم جواب داد از اون استفاده می کنم.
AT+CPMS="SR"
این دستور هم مثل نقل بالا است. تو بعضی از مودم ها این رو داره.SR به معنی Status Report است.
یعنی گزارش وضعیت تو بعضی مودم ها رو می تونید این جوری بخونید. اگه حالت 3 تو مودمی نباشه قاعدتا این رو هم نداره پس بهتره از حالت دوم استفاده کنید و پارامترها رو این جوری تنظیم کنید:
AT+CNMI=1,2,0,1,0
جوابش فقط رو هوا میاد، اگه وقتی اومد نتونستی بگیری از دست میره و دیگه هیچ!!! بدی کار همینه.
یک مدل مودم دیلینک هست، DWM-156 :
AT+CMNI=3,1,0,2,0
AT+CPMS="SR"
این چیزایی که گفتم رو پشتیبانی میکنه. در ضمن در مورد دستور:
AT+CUSD=1,"*140*11#",15
که برای گرفتن شارژ است رو به چه زیبایی براتون جواب میده. اگه کسی خواست مودم بخره این مدل را انتخاب کنه بهتره.
یا حق
AT رو ok می ده SMS هم می فرستم ولی نمی دونم چرا
AT+CMGR رو Error می ده
یک دنیا تشکر و قدردانی فراوان و ممنون از اینکه وقت گذاشتین
یه سوال دیگه .ببخشید انیقدر سوال می کنم
می خوام توی یه 2 تا thread ( همزمانی ) دو تا SMS بفرستم
اینکار امکان پذیر هست یا باید یکی یکی بفرستم نمی شه چند تا بطور همزمان بفرستم
من می خوام چند تا رو بفرستم باید یکی بفرستم منتظر بمونم تا جوابش بیاد بعد یکی دیگه بفرستم .
2 - این سایت های فرستادن sMS چطور اینقدر سریع SMS ها رو می فرستند .مثل payamsms
سلام،
آیا از مودم ارسال می کنید یا موبایل؟ میشه مدل وسیله ای که باهاش کار می کنید رو بدونم؟
در ضمن یک دستور دیگه است که تقریبا همین کار رو انجام میده، لطفا این دستور رو امتحان کن ببین چطوریه:
AT+CMGL=? LIST SMS MESSAGES FROM PREFERRED STORE
این کار خوبه از نظر تئوری خوبه، یعنی وقتی فکر میکنی می بینی چقدر عالیه! دیگه لازم نیست اینقدر منتظر باشیم تا یکی ارسال بشه بعد یکی دیگه بفرستیم!
من یک سوال میپرسم شما جواب بده.
سوال : اگه شما یک ماشین داشته باشین، در آن واحد چند نفر می تونن پشت فرمون باشن؟بزارید جواب رو خودم بدم:
جواب: منطقیه فقط یکی تا بتونید اون کارایی رو از ماشین داشته باشید. مودم هم همینه، یعنی وقتی دارید با کسی تماس میگیرید آیا میشه همزمان با یکی دیگه تماس بگیرید.(یعنی زمانی که داره شماره میگیره!)کامپوتر با این همه عظمتش در آن واحد یک کار بیشتر نمی تونه بکنه!!!!! از این پورت COM چه توقعی دارید. این که تازه زیر مجموعه CPU است.
بعدشم وقتی با یک threadکار میکنید مدیریتش هم راحتره یعنی بعضی وقتها میشه آنتن میپره، مودم یک دفعه قطع میشه، اگه سیم کارت اعتباری باشه شارژ تموم کنه،.... و هزار اما و شاید.
پس بهتره زیاد بفکر راههای خیلی خوب نباشین. چون بعضی وقت ها همین راههای خوب هم واقعا خیلی خوب هستن.
این سایتها میان از امکانات مخابرات استفاده میکنند نه مودم های معمولی و یا موبایل!!
چطور میشه یک شب عید نوروز مخابرات اعلام میکنه در دقیقه اول سال تحویل بیش از چند 10 میلیون پیام رو جابجا کرده!!!
سلام،
این PDU رو تست کنید. البته بگم بجای شماره تلفن که 0915123456 است شماره مورد نظر را بنویسید.
PDU Number:1 Length For AT:153
0691891901500051000B819051214365F70008FF8B060804B4 9F050106270645063106480632002006280631062706CC0020 06340647062F0627002006480642062A00200646062F062706 3106CC06450020060C00200627063200200639063406420020 064506AF06480020064206350647002006A906470020064506 27002006480642062A00200646062F0627063106CC06450020 060C0020062806270020
PDU Number:2 Length For AT:153
0691891901500051000B819051214365F70008FF8B060804B4 9F0502062D06360631062A0020063406CC0637062706460020 06330631064506270646002006AF06310645002006AF064606 270647002006270633062A0020060C00200627063200200628 06470631002006450644062706420627062A0020062E062F06 27002006480642062A00200646062F0627063106CC06450020 060C0020062F06310020
PDU Number:3 Length For AT:153
0691891901500051000B819051214365F70008FF8B060804B4 9F050306A90648064106470020062A06460020063A06CC0631 062A064506270646002006AF06480634064700200646063406 CC0646002006270633062A0020060C00200628064706310020 063306410631002006A9063106280020064806280644062700 2006480642062A00200646062F0627063106CC06450020060C 00200647063100200686
PDU Number:4 Length For AT:153
0691891901500051000B819051214365F70008FF8B060804B4 9F05040646062F002006A906470020062E0648062800200627 0633062A00200634064706CC062F0627064606470020062806 4506CC063106CC06450020060C0020063206CC062806270633 062A00200648064406CC0020062D06CC0641002006A9064700 2006450627002006480642062A00200646062F0627063106CC 06450021062706440647
PDU Number:5 Length For AT:57
0691891901500051000B819051214365F70008FF2B060804B4 9F0505064500200639062C06440020062706440648064406CC 06A900200627064406410631062C
اگه کامپوننت ATSMS رو دانلود کنید همین که من دادم رو بهتون میده. به نظر من یک کامپوننت کامله
اینم لینکش: ارسال SMS به وسیله گوشی....مودم.....اینترنت
***************
وقتی دستور atcommand زیر را اجرا می کنم پیغام خطایی نمی گیرم از طرفی اس ام اس هم دریافت نمی کنم به نظر شما اشکال از کجا می تونه باشه؟
SerialPort1.WriteLine("AT&F" & vbCrLf)
SerialPort1.WriteLine("AT" & vbCrLf)
SerialPort1.WriteLine("AT+CPMS=""MT"",""MT"",""MT" "" & vbCrLf)
M = M + SerialPort1.ReadExisting
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F0501062706450631064806320 02006280631062706CC002006340647062F062700200648064 2062A00200646062F0627063106CC06450020060C002006270 63200200639063406420020064506AF0648002006420635064 7002006A90647002006450627002006480642062A002006460 62F0627063106CC06450020060C0020062806270020" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F0502062D06360631062A00200 63406CC063706270646002006330631064506270646002006A F06310645002006AF064606270647002006270633062A00200 60C00200627063200200628064706310020064506440627064 20627062A0020062E062F0627002006480642062A002006460 62F0627063106CC06450020060C0020062F06310020" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F050306A906480641064700200 62A06460020063A06CC0631062A064506270646002006AF064 80634064700200646063406CC0646002006270633062A00200 60C00200628064706310020063306410631002006A90631062 800200648062806440627002006480642062A00200646062F0 627063106CC06450020060C00200647063100200686" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F05040646062F002006A906470 020062E06480628002006270633062A00200634064706CC062 F06270646064700200628064506CC063106CC06450020060C0 020063206CC062806270633062A00200648064406CC0020062 D06CC0641002006A90647002006450627002006480642062A0 0200646062F0627063106CC06450021062706440647" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=57" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF2B060804B49F0505064500200639062C06440 020062706440648064406CC06A900200627064406410631062 C" & vbCrLf & Chr(26))
آخرین ویرایش به وسیله M.Fekri : سه شنبه 01 شهریور 1390 در 14:25 عصر
سلام،
شما بعد از ارسال هر پیام باید یک فالا زمانی مشخص صبر نمایید تا جواب ارسال را دریافت نمایید.
اگه پیام شما ارسال شده باشه علاوه بر OK ، یک شماره مرجع به شما میده. اینو من تو تصویرتون نمی بینم.
+CMGS: 38
من توصیه می کنم از Hyper terminal برای ارسال و تست استفاده کنید.
سلام،
این بعضی وقت ها پیش میاد. یعنی ممکنه ترافیک مخابرات باعث این بشه!!!!
باید یه نکته هم براتون بگم:
وقتی قصد دارید پیامهای چند قسمتی بفرستید، باید آن را به قسمت های مختلف بشکنین و بعد بفرستید. یعنی برای پیامهای فارسی حداکثر 70 کاراکتر!!!!
اینو گفتم تا بدونید اصلا ربطی نداره پیام شما 2، 3 و یا چند قسمتی باشه. اگه یکی رفت بقیه باید بره، مگر اینکه خط مشکل داسته باشه، سیم کارت شارژ نداشته باشه و یا مخابرات بازی دربیاره. هر قسمت به عنوان یک پیام میره.
ممنون
من با hyper هم تست کردم اما در این حالت دیگه cmgs+ را دریافت نمی کنم
hyper.jpg
سلام،
اگه گفتین PDU شما 153 کاراکتر است، تو این تصویر که هیچی نفرستادین؟
در ضمن شما که با VB کار میکنید و این تاپیک رو تا تهش خوندین بهترین چیز اینه که از کامپوننتی که بهتون گفتم استفاده کنید. اولش یکم گیر داره، ولی شما که با مفاهیم آشنایید و دستورات رو میشناسید این کامپوننت خیلی کاراست.
یکبار امتحان کنید
از همون کامپوننت شما استفاده کردم برای تولید PDU, و رشته ایجاد شده را paste کردم چون واقعا امکان تایپ یک رشته به آن بزرگی بدون امکان خطا نیست!
در پست 331 من همون کد ایجاد شده توسط شما را ارسال می کنم ویک delay iهم بین هر گذاشتم چیزی دریافت نکردم از طرفی هم با کامپوننتی که شما گفتین پیام 2 پارتی را مفرسته و دریافت هم می کنم اما وقتی متن بیشتر از 2 پارت باشه با اینکه +Cmgs را هم گرفتم اما چیزی دریافت نکردم !
سلام،
شما دقیقا چه جیزی می خواهید؟
آیا تایید ارسال را نمی گیرید؟ یا اینکه وقتی پیام ارسال می کنید و جواب ارسال را هم میگیرین ولی به شماره مورد نظر نمیرسه؟
این هم کد vb به همراه pdu ایجاد شده توسط کامپوننتی که زحمت اش را کشیدید:
SerialPort1.WriteLine("AT" & vbCr)
SerialPort1.WriteLine("AT+CPMS=""MT"",""MT"",""MT" "" & vbCr)
SerialPort1.WriteLine("AT+CMGF=0" & vbCr)
SerialPort1.WriteLine("AT+CMGS=152" & vbCr)
SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF8B060804888E0301062706CC06460020063306C C0633062A064500200628062700200647062F0641002006270 6CC062C0627062F002006CC06A9067E06270631068606AF06C C002006480020062B0628062A00200627064406A9062A06310 648064606CC06A906CC0020062706370644062706390627062 A00200645062C0645064806390647002006470627" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=152" & vbCr)
SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF8B060804888E030206CC0020064806310632063 406CC0020063706310627062D06CC002006AF0631062F06CC0 62F0647002006270633062A0020000D000A062706CC0646002 0063306CC0633062A0645002006420627062F0631002006280 64700200645062F06CC063106CC062A002006A9064406CC064 7002006390645064406CC0627062A002006450627" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=126" & vbCr)
SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF71060804888E0303064406CC002006480020062 7062F0627063106CC00200645062C064506480639064700200 64806310632063406CC0020062706390645002006270632002 0062B0628062A0020064606270645002006270639063606270 621002006A90644062706330647062706CC0020" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
آخرین ویرایش به وسیله M.Fekri : سه شنبه 01 شهریور 1390 در 14:26 عصر
به شماره مورد نظر نمی رسه آن هم در زمانی که بیش از 2 پارت باشه
با ایرانسل بدون مشکل تا 5 پارت را می فرسته.مشکل هممراه اول بود
با سلام خدمت همه اساتید
من یه پروژه دارم که باید برنامه ارسال و دریافت اس ام اس به وسیله AT COMMANDS و مودم جی اس ام رو پیاده سازی کنم
من خیلی جستجو کردم و چندین نمونه رو هم پیدا کردم اما همه با پورت سریال پیاده سازی شده بودند و من نتونستم این برنامه ها رو تست کنم , من این برنامه ها رو اینجا قرار میدم , دوستان کسی این برنامه ها رو تست کرده ؟؟؟ آیا کار می کنند ؟؟؟
کسی از دوستان نمونه های تست شده دیگری ندارند ؟؟؟
ممنون می شم کمکم کنید
سلام
*************وقتی هم که پیامی ارسال می کنید:
AT+CMGS=32
>0691891901500031840B81905*******F50008FF12063306440627064500200645062D0645062F<ctl+z >
+CMGS: 38
OK
+CDS: 25
0691891901500006260B81905*******F5118010419433811180104194838100
این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:
+CDS همیشه دریافت نمیشه.علت اش را می شه توضیح دهید؟
با سپاس فراوان
سلام،
دریافت نمی شوند یا بعضی وقت ها دریافت نمی شوند؟
اگه دریافت نمی شوند باید برین
AT+CNMI
رو تنظیم کنید.
اگه بعضی وقتها دریافت نمیشه، گفتم تو این حالت یک عیبی که داره اینه که اگه نتونید تو لحظه که میاد اون رو دریافت نکنید انگاری انداختی دور!!!
اگه نتونی لحظه به لحظه پورت رو چک کنی بهتره از خالتی استفاده کنید که اینا تو حافظه ذخیره بشه.
چک کردن پیام کوتاه جدید و ایجاد یک کنترل از طریق پیام کوتاه
با سلام خدمت دوستان عزیز
من یه برنامه می خوام بنویسم که به محض رسیدن یک اس ام اس متن آن را چک کند و مثلا اگه نوشته بود SHUTDOWN یه کد را اجرا کند و کامپیوتر را خاموش کند
دوستان کسی می تونه من رو راهنمایی کنه ؟؟؟؟؟
مشکل من اینه که چجوری کدی بنویسم که به محض رسیدن پیام جدید متوجه بشه و متن پیام رو چک کند ؟؟؟؟
ممنون می شم
سلام،
با کامپوننت که من کار میکنم اینجوریه که برای دریافت پیام های جدید یک Event داره که ست میشه و بهش میگی اگه این رویداد انجام شد یک تابع رو فراخوانی کنه. تو این تابع میتونید بگی پیام جدید رو دربانک ذخیره کنه، ویا یک پیغام به کاربر بدی که پیام جدید اومده ویا ...
توی این رویداد شما میتونید تعریف کنید که بیاد پیام رو با متنی که میخوای مقایسه کنه اگه هر چی که شما گفتی بود یه تابع رو فراخوانی کن.
به همین راحتی....
تو کامپوننت های دیگه هم یه چیز عین این هست.
ممنون دوست عزیز اما راه کلیشو می خوام انجام بدم
می خوام با AT COMMAND ها خودم این event رو برنامه نویسی کنم
ممنون می شم راهنمایی کنید
طی جستجویی که کردم این رو پیدا کردم اما متوجه منظورش و طریقه استفاده این AT COMMAND ها نشدمhttps://barnamenevis.org/showthread.p...C%D9%85%D8%9Fl
با سلام
بله یک دستور AT هست بنام:
AT+CNMI=2,1,0,1
که میشه گفت event مودم را برای دریافت sms جدید فعال میکنه از این دستور به بعد هر گاه اس ام اس جدید بیاد به صورت زیر به نمایش در میاد:
+CMTI: "ME",108
این پاسخ از سمت مودم نمایانگر محل ذخیره سازی اس ام اس جدید می باشد.
دوستان کسی می تونه من رو کمک کنه ؟؟؟؟
چطوری زیر برنامه بنویسم که این عمل رو انجام بده ؟؟؟؟
ممنون میشم
مشکل در ارتباط بین مودم D link DWM-156 و hyperterminal
با سلام خدمت همه دوستان
من یه مودم D link DWM-156 خریدم که با استفاده از نرم افزار خود مودم می توان اس ام اس فرستاد اما وقتی می خوام با هایپر ترمینال بهش وصل شوم وصل می شود اما احازه تایپ هیچ دستوری درون اون صفحه بهم نمی ده
کسی می دونه باید چی کارش کنم ؟؟؟؟
ممنون می شم
فکر کنم مشکل کار اینجاست که برنامه مخصوص خود D link پورت رو در اختیار می گیرد و با وجود اینکه برنامه رو می بندم پورت آزاد نیمشه
کسی از دوستان نمی دونه چیکار باید انجام بدم تا پورت آزاد شه ؟؟؟؟
سلام دوستان. از همتون ممنون بابت مطالبي گذاشتبن.
فقط كاشكي اين مطالبو تو يه فايل pdf ميذاشتيد كه اينقدر پستها زياد نشن و اونايي كه مثل من اينترنت پر سرعت ندارن واسه بازكردن صفحات عذاب نكشن.
و اگه امكان داره پستهاي اضافي رو حذف كنيد تا يكم تعداد صفحات كمتر بشه.
سلام کسی pdf این مطالب رو نداره؟
من فرق بین اینکد 7 بیت و 8بیت و ucs2 چیه؟
سلام
آقا روی این قسمت میشه توضیح بیشتری بدین؟
اون 3 از کجا اومد؟
ممنون
سلام
من کل تاپیک رو مطالعه کردم حیفم اومد از دوستان تشکر نکنم ، عالی بود خیلی زحمت کشیدید .
این تاپیک تقریباً نتیجه سه چهار سال هم فکریه واقعاً ارزشمنده .
ممنون از همه
اساتید سلام
من یه سوال دارم!
همونطور که فرمودین بعد از AT+CMGS باید طول کارکتر رو بنویسیم بعد توی خط بعدی کد PDU Message اما من چطور میتونم این طول کارکترها رو بدست بیارم (با استفاده از کدام خاصیت کامپوننت ها)؟؟؟ سرویس سنتر شماره مقصد و پیام و سایر اطلاعات رو تونستم تبدیل به PDU کنم اما طولشو نمیدونم چطور بدست بیارم...
البته اینم بگم از کاکپوننتها دارم استفاده میکنم دوستانی که از SMSPduLib یا AtSMS استفاده میکنن ممکنه راهنمایی بفرمایید.
آخرین ویرایش به وسیله ab_ir_007 : شنبه 28 مرداد 1391 در 16:09 عصر
سلام،
طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟
برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.
ممنونم از پاسختون
فکر کنم من سوالم رو ناقص پرسیدم
قبل از هر چیز بگم که من قصد دارم از Alphabet Size 16 بیتی استفاده کنم
طبق فرموده شما Length باید دو برابر تعداد کاراکترهای Message باشه
اما منظور من Length نیست بلکه به عنوان مثال در ارسال پیغام "تست" با مسیج سنتر "+9891962978184" و به مقصد "+989121234567" باید کدPDU به شکل "AT+CMGS=20
0891891969928781F411000C918919123254760008AA06062A 0633062A" داشته باشم .
سوال من عدد 20 در این مثال هست ، باید جلوی AT+CMGS= عدد 20 رو قرار بدم بعد در خط بعدی کد PDU رو بزارم
لطفا راهنمایی کنید این عدد رو با کدام خاصیت این کامپوننت ها (SMSPduLib یا AtSMS) میتونم بدست بیارم؟
ضمنا شما فرمودین با خواص خود کامپوننت (SMSPduLib یا AtSMS) میتونم ارسال رو هم انجام بدم ممکنه راهنمایی کنید.
نمونه کدی که استفاده میکنم به این شکله:
SMSPDULib.SMS sms = new SMSPDULib.SMS();
sms.Direction = SMSPDULib.SMSDirection.Submited;
sms.PhoneNumber = txtPhoneNumber.Text;
sms.ServiceCenterNumber ="\"+9891962978184\"";
sms.ValidityPeriod = newTimeSpan(4, 0, 0, 0);
sms.Message = txtMessage.Text;
string pduSource = sms.Compose(SMSPDULib.SMS.SMSEncoding.UCS2);
txtHexadecimalPDUMessage.Text = pduSource;
port.Open();
port.Write("AT\r\n");
port.WriteLine("AT+CMGF=0\r\n");
port.WriteLine("AT+CMGS=" pduSource);
port.WriteLine("\r\n" + '\x001a');
با توجه با این کدها چطور باید عدد 20 در این مثال و بعد PDU رو پاس کنم؟؟؟
آخرین ویرایش به وسیله ab_ir_007 : شنبه 28 مرداد 1391 در 22:43 عصر دلیل: اصلاح کد
دوستان ممکنه یکی کمک کنه!!!!
دقیقا همین کدها رو اگه توی هایپر ترمینال استفاده کنم در حالت pdu ارسال میشه اما وقتی کدهای سی شارپ تبدیل میشن هیچ اتفاقی نمیوفته یعنی کد کامل اجرا میشه ولی اس ام اس ای ارسال نمیشه!
یکی کمک کنه واقعا گیج شدم دیگه....
سلام دوست عزیز،
یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!
برای ارسال پیام شما ابتدا طول PDU رو به عنوان پارامتر به AT+CMGS پاس بدین به این شکل:
AT+CMGS=20
سپس خط فرمان حاضر میشه تا دستور شما رو اجرا کنه که همون ارسال پیام و گرفتن کد PDU است.
شما میتونید در کامپوننت ATSMS از روش زیر برای ارسال استفاده کنید هرچند که همراه این کامپوننت هم Document است هم نمونه کد:
Dim msgId As String = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text)
ویا در سی شارپ :
string msgId = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text);
البته قبلش یکم تنظیمات داره که در زمان ساخت Object باید اون ها رو انجام بدین. مثلا همین که شماره پورت، کدینگ پیام چی باشه و ....
oPhone.Encoding = EnumEncoding.Unicode_16Bit