ورود

View Full Version : PDU Encoding And Decoding



صفحه : 1 [2]

ehsan_zhaee
شنبه 21 آذر 1388, 07:42 صبح
ممنون تست کردم بازم نشد کلا اینجوریه :

at+cnmi=2,1,0,1
Error
at+cnmi?
error
at+cnmi=?
error

من نمی تونم اس ام اس های گوشی رو بخونم چه کنم
کمکم کنید؟
آیا مشکل از گوشیه
اگه اینجوری پس چرا نرم افزار نوکیا می تونه بخونه حالا با at نشد با یه چیز دیگه

ehsan_zhaee
شنبه 21 آذر 1388, 07:43 صبح
کسی تا حالا از dll های Nokia PC Souit استفاده کرده

samaba
شنبه 21 آذر 1388, 07:47 صبح
این رو تست کنید :

خيلي لطف کرديد. تست مي کنم و نتيجه را ميگم. بازم ممنون که وقت گذاشتيد.

samaba
شنبه 21 آذر 1388, 12:19 عصر
سلام
تست کردم.
همون مشکل را داره. پارت اولش اومد و دوميش نيومد. (البته در همدان تست کردم).
ضمناً کد شما دقيقاً مثل کد من ساخته شده بود.
شما چه نظري داريد؟

متشکرم

@AM!R!
یک شنبه 22 آذر 1388, 18:38 عصر
سلام.
قبل از هر چيز بگم مطالبي که مي نويسم به ايم معني نيست که کدي که مي فرستم درسته. احتمالاً يه بخشش ایراد داره
من با توجه به همين راهنمايي ها، متور ارسال اس ام اسي ساخته بودم که همه جوره پيامي مي فرستاد. ولي بدون اينکه من هيچ تغييري در اون داده باشم، جديداً در مورد پيام هاي چند پارتي فقط پارت اولش مي رسه و آرم پيام شکسته را نشون ميده.
ضمناًَ اين مورد فقط براي يک نفر اتفاق نيفتاده. در بعضي شهر ها مثل همدان اينجوري شده و در بعضي شهر ها مثل شيراز کاملاً سالمه.:متعجب:

جالب اينه که بدوني حتي کد کاملي که از داخل گوشي ميخونم بعد از ارسال با ابزاري غير از گوشي فقط پارت اولش مي رسه اما اگه خود گوشي اونو بفرسته درست ميره :عصبانی++:

اصلاً نميخوام کد منو تفسير کنيد. شما را به خدا يک کد PDU کامل بذاريد که مثلاً 80 تا م را به شماره 09188123924 اس ام اس کنه. اينجوري تست ميشه که برنامه من مشکل داره يا مخابرات تغييراتي داده که گوشي باهاش سازگاره.

ممنون

دوست عزیز من هم در استان لرستان به این مشکل برخورد کردم
من تقریبا 2 هفته پیش موفق شدم با راهنمایی دوستان پیام فارسی چند قسمتی ارسال کنم
ولی حالا مثل شما فقط قسمت اول پیام دریافت میشه

البته با نرم افزار های آماده درست ارسال میشه
منم گیج شدم!!!!!!!!!!!!!!!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟

راستی اگه بخوام با Defalt Alphabet چند قسمتی ارسال کنم
باید چندتاچندتا از متن جدا کنم

توی UCS2 شصت و شش تا کاراکتر بود ولی تو مد معمولی چطوره؟
ممنون

samaba
دوشنبه 23 آذر 1388, 07:54 صبح
دوست عزیز من هم در استان لرستان به این مشکل برخورد کردم


سلام
دقيقاً يادم نيست چند حرف ولي احتمالاً 132 کاراکتر 8 بيتي بود.

@AM!R!
دوشنبه 23 آذر 1388, 08:32 صبح
ممنون

راجع به اون مشکل اول به نتیجه ای نرسیدید؟

من اول فکر کردم مشکل از SMSC NO اون رو عوض کردم ولی هنوز جواب نگرفتم

@AM!R!
دوشنبه 23 آذر 1388, 09:03 صبح
ولی من فکر می کردم 134 کاراکتر باید خوانده شود
یعنی از 140 کاراکتر که می تونیم بخونیم 134 کاراکتراز متن و شش بایت سربار 0500031D0201 برای هر قسمت
اینطور نیست؟

@AM!R!
دوشنبه 23 آذر 1388, 11:13 صبح
اگر استثناء نبود بهش تاکیدی نداشتم.
-----------------------------------------------------------------------
حق با شماست منهای 4 شده ! گنگ هست ولی اشتباه نیست!
پ.و : البته ناگفته نمونه که چون من تو بطن مسئله بودم موقع ویرایش یکی 2 تا پاورقی جا انداختم که اینجا میگم اونجا هم ویرایش میکنم.

------------
همانطور که تا الان باید متوجه شده باشید ما بدون احتساب شماره مرکز،شماره گیرنده و بقیه علائم برای متن و محتوای 1 پارت پیام حداکثر 140 بایت جا داریم که شمارش اون دقیقا از بعد از بایت شمارشگر محتوی شروع میشه.

یعنی اگر بر مبنای 8 بیت حساب کنیم 140 کاراکتر داریم و چون در مد DefaultAlphabet برای هر کاراکتر 7 بیت داریم پس کلا میتونیم 160 کاراکتر ارسال داشته باشیم و همچنین به دلیل اینکه در مد UCS2 برای هر کاراکتر 16 بیت داریم یعنی هر کاراکتر 2 بایت پس کلا میتونیم 70 کاراکتر رو ارسال کنیم.

حالا توی مد UCS2 وقتی پیام از 1 پارت بیشتر میشه ما مجبور 7 بایت هدر شامل :(3 بایت کد ثابت، 2 بایت شماره تصادفی ،1 بایت تعداد کل پیامها ،1 بایت شماره پیام فعلی) رو در محتوی پیام بگنجونیم
پس در نتیجه 140 بایت منهای 7 بایت برابر میشه با 133 بایت.
یعنی ما میتونیم 133 بایت از محتوی متن پیام شماره 1 رو اینجا بزاریم اما تو مد UCS2 یه ولی داریم:
توی حالت UCS2 همانطور که گفتم هر کاراکتر 2 بایت داره پس با احتساب 133 بایت فضای خالی که موجود داریم میتونیم 66 کاراکتر و 1 بایت بفرستیم و چون این بایت باقیمانده نیاز به بایت مکمل داره تا تفهیم باشه و اون بایت مکمل بلاجبار توی پارت بعدی قرار گرفته این بایت هم از اینجا حذف میکنیم و به پارت بعدی اضافه میکنیم یعنی ما توی هر پارت پیام UCS2 به صورت مولتی پارت 132 بایت رو جا میدیم که میشه 66 کاراکتر و بیشتر از این امکان نداره.

---------------------------------------------------------------------------------
کاملا حق با شماست اینی که من اونجا نوشتم الان که دارم میخونمش یه جمله نا مفهومی هست که به طرز وحشتناکی قوانین ریاضی رو زیر پا گذاشته.:قهقهه:
علتش هم اینه که من اون موقع که داشتم تایپ میکردم همزمان تو فکرم داشتم این مسئله ای رو که اینجا گفتم پیش خودم تجزیه تحلیل میکردم که بیانش کنم! بیانش که نکردم هیچ بلکه همه رو با هم قاتی کردم شد مزخرف!:اشتباه:
مرسی از تذکرت
-----------------------------------------------------------
اینم حق با شماست چون من کد پارت اول رو برای جلوگیری از اشتباه با ماشین حساب تشکیل دادم و بقیه رو با نرم افزار این شد که حواسم به این عدد نبود.
------------------------------------
بازهم ممنون از توجه همه دوستان

موفق باشید

نظرتون راجع به این قسمت چیه؟
160 <- 7 / (8*140) برای Default Alphabet و
70 <- 16 / (8*140) برای UCS2

که اگه پیام بیش از قسمت باشه

در Default Alphabet
134 <--- ( 6 بایت سربار) - 140 -------------------> یعنی 134 تا کاراکتر یک بایتی در هر قسمت

و در UCS2
133 <--- (7 بایت سربار) - 140 -------------------> یعنی 66 تا کاراکتر دو بایتی در هر قسمت

آیا استنباط من درسته؟

samaba
دوشنبه 23 آذر 1388, 16:43 عصر
بله درست ميگيد. 132 حرف. تأکيد کرده بودم که مطمئن نيستم.

reza6384
سه شنبه 24 آذر 1388, 16:01 عصر
من اون روز که اون کد رو براتون قرار دادم قبلش خودم تستش کردم و sms هم کامل به مقصد رسید شاید مشکل اینه که یکی از بخش های پیام ارسال نمیشه. توی Hyper با دستور AT+CMGL=1 چک کنید که آیا پیام به گوشیتون رسیده؟ در ضمن شاید گوشیتون بعضی دستورات at رو ساپورت نکنه و این اصلاً عجیب نیست. مثلا من گوشی نوکیا N73 داشتم که دستور AT+CPMS="ME" رو ساپورت نمیکرد. به همین سادگی.

@AM!R!
سه شنبه 24 آذر 1388, 16:41 عصر
با سلام
البته این مشکل برای من با مودمی به وجود امده که دو هفته پیش با اون پیام چند قسمتی بدون مشکل ارسال کردم
ضمنا وقتی پیام با Hyper ارسال میشه برای تمامی قسمت ها پیام تایید ارسال صادر میشه ولی فقط یکی از قسمت ها میرسه

ehsan_zhaee
چهارشنبه 25 آذر 1388, 10:26 صبح
کسی جواب مارو نداد
کسی تجربه کار با dll های nokia pc suite را دارد یا خیر؟
اگه بشه که خیلی ساده میشه , همه کار هارو با همون انجام میدیم

@AM!R!
چهارشنبه 25 آذر 1388, 21:10 عصر
به نظر شما چرا پیامی دریافت نمیشه؟
at+cmgf=0
OK
at+cmgs=153
> 0691891901500051000B819061612800F10008FF8B06080466 1D02010645064506450645064506
45064506450645064506450645064506450645064506450645 064506450645064506450645064506
45064506450645064506450645064506450645064506450645 064506450645064506450645064506
45064506450645064506450645064506450645064506450645 064506450645064506450645064506
45
+CMGS: 10

OK
at+cmgs=49
> 0691891901500051000B819061612800F10008FF2306080466 1D02020645064506450645064506
4506450645064506450645064506450645
+CMGS: 11

OK

reza6384
پنج شنبه 26 آذر 1388, 17:50 عصر
دوست عزیز من به شما گفتم همین پیام ها رو به گوشی خودتون وقتی که Inbox شما خالیه ارسال کنید بعد با AT+CMGL=0 و AT+CMGL=1 ببینید PDU ها رسیده یا نه. اگر رسیده همه بخش ها مشکل از Decoding هست ولی اگر نرسیده مشکل شاید مخابراتی باشه. در ضمن Delivery رو در متن PDU فعال کنید و AT+CNMI=2,1,0,1 رو بزنید تا رسیدن Delivery رو ببینید. بعدش چک کنید که آیا دلیوری میرسه یا نه

@AM!R!
پنج شنبه 26 آذر 1388, 22:14 عصر
سلام دوست عزیز
پس از ارسال پیام دو قسمتی (80 تا حرف ش)
AT+CMGL=0
+CMGL: 5,0,,158
06918919015000440C9189191686021000089021712263150C 8B060804661D020106340634063406
34063406340634063406340634063406340634063406340634 063406340634063406340634063406
34063406340634063406340634063406340634063406340634 063406340634063406340634063406
34063406340634063406340634063406340634063406340634 063406340634063406340634063406
3406340634

OK

یعنی فقط یکی رسیده
مشکل از مخابراته؟

همونطور که قبلا گفتم من همین برنامه با موفقیت تست کردم (دو هفته پیش) و تا حالا اصلا به کدم دست نزدم

samaba
شنبه 28 آذر 1388, 16:24 عصر
سلام
منم تست کردم.
فقط يک پارت اومده.
دليوري هم نميده:عصبانی++::عصبانی++::عصب نی++::عصبانی++::عصبانی++::عصبا ی++::عصبانی++::عصبانی++:

reza6384
شنبه 28 آذر 1388, 17:52 عصر
با یک سیم کارت دیگه تست کنید،اگر از همراه اول استفاده می کنید ، دو تا Service Center داره یکی 9891100500 و یکی هم 9891100510

dante0747
شنبه 28 آذر 1388, 19:24 عصر
با سلام خدمت دوستان.
من امروز داشتم این تاپیک را برای اولین بار مطالعه می کردم و تصمیم گرفتم برای تست گوشیم (k850i) را به کامپیوتر وصل کنم. بعد با hyper terminal خواستم اس ام اس بفرستم اما با این error برخورد کردم :



AT
OK
AT+CMGF=0
OK
AT+CSCA?
+CSCA: "+9891100500",145

OK
AT+CMGS=14
> 079189190150000031000B819021217095F70000FF(Ctrl+Z)
+CMS ERROR: 304

به نظرتون مشکل از کجا میتونه باشه...؟:متفکر:

@AM!R!
یک شنبه 29 آذر 1388, 11:32 صبح
با یک سیم کارت دیگه تست کنید،اگر از همراه اول استفاده می کنید ، دو تا Service Center داره یکی 9891100500 و یکی هم 9891100510

باز هم جواب نمیده
فقط یکی از قسمت ها به مقصد می رسد

reza6384
سه شنبه 01 دی 1388, 17:36 عصر
با سلام خدمت دوستان.
من امروز داشتم این تاپیک را برای اولین بار مطالعه می کردم و تصمیم گرفتم برای تست گوشیم (k850i) را به کامپیوتر وصل کنم. بعد با hyper terminal خواستم اس ام اس بفرستم اما با این error برخورد کردم :



AT
OK
AT+CMGF=0
OK
AT+CSCA?
+CSCA: "+9891100500",145


OK
AT+CMGS=14
> 079189190150000031000B819021217095F70000FF(Ctrl+Z)
+CMS ERROR: 304



به نظرتون مشکل از کجا میتونه باشه...؟:متفکر:





در آخر رشته PDU طول پیام رو فراموش کردید ( بعد از FF )

@AM!R!
چهارشنبه 02 دی 1388, 10:03 صبح
دوست عزیز من به شما گفتم همین پیام ها رو به گوشی خودتون وقتی که Inbox شما خالیه ارسال کنید بعد با AT+CMGL=0 و AT+CMGL=1 ببینید PDU ها رسیده یا نه. اگر رسیده همه بخش ها مشکل از Decoding هست ولی اگر نرسیده مشکل شاید مخابراتی باشه. در ضمن Delivery رو در متن PDU فعال کنید و AT+CNMI=2,1,0,1 رو بزنید تا رسیدن Delivery رو ببینید. بعدش چک کنید که آیا دلیوری میرسه یا نه

منظورتون از "گوشی خودتون" همون گوشی مقصد هست؟
بعد از رسیدن پیام به گوشی ، سیم کارت رو از گوشی خارج می کنم و به GSM منتقل می کنم اما توی Hyper بعد از استفاده از CMGL پیام ERROR میده

reza6384
چهارشنبه 02 دی 1388, 17:45 عصر
احتمالا گوشی شما دستور AT+CMGL رو ساپورت نمیکنه.

@AM!R!
پنج شنبه 03 دی 1388, 17:57 عصر
سلام
منم تست کردم.
فقط يک پارت اومده.
دليوري هم نميده:عصبانی++::عصبانی++::عصب نی++::عصبانی++::عصبانی++::عصبا ی++::عصبانی++::عصبانی++:

دوست عزیز مشکل حل شد
با کمال تعجب پیام چند قسمتی رو با مد UCS2 و با هدر Header--> 050003-XX-XXXX ارسال کردم. و البته از متن پیام 67 تا 67 تا جدا کردم چون هدر اینجا 6 بایته و از هدر قدیمی یک بایت کمتر
تمام قسمتهای پیام هم بصورت صحیح به مقصد رسید.

شما هم امتحان کنید و نتیجه را اعلام کنید

نمی دونم چی به سر Header--> 060804-XXXX-XXXX اومده!!!!!!!!!!!!!!!

@AM!R!
پنج شنبه 03 دی 1388, 18:05 عصر
دوستان به نظر شما این پیام چه مشکلی داره؟
متن پیام 170 کاراکتر "W" که با مد Default Alphabet در دوقسمت با اندازه 154 و 35 باید ارسال بشه ولی تو همون پارت اول Error میده

0691891901500051000B819061692577F00000FF8C05000346 0201F7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FB FD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDF EFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD 7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEF F7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7EBFDFEFF7FBFD7E BFDFEFF7FBFD7EBFDFEF77

0691891901500051000B819061692577F00000FF1505000346 0202F7FBFD7EBFDFEFF7FBFD7EBFC76433

من از متن اصلی 153 تا 153 تا جدا میکنم کارم درسته یا خیر؟

samaba
یک شنبه 20 دی 1388, 08:42 صبح
دوست عزیز مشکل حل شد
با کمال تعجب پیام چند قسمتی رو با مد UCS2 و با هدر Header--> 050003-XX-XXXX ارسال کردم. و البته از متن پیام 67 تا 67 تا جدا کردم چون هدر اینجا 6 بایته و از هدر قدیمی یک بایت کمتر



از اينکه مدتي طول کشيد تا پاسختون را بدم معذرت ميخوام
ضمناً از اينکه منو در جريان نتيجه تحقيقتون گذاشتيد متشکرم.

ميشه لطف کنيد دقيقاً کدي که ارسال شده را با شماره گيرنده 09188123924 برام بذاريد تا همونو تست کنم؟
چون من قبلاً يه بار اين روشو تست کردم ولي نشد. شايد من اشتباه کرده بودم.
مرسي

samaba
یک شنبه 20 دی 1388, 08:46 صبح
دوستان به نظر شما این پیام چه مشکلی داره؟

متأسفانه الآن حضور ذهن ندارم و رفرنسم هم پيشم نيست. تا يکي دو روز آينده نظرمو براتون مي فرستم.

HAMIDREZAJOON
چهارشنبه 14 بهمن 1388, 23:42 عصر
با سلام خدمت دوستان من با VB.NET برنامه ارسال و دریافت اس ام اس رو نوشتم اسام اس رو ارسال میکنه اما دریافت نداره در واقع من هیچ پیغامی از GSM نمیگیرم اصلا به هم جواب نمیده ممنون میشم اگه راهنمائی کنید

reza6384
یک شنبه 18 بهمن 1388, 17:49 عصر
با سلام خدمت دوستان من با VB.NET برنامه ارسال و دریافت اس ام اس رو نوشتم اسام اس رو ارسال میکنه اما دریافت نداره در واقع من هیچ پیغامی از GSM نمیگیرم اصلا به هم جواب نمیده ممنون میشم اگه راهنمائی کنید

AT+CNMI=2,1,0,1

mohsenm66
سه شنبه 04 اسفند 1388, 13:00 عصر
سلام

من ميخواهم چند تا پيام را دنبال هم ارسال كنم

ولي بايد اولي را كه ميفرستم صبر كنم تا پيام ok از گوشي بياد و بعدش دومي را ارسال كنم

اگر بخواهم اين زمان انتظار را بردارم بايد چه كار كنم

ممنون ميشم يكي كمكم كنه

ab_ba
چهارشنبه 05 اسفند 1388, 12:44 عصر
آقا من یک پیام دوقسمتی فرستادم ok میده ولی نمیرسه
<code>
0691891901500071000B819081636125F80008ff8B06080401 580201062C0647062A00200627063706440627063900200631 06330627064606cc002006280647062A06310020063306cc06 33062A06450020067E06cc06270645002006A90648062A0627 06470020062806cc064506470020062E062F06450627062A00 20062F063106450627064606cc002006270633062A06270646 00200645063106A90632
</code>
اینم قسمت دومش
<code>
0691891901500071000B819081636125F80008ff7506080401 58020206cc0020063106270647002006270646062F06270632 06cc00200634062F000D000A0627062F062706310647002006 A906440020062806cc064506470020062E062F06450627062A 0020062F063106450627064606cc002006270633062A062706 4600200645063106A9063206cc
</code>

ab_ba
یک شنبه 09 اسفند 1388, 17:52 عصر
کسی نیست کمک کنه
پیام چند بخشی میسازم مودم هم ok میده
با pduspy هم همه چیز درسته ولی پیام نمیرسه
آیا به gsm modem و نوع اون بستگی ندارد

ab_ba
چهارشنبه 12 اسفند 1388, 07:57 صبح
سلام
آقا ممکنه اشکال از تنظیمات مودم gsm باشه؟
من همین کد را باگوشی 5310 امتحان کردم قسمت اولش رسید!!!!

ab_ba
شنبه 15 اسفند 1388, 09:29 صبح
با کمال تعجب پیام چند قسمتی رو با مد UCS2 و با هدر Header--> 050003-XX-XXXX ارسال کردم. و البته از متن پیام 67 تا 67 تا جدا کردم چون هدر اینجا 6 بایته و از هدر قدیمی یک بایت کمتر
تمام قسمتهای پیام هم بصورت صحیح به مقصد رسید.

شما هم امتحان کنید و نتیجه را اعلام کنید

نمی دونم چی به سر Header--> 060804-XXXX-XXXX اومده!!!!!!!!!!!!!!!

سلام
آقا واقعا تشکر
مشکل من حل شد . بدجوری گیر کرده بودم . دستت در نکنه

mohsenm66
دوشنبه 17 اسفند 1388, 08:53 صبح
من ميخواهم يه پيام 2 قسمتي را پشت سرهم بدون انتظار بفرستم بايد چيكار كنم .

معمولا وقتي بخش اول را ميفرستي بايد چند ثانيه صبر كني و بعد بخش دوم را بفرستي ولي من ميخواهم اين زمان انتظار را بردارم بايد چيكار كنم

ab_ba
دوشنبه 17 اسفند 1388, 18:35 عصر
من ميخواهم يه پيام 2 قسمتي را پشت سرهم بدون انتظار بفرستم بايد چيكار كنم .

معمولا وقتي بخش اول را ميفرستي بايد چند ثانيه صبر كني و بعد بخش دوم را بفرستي ولي من ميخواهم اين زمان انتظار را بردارم بايد چيكار كنم

نیازی به انتظار نیست پشت سرهم بفرستی هم مشکلی پیدا نمیشه
اگر با برنامه نویسی کار میکنی باید صبر کنی تا مودم OK بده

mohsenm66
شنبه 22 اسفند 1388, 19:57 عصر
نیازی به انتظار نیست پشت سرهم بفرستی هم مشکلی پیدا نمیشه
اگر با برنامه نویسی کار میکنی باید صبر کنی تا مودم OK بده


هيچ راهي نداره كه اين زمان انتظار را برداريم و پيام ها را پشت سرهم ارسال كنيم.:عصبانی++::گیج::عصبانی++:: گیج::اشتباه:

fatima2007
پنج شنبه 02 اردیبهشت 1389, 11:39 صبح
در برنامه شناساي پورت براي ارسال اس ام اس مي شود درمورد
With mscomm1
توضيح دهيد؟

aminsharifloo
سه شنبه 21 اردیبهشت 1389, 12:37 عصر
سلام ممنون از راهنمایی های ارزندتون
دست عزیز من این کدارو تو hypertrm می نویسم اما جواب نمیده و طول می کشه انگار هنک می کنه اگه میشه کمکم کنید

Mohammad62
سه شنبه 28 اردیبهشت 1389, 01:47 صبح
سلام
ممنونم از تمام دوستانی که تو این تاپیک زحمت کشیدن و آموزش دادن
یک درخواست دارم
میشه نحوه اضافه کردن Orginator address رو هم آموزش بدید
ببینید قبلا برای من یک مسیج اومده بود از sms center تالیا و شمارش آدرس یک سایت بود اینم کد PDu مربوط به اون مسیج:

0791893902090040000ED0E9198CEE1ABFDB00089030115121 544186062A0628064406CC063A0627062A0020062706CC0646 062A06310646062A06CC0020062806270627064506A9062706 460020062706310633062706440020067E06CC0627064506A9 0020062806270646062706450020062A062C0627063106CC00 200634064506270020000D000A007700770077002E00690033 00300074002E0063006F006D

hosseinmehr
چهارشنبه 29 اردیبهشت 1389, 23:11 عصر
به امید موفقیت.
با تشکر.
واقعا هظ کردم.

Mohammad62
چهارشنبه 19 خرداد 1389, 00:54 صبح
سلام دوستان من یک سوال دارم
تو کلاس Atsms
من با استفاده از متد GetPdu رشته مورد نظرم رو دریافت میکنم طولش رو هم محاسبه میکنم
برای فرستادنش وقتی از serialderiver.sendcmd یا write استفاده میکنم ارور Port close میده
لطفا راهنمایی کنید

aysha_6586
شنبه 22 خرداد 1389, 10:07 صبح
سلام
من با استفاده از این تاپیک pdu رو ساختم کار هم میکنه فقط یه مشکلی هست
تو اس ام اس های چند قسمته منتظر میشم اوکی پارت اول بیاد بعد پارت دوم رو میفرستم ولی پارتها نصفو نیمه به هم میچسبن ولی اگه یه delay کوچیک بینشون بدم درست میشه
البته چیز ثابتی هم نیست یه روز با 3،4 ثانیه درست شد یه روز با 6،7 ثانیه!!
ظاهرا برای مشخص کردن آخر pdu کاراکتری آخرش میذارین که تو این تاپیک اشاره ای بهش نشده
سیرچیدم به نتیجه نرسیدم
ممنون میشم منو راهنمایی کنین

aysha_6586
یک شنبه 30 خرداد 1389, 11:38 صبح
آخر اس ام اس هام کد کاراکتر null رو اضافه کردم یعنی "00" و یک بایت از طول پیام کم کردم حالا پیامها نصفه نیمه نمیچسبه!
اینجا هیچ اشاره ای به این مسئله نشده و منم بر اساس شنیده های نه چندان قطعی اینکارو کردم!
ولی دو سه تا کاراکتر من این وسط گم میشه اونم فقط تو پکت آخر اگه تعداد کاراکترهاش زیاد باشه
یا تو پکت یکی مونده به آخر اگه تعداد کاراکترهای آخری کم باشه! رسما گرفته مارو
عجیبه!!!

البته اگر از طول پیام کم نمیکردم هم همین حالت بود انگار! بیشتر بررسی میکنم برمیگردم
ولی چرا اینجا اینخده خلوته؟!
اگر کسی اطلاعی داره یه توضیحی بده لطفا

sfz1221
شنبه 05 تیر 1389, 12:09 عصر
با عرض سلام و درود خدمت شما دوستان که برای این تاپیک زحمت زیادی کشیدید و نتیجه کارهایی که ممکنه شما براش کلی وقت گذاشته باشید رو اینجا به راحتی در اختیار ما میگذارید.
منم از اول مطالب تاپیک رو خوندم بسیار مفید بود و کارم رو راه انداخت . فقط الان یه مشکل دارم
GSM MODEM من خرابه و فعلا کار نمیکنه. با sony Ericson k550 کار می کنم. تو مد PDU گاهی پیام رو ارسال میکنه وگاهی نه .حتی با HYPER TERMINAL هم همینطوره . چون اول فکر کردم از کد نویسیه و یک روز وقت گذاشتم بعد فهمیدم مشکل کد نویسی نیست. شماره هایی که + ندارند 81 و اونایی که دارند 91 میگذارم . شماره ارسال هم 0935 میدم یعنی 0098 رو بهش نمیدم . گاهی درست ارسال میشه گاهی نه
ممنون میشم کمکم کنید

omid_2009
سه شنبه 08 تیر 1389, 20:07 عصر
سلام

من یه سوال کوچولو دارم

یه جواب قانع کننده بدید تا من از این سر در گمی در بیام



آیا میشه با مودم GSM مارک Tatung , اس ام اسی فرستاد که به جای شماره ارسال کننده یک نام دلخواه قرار داد یا نه ؟


نکنه : توسط دستورات AT Command

aysha_6586
دوشنبه 14 تیر 1389, 10:57 صبح
اینجا تعطیل شده؟!:متفکر:

hn_mahdavi
جمعه 18 تیر 1389, 19:55 عصر
پست بسیار یسیار مفیدی بود...:تشویق:
واقعا دست شما درد نکنه
بسیار کمکم کرد
از همه ی کسانی که در ارائه ی این مطالب تلاش کردند،متشکرم...

fgpcoir
شنبه 02 مرداد 1389, 14:04 عصر
با سلام خدمت دوستان!
اگر یکی از دوستانی که توانسته اس ام اسی بفرسته که به جای شماره ارسال کننده یک نام دلخواه رفته باشه،
محبت بکنه کد PDUشو رو برای ما بذاره واقعا یه دنیا لطف کرده و کلی حال داد!:تشویق:
من که خیلی دعاش می کنم!:لبخندساده:
مرصی

n34000
جمعه 05 شهریور 1389, 00:25 صبح
سلام بر همه
حیف یکم دیر رسیدم همه رفتن
اگه بروبچز هنوز هستن مارو هم یاری کنند
1.تاپیک بالایی چیزه جالبی هست منم دیدم از سایت برام اس ام اس میاد اسم نوشته چطوریاست و...

من می خوام sms رو به یک پورت خاصی ارسال کنم مثله همین نرم افزار بانک که از سرور برای موبایل ارسال میشه و نرم افزار از اون پورت sms رو میخوته
و ما یک گوشی رو می خوام سرور کنم و اونطرف هم نرم افزار جاوا هستش و خوندن sms
کله تاپیک رو خوندم دوجا port اومده بود ولی نفهمیدم اگه یکم توضیحات بدید 2 دنیا ممنون

http://barnamenevis.org/forum/showpost.php?p=548794&postcount=133
http://barnamenevis.org/forum/showpost.php?p=530786&postcount=64
در ضمن یه سوال اگه ما بیایم مد رو تنظیم کنیم رو 70 حرف ولی utf8 نزاریم و انگلیسی بنویسم متن فارسی تشخیص داده میشه و 10 تومانی میشه یا نه

در ضمن اگر از بچه ها مشهد هست بتونیم با هم همفکری کنیم از خجلتشون در میام

jalil_1363
سه شنبه 30 شهریور 1389, 17:01 عصر
سلام من دارم با دستورات at command پیام فارسی می فرستم با سی شارپ ولی با فارسی مشکل دارم اگه می شه کمکم کنین یک سورس آماده اگه داشتین بدین ممنون می شم

shahnamgolshany
جمعه 23 مهر 1389, 00:08 صبح
این عکس ها را چرا من نمی بینم

8611670474
جمعه 07 آبان 1389, 09:58 صبح
سلام دوستان

من این pdu را دارم.(همون مثال پستهای اول)
حالا چطوری بفرستمش برای مودم؟


با این دستور؟؟؟؟


serialPort1.WriteLine("079189390500410011000B819053214365F70000FF");

mahdi68
سه شنبه 02 آذر 1389, 13:43 عصر
سلام
در پست شماره 10 یک مثال گذاشتین من با استفاده از اون میخوام یک پیام خالی بفرستم ولی Error میده !
شماره مقصد 09364191752
وشماره مرکز پیام با اون مثال یکی هست

OK

at+cmgf=0

OK

at+csms=0

+CSMS: 1,1,1



OK

at+cmgs=23

> 078189390500410011000b819063141957f20000ff

ERROR
لطفا راهنماییم کنید که کجای کارم اشتباه هست ؟
متشکرم

mlf_mlv
چهارشنبه 28 اردیبهشت 1390, 16:48 عصر
سلام به همگی
خیلی تاپیک به درد بخوری بود..
فقط من چند جاش مشکل دارم..
1- بعد از CMGS باید چی بزنیم؟ آخر رشته PDU هم باید طول پیام رو بنویسیم؟ طول پیام شامل هدر هم می شه؟ من می خوام پیام خالی بفرستم باید مقادیری که گفتم رو چی بذارم؟
2- توی vb.net می خوام جواب هر دستور at رو بخونم که اگه ok بود ادامه بده، ولی نمی تونم این کار رو کنم. وقتی readexisting رو صدا می زنم فقط دستورات خودم رو می بینم نه جواب ها رو.

mlf_mlv
پنج شنبه 29 اردیبهشت 1390, 01:20 صبح
مشکل حل شد :دی
فقط یه سوال از vb.net کار ها، من تو hyper اس ام اس می فرستم ولی با همون کد توی vb.net نمی تونم ارسال کنم، دلیلش چیه؟
یه جا خونده بودم Encode سریال پورتم باید ست بشه ولی پیداش نمی کنم :ناراحت:

ahmadpj
شنبه 31 اردیبهشت 1390, 20:25 عصر
برای این تاپیک واقعا زحمت زیادی کشیدن و برای من هم خیلی مفید بود، اصول رو با حوصله و دقت خوبی شرح دادن...
با این حال بعد از چند روز کلنجار رفتن با مسیج های فارسی چند پارتی، و البته دریافت مسیج هایی به زبان چینی و کره ای !! نهایتا مجبور شدم پورت مودم جی اس ام خودمو در حالتی که با نرم افزار ساخت شرکت خودش کار میکرد مانیتور کنم و ببینم واقعا چه کدها و اطلاعاتی میفرسته
بخشی از این کدها رو میذارم که ببینیم روشها و داده ها میتونن شکل های دیگه ای هم داشته باشن:


Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 01 062806310627064A00200627064A064606A906470020064A06 A9002006450633064A062C002006280627002006860646062F 064A06460020067E06270631062A064A0020062F0631063306 2A0020064106310633062A0627062F06470020062806340647 002006280627064A062F002006450635064A0628062A002006 32064A0627062F064A
Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 02 002006A90634064A062F060C00200645062B06440627002006 280627064A062F002006280647002006280633062A06470020 06470627064A0020003600360020062A0627064A064A002006 2A06420633064A06450634002006A90631062F002006480020 06280639062F0020062706480646002006280633062A064700 200647062700200631
Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 03 0648002006340645062706310647002006AF06300627063106 4A002006A90631062F00200648002006280627002006340645 062706310647002006A906440020067E064A06270645064706 270020064106310633062A0627062F0020062706440628062A 06470020062E064A0644064A0020062F064606AF0020064800 200641064606AF0020
Length 11: AT+CMGS=75.
Length 164: 0691891901500041FF0B81MyPhon1234 0008 3E 050003 02 04 04 062F0627063106470020064800200627064A06460020064A06 4700200628062E0634002006A906480686064A06A906340020 06280648062F


اگر پیامک فارسی ما تا 70 کاراکتر باشه اون رو در یک پیامک میفرسته، اما اگر از 70 تا بیشتر شد اونوقت میاد 66 تا 66 تا جدا میکنه و میفرسته. دلیلش هم همون چیزیه که دوستان گفتن، بحث همون بایتهای اضافی.
ثانیا کدها و مقدار ثابت رو چیزهای دیگه ای در نظر گرفته.
من فقط به جای شماره ی خودم نوشتم MyPhon1234 که یهو هوس نکنین برای من مسیج انبوه بفرستین!

باز هم از دو سه نفری که برای این تاپیک اینقدر وقت گذاشتن به سهم خودم تشکر میکنم...
موفق باشید

ahmadpj
چهارشنبه 04 خرداد 1390, 13:48 عصر
من داشتم یک مروری به مطالب گذشته میکردم دیدم چند تا مطلب دیگه از قلم افتاده و او اینکه UDH برای DefualtAlphabet که همون مد 7 بیته
یعنی اگه قرار باشه یک پیام چند پارتی در مد 7 بیت ارسال کنیم قضیه چی میشه

همونطور که در پستهای قبل فهمیدیم ما باید در UDH (User Data Header) مشخص کنیم در حال ارسال یک پیام بلند چند پارتی هستیم
اگه یادتون باشه در اونجا یک عدد ثابت 060804 را وارد می کردیم این در واقع همون هدر دیتای ما میشه
06 در اونجا مشخص میکرد UDH ما طولش 6 بایته
08 نشاندهنده این بود که ما در مد 16 بیتی اطلاعات را کد کردیم
04 مشخص میکنه که چهاربایت دیگه دنباله داره

حال در مورد پیامهای بلند در 7 بیت قضیه به این صورت تغییر میکنه
به جای 060804 از 050003 استفاده میکنیم بدین معنی که
05 نشون میده طول هدر ما 5 بایته
00 اطلاعات بصورت 7 بیت کد شدند DefualtAlphabet
03 مشخص میکنه سه بایت دیگه دنباله داره

تا اینجا یک چیز مشخص شد و او اینه که طول هدر در 7 بیت یکی کمتر از 16 بیته
تا اینجا ما در هر دو حالت 3 بایت را داشتیم در 16 بیت 04 08 06 و در 7 بیت 03 00 05
در 16 بیت ما دو بایت را برای رفرنس پیام در نظر میگرفتیم که بصورت اتفاقی انتخاب میشد و برای تمام قسمتها یکسان بود ولی در 7 بیت ما از یک بایت استفاده میکنیم یعنی ما یک رفرنس یک بایتی داریم و این همون یک بایت اختلاف هدر هاست و بقیه قضایا مثل قبل تکرار میشه یعنی



0500031D0301

05003 هدر
1D رفرنس پیام که بصورت تصادفی ایجاد مشه
03 تعداد پارتها که قراره ارسال بشه
01 شماره اندکس پیام


اگه جایی را از قلم انداختم خواهش میکنم دوستان محبت کنند کاملش کنن
موفق و موید باشید

بسیار جالب بود
فقط اینو بگم که نرم افزار گوشی من حتی برای مسیج های فارسی چند پارتی هم از هدر 050003 استفاده میکنه و مشکلی هم پیش نمیاد! جالب اینکه از اون یک بایت اضافه هم استفاده میکنه و تو هر پارتی 67 کاراکتر میفرسته، نمونه ش رو بالا گذاشتم.

mlf_mlv
چهارشنبه 04 خرداد 1390, 15:10 عصر
بسیار جالب بود
فقط اینو بگم که نرم افزار گوشی من حتی برای مسیج های فارسی چند پارتی هم از هدر 050003 استفاده میکنه و مشکلی هم پیش نمیاد! جالب اینکه از اون یک بایت اضافه هم استفاده میکنه و تو هر پارتی 67 کاراکتر میفرسته، نمونه ش رو بالا گذاشتم.
یه سوال، من اس ام اس چند پارتی فارسی می تونم بفرستم ولی انگلیسی سند نمی شه. تو هایپر خالیش بدون ارور سند می شه، ولی اس ام اس با محتوی رو نمی فرسته. مثلا:

at+cmgf=0
at+cmgs=27
>079189395616369971000C918939561636990000FF0D050003 73020206C2F77B9D0200->

mlf_mlv
چهارشنبه 04 خرداد 1390, 15:13 عصر
یه سوال دیگه هم داشتم. اونطور که فهمیدم ارسال اس ام اس با نام به جای شماره تلفن EMS محسوب می شود. تعرفه EmS با SmS متفاوته؟

mlf_mlv
چهارشنبه 04 خرداد 1390, 15:20 عصر
سلام دوستان

من این pdu را دارم.(همون مثال پستهای اول)
حالا چطوری بفرستمش برای مودم؟


با این دستور؟؟؟؟


serialPort1.WriteLine("079189390500410011000B819053214365F70000FF");
قبل از کدی که گذاشتید این کد ها رو هم باید بنویسید:

SerialPort1.WriteLine("AT&F" & vbCrLf)
SerialPort1.WriteLine("AT" & vbCrLf)
SerialPort1.WriteLine("AT+CMGF=0" & vbCrLf)
SerialPort1.WriteLine("AT+CMGS=" & Chr(26))
که جلوی cmgs باید طول دستوراتتون رو بنویسید که از بعد از شماره ی مرکز پیام شروع می شه(حواستون باشه که هر 2 تا عدد رو یکی حساب کنید)
البته کد شما به 2 تا صفر آخرش نیاز داره که طول متن پیامتون هست

cpu1362
پنج شنبه 02 تیر 1390, 13:02 عصر
با سلام خدمت تمامي دوستان عزيز
واقعا عالي بود
خدا خيرتون بده
دستتون درد نكنه

faravaghi
جمعه 14 مرداد 1390, 23:22 عصر
با سلام و عرض خدا قوت به همه و قبولی طاعات و عبادات همگی،
گفتم برا بعضی ها که مثل من از ویندوز 7 استفاده می کنند و به Hyper Terminal برای تست کدها احتیاج دارن، این نرم افزار رو بذارم. روش استفاده اون تو ویندوز 7 یا ویستا این جوریه که فایل رو که دانلود کنید سپس Extract می کنید بعد محتویات پوشه رو یعنی:


hypertrm.chm
hypertrm.dll
hypertrm.exe
hypertrm.hlp

یه جایی مثل C:\Program Files (x86)\HyperTerminal قرار بدید. بعد یه Shortcut از فایل اجراییش تهیه و در Desktop قرار بدین.
به همین راحتی می تونید At Command های موبایل رو توش تست کنید.

aloneman2005
شنبه 22 مرداد 1390, 09:20 صبح
خسته نباشید
فرق بین status Report و Delivery Report چیه
بعد از فرستان پیام یه متنی میاد که می گه مثلا +GSM=0 این چیه ممنون می شم .
چطور باید هر وقت که بخوام وضعیت پیام رو چک کنم

M.Fekri
شنبه 22 مرداد 1390, 12:58 عصر
سلام
در mcorlib یک Even برای delivery اس ام اس ارسالی وجود دارد که message refrence,time را برمی گرداند.از چه دستور At Command میشه استفاده کرد. که بشه فهمید اس ام اس ارسالی به شماره ارسالی رسید یا نه ؟

faravaghi
یک شنبه 23 مرداد 1390, 01:26 صبح
فرق بين status Report و Delivery Report چيه
با سلام خدمت دوست عزيزم، اين دو تا که شما گفتيد در اصل يکي هستند و فرقي با هم ندارند.
Delivery Report : زماني که شما مي خواهيد پيامک بفرستيد تنظيم ميشه. يعني تو پيامي که ميفرستين مشخص مي کنيد که آيا تاييد ارسال داشته باشيد يا خير.
Status Report : زماني که شما پيامي فرستاديد و تو اون گفتيد تاييد بشه که به طرف مقابل رسيده، اپراتور يک گزارش وضعيت به شما ميده که آيا رسيده يا نه، اگه رسيده تاريخ و زمانش کي بوده.
پس درنتيجه اولي رو شما تنظيم ميکنيد و دومي اپراتور براساس تنظيم شما ميفرسته. که در حقيقت به يک چيز ختم ميشه اونم گزارش ارسال.


بعد از فرستان پيام يه متني مياد که مي گه مثلا +GSM=0 اين چيه ممنون مي شم .

اين که بعد از ارسال پيام مياد:

+CMGS: <mr>
Parameter:
GSM 03.40 TP-Message-Reference in integer format
(Message reference value is returned to the TE on successful message delivery.
Values can be used to identify message upon unsolicited delivery status report result code.)
به اين چيزا ميگن کد هاي نا خواسته که اگه متن بالا رو ترجمه کني ميشه:
"اين مقدارير براي شناسايي وضعيت تحويل گزارش از روي کدهاي ناخواسته مي تواند مورد استفاده قرار گيرد."
يعني وقتي پيامي ارسال ميکنيد مودم مياد يک شماره بهتون ميده که بفهميد اولا پيام ارسال شده، دوما اگه با اين پيام که فرستادي کار داشتي مي توني تو دنبالش بگردي که يک شماره است و جايي که ذخيره شده رو نشون ميده.

چطور بايد هر وقت که بخوام وضعيت پيام رو چک کنم

شما هروقت بخواي بايد بري از دستور زير استفاده کني:

AT+CMGR=<index>[,<mode>]
که بجاي Index بايد همون شماره اي رو بدي که وقتي پيام ارسال شده و مودم به شما داده:

+CMGS: 246

aloneman2005
یک شنبه 23 مرداد 1390, 08:18 صبح
متاسفانه هر وقت فرمان خواندن رو می زنم error می نویسه
چکار باید بکنم ورژن GSM 7.9 هست .
همون دستورات AT+CMGR
دستور نوشتن AT+CMGW
اررو می دن چکار باید بکنم

faravaghi
یک شنبه 23 مرداد 1390, 15:14 عصر
سلام،
شما بیا ابتدا دستور زیر را تست کن :


AT
OK

اگه جواب OK رو گرفتی پس مشخصه مودم درست متصل شده و شما الان به اون Connect هستید. حالا برای تست دستورات می تونید این کار رو انجام بدید:

Test Command

AT+CMGR=?
Response

OK

اگه جواب بازم OK بود معلوم میشه مودم این دستورات رو پشتیبانی می کنه. بعد برای خوندن پیام ها باید از این دستور با همین فرمت استفاده کنید:

Write Command

AT+CMGR=<index>[,<mode>]
Parameters
<index> integer type; value in the range of location numbers supported by the associated memory
<mode> 0 normal
1 not change status of the specified SMS record

همین جا بگم، وقتی پیامی دریافت می کنید مثل کد زیر میاد که میگه یه پیام جدید اومده و در سیم کارت در جایگاه 11 قرار داره:


+CMTI: "SM",11

وقتی می خواین این پیام جدید رو بخونید باید این دستور را بکار ببرید و جوابش هم به صورت زیر است:


AT+CMGR=11
+CMGR: 1,,159
06918919015000400C91891915******000811704202207281 8C0500038005010627064506310648
0632002006280631062706CC002006340647062F0627002006 480642062A00200646062F06270631
06CC06450020060C0020062706320020063906340642002006 4506AF064800200642063506470020
06A90647002006450627002006480642062A00200646062F06 27063106CC06450020060C00200628
06270020062D

OK


بجای قسمتی از شماره تلفن * گذاشتم. ترجمه این پیام که البته یک پیام چند قسمتی است این میشه:


From:98915******* Time:2011/07/24 08:02:27 ب.ظ GMT+4.5
Total: 5 Part: 1
امروز برای شهدا وقت نداریم ، از عشق مگو قصه که ما وقت نداریم ، با ح



متن کامل پیام اینه:
امروز برای شهدا وقت نداریم ، از عشق مگو قصه که ما وقت نداریم ، با حضرت شیطان سرمان گرم گناه است ، از بهر ملاقات خدا وقت نداریم ، در کوفه تن غیرتمان گوشه نشین است ، بهر سفر کرب وبلا وقت نداریم ، هر چند که خوب است شهیدانه بمیریم ، زیباست ولی حیف که ما وقت نداریم!الهم عجل الولیک الفرجوقتی هم که پیامی ارسال می کنید:


AT+CMGS=32
>0691891901500031840B81905*******F50008FF1206330644 0627064500200645062D0645062F<ctl+z>

+CMGS: 38

OK

+CDS: 25
0691891901500006260B81905*******F51180104194338111 80104194838100


این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:


SMS_STATUS_REPORT
Phone Number:0915*******
Send time:2011/08/01 02:49:33 PM
Receive time:2011/08/01 02:49:38 PM
Status: Success

faravaghi
یک شنبه 23 مرداد 1390, 15:41 عصر
سلام
در mcorlib یک Even برای delivery اس ام اس ارسالی وجود دارد که message refrence,time را برمی گرداند.از چه دستور At Command میشه استفاده کرد. که بشه فهمید اس ام اس ارسالی به شماره ارسالی رسید یا نه ؟
برای فهمیدن اینکه پیام رسیده یا نه شما لازم نیست دستوری بنویسید. بلکه خود اپراتور میگه که کی رسیده!
شما برای اینکه بتونی جواب اپراتور رو بگیری باید یک سری تنظیمات رو مودم انجام بدی:


ابتدا باید تو پیامی که میفرستی مشخص کنی که می خوای تایید ارسال رو بگیری.



سپس باید برای گرفتن این تایید پارامترهای دستور زیر رو تنظیم کنی:


Test Command


AT+CNMI=?
Response

+CNMI: (list of supported <mode>s),(list of supported <mt>s),(list of
supported <bm>s),(list of supported <ds>s),(list of supported <bfr>s)
OK

AT+CMNI=3,1,0,2,0

که اگه این جوری باشه، جواب به شکل زیر میاد:

+CDSI: "SR",54
که یعنی باید اول بیای حافظه رو از SM به SR تغییر بدی :

AT+CPMS="SR"
دوم اینکه با دستور زیر بیای تو حافظه 54 رو بخونی ببینی چیه:

AT+CMGR=55
یادتون باشه بعد از این کار حافظه رو که تغییر دادین به حالت قبل برگردونین تا اگه پیام اومد بتونین اون رو بخونید.
و حالا اگه این جوری پارامترها رو تغییر بدین:

AT+CNMI=1,2,0,1,0
جواب به شکل زیر میاد:

+CDS: 25
06918919015000062A0B81************1180105171318111 80105171538100
که دیگه لازم نیست کاری بکنید فقط کافیه این کد PDU رو تفسیر کنید.(ستاره ها نمایانگر شماره تلفن است).




سپس وقتی داری پورت COM رو اسکن میکنی هرقت به کدی دریافت میکنی باید ایون رو تفسیر کنی که چیه اگه گزارش تایید ارسال بود بعد بری یه رویدادی رو فراخوانی کنی و بگی پیام رسید.

تذکر: لازمه بگم تمام این چیزهایی که گفتم تو حالت PDU است. البته فرقی با حالت Text نداره ولی یک تبدیل PDU میفته گردن خودتون.

روزه، نمازهاتون مقبول درگاه حق

aloneman2005
دوشنبه 24 مرداد 1390, 08:40 صبح
متاسفانه AT+CMGR=?
error می ده.

aloneman2005
دوشنبه 24 مرداد 1390, 09:01 صبح
توی دستور AT+CNMI=3,1
ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.

aloneman2005
دوشنبه 24 مرداد 1390, 09:11 صبح
این SR چیه
من توی فرمان ها فقط MT,ME,SM رو دیدم

faravaghi
دوشنبه 24 مرداد 1390, 14:09 عصر
سلام،
همین جور شلاقی سوال کردی!

متاسفانه AT+CMGR=?
error می ده.
آیا شما در جواب دستور AT جوابی که میگیرین OK است یا Error ؟
اگه OK باشه پس نتیجتا این جوری برداشت میشه که وسیله ای که شما دارین از این دستور پشتیبانی نمیکنه!!! ولی اگه Error باشه یعنی شما به مودم متصل نیستید.

توی دستور AT+CNMI=3,1
ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.
اینکه مودم شما چیرو پشتیبانی می کنه به خودش مربوطه!!!
مگه من گفتم حتما اونی که من نوشتم وحی منزله!!!!
مودمی که من دارم DWM-152 است و مثل اینکه شما گفتین حالت 3 نداره و دارم از روش دومی که گفتم استفاده می کنم. البته اینم بگم تو نرم افزارم اومدم حالتهای مختلف رو دیدم، از بهترین تا بدترین، به ترتیب هر کدوم جواب داد از اون استفاده می کنم.

این SR چیه
من توی فرمان ها فقط MT,ME,SM رو دیدم


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

که برای گرفتن شارژ است رو به چه زیبایی براتون جواب میده. اگه کسی خواست مودم بخره این مدل را انتخاب کنه بهتره.
یا حق

aloneman2005
چهارشنبه 26 مرداد 1390, 11:16 صبح
AT رو ok می ده SMS هم می فرستم ولی نمی دونم چرا
AT+CMGR رو Error می ده

M.Fekri
چهارشنبه 26 مرداد 1390, 11:25 صبح
یک دنیا تشکر و قدردانی فراوان و ممنون از اینکه وقت گذاشتین :تشویق::تشویق::تشویق::تشویق:

aloneman2005
چهارشنبه 26 مرداد 1390, 11:44 صبح
یه سوال دیگه .ببخشید انیقدر سوال می کنم
می خوام توی یه 2 تا thread ( همزمانی ) دو تا SMS بفرستم
اینکار امکان پذیر هست یا باید یکی یکی بفرستم نمی شه چند تا بطور همزمان بفرستم
من می خوام چند تا رو بفرستم باید یکی بفرستم منتظر بمونم تا جوابش بیاد بعد یکی دیگه بفرستم .
2 - این سایت های فرستادن sMS چطور اینقدر سریع SMS ها رو می فرستند .مثل payamsms

faravaghi
چهارشنبه 26 مرداد 1390, 13:41 عصر
AT رو ok می ده SMS هم می فرستم ولی نمی دونم چرا
AT+CMGL رو Error می ده
سلام،
آیا از مودم ارسال می کنید یا موبایل؟ میشه مدل وسیله ای که باهاش کار می کنید رو بدونم؟
در ضمن یک دستور دیگه است که تقریبا همین کار رو انجام میده، لطفا این دستور رو امتحان کن ببین چطوریه:

AT+CMGL=? LIST SMS MESSAGES FROM PREFERRED STORE

یه سوال دیگه .ببخشید انیقدر سوال می کنم
می خوام توی یه 2 تا thread ( همزمانی ) دو تا SMS بفرستم
اینکار امکان پذیر هست یا باید یکی یکی بفرستم نمی شه چند تا بطور همزمان بفرستم
من می خوام چند تا رو بفرستم باید یکی بفرستم منتظر بمونم تا جوابش بیاد بعد یکی دیگه بفرستم .
این کار خوبه از نظر تئوری خوبه، یعنی وقتی فکر میکنی می بینی چقدر عالیه! دیگه لازم نیست اینقدر منتظر باشیم تا یکی ارسال بشه بعد یکی دیگه بفرستیم!
من یک سوال میپرسم شما جواب بده.

سوال : اگه شما یک ماشین داشته باشین، در آن واحد چند نفر می تونن پشت فرمون باشن؟
بزارید جواب رو خودم بدم:

جواب: منطقیه فقط یکی تا بتونید اون کارایی رو از ماشین داشته باشید. مودم هم همینه، یعنی وقتی دارید با کسی تماس میگیرید آیا میشه همزمان با یکی دیگه تماس بگیرید.(یعنی زمانی که داره شماره میگیره!)
کامپوتر با این همه عظمتش در آن واحد یک کار بیشتر نمی تونه بکنه!!!!! از این پورت COM چه توقعی دارید. این که تازه زیر مجموعه CPU است.
بعدشم وقتی با یک threadکار میکنید مدیریتش هم راحتره یعنی بعضی وقتها میشه آنتن میپره، مودم یک دفعه قطع میشه، اگه سیم کارت اعتباری باشه شارژ تموم کنه،.... و هزار اما و شاید.
پس بهتره زیاد بفکر راههای خیلی خوب نباشین. چون بعضی وقت ها همین راههای خوب هم واقعا خیلی خوب هستن.

یه سوال دیگه .ببخشید انیقدر سوال می کنم
2 - این سایت های فرستادن sMS چطور اینقدر سریع SMS ها رو می فرستند .مثل payamsms
این سایتها میان از امکانات مخابرات استفاده میکنند نه مودم های معمولی و یا موبایل!!
چطور میشه یک شب عید نوروز مخابرات اعلام میکنه در دقیقه اول سال تحویل بیش از چند 10 میلیون پیام رو جابجا کرده!!!

M.Fekri
پنج شنبه 27 مرداد 1390, 11:53 صبح
برای این تاپیک واقعا زحمت زیادی کشیدن و برای من هم خیلی مفید بود، اصول رو با حوصله و دقت خوبی شرح دادن...
با این حال بعد از چند روز کلنجار رفتن با مسیج های فارسی چند پارتی، و البته دریافت مسیج هایی به زبان چینی و کره ای !! نهایتا مجبور شدم پورت مودم جی اس ام خودمو در حالتی که با نرم افزار ساخت شرکت خودش کار میکرد مانیتور کنم و ببینم واقعا چه کدها و اطلاعاتی میفرسته
بخشی از این کدها رو میذارم که ببینیم روشها و داده ها میتونن شکل های دیگه ای هم داشته باشن:


Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 01 062806310627064A00200627064A064606A906470020064A06 A9002006450633064A062C002006280627002006860646062F 064A06460020067E06270631062A064A0020062F0631063306 2A0020064106310633062A0627062F06470020062806340647 002006280627064A062F002006450635064A0628062A002006 32064A0627062F064A
Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 02 002006A90634064A062F060C00200645062B06440627002006 280627064A062F002006280647002006280633062A06470020 06470627064A0020003600360020062A0627064A064A002006 2A06420633064A06450634002006A90631062F002006480020 06280639062F0020062706480646002006280633062A064700 200647062700200631
Length 12: AT+CMGS=153.
Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 03 0648002006340645062706310647002006AF06300627063106 4A002006A90631062F00200648002006280627002006340645 062706310647002006A906440020067E064A06270645064706 270020064106310633062A0627062F0020062706440628062A 06470020062E064A0644064A0020062F064606AF0020064800 200641064606AF0020
Length 11: AT+CMGS=75.
Length 164: 0691891901500041FF0B81MyPhon1234 0008 3E 050003 02 04 04 062F0627063106470020064800200627064A06460020064A06 4700200628062E0634002006A906480686064A06A906340020 06280648062F


اگر پیامک فارسی ما تا 70 کاراکتر باشه اون رو در یک پیامک میفرسته، اما اگر از 70 تا بیشتر شد اونوقت میاد 66 تا 66 تا جدا میکنه و میفرسته. دلیلش هم همون چیزیه که دوستان گفتن، بحث همون بایتهای اضافی.
ثانیا کدها و مقدار ثابت رو چیزهای دیگه ای در نظر گرفته.
من فقط به جای شماره ی خودم نوشتم MyPhon1234 که یهو هوس نکنین برای من مسیج انبوه بفرستین!

باز هم از دو سه نفری که برای این تاپیک اینقدر وقت گذاشتن به سهم خودم تشکر میکنم...
موفق باشید
***************************
باسلام وتشکر فراوان
یه سوالی برام پیش آمده من sample شما را تست کردم و جواب هم گرفتم اما دوباره که دارم تست می کنم
با اینکه بعد از ارسال هر پارت جواب OK را می گیرم اما این بار هیچ sms دریافت نمی کنم . اشکال از کجا می تونه باشه؟
با سپاس

M.Fekri
شنبه 29 مرداد 1390, 10:37 صبح
سلام،
شما بیا ابتدا دستور زیر را تست کن :


AT
OK

اگه جواب OK رو گرفتی پس مشخصه مودم درست متصل شده و شما الان به اون Connect هستید. حالا برای تست دستورات می تونید این کار رو انجام بدید:

Test Command

AT+CMGR=?
Response

OK

اگه جواب بازم OK بود معلوم میشه مودم این دستورات رو پشتیبانی می کنه. بعد برای خوندن پیام ها باید از این دستور با همین فرمت استفاده کنید:

Write Command

AT+CMGR=<index>[,<mode>]
Parameters
<index> integer type; value in the range of location numbers supported by the associated memory
<mode> 0 normal
1 not change status of the specified SMS record

همین جا بگم، وقتی پیامی دریافت می کنید مثل کد زیر میاد که میگه یه پیام جدید اومده و در سیم کارت در جایگاه 11 قرار داره:


+CMTI: "SM",11

وقتی می خواین این پیام جدید رو بخونید باید این دستور را بکار ببرید و جوابش هم به صورت زیر است:


AT+CMGR=11
+CMGR: 1,,159
06918919015000400C91891915******000811704202207281 8C0500038005010627064506310648
0632002006280631062706CC002006340647062F0627002006 480642062A00200646062F06270631
06CC06450020060C0020062706320020063906340642002006 4506AF064800200642063506470020
06A90647002006450627002006480642062A00200646062F06 27063106CC06450020060C00200628
06270020062D

OK


بجای قسمتی از شماره تلفن * گذاشتم. ترجمه این پیام که البته یک پیام چند قسمتی است این میشه:


From:98915******* Time:2011/07/24 08:02:27 ب.ظ GMT+4.5
Total: 5 Part: 1
امروز برای شهدا وقت نداریم ، از عشق مگو قصه که ما وقت نداریم ، با ح


وقتی هم که پیامی ارسال می کنید:


AT+CMGS=32
>0691891901500031840B81905*******F50008FF1206330644 0627064500200645062D0645062F<ctl+z>

+CMGS: 38

OK

+CDS: 25
0691891901500006260B81905*******F51180104194338111 80104194838100


این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:


SMS_STATUS_REPORT
Phone Number:0915*******
Send time:2011/08/01 02:49:33 PM
Receive time:2011/08/01 02:49:38 PM
Status: Success
















*******************************
سلام
من در ارسال اس ام اس چند پارتی فارسی مشکل دارم یعنی یه با می فرسته ویه بار نه میشه منظورم پست 307 هست.می شه لطف کنید و PDU کامل متن بالا را بزارید تا تست کنم
با تشکر

faravaghi
شنبه 29 مرداد 1390, 14: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 به وسیله گوشی....مودم.....اینترنت (http://barnamenevis.org/showthread.php?246291-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-SMS-%D8%A8%D9%87-%D9%88%D8%B3%DB%8C%D9%84%D9%87-%DA%AF%D9%88%D8%B4%DB%8C-...-%D9%85%D9%88%D8%AF%D9%85-...-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA&p=1307013&viewfull=1#post1307013)

M.Fekri
شنبه 29 مرداد 1390, 14:48 عصر
سلام،
این 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 به وسیله گوشی....مودم.....اینترنت (http://barnamenevis.org/showthread.php?246291-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-SMS-%D8%A8%D9%87-%D9%88%D8%B3%DB%8C%D9%84%D9%87-%DA%AF%D9%88%D8%B4%DB%8C-...-%D9%85%D9%88%D8%AF%D9%85-...-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA&p=1307013&viewfull=1#post1307013)
***************

وقتی دستور 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**********F70008FF8B060804B4 9F050106270645063106480632002006280631062706CC0020 06340647062F0627002006480642062A00200646062F062706 3106CC06450020060C00200627063200200639063406420020 064506AF06480020064206350647002006A906470020064506 27002006480642062A00200646062F0627063106CC06450020 060C0020062806270020" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81**********F70008FF8B060804B4 9F0502062D06360631062A0020063406CC0637062706460020 06330631064506270646002006AF06310645002006AF064606 270647002006270633062A0020060C00200627063200200628 06470631002006450644062706420627062A0020062E062F06 27002006480642062A00200646062F0627063106CC06450020 060C0020062F06310020" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81**********F70008FF8B060804B4 9F050306A90648064106470020062A06460020063A06CC0631 062A064506270646002006AF06480634064700200646063406 CC0646002006270633062A0020060C00200628064706310020 063306410631002006A9063106280020064806280644062700 2006480642062A00200646062F0627063106CC06450020060C 00200647063100200686" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81**********F70008FF8B060804B4 9F05040646062F002006A906470020062E0648062800200627 0633062A00200634064706CC062F0627064606470020062806 4506CC063106CC06450020060C0020063206CC062806270633 062A00200648064406CC0020062D06CC0641002006A9064700 2006450627002006480642062A00200646062F0627063106CC 06450021062706440647" & vbCrLf & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=57" & vbCr)
SerialPort1.WriteLine("0691891901500051000B81**********F70008FF2B060804B4 9F0505064500200639062C06440020062706440648064406CC 06A900200627064406410631062C" & vbCrLf & Chr(26))

faravaghi
یک شنبه 30 مرداد 1390, 13:17 عصر
سلام،
شما بعد از ارسال هر پیام باید یک فالا زمانی مشخص صبر نمایید تا جواب ارسال را دریافت نمایید.
اگه پیام شما ارسال شده باشه علاوه بر OK ، یک شماره مرجع به شما میده. اینو من تو تصویرتون نمی بینم.

+CMGS: 38
من توصیه می کنم از Hyper terminal برای ارسال و تست استفاده کنید.

M.Fekri
یک شنبه 30 مرداد 1390, 13:35 عصر
سلام،
شما بعد از ارسال هر پیام باید یک فالا زمانی مشخص صبر نمایید تا جواب ارسال را دریافت نمایید.
اگه پیام شما ارسال شده باشه علاوه بر OK ، یک شماره مرجع به شما میده. اینو من تو تصویرتون نمی بینم.

+CMGS: 38
من توصیه می کنم از Hyper terminal برای ارسال و تست استفاده کنید.
************
سلام و با تشکر از اینکه وقت گذاشتین
من امروز دوباره تست کردم و دیدم که پیام 2 پارتی را می فرسته و +cmgs را هم دریافت کردم اما نکته جالب اینکه برای پیام بیشتر از 2 صفحه با اینکه برای هر پارت +cmgs را دریافت مکنم + پیام ok اما گوشی پیامی دریافت نمی کنه؟

faravaghi
یک شنبه 30 مرداد 1390, 13:44 عصر
سلام،
این بعضی وقت ها پیش میاد. یعنی ممکنه ترافیک مخابرات باعث این بشه!!!!
باید یه نکته هم براتون بگم:
وقتی قصد دارید پیامهای چند قسمتی بفرستید، باید آن را به قسمت های مختلف بشکنین و بعد بفرستید. یعنی برای پیامهای فارسی حداکثر 70 کاراکتر!!!!
اینو گفتم تا بدونید اصلا ربطی نداره پیام شما 2، 3 و یا چند قسمتی باشه. اگه یکی رفت بقیه باید بره، مگر اینکه خط مشکل داسته باشه، سیم کارت شارژ نداشته باشه و یا مخابرات بازی دربیاره. هر قسمت به عنوان یک پیام میره.

M.Fekri
یک شنبه 30 مرداد 1390, 13:48 عصر
ممنون
من با hyper هم تست کردم اما در این حالت دیگه cmgs+ را دریافت نمی کنم
74164

faravaghi
یک شنبه 30 مرداد 1390, 14:06 عصر
سلام،
اگه گفتین PDU شما 153 کاراکتر است، تو این تصویر که هیچی نفرستادین؟
در ضمن شما که با VB کار میکنید و این تاپیک رو تا تهش خوندین بهترین چیز اینه که از کامپوننتی که بهتون گفتم استفاده کنید. اولش یکم گیر داره، ولی شما که با مفاهیم آشنایید و دستورات رو میشناسید این کامپوننت خیلی کاراست.
یکبار امتحان کنید

M.Fekri
یک شنبه 30 مرداد 1390, 14:12 عصر
از همون کامپوننت شما استفاده کردم برای تولید PDU, و رشته ایجاد شده را paste کردم چون واقعا امکان تایپ یک رشته به آن بزرگی بدون امکان خطا نیست!

M.Fekri
یک شنبه 30 مرداد 1390, 14:18 عصر
در پست 331 من همون کد ایجاد شده توسط شما را ارسال می کنم ویک delay iهم بین هر گذاشتم چیزی دریافت نکردم از طرفی هم با کامپوننتی که شما گفتین پیام 2 پارتی را مفرسته و دریافت هم می کنم اما وقتی متن بیشتر از 2 پارت باشه با اینکه +Cmgs را هم گرفتم اما چیزی دریافت نکردم !

faravaghi
یک شنبه 30 مرداد 1390, 14:29 عصر
سلام،
شما دقیقا چه جیزی می خواهید؟
آیا تایید ارسال را نمی گیرید؟ یا اینکه وقتی پیام ارسال می کنید و جواب ارسال را هم میگیرین ولی به شماره مورد نظر نمیرسه؟

M.Fekri
یک شنبه 30 مرداد 1390, 14:32 عصر
این هم کد 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**********0008FF8B060804888E 0301062706CC06460020063306CC0633062A06450020062806 2700200647062F06410020062706CC062C0627062F002006CC 06A9067E06270631068606AF06CC002006480020062B062806 2A00200627064406A9062A06310648064606CC06A906CC0020 062706370644062706390627062A00200645062C0645064806 390647002006470627" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=152" & vbCr)
SerialPort1.WriteLine("0691891901500071000A81**********0008FF8B060804888E 030206CC0020064806310632063406CC002006370631062706 2D06CC002006AF0631062F06CC062F0647002006270633062A 0020000D000A062706CC06460020063306CC0633062A064500 2006420627062F063100200628064700200645062F06CC0631 06CC062A002006A9064406CC0647002006390645064406CC06 27062A002006450627" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting
SerialPort1.WriteLine("AT+CMGS=126" & vbCr)
SerialPort1.WriteLine("0691891901500071000A81**********0008FF71060804888E 0303064406CC0020064800200627062F0627063106CC002006 45062C06450648063906470020064806310632063406CC0020 0627063906450020062706320020062B0628062A0020064606 270645002006270639063606270621002006A9064406270633 0647062706CC0020" & Chr(26))
System.Threading.Thread.Sleep(10000)
M = M + SerialPort1.ReadExisting

M.Fekri
یک شنبه 30 مرداد 1390, 14:33 عصر
به شماره مورد نظر نمی رسه آن هم در زمانی که بیش از 2 پارت باشه

M.Fekri
سه شنبه 01 شهریور 1390, 13:43 عصر
با ایرانسل بدون مشکل تا 5 پارت را می فرسته.مشکل هممراه اول بود:قهقهه:

reza6966
چهارشنبه 02 شهریور 1390, 02:59 صبح
با سلام خدمت همه اساتید
من یه پروژه دارم که باید برنامه ارسال و دریافت اس ام اس به وسیله AT COMMANDS و مودم جی اس ام رو پیاده سازی کنم
من خیلی جستجو کردم و چندین نمونه رو هم پیدا کردم اما همه با پورت سریال پیاده سازی شده بودند و من نتونستم این برنامه ها رو تست کنم , من این برنامه ها رو اینجا قرار میدم , دوستان کسی این برنامه ها رو تست کرده ؟؟؟ آیا کار می کنند ؟؟؟

کسی از دوستان نمونه های تست شده دیگری ندارند ؟؟؟

ممنون می شم کمکم کنید :گریه:

M.Fekri
چهارشنبه 02 شهریور 1390, 11:50 صبح
سلام

وقتی هم که پیامی ارسال می کنید:

AT+CMGS=32
>0691891901500031840B81905*******F50008FF1206330644 0627064500200645062D0645062F<ctl+z >

+CMGS: 38

OK

+CDS: 25
0691891901500006260B81905*******F51180104194338111 80104194838100

این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:

*************
+CDS همیشه دریافت نمیشه.علت اش را می شه توضیح دهید؟
با سپاس فراوان

faravaghi
چهارشنبه 02 شهریور 1390, 13:09 عصر
سلام،
دریافت نمی شوند یا بعضی وقت ها دریافت نمی شوند؟
اگه دریافت نمی شوند باید برین

AT+CNMI
رو تنظیم کنید.
اگه بعضی وقتها دریافت نمیشه، گفتم تو این حالت یک عیبی که داره اینه که اگه نتونید تو لحظه که میاد اون رو دریافت نکنید انگاری انداختی دور!!!
اگه نتونی لحظه به لحظه پورت رو چک کنی بهتره از خالتی استفاده کنید که اینا تو حافظه ذخیره بشه.

reza6966
شنبه 12 شهریور 1390, 22:47 عصر
چک کردن پیام کوتاه جدید و ایجاد یک کنترل از طریق پیام کوتاه

با سلام خدمت دوستان عزیز
من یه برنامه می خوام بنویسم که به محض رسیدن یک اس ام اس متن آن را چک کند و مثلا اگه نوشته بود SHUTDOWN یه کد را اجرا کند و کامپیوتر را خاموش کند
دوستان کسی می تونه من رو راهنمایی کنه ؟؟؟؟؟

مشکل من اینه که چجوری کدی بنویسم که به محض رسیدن پیام جدید متوجه بشه و متن پیام رو چک کند ؟؟؟؟

ممنون می شم

faravaghi
یک شنبه 13 شهریور 1390, 00:07 صبح
سلام،
با کامپوننت که من کار میکنم اینجوریه که برای دریافت پیام های جدید یک Event داره که ست میشه و بهش میگی اگه این رویداد انجام شد یک تابع رو فراخوانی کنه. تو این تابع میتونید بگی پیام جدید رو دربانک ذخیره کنه، ویا یک پیغام به کاربر بدی که پیام جدید اومده ویا ...
توی این رویداد شما میتونید تعریف کنید که بیاد پیام رو با متنی که میخوای مقایسه کنه اگه هر چی که شما گفتی بود یه تابع رو فراخوانی کن.
به همین راحتی....
تو کامپوننت های دیگه هم یه چیز عین این هست.

reza6966
یک شنبه 13 شهریور 1390, 00:41 صبح
ممنون دوست عزیز اما راه کلیشو می خوام انجام بدم
می خوام با AT COMMAND ها خودم این event رو برنامه نویسی کنم

ممنون می شم راهنمایی کنید

reza6966
یک شنبه 13 شهریور 1390, 19:18 عصر
http://barnamenevis.org/showthread.php?121131-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%D8%AA%D9%88%D8%AC%D9%87-%D9%88%D8%B1%D9%88%D8%AF-sms-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%B4%D9%88%DB%8C%D9%85%D8%9Fl
با سلام

بله یک دستور AT هست بنام:

AT+CNMI=2,1,0,1

که میشه گفت event مودم را برای دریافت sms جدید فعال میکنه از این دستور به بعد هر گاه اس ام اس جدید بیاد به صورت زیر به نمایش در میاد:


+CMTI: "ME",108
این پاسخ از سمت مودم نمایانگر محل ذخیره سازی اس ام اس جدید می باشد.

طی جستجویی که کردم این رو پیدا کردم اما متوجه منظورش و طریقه استفاده این AT COMMAND ها نشدم
دوستان کسی می تونه من رو کمک کنه ؟؟؟؟

چطوری زیر برنامه بنویسم که این عمل رو انجام بده ؟؟؟؟
ممنون میشم

reza6966
چهارشنبه 16 شهریور 1390, 21:46 عصر
مشکل در ارتباط بین مودم D link DWM-156 و hyperterminal
با سلام خدمت همه دوستان
من یه مودم D link DWM-156 خریدم که با استفاده از نرم افزار خود مودم می توان اس ام اس فرستاد اما وقتی می خوام با هایپر ترمینال بهش وصل شوم وصل می شود اما احازه تایپ هیچ دستوری درون اون صفحه بهم نمی ده
کسی می دونه باید چی کارش کنم ؟؟؟؟
ممنون می شم
فکر کنم مشکل کار اینجاست که برنامه مخصوص خود D link پورت رو در اختیار می گیرد و با وجود اینکه برنامه رو می بندم پورت آزاد نیمشه
کسی از دوستان نمی دونه چیکار باید انجام بدم تا پورت آزاد شه ؟؟؟؟

msn2msn
سه شنبه 29 شهریور 1390, 14:30 عصر
سلام دوستان. از همتون ممنون بابت مطالبي گذاشتبن.
فقط كاشكي اين مطالبو تو يه فايل pdf ميذاشتيد كه اينقدر پست‌ها زياد نشن و اونايي كه مثل من اينترنت پر سرعت ندارن واسه بازكردن صفحات عذاب نكشن.
و اگه امكان داره پست‌هاي اضافي رو حذف كنيد تا يكم تعداد صفحات كمتر بشه.

single_2008boy
چهارشنبه 26 بهمن 1390, 10:26 صبح
سلام کسی pdf این مطالب رو نداره؟
من فرق بین اینکد 7 بیت و 8بیت و ucs2 چیه؟

amirzandi
سه شنبه 29 فروردین 1391, 14:13 عصر
سلام
آقا روی این قسمت میشه توضیح بیشتری بدین؟

اون 3 از کجا اومد؟

ممنون

amirzandi
سه شنبه 29 فروردین 1391, 14:16 عصر
به علت پیچیدگی این مورد با ذکر یک مثال مطلب رو دنبال میکنیم.



0791893905004102240C918939564208
8400008060504112928110C2B0DC1D6E
97DD657B7AEE7ACBCF
این پیامی هست که به دست من رسیده؟!!!

قسمت اول شماره مرکز پیام:

0791893905004102

07 : بدین معنی که شماره مرکز پیام 07H هفت بایت از این متن رو اشغال کرده که بعد از علامت شماره قرار میگیره.

91 : بدین معنی که شماره مرکز پیام بین المللی است و با + شروع شده ("اگر غیر از این بود عدد 81 جایگزین میشد")

893905004102 : این خود شماره مرکز پیام هست ، یه شمارش بزنید! میبینید که محتوای موجود دارای 6 بایت هست که با 1 بایت علاکت میشه 7 بایت یعنی همون عددی که در ابتدا داشتیم.این شماره هم مثل همیشه به صورت جفت معکوس هست که باید برای خوانا شدن معکوس بشه یعنی :
داریم :
89-39-05-00-41-02
که بعد از بر عکس کردن میشه :
98-93-50-00-14-20

پس با احتساب علامت شماره داریم :
+989350001420

خیلی راحت بود مگه نه ;)

24 : این عدد که یکی از پر معنا ترین اعداد برای ما هست 2 تا مسئله رو برامون روشن میکنه.

این عدد چندین حالت میتونه داشته باشه که من عام اون رو بهتون میگم.
04: برای SMS یعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery نکرده.
24: برای SMSیعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery کرده.

40: برای EMSیعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery نکرده.
44: برای EMS یعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery کرده.

06: پیام فعلی یک گزارش هست.

البته این اعداد همینجوری یلخی هم به دست نیامده و با 0 و 1 شده معادل باینری اونا سرو کار داره. ولی کلیات کار رو تا اینجا داشته باشید کفایت میکنه.

پس تا اینجا ما فهمیدیم که با این عدد به 2 دسته اطلاعات میشه پی برد یکی نوع پیام و دیگری آیا درخواست گزارش از طرف فرستنده ارسال شده یا نه.

حالا میخواهیم دقیق از روی عددی که توی این بایت وجود داره بفهمیم که نوع این کد چیه؟


SMS دریافت شده = 0
SMS ذخیره شده = 1
گزارش دریافت یک پیام = 2
EMS دریافت شده = 64
EMS ذخیره شده = 65

البته اون عدد 24 در مبنای 16 هست و این عدد هایی که من نوشتم تا اینجای کار ربطی به اون 24 نداره و همچنین در مبنای 10 هستند.

اینجا باید عدد 24H رو با 3 و 64 در مبنای 10 And کنیم و هر دو نتیجه رو با هم جمع کنیم یعنی :

36 دسیمال = 24 هگز = 00100100 باینری
AND
3 دسیمال = 3 هگز = 00000011 باینری
جواب1
0 دسیمال = 0 هگز = 00000000 باینری

و داریم

36 دسیمال = 24 هگز = 00100100 باینری
AND
64 دسیمال = 40 هگز = 01000000 باینری
جواب2
0 دسیمال = 0 هگز = 00000000 باینری

که در جمع 2 جواب به عدد 0 میرسیم که میشه : SMS دریافت شده = 0

فقط امیدوارم با AND باینری آشنا باشید!
AND باینری!
0AND0=0
0AND1=0
1AND1=1

پس ما با AND کردن این عدد با 3 و 64 و جمع نتیجه ها به این نکته پی میبری که پیام ما چیه ولی یه نکته که اهمیت داره و کاربرد نداره اینه که:
اگر جواب اول بشه 3 و جواب دوم بشه 64 نوع پیام میشه : EMS ارسال شده

-----------------------------------------------------------------------------

ادامه در پست بعد.

موفق باشید


سلام
آقا روی این قسمت میشه توضیح بیشتری بدین؟

اون 3 از کجا اومد؟

ممنون

panda62001
پنج شنبه 22 تیر 1391, 12:38 عصر
سلام
من کل تاپیک رو مطالعه کردم حیفم اومد از دوستان تشکر نکنم ، عالی بود خیلی زحمت کشیدید .
این تاپیک تقریباً نتیجه سه چهار سال هم فکریه واقعاً ارزشمنده .
ممنون از همه

ab_ir_007
شنبه 28 مرداد 1391, 15:27 عصر
اساتید سلام
من یه سوال دارم!
همونطور که فرمودین بعد از AT+CMGS باید طول کارکتر رو بنویسیم بعد توی خط بعدی کد PDU Message اما من چطور میتونم این طول کارکترها رو بدست بیارم (با استفاده از کدام خاصیت کامپوننت ها)؟؟؟ سرویس سنتر شماره مقصد و پیام و سایر اطلاعات رو تونستم تبدیل به PDU کنم اما طولشو نمیدونم چطور بدست بیارم...
البته اینم بگم از کاکپوننتها دارم استفاده میکنم دوستانی که از SMSPduLib یا AtSMS استفاده میکنن ممکنه راهنمایی بفرمایید.

faravaghi
شنبه 28 مرداد 1391, 20:50 عصر
سلام،
طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟

برای بدست آوردن طول رشته (http://msdn.microsoft.com/en-us/library/system.string.length.aspx) میتونید به این سایت مراجعه کنید.

ab_ir_007
شنبه 28 مرداد 1391, 22:27 عصر
ممنونم از پاسختون
فکر کنم من سوالم رو ناقص پرسیدم
قبل از هر چیز بگم که من قصد دارم از 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 رو پاس کنم؟؟؟



سلام،

طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟

برای بدست آوردن طول رشته (http://msdn.microsoft.com/en-us/library/system.string.length.aspx) میتونید به این سایت مراجعه کنید.

ab_ir_007
دوشنبه 30 مرداد 1391, 19:19 عصر
دوستان ممکنه یکی کمک کنه!!!!
دقیقا همین کدها رو اگه توی هایپر ترمینال استفاده کنم در حالت pdu ارسال میشه اما وقتی کدهای سی شارپ تبدیل میشن هیچ اتفاقی نمیوفته یعنی کد کامل اجرا میشه ولی اس ام اس ای ارسال نمیشه!
یکی کمک کنه واقعا گیج شدم دیگه....

faravaghi
دوشنبه 30 مرداد 1391, 23:12 عصر
سلام دوست عزیز،
یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!

برای ارسال پیام شما ابتدا طول 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

ab_ir_007
سه شنبه 31 مرداد 1391, 00:11 صبح
دوست عزیز ممنون از پاسختون
خوشحالم بالاخره یکی پیدا شد با ATSMS کار کرده باشه تا راهنمایی کنه] ممکنه چند تا سر نخ به من بدین در مورد استفاده از این کامپوننت؟
اول اینکه تنظیمات پورت با این کامپوننت چطور تعریف میشن؟ یکیشون رو مثال بزنید لطفا.
دمو اینکه ظاهرا باید با خاصیت ATSMS.SMS برای ارسال اقدام کنم ولی SendSMS پیدا نکردم اگه ممکنه با یه مثال بیشتر راهنمایی کنین تا سر نخ دستم بیاد.
سوال سوم اینکه این کامپوننت وب رو پشتیبانی میکنه یا نه و ایا استفاده از این کامپوننت برای وب سایت مجازه (متن باز هست؟) یا نه چون مثلا Kylix اصلا ویندوزی بود و نتونستم ازش برای وب استفاده کنم گرچه متن باز هم نبود.

ممنون میشم به این سه سوال جواب بدین



سلام دوست عزیز،
یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!

برای ارسال پیام شما ابتدا طول 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

faravaghi
سه شنبه 31 مرداد 1391, 10:38 صبح
سلام برشما،
این تاپیک موضوعش فرق میکنه. نمی دونم میشه این جا همچین بحثی رو جواب داد یا نه؟
ولی به چندتا سوال جواب میدم بقیه رو لطف کنید با پیغام خصوصی دنبال کنید.

پشتیبانی از وب:
این نوع کامپوننت ها که دارن با سخت افزار کا میکنن دیگه کاری به وب ندارن! چون دنیاشون متفاوت میشه. این هم از این قاعده خارج نیست. پس ارسال از طریق وب رو انجام نمیده.
در ضمن برای ارسال از طریق وب باید از وب سرویس استفاده کنید که ساخت شرکت های واگذار کننده خدمات است.

Open Source:
این کامپوننت متن کامل کدهاش موجوده پس یک افزونه متن باز است.

در ضمن این کامپوننت ویندوزی است و در وب کاربرد نداره. برای ارسال از طریق وب باید از وب سرویس استفاده کنید نه سخت افزار مودم!

Behnam6670
سه شنبه 04 تیر 1392, 07:20 صبح
من هر کاری میکنم نمیتونم اس ام اس چند پارتی با این روش بفرستم
لطفا راهنماییم کنید

hamed_hossani
پنج شنبه 10 مرداد 1392, 14:58 عصر
سلام
ایا امکان داره که متن دلخواه را به جای شماره بفرستیم؟
جایی خواندم مخابرات فقط به شرکت هایی که قرار داد دارند اجازه این کار رو میده!
کسی تاحالا این کارو انجام داده؟

hamed_hossani
پنج شنبه 17 مرداد 1392, 19:39 عصر
ایا امکان داره که متن دلخواه را به جای شماره بفرستیم؟

hamed_hossani
پنج شنبه 24 مرداد 1392, 12:25 عصر
:گریه:
k
I

nakhodasokoot
پنج شنبه 07 شهریور 1392, 00:03 صبح
سلام
من ی pdu سه پارتی دارم....اما هر چی میگردم کد060804 رو پیدا نمی کنم ؟؟؟ چه کنم ؟؟




1-06918919015000400C91891975958047000831809200218341 8C0500033203010633064406270645
062A00200631062700200646064506CC0020062E0648062706 470646062F0020067E06270633062E
002006AF0641062A002E002006330631064706270020062F06 31002006AF063106CC062806270646
002006270633062A0021000A06A9063306CC00200633063100 2006280631064606CC06270631062F
002006A90631


2-06918919015000400C91891975958047000831809200212441 8C050003320302062F0020067E0627
0633062E002006AF0641062A0646002006480020062F06CC06 2F06270631002006CC062706310627
0646002006310627002E0020064606AF06470020062C063200 20067E06CC06340020067E06270020
063106270020062F06CC062F00200646062A06480627064606 2F002E002006A90647002006310647
0020062A0627


3-06918919015000640C91891975958047000831809200214441 26050003320303063106CC06A90020
064800200644063A063206270646002006270633062A002E

faravaghi
پنج شنبه 07 شهریور 1392, 11:33 صبح
سلام دوست عزیز،
کد 060804 رو میخواین چه کار کنید؟
ترجمه PDU شما میشه این:


EMS_RECEIVED
From:98915------- Time:29/08/2013 00:12:38 GMT+3.5
Refrence Number: 32 Total: 3 Part: 1
سلامت را نمی خواهند پاسخ گفت. سرها در گریبان است!
کسی سر برنیارد کر

EMS_RECEIVED
From:98915------- Time:29/08/2013 00:12:42 GMT+3.5
Refrence Number: 32 Total: 3 Part: 2
د پاسخ گفتن و دیدار یاران را. نگه جز پیش پا را دید نتواند. که ره تا
EMS_RECEIVED

From:98915------- Time:29/08/2013 00:12:44 GMT+3.5
Refrence Number: 32 Total: 3 Part: 3
ریک و لغزان است.


که این نشون میده پیام از نوع پیام های دریافتی است. که توی این پیام الزاما نباید کد 060804 باشد!!
این کد شما در حالت EMS_SUBMIT و یا همون موقع ارسال می باشد.

nakhodasokoot
پنج شنبه 07 شهریور 1392, 22:34 عصر
سلام. ممنون از پاسختون
یعنی توی پیامهای دریافتی کد 060804 رو نداریم و فقط در پیام های ارسالی باید ایجاد بشه ؟؟؟ پس با این وضعیت چجوری میشه پیام های چند پارتی دریافتی رو تشخیص داد که از نوع چند پارتی هستن ؟؟؟ یعنی کدی مثل 060804 وجود داره ؟؟؟ اگه تو تاپیکای قبلی این مطلب ذکر شده بگید میرم دوباره نگاه می کنم...:چشمک:
ممنون

nakhodasokoot
جمعه 08 شهریور 1392, 23:14 عصر
آقا من جوابم رو از تاپیک 83 گرفتم! بجای 060804 باید دنبال 050003 می گشتم
بازم ممنون

saeed_smco
جمعه 08 آذر 1392, 14:28 عصر
سلام با تشکر پست خیلی خوبتون . من نمیدونم چطوری کد UCS2 هر کارکتر فارسی رو استخراج کنم؟ مرجعش چیه؟

Afshin160
سه شنبه 19 خرداد 1394, 16:14 عصر
سلام .
من تقریبا با ارسال و دریافت sms فارسی و انگلیسی مشکلی ندارم .
ولی یه سوال بد جور فکرم مشغول کرده و اونم اینه که چطور یک سری sms ها به جای شماره فرستنده نام اون تو گوشی ثبت میشه ؟ مثل بانک ها ... آیا میشه با اعمال تغییرات در PDU ارسالی چنین کاری کرد ؟
البته تقریبا تمام اونها از طریق انترنت ارسال شده اند و نه از طریق GSM modem

با تشکر

Afshin160
دوشنبه 25 خرداد 1394, 13:16 عصر
سلام .
گویا به صورت شخصی نمیشه شماره مقصد را با نام جایگزین کرد . و باید با دسترسی مرکز پیام باشه ....!!!؟



یه سوال در رابطه با Flash SMS داشتم ....
1- نوع فرمت sms باید text mode باشه یا PDU ؟
2- باید متن را 7bit کد کنم یا 16bit ؟
3- کد گزارش مرکز پیام و یا نوع پروتوکل را باید تغییر بدم ؟

متشکر میشم کمکم کنید .

artamiss
یک شنبه 18 مرداد 1394, 05:49 صبح
لينك گروه اندرويد در تلگرام

https://telegram.me/joinchat/036503bd001a8b5b106bd66819b8894f

it.dadkhah
شنبه 01 خرداد 1395, 20:13 عصر
سلام دوستان. من همه ی این آموزش رو نخوندم ولی از یک کلاس برای تولید و تحلیل pdu استفاده می کردم. الان میخوام از همون کلاس برای مودم D-Link DWM-156 استفاده کنم ولی مودم بهم ERROR میده. کسی تا حالا با این مودم کار کرده؟

hosseinrp
چهارشنبه 21 مهر 1395, 19:41 عصر
من میخوام یک پیام دو پارتی را به یک پروت خاص (8088) بفرستم پی دی یو به شرح زیر تشکیل دادم اما خطا 304 میده به نظر تون مشکلش چیه
در ضمن اگر کسی از دوستان در این زمینه اطلاعاتی داره لطف کنید راهنمایی کنید یعنی طرز تشکیل هم زمان پیام چند پارتی با ارسال به پورت خاص
PDU Number:1 Length For AT:143
0681994013534551000B819021562304F30008FF810C05041F 981F980804B49F020100350035003500350035003500350035 00350035003500350035003500350035003500350035003500 35003500350035003500350035003500350035003500350035 00350035003500350035003500350035003500350035003500 35003500350035003500350035003500350035003500350035 00350035
PDU Number:2 Length For AT:45
0681994013534551000B819021562304F30008FF1F0C05041F 981F980804B49F020200350035003500350035003500350035 003500350035

avina7707
سه شنبه 03 اسفند 1395, 10:31 صبح
دو تا سوال دارم از دوستان ممنون میشم اگه راهنمایی کنن..
توی بحثا گفته شد که اگه بخوایم از طریق PDU پیام بفرستیم و Delivery Report هم داشته باشیم یه کد 2 رقمی رو در محل تعیین شده قرار میدیم و پیام رو ارسال میکنیم حالا سوال من اینه که اولا:
وقتی Delivery فعال شد و پیام هم فرستاده شد جوابشو چطوری دریافت میکنیم؟ یعنی راهی هست که هر موقع گزارش رسیدن پیام به مقصد ، واسه ما اومد ما هم مثلا با یه MsgBox به کاربرمون اطلاع بدیم یا اینکه باید مرتبا وضعیت پیام رو توی شبکه بررسی کنیم ببینیم رسیده یا نه...

ثانیا در مد Text چطوری میشه تنظیمات اضافی (مثل همین Delivery) روی پیام ارسالی تنظیم کرد؟؟؟

آموزش خوشنویسی (http://9calligraphy.ir)
آموزش ماساژ (http://massage77.ir/)
آموزش عكاسي
(http://7photography.ir/)پرورش مرغ (http://hen6.ir/)
آموزش مكانيك خودرو (http://mechanical9.ir/)